// sistema il codice esercizio di tutti i movimenti #include #include #include "cglib01.h" #include "cg1300.h" #include "cg1305.h" #include #include #include inline TAgg_codes& app() { return (TAgg_codes&) main_app(); } bool TAgg_codes::create() { TApplication::create(); _mov = new TLocalisamfile(LF_MOV); _rmov = new TLocalisamfile(LF_RMOV); _rmoviva = new TLocalisamfile(LF_RMOVIVA); dispatch_e_menu (BAR_ITEM(1)); return TRUE; } bool TAgg_codes::destroy() { delete _mov; delete _rmov; delete _rmoviva; return TApplication::destroy(); } bool TAgg_codes::menu(MENU_TAG m) { TMask msk("cg1300d"); if (msk.run() == K_ENTER) return calcola_codes(); else return FALSE; } bool TAgg_codes::calcola_codes() { TLocalisamfile& mov = get_mov(); TEsercizi_contabili esercizi; TDate data; long modified_recs=0L; long nrecs = (long) mov.eod(); int err = NOERR; TProgind p(nrecs, "Aggiornamento in corso...", TRUE, TRUE, 100); TRecord_array righe(LF_RMOV,RMV_NUMRIG); TRecord_array righeiva(LF_RMOVIVA,RMI_NUMRIG); TRectype riga(LF_RMOV); TRectype rigaiva(LF_RMOVIVA); TString s_codes; for (mov.first(); !mov.eof() && err == NOERR; mov.next()) { p.addstatus(1); data=mov.get_date(MOV_DATACOMP); const int codes = mov.get_int(MOV_ANNOES); const int newcodes = esercizi.date2esc(data); if (codes != newcodes) { mov.put(MOV_ANNOES,newcodes); err = mov.rewrite(); const long numreg = mov.get_long(MOV_NUMREG); riga.put(RMV_NUMREG,numreg); rigaiva.put(RMI_NUMREG,numreg); righe.read(riga); righeiva.read(rigaiva); righe.renum_key(RMV_ANNOES,newcodes); s_codes = format("%04d",newcodes); righeiva.renum_key(RMI_ANNOES,s_codes); if (err == NOERR) { err = righe.rewrite(); if (err == NOERR) err = righeiva.rewrite(); if (err == NOERR) modified_recs++; } } } if (err != NOERR) warning_box("Aggiornamento codice esercizio interrotta. Rilevato errore %d in riscrittura",err); else message_box("Aggiornamento codice esercizio completata. Modificati %ld movimenti.",modified_recs); return FALSE; }