Sostituite TProgind con TProgres_monitor

git-svn-id: svn://10.65.10.50/branches/R_10_00@23006 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2014-10-27 08:25:07 +00:00
parent dc133a5ec1
commit 30fb95bbaf
2 changed files with 29 additions and 36 deletions

View File

@ -4,18 +4,15 @@
#include "mglib.h" #include "mglib.h"
#include "../cg/cglib01.h" #include "../cg/cglib01.h"
class TMask_buildmov: public TMask class TMask_buildmov: public TMask
{ {
TEsercizi_contabili _esercizi; TEsercizi_contabili _esercizi;
static bool handle_annoes(TMask_field &, KEY); // handler del numero di registrazione static bool handle_annoes(TMask_field &, KEY); // handler del numero di registrazione
public: public:
TMask_buildmov(); TMask_buildmov();
virtual ~TMask_buildmov() {}
}; };
TMask_buildmov::TMask_buildmov() TMask_buildmov::TMask_buildmov() : TMask("mg1200")
: TMask("mg1200")
{ {
set_handler(F_ANNOES, handle_annoes); set_handler(F_ANNOES, handle_annoes);
} }
@ -26,31 +23,29 @@ bool TMask_buildmov::handle_annoes(TMask_field &fld, KEY k)
if (fld.empty()) if (fld.empty())
{ {
// DEFAULT // DEFAULT
const long esc=mask._esercizi.date2esc(mask.get_date(F_DATA)); const TDate d = mask.get_date(F_DATA);
if (esc!=0) const int codes = mask._esercizi.date2esc(d);
fld.set(esc); if (codes > 0)
fld.set(codes);
} }
if (fld.to_check(k) || k == K_ENTER) if (fld.to_check(k) || k == K_ENTER)
{ {
if (mask._esercizi.exist(mask.get_int(F_ANNOES))) const int codes = mask.get_int(F_ANNOES);
if (codes > 0 && mask._esercizi.exist(codes))
{ {
const TEsercizio & e=mask._esercizi.esercizio(mask.get_int(F_ANNOES)); const TEsercizio& e = mask._esercizi.esercizio(codes);
if (e.chiusura_mag()!=TDate(NULLDATE)) if (e.chiusura_mag().ok())
{ return fld.error_box(TR("Il magazzino dell'esercizio indicato risulta chiuso\n"
fld.error_box(TR("Il magazzino dell'esercizio indicato risulta chiuso \nImpossibile effettuare la ricostruzione saldi")) ; "Impossibile effettuare la ricostruzione saldi"));
return FALSE;
}
} }
} }
return TRUE; return true;
} }
class TApp_rebuildbalances : public TSkeleton_application class TApp_rebuildbalances : public TSkeleton_application
{ {
TRelation* _rel; // relazione TRelation* _rel; // relazione
TCursor* _cur; // cursore TCursor* _cur; // cursore
int _annoes;
bool _reset_giac;
protected: protected:
virtual bool create(); virtual bool create();
@ -71,7 +66,8 @@ void TApp_rebuildbalances::main_loop()
while (m.run()==K_ENTER) while (m.run()==K_ENTER)
{ {
if (!rebuild_balances(m.get_int(F_ANNOES))) if (!rebuild_balances(m.get_int(F_ANNOES)))
warning_box(TR("A causa degli errori riscontrati i saldi di magazzino \npotrebbero non essere stati del tutto aggiornati. \nProcedere ad una nuova operazione di ''Ricostruzione saldi''")); warning_box(TR("A causa degli errori riscontrati i saldi di magazzino\npotrebbero non essere stati del tutto aggiornati.\n"
"Procedere ad una nuova operazione di ''Ricostruzione saldi''"));
} }
} }

View File

@ -621,22 +621,15 @@ bool TMov_mag::update_balances(bool lock)
TRectype& magcurr = mag.curr(); TRectype& magcurr = mag.curr();
TString_array keys_mag; TString_array keys_mag;
_saldi_mag.get_keys(keys_mag); _saldi_mag.get_keys(keys_mag);
keys_mag.sort(); keys_mag.sort();
TProgind* pi = NULL; TString msg;
if (keys_mag.items() >= 100) msg << TR("Aggiornamento saldi del movimento ") << get(MOVMAG_NUMREG)
{ << ": " << get(MOVMAG_DESCR);
TString msg; TProgress_monitor pi(keys_mag.items(), msg, false);
msg << TR("Aggiornamento saldi del movimento ") << get(MOVMAG_NUMREG)
<< ": " << get(MOVMAG_DESCR);
pi = new TProgind(keys_mag.items(), msg, false, true);
}
FOR_EACH_ARRAY_ROW(keys_mag, r, curr_key) FOR_EACH_ARRAY_ROW(keys_mag, r, curr_key)
{ {
if (pi) pi->addstatus(1);
const TSaldo_mag& saldo = (const TSaldo_mag&)_saldi_mag[*curr_key]; const TSaldo_mag& saldo = (const TSaldo_mag&)_saldi_mag[*curr_key];
const TCodice_articolo& codart = saldo.codart(); const TCodice_articolo& codart = saldo.codart();
@ -665,9 +658,8 @@ bool TMov_mag::update_balances(bool lock)
if (lock) if (lock)
art.unlock(); art.unlock();
} }
pi.add_status();
} }
if (pi) delete pi;
} }
if (_saldi_mag_clifo.items() > 0) if (_saldi_mag_clifo.items() > 0)
@ -1028,10 +1020,12 @@ bool rebuild_balances(int codes, const TTipo_valorizz tipo_valorizz,
if (a.open(_excllock) != NOERR) if (a.open(_excllock) != NOERR)
return false; return false;
const TEsercizi_contabili& esc = esercizi();
TBalance_params p; TBalance_params p;
p.codes = codes; p.codes = codes;
p.codesprec = esercizi().pred(codes); p.codesprec = esc.pred(codes);
p.closed = p.codesprec <= 0 || esercizi().esercizio(p.codesprec).chiusura_mag().ok(); p.closed = p.codesprec <= 0 || esc[p.codesprec].chiusura_mag().ok();
p.zero_giac = p.closed; p.zero_giac = p.closed;
p.catv = catven; p.catv = catven;
p.codl = codlis; p.codl = codlis;
@ -1045,16 +1039,19 @@ bool rebuild_balances(int codes, const TTipo_valorizz tipo_valorizz,
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);
} }
if (p.codesprec > 0)
{ {
TString filter; filter << CLIFOGIAC_ANNOES << "==" << p.codesprec; TString16 filter;
filter << CLIFOGIAC_ANNOES << "==" << p.codesprec; // Copia giacenze da anno precedente ad anno corrente
TRelation clifogiac_rel(LF_CLIFOGIAC); TRelation clifogiac_rel(LF_CLIFOGIAC);
TCursor c(&clifogiac_rel, filter); TCursor c(&clifogiac_rel, filter);
msg.format(FR("Ricostruzione saldi esercizio %04d : azzeramento giacenze clienti..."), codes); msg.format(FR("Ricostruzione saldi esercizio %04d: azzeramento giacenze clienti..."), codes);
c.scan(rel_reset_clifogiac, (void*)&p, msg); c.scan(rel_reset_clifogiac, (void*)&p, msg);
} }