diff --git a/lv/lv2500.cpp b/lv/lv2500.cpp index e1fd2e00c..62bcf55ca 100755 --- a/lv/lv2500.cpp +++ b/lv/lv2500.cpp @@ -125,7 +125,6 @@ public: TFatturazione_lavanderie::TFatturazione_lavanderie(const char* cod, bool prova) : TFatturazione_bolle(cod), _prova(prova) - { } @@ -259,8 +258,8 @@ void TFatturazione_lavanderie::aggiorna_fattura(TDocumento & doc, int codcont) rdoc.put(RDOC_CODARTMAG, riga.get(LVRCONDV_CODART)); rdoc.put(RDOC_DESCR, cached_article(codart).get(ANAMAG_DESCR)); rdoc.put(RDOC_CHECKED, true); - rdoc.put(RDOC_QTA, 1); - rdoc.put(RDOC_QTAGG1, 1); + rdoc.put(RDOC_QTA, 0); + rdoc.put(RDOC_QTAGG1, 0); rdoc.put(RDOC_UMQTA, riga.get(LVRCONDV_UM)); TToken_string key; @@ -306,18 +305,18 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do else doc.zero(DOC_LIQDIFF); if (doc.physical_rows() > 0 && doc[1].is_descrizione()) - { - if (elcons) - { - TRiga_documento& rout = doc[1]; - rout.put(RDOC_DESCR, "COME DA ELENCO CONSEGNE"); - rout.put(RDOC_DESCLUNGA, false); - rout.put(RDOC_DESCEST, ""); - } - else - if (!rifbol) - doc.destroy_row(1, true); - } + { + if (elcons) + { + TRiga_documento& rout = doc[1]; + rout.put(RDOC_DESCR, "COME DA ELENCO CONSEGNE"); + rout.put(RDOC_DESCLUNGA, false); + rout.put(RDOC_DESCEST, ""); + } + else + if (!rifbol) + doc.destroy_row(1, true); + } //se devo mettere i riferimenti della bolla in testata, prendo la descrizione della prima riga //e la metto sulla testata del documento, poi cancello la prima riga del documento @@ -338,6 +337,8 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do doc.put(DOC_NOTE, descr); doc.destroy_row(1, true); } + if (doc.physical_rows() > 0) + doc.sort_rows("LVTYPE|" RDOC_CODART); const bool ragart = contr.get_bool(LVCONDV_RAGART); // leggo il flag di testata raggruppa su unico articolo const int tipocan = contr.get_int(LVCONDV_TIPOCAN); // leggo il tipo canone @@ -977,7 +978,7 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do for(int h = doc.physical_rows(); h > 0; h--) { TRiga_documento& rdoc = doc[h]; - if (rdoc.get(RDOC_DESCR).empty()) + if (rdoc.get(RDOC_DESCR).empty() || ((rdoc.imponibile() == ZERO && rdoc.get_real(RDOC_QTA) == ZERO))) doc.destroy_row(h, true); } } @@ -996,8 +997,6 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do } if (to_delete || doc.totale_doc() == ZERO) doc_out.destroy(id); - else - doc.sort_rows(RDOC_CODART); } for (int id = doc_out.items() - 1; id >= 0 ; id--) {