diff --git a/ca/ca0100.cpp b/ca/ca0100.cpp index bda619d9d..41e2e9faf 100755 --- a/ca/ca0100.cpp +++ b/ca/ca0100.cpp @@ -31,11 +31,11 @@ TMask_tabca::~TMask_tabca() bool TMask_tabca::on_field_event(TOperable_field& o, TField_event e, long jolly) { - switch (o.dlg()) +/* switch (o.dlg()) { default: break; - } + }*/ return true; } diff --git a/ca/cacnv.cpp b/ca/cacnv.cpp index bacf2527d..3e46ec9c6 100755 --- a/ca/cacnv.cpp +++ b/ca/cacnv.cpp @@ -6,6 +6,7 @@ #include #include +#include #include "../cg/cg2101.h" #include "calib01.h" @@ -58,7 +59,7 @@ class TConversione_cm2ca : public TSkeleton_application protected: virtual void main_loop(); - void create_new_movana(long numreg_cg); + void create_new_movana(long numreg_cg, bool definitiva); public: bool convert_clerks(); @@ -96,6 +97,9 @@ void TConversione_cm2ca::main_loop() } } +//------------------------------------------------------------------------------------------------ +// trasferisce i dati dalle tabelle Commesse e Fasi ai nuovi file di analitica (COMMESSE e FASI) +//------------------------------------------------------------------------------------------------ bool TConversione_cm2ca::convert_clerks() { TLocalisamfile commesse(LF_COMMESSE); //la conversione blocca in automatico gli altri utenti @@ -182,6 +186,9 @@ bool TConversione_cm2ca::convert_phases() } +//------------------------------------------------------------------------------------------------ +// mette il flag di ANALITICA nei gr.co.stc. aventi codcms e/o codfsc +//------------------------------------------------------------------------------------------------ bool TConversione_cm2ca::set_anal() { TRelation relpcon(LF_PCON); @@ -208,7 +215,10 @@ bool TConversione_cm2ca::set_anal() } } -void TConversione_cm2ca::create_new_movana(long numreg_cg) +//---------------------------------------------------------------------------------------------------- +// trasferisce i movimenti e le righe relative (MOV,RMOV) nei nuovi file di analitica (MOVANA,RMOVANA) +// --------------------------------------------------------------------------------------------------- +void TConversione_cm2ca::create_new_movana(long numreg_cg, bool definitiva) { TAnal_mov analmov; //riempie le righe di testata @@ -285,7 +295,28 @@ void TConversione_cm2ca::create_new_movana(long numreg_cg) analmov.put(MOVANA_SEZIONE, importone.sezione()); analmov.put(MOVANA_TOTDOC, importone.valore()); - analmov.write(); + //se e' riuscita la scrittura dei movimenti di analitica ed e' una conversione definitiva... + if (analmov.write() == NOERR && definitiva) + { + //azzera i campi codice commessa e fase in RMOV... + for (int m = 0; m < mov.cg_items(); m++) + { + TRectype& rmov = mov.cg(m); + + rmov.zero(RMV_CODCMS); + rmov.zero(RMV_FASCMS); + } + //...e in RMOVIVA + for (int n = 0; n < mov.iva_items(); n++) + { + TRectype& rmoviva = mov.iva(n); + + rmoviva.zero(RMI_CODCMS); + rmoviva.zero(RMI_FASCMS); + } + //manca il compattamento del file rmov e rmoviva + mov.rewrite(); //puo' finalmente riscrivere i files di origine puliti e compattati + } } bool TConversione_cm2ca::convert_movs() @@ -294,10 +325,11 @@ bool TConversione_cm2ca::convert_movs() msk.run(); //scandisce il file RMOV,alla ricerca dei record con codice fase o codice commessa compilato TRelation rel_rmov(LF_RMOV); + const bool definitiva = msk.get_int(F_TIPOCONV); //costruzione filtro con date (in caso di conversione provvisoria) TString filtro; filtro << "((CODCMS!='')||(FASCMS!=''))&&(ROWTYPE!='T')"; - if (msk.get_int(F_TIPOCONV) == 0) + if (!definitiva) { const TDate dataini = msk.get_date(F_DATAINI); if (dataini.ok()) @@ -323,7 +355,7 @@ bool TConversione_cm2ca::convert_movs() if (curr_numreg_cg != last_numreg_cg) { //se il numreg di questa riga e' nuovo -> crea un nuovo movimento di analitica (testata) - create_new_movana(curr_numreg_cg); + create_new_movana(curr_numreg_cg, definitiva); last_numreg_cg = curr_numreg_cg; }