Corretto azzeramento giacenze in ricostruzione saldi magazzino
git-svn-id: svn://10.65.10.50/branches/R_10_00@23000 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
b525875cc1
commit
a91e533361
@ -59,7 +59,9 @@ protected:
|
|||||||
|
|
||||||
bool TApp_rebuildbalances::create()
|
bool TApp_rebuildbalances::create()
|
||||||
{
|
{
|
||||||
open_files(LF_UMART, LF_MAG, LF_RMOVMAG, LF_TABCOM, LF_STOMAG, LF_DESLIN, LF_CODCORR, 0);
|
open_files(LF_CLIFO, LF_UMART, LF_MAG, LF_MOVMAG, LF_RMOVMAG,
|
||||||
|
LF_TAB, LF_TABCOM, LF_STOMAG, LF_DESLIN, LF_CODCORR,
|
||||||
|
LF_ANAMAG, LF_CLIFOGIAC, 0);
|
||||||
return TSkeleton_application::create();
|
return TSkeleton_application::create();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -632,7 +632,9 @@ bool TArticolo_giacenza::is_deletable(const TRectype& mag) const
|
|||||||
bool TArticolo_giacenza::azzera_saldi(int codes, int codespre, bool save_to_disk)
|
bool TArticolo_giacenza::azzera_saldi(int codes, int codespre, bool save_to_disk)
|
||||||
{
|
{
|
||||||
CHECKD(codes > 0 && codespre != codes, "Davvero azzereresti i saldi dall'esercizio ", codes);
|
CHECKD(codes > 0 && codespre != codes, "Davvero azzereresti i saldi dall'esercizio ", codes);
|
||||||
TRecord_array& oldmag = mag(codespre);
|
TRecord_array oldmag(LF_MAG, MAG_NRIGA);
|
||||||
|
if (codespre > 0)
|
||||||
|
oldmag = mag(codespre); // Non usare TRecord_array& in quanto mag(codes) lo sovrascriebbe!
|
||||||
TRecord_array& rec_arr = mag(codes);
|
TRecord_array& rec_arr = mag(codes);
|
||||||
|
|
||||||
const int last = rec_arr.last_row();
|
const int last = rec_arr.last_row();
|
||||||
@ -642,7 +644,7 @@ bool TArticolo_giacenza::azzera_saldi(int codes, int codespre, bool save_to_disk
|
|||||||
for (int i = 0; zero_fields[i]; i++)
|
for (int i = 0; zero_fields[i]; i++)
|
||||||
mag.zero(zero_fields[i]);
|
mag.zero(zero_fields[i]);
|
||||||
|
|
||||||
if (codespre > 0)
|
if (codespre > 0 && oldmag.rows() > 0)
|
||||||
{
|
{
|
||||||
const TString80 liv(mag.get(MAG_LIVELLO));
|
const TString80 liv(mag.get(MAG_LIVELLO));
|
||||||
const int row = find_mag(oldmag, mag.get(MAG_CODMAG), liv);
|
const int row = find_mag(oldmag, mag.get(MAG_CODMAG), liv);
|
||||||
@ -657,12 +659,13 @@ bool TArticolo_giacenza::azzera_saldi(int codes, int codespre, bool save_to_disk
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_deletable(mag))
|
if (is_deletable(mag))
|
||||||
rec_arr.destroy_row(r, TRUE);
|
rec_arr.destroy_row(r, TRUE);
|
||||||
}
|
}
|
||||||
bool ok = true;
|
bool ok = true;
|
||||||
if (save_to_disk)
|
if (save_to_disk)
|
||||||
ok = rec_arr.write(TRUE) == NOERR;
|
ok = rec_arr.write(true) == NOERR;
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -896,9 +896,8 @@ struct TBalance_params
|
|||||||
|
|
||||||
HIDDEN bool reset_giac(const TRelation& rel, void* pJolly)
|
HIDDEN bool reset_giac(const TRelation& rel, void* pJolly)
|
||||||
{
|
{
|
||||||
TArticolo_giacenza & articolo = (TArticolo_giacenza &) rel.lfile().curr();
|
|
||||||
TBalance_params & p = *((TBalance_params *)pJolly);
|
TBalance_params & p = *((TBalance_params *)pJolly);
|
||||||
|
TArticolo_giacenza articolo(rel.curr());
|
||||||
if (p.zero_giac)
|
if (p.zero_giac)
|
||||||
articolo.azzera_saldi(p.codes, p.codesprec);
|
articolo.azzera_saldi(p.codes, p.codesprec);
|
||||||
else
|
else
|
||||||
@ -1045,7 +1044,7 @@ bool rebuild_balances(int codes, const TTipo_valorizz tipo_valorizz,
|
|||||||
TRelation anamag_rel(LF_ANAMAG);
|
TRelation anamag_rel(LF_ANAMAG);
|
||||||
TCursor anamag_cur(&anamag_rel);
|
TCursor anamag_cur(&anamag_rel);
|
||||||
|
|
||||||
anamag_cur.relation()->lfile().set_curr(new TArticolo_giacenza());
|
//anamag_cur.relation()->lfile().set_curr(new TArticolo_giacenza());
|
||||||
msg.format(FR("Ricostruzione saldi esercizio %04d : azzeramento..."), codes);
|
msg.format(FR("Ricostruzione saldi esercizio %04d : azzeramento..."), codes);
|
||||||
anamag_cur.scan(reset_giac, (void*)&p, msg);
|
anamag_cur.scan(reset_giac, (void*)&p, msg);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user