diff --git a/ps/ps0713500.cpp b/ps/ps0713500.cpp index 358bf73e5..6ef3f110d 100755 --- a/ps/ps0713500.cpp +++ b/ps/ps0713500.cpp @@ -60,7 +60,7 @@ protected: public: virtual void main_loop(); long genera_movcg(); - void genera_movana(const long numreg, TAssoc_array& righean); + void genera_movana(const long numreg, const TDate& datareg, TAssoc_array& righean); bool transfer(); TImporta_spese_app() {}; @@ -70,7 +70,7 @@ const char* const nomeini = "ps0713500ats.ini"; void TImporta_spese_app::chiudi_movimento(TConfig& configfile, TImporto& tot_doc, TDate& data, const long numreg, TAssoc_array& righean) { - genera_movana(numreg, righean); + genera_movana(numreg, data, righean); //aggiungo i campi che mancano in testata configfile.set_paragraph("23"); configfile.set(MOV_DATAREG, data); @@ -84,7 +84,8 @@ void TImporta_spese_app::chiudi_movimento(TConfig& configfile, TImporto& tot_doc paragraph.format("%d,%d",LF_RMOV,1); configfile.set_paragraph(paragraph); configfile.set(RMV_IMPORTO,tot_doc.valore().string()); - configfile.set(RMV_SEZIONE,tot_doc.sezione()); + TString4 strsez; strsez << tot_doc.sezione(); + configfile.set(RMV_SEZIONE, strsez); configfile.set_paragraph("Transaction"); @@ -112,11 +113,10 @@ long TImporta_spese_app::genera_movcg() return numreg; } -void TImporta_spese_app::genera_movana(const long numreg, TAssoc_array& righean) +void TImporta_spese_app::genera_movana(const long numreg, const TDate& datareg, TAssoc_array& righean) { TProgind pi(righean.items(), "Importazione analitica in corso...", true, true); - const TDate datareg(TODAY); const int anno = datareg.year(); TToken_string key; @@ -130,11 +130,13 @@ void TImporta_spese_app::genera_movana(const long numreg, TAssoc_array& righean) //instanzio il movimento di analitica TAnal_mov anmo(0); anmo.put(MOVANA_NUMREGCG, numreg); - anmo.put(MOVANA_DATACOMP, datareg); + anmo.put(MOVANA_DATACOMP, datareg); anmo.put(MOVANA_DATAREG, datareg); anmo.put(MOVANA_CODCAUS, _msk->get(F_CODCAU)); anmo.put(MOVANA_ANNOES, anno); + real totdoc = ZERO; + //per ogni oggetto dell'assoc_array, creo una riga di analitica FOR_EACH_ASSOC_OBJECT(righean, obj, keyar, itm) { @@ -149,6 +151,7 @@ void TImporta_spese_app::genera_movana(const long numreg, TAssoc_array& righean) TString80 codconto; codconto << grup << cont << sotc; real& imp = *(real*)itm; imp.round(2); + totdoc += imp; if (!imp.is_zero()) { @@ -165,6 +168,10 @@ void TImporta_spese_app::genera_movana(const long numreg, TAssoc_array& righean) } } + TImporto totale('D', totdoc); + anmo.put(MOVANA_TOTDOC, totale.valore().string()); + anmo.put(MOVANA_SEZIONE, totale.sezione()); + TLocalisamfile fmov(LF_MOVANA); anmo.write(fmov); } @@ -179,7 +186,8 @@ bool TImporta_spese_app::transfer() TProgind pi(s.items(),"Importazione spese in corso ...",true,true); xvt_fsys_removefile(nomeini); - TConfig configfile (nomeini, "Transaction"); //setto il paragrafo [Transaction] del file ini + TConfig configfile (nomeini, "Transaction"); //setto il paragrafo [Transaction] del file ini + const TConfig conf(nomeini, "Transaction"); TDate dataold, data; @@ -218,7 +226,7 @@ bool TImporta_spese_app::transfer() const TCommessa cms(codcms); //data - tmp = s.get(1).as_string(); + tmp = s.get(1).as_string(); tmp.strip("\""); data.set_day(atoi(tmp.mid(0,2))); @@ -242,13 +250,14 @@ bool TImporta_spese_app::transfer() TFilename filename(nomeini); filename.fremove(); + configfile = conf; configfile.set_paragraph("Transaction"); - configfile.set("Action","MODIFY"); + configfile.set("Action","INSERT"); configfile.set("Mode","AUTO"); configfile.set_paragraph("23"); //setto il paragrafo [23] del file ini (testata) configfile.set(MOV_NUMREG, numreg); - configfile.set(MOV_CODCAUS, causale.get(RCA_CODCAUS)); + configfile.set(MOV_CODCAUS, _msk->get(F_CODCAU)); configfile.set_paragraph("24,1"); configfile.set(RMV_NUMRIG,1); @@ -268,10 +277,16 @@ bool TImporta_spese_app::transfer() configfile.set_paragraph(paragraph); configfile.set(RMV_IMPORTO, importo.valore().string()); - configfile.set(RMV_SEZIONE, importo.sezione()); - configfile.set(RMV_DATAREG, data); + TString4 strsez; strsez << importo.sezione(); + configfile.set(RMV_SEZIONE, strsez); + configfile.set(RMV_DATAREG, data); + TCommessa_string ankey(cms.cmsstr()); + configfile.set(RMV_GRUPPO, ankey.gruppo()); + configfile.set(RMV_CONTO, ankey.conto()); + configfile.set(RMV_SOTTOCONTO, ankey.sotco()); + if(righean.is_key(ankey)) { real& imponibile = *(real*)righean.objptr(ankey);