diff --git a/lv/lv2500.cpp b/lv/lv2500.cpp index 845715946..2786597a8 100755 --- a/lv/lv2500.cpp +++ b/lv/lv2500.cpp @@ -97,6 +97,7 @@ class TFatturazione_lavanderie:public TFatturazione_bolle TDate _data_elab; TToken_string _campi_raggruppamento; TAssoc_array _output_rows_02; + bool _prova; protected: virtual void add_rows(TRiga_documento & rout, TRiga_documento & rin); @@ -112,17 +113,17 @@ protected: virtual bool riferimenti_in_testa() const { return true; } virtual TRiga_documento& find_or_create_row(TDocumento& doc_out, const TRiga_documento & rin,const char lavtype); void aggiorna_fattura(TDocumento & doc, int codcont); - + bool fatt_02() const { return !_prova &&lv_is_02_active(); } public: virtual bool elabora(TLista_documenti& doc_in, TLista_documenti& doc_out, const TDate& data_elab, bool interattivo = false); - TFatturazione_lavanderie(const char* cod); + TFatturazione_lavanderie(const char* cod, bool prova = false); ~TFatturazione_lavanderie() {} }; -TFatturazione_lavanderie::TFatturazione_lavanderie(const char* cod) - : TFatturazione_bolle(cod) +TFatturazione_lavanderie::TFatturazione_lavanderie(const char* cod, bool prova) + : TFatturazione_bolle(cod), _prova(prova) { } @@ -747,7 +748,7 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do } } } - if (redditivita > ZERO && lv_is_02_active() && !ragart && tipocan != 1) + if (redditivita > ZERO && fatt_02() && !ragart && tipocan != 1) { const real totdoc = doc.totale_doc(); const real provvigione1 = doc.provvigione(); @@ -1034,7 +1035,7 @@ TRiga_documento& TFatturazione_lavanderie::find_or_create_row(TDocumento& doc_ou row.put("LVTYPE", lavtype); r = row.get_int(RDOC_NRIGA); } - if (lv_is_02_active()) + if (fatt_02()) { doc_out.set_row_ids(); const TString key = format("%04d%04d", doc_out.get_int("FATID"), doc_out[r].get_int(RDOC_IDRIGA)); @@ -1376,6 +1377,15 @@ bool TFatturazione_lav_app::controlli_preliminari() void TFatturazione_lav_app::main_loop() { + bool prova = false; + + if (main_app().argc() > 2) + { + TString16 tpela = main_app().argv(2); + tpela = tpela.mid(4); + prova = (tpela == "FatPro"); + } + //instanzio la maschera _msk = new TFatturazione_msk(); @@ -1415,7 +1425,7 @@ void TFatturazione_lav_app::main_loop() } //instanzio una TFatturaziome_lavanderie - TFatturazione_lavanderie elab(_msk->get(F_COD_ELAB)); + TFatturazione_lavanderie elab(_msk->get(F_COD_ELAB), prova); //preparo le variabili di interesse TLista_documenti docsin; TLista_documenti docsout; diff --git a/ve/velib04a.cpp b/ve/velib04a.cpp index 5500d3727..1cb27e5df 100755 --- a/ve/velib04a.cpp +++ b/ve/velib04a.cpp @@ -10,7 +10,7 @@ TFatturazione_bolle::TFatturazione_bolle(const char* cod) : TElaborazione(cod) { - TString16 name; name.format("AGGFLD(%s)", cod); + TString80 name; name.format("AGGFLD(%s)", cod); _lista_campi = ini_get_string(CONFIG_DITTA, "ve", name); name.format("ROWSORT(%s)", cod); @@ -311,7 +311,7 @@ bool TFatturazione_bolle::raggruppa(TDocumento& doc_in, TDocumento& doc_out) const bool ragg_rig = campi_riga.full(); FOR_EACH_PHYSICAL_RDOC(doc_in, r, rin) - elabora_riga(*rin, doc_out, usa_dcons, ragg_rig, ignora_desc, campi_riga, dcons, ddoc); + elabora_riga(*rin, doc_out, usa_dcons, ragg_rig, ignora_desc, campi_riga, dcons, ddoc); //cambio stato documento bool cambia_stato_doc_in = true; @@ -494,7 +494,8 @@ bool TFatturazione_bolle::elabora(TLista_documenti& doc_in, TLista_documenti& do new_doc->put(DOC_DATADOC, data_elab); // Aggiungilo alla lista dei documenti in uscita - od = doc_out.add(new_doc); + od = doc_out.add(new_doc); + new_doc->put("FATID", od + 1); } if (change_clifo()) @@ -511,7 +512,7 @@ bool TFatturazione_bolle::elabora(TLista_documenti& doc_in, TLista_documenti& do } post_process_input(doc_in); - const int tot = doc_out.items(); + int tot = doc_out.items(); const TString4 codnum(codice_numerazione_finale()); for (int i = 0; i < tot; i++) // Forza tipo e numerazione documento. @@ -547,7 +548,14 @@ bool TFatturazione_bolle::elabora(TLista_documenti& doc_in, TLista_documenti& do if (_rowsort.full()) d.sort_rows(_rowsort); } - post_process_output(doc_out); + post_process(doc_out, doc_in); + tot = doc_out.items(); + for (int i = 0; i < tot; i++) // Forza tipo e numerazione documento. + { + TDocumento& d = doc_out[i]; + d.put("FATID", 0); + } + return tot > 0; }