Files correlati : Ricompilazione Demo : [ ] Commento : Riportata la versione P@rtners 2.0 patch 349 git-svn-id: svn://10.65.10.50/trunk@10709 c028cbd2-c16b-5b4b-a496-9718f37d4682
90 lines
2.3 KiB
C++
Executable File
90 lines
2.3 KiB
C++
Executable File
// sistema il codice esercizio di tutti i movimenti
|
|
#include <mask.h>
|
|
#include <progind.h>
|
|
#include <recarray.h>
|
|
#include <relation.h>
|
|
|
|
#include "cglib01.h"
|
|
#include "cg1300.h"
|
|
#include "cg1305.h"
|
|
|
|
#include <mov.h>
|
|
#include <rmov.h>
|
|
#include <rmoviva.h>
|
|
|
|
inline TAgg_codes& app() { return (TAgg_codes&) main_app(); }
|
|
|
|
bool TAgg_codes::create()
|
|
{
|
|
_mov = new TLocalisamfile(LF_MOV);
|
|
_rmov = new TLocalisamfile(LF_RMOV);
|
|
_rmoviva = new TLocalisamfile(LF_RMOVIVA);
|
|
return TSkeleton_application::create();
|
|
}
|
|
|
|
bool TAgg_codes::destroy()
|
|
{
|
|
delete _mov;
|
|
delete _rmov;
|
|
delete _rmoviva;
|
|
|
|
return TSkeleton_application::destroy();
|
|
}
|
|
|
|
void TAgg_codes::main_loop()
|
|
{
|
|
TMask msk("cg1300d");
|
|
if (msk.run() == K_ENTER)
|
|
calcola_codes();
|
|
}
|
|
|
|
void 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, TR("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(FR("Aggiornamento codice esercizio interrotta. Rilevato errore %d in riscrittura"),err);
|
|
else
|
|
message_box(FR("Aggiornamento codice esercizio completata. Modificati %ld movimenti.\nE' necessario procedere col ricalcolo saldi"), modified_recs);
|
|
}
|