From 06e0e98f879fa8e014cfae0001650fe77c5cd0f6 Mon Sep 17 00:00:00 2001 From: luca83 Date: Wed, 13 Apr 2011 10:32:37 +0000 Subject: [PATCH] Patch level : 10.0 patch ??? Files correlati : lv2 Ricompilazione Demo : [ ] Commento : Correzioni segnalazioni mail di Tassan e Girardi git-svn-id: svn://10.65.10.50/branches/R_10_00@21939 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- lv/lv2500.cpp | 50 +++++++++++++++++++++++++++----------------------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/lv/lv2500.cpp b/lv/lv2500.cpp index 97f5afe7d..247d9cc39 100755 --- a/lv/lv2500.cpp +++ b/lv/lv2500.cpp @@ -53,7 +53,7 @@ class TFatturazione_lav_app: public TSkeleton_application protected: virtual void main_loop(); - void genera_bolle_nolo(TAssoc_array& cliela, TFatturazione_lavanderie& elab, int& numdocgen, real & totimp, real &imposta, real & totdoc, real & spese); + void genera_bolle_nolo(TAssoc_array& cliela, TFatturazione_lavanderie& elab, int& numdocgen, real& totimp, real& imposta, real& totdoc, real& spese); bool controlli_preliminari(); bool copy_file(const TFilename& src, const TFilename& dst) const; bool copy_tree(const char* src_study, const char* dst_study) const; @@ -270,6 +270,8 @@ void TFatturazione_lavanderie::pre_process_input(TLista_documenti& doc_in) } } +//aggiunge una riga fittizia al documento con qta a zero per gli articoli per cui è previsto il forfait +//e che non sono stati consegnati void TFatturazione_lavanderie::aggiorna_fattura(TDocumento& doc, int codcont) { const int nrows = doc.physical_rows(); @@ -744,7 +746,7 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do TArticolo_lavanderie& artlav = cached_article_laundry(codart, 'C', clifo, use_indsp ? indsped : 0); //estraggo il record corrispondente su LF_CLIFOGIAC const TRecmag_lavanderie& reclav = artlav.find_rec(annoes); - //se lo trovo e se il tipo dotazione è iniziale 'I', allora leggo la dotazione iniziale + //se il tipo dotazione è iniziale 'I', allora leggo la dotazione iniziale //dalle giacenze articolo per cliente, altrimenti leggo la dotazione odierna if (tipodot == "I") dot = reclav.get_real("DOTIN"); @@ -894,7 +896,7 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do //CLICLAGGIO = DOT * PREZZO(dalla riga contratto) * MINIMO CICLAGGIO const real qta = rout.get_real(RDOC_QTA); const real consumo = qta * rout.get_real(RDOC_PREZZO); - const real ciclaggio = dot * rcont.get_real(LVRCONDV_PREZZO) * rcont.get_real(LVRCONDV_MINCIC); + const real ciclaggio = dot * rcont.get_real(LVRCONDV_PREZZO) * rcont.get_real(LVRCONDV_MINCIC); //se il consumo è minore del ciclaggio, allora if (consumo < ciclaggio) { @@ -970,7 +972,7 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do TArticolo_lavanderie& art = cached_article_laundry(codart, 'C', clifo, use_indsp ? indsped : 0); //estraggo il record corrispondente su LF_CLIFOGIAC const TRecmag_lavanderie& rec = art.find_rec(annoes); - //se lo trovo e se il tipo dotazione è iniziale 'I', allora leggo la dotazione iniziale + //se il tipo dotazione è iniziale 'I', allora leggo la dotazione iniziale //dalle giacenze articolo per cliente, altrimenti leggo la dotazione odierna if (tipodot == "I") dot = rec.get_real("DOTIN"); @@ -1691,7 +1693,7 @@ TFatturazione_msk::TFatturazione_msk():TAutomask("lv2500a") ///////////////////////////////////// //GENERA_BOLLE_NOLO: metodo che genera le fatture di solo nolo per quei clienti a cui non è stato consegnato niente -void TFatturazione_lav_app::genera_bolle_nolo(TAssoc_array& cliela, TFatturazione_lavanderie& elab, int& numdocgen, real & totimp, real &imposta, real & totdoc, real & spese) +void TFatturazione_lav_app::genera_bolle_nolo(TAssoc_array& cliela, TFatturazione_lavanderie& elab, int& numdocgen, real& totimp, real& imposta, real& totdoc, real& spese) { TString4 codnum = ini_get_string(CONFIG_DITTA, "lv", "NUM_GEN"); TString4 tipodoc = ini_get_string(CONFIG_DITTA, "lv", "TIPODOC_GEN"); @@ -1868,8 +1870,11 @@ void TFatturazione_lav_app::genera_bolle_nolo(TAssoc_array& cliela, TFatturazion rdoc.put(RDOC_CODART, riga.get(LVRCONDV_CODART)); rdoc.put(RDOC_CODARTMAG, riga.get(LVRCONDV_CODART)); - rdoc.put(RDOC_QTA, UNO); - rdoc.put(RDOC_QTAGG1, UNO); + real r = UNO; + if(tipoforf == 3 || tipoforf == 4) + r = ZERO; + rdoc.put(RDOC_QTA, r); + rdoc.put(RDOC_QTAGG1, r); rdoc.put(RDOC_PREZZO, riga.get_real(LVRCONDV_PREZNOL)); rdoc.put(RDOC_CHECKED, true); rdoc.put(RDOC_UMQTA, riga.get(LVRCONDV_UM)); @@ -2200,18 +2205,17 @@ void TFatturazione_lav_app::main_loop() tmp << lastcli; cliela.add(tmp, tmp); } - else - if (!_solototali) - { - TString str; - TToken_string key; - - key.add('C'); - key.add(lastcli); - str << "Cli." << lastcli << ' ' << cache().get(LF_CLIFO, key, CLI_RICALT) << " non ha generato la fattura pur avendo bolle"; - _log->log(0, str); - numdocscart++; - } + else if (!_solototali && docsout.items() == 0) //il messaggio deve comparire solo se non ho generato fatture + { + TToken_string key; + key.add('C'); + key.add(lastcli); + + TString str; + str << "Cli." << lastcli << ' ' << cache().get(LF_CLIFO, key, CLI_RICALT) << " non ha generato la fattura pur avendo bolle"; + _log->log(0, str); + numdocscart++; + } docsout.destroy(-1); if (!_solototali) docsin.rewrite(); @@ -2492,16 +2496,16 @@ void TFatturazione_lav_app::main_loop() message_box(TR("Elaborazione terminata")); str = "Clienti Danneggati Articoli danneggiati"; _log->log(0, str); - str.format(" %5d %5d", elab.cli_damn(), elab.art_damn()); + str.format(" %5d %5d", elab.cli_damn(), elab.art_damn()); _log->log(0, str); - str = "Numero fatture Imponibile Imposta Totale Spese"; + str = "Numero fatture Imponibile Imposta Totale Spese"; _log->log(0, str); str.format(" %5d", numdocgen); - str << totimp.stringa(17) << imposta.stringa(15) << totdoc.stringa(15) << spese.stringa(13); + str << totimp.stringa(17) << imposta.stringa(16) << totdoc.stringa(15) << spese.stringa(17); _log->log(0, str); str = "Numero fatture scartate"; _log->log(0, str); - str.format(" %5d", numdocscart); + str.format(" %5d", numdocscart); _log->log(0, str); _log->print_or_preview(); delete _log;