diff --git a/lv/lv2900.cpp b/lv/lv2900.cpp index 297432bec..81b4342f8 100755 --- a/lv/lv2900.cpp +++ b/lv/lv2900.cpp @@ -564,6 +564,10 @@ bool TConta_pulito_msk::genera_documenti(const TFilename& file, TAssoc_array& do TString4 causale = rcont.get(LVRCONDV_CAUSLAV); if (causale.blank() || atoi(causale) == 0) causale = ini_get_string(CONFIG_DITTA, "lv", "CAUSLAV"); + const TCausale_lavanderie cau(causale); + const TCausale_magazzino rit(cau.causale_ritiro()); + const TCausale_magazzino con(cau.causale_consegna()); + //leggo se devo scrivere il prezzo sulla bolla //const bool prinbo = cont.get_bool(LVCONDV_STPRZBOL); @@ -613,9 +617,13 @@ bool TConta_pulito_msk::genera_documenti(const TFilename& file, TAssoc_array& do { rdoc.add(RDOC_QTA, quantita); rdoc.add(RDOC_QTAGG1, quantita); - rdoc.add("DOTOD", quantita); - if(dtmp) - rdoc.add("DOTMP", quantita); + + if(rit.sgn(s_dotod) != 0 || con.sgn(s_dotod) != 0) + { + real qta = (quantita * con.sgn(s_dotod)) - (quantita * rit.sgn(s_dotod)); + rdoc.add("DOTOD", qta); + } + found = true; //scrivo i riferimenti alla bolla sul pacco @@ -645,13 +653,15 @@ bool TConta_pulito_msk::genera_documenti(const TFilename& file, TAssoc_array& do rdoc.put(RDOC_QTAGG1, quantita); //ritirato rdoc.put("DOTOD", dotod); - rdoc.add("DOTOD", quantita); + + if(rit.sgn(s_dotod) != 0 || con.sgn(s_dotod) != 0) + { + real qta = (quantita * con.sgn(s_dotod)) - (quantita * rit.sgn(s_dotod)); + rdoc.add("DOTOD", qta); + } if(dtmp) - { - rdoc.put("DOTMP", dottmp); - rdoc.add("DOTMP", quantita); - } + rdoc.put("DOTMP", dottmp); rdoc.put(RDOC_CODAGG1, causale);