diff --git a/lv/lv2500.cpp b/lv/lv2500.cpp index 9eb9d87ec..f401fde42 100755 --- a/lv/lv2500.cpp +++ b/lv/lv2500.cpp @@ -689,7 +689,7 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do const char tipvalconvcli = rcont.get_char(LVRCONDV_VCARTCLI); if (tipvalconvcli == 'C') { - impconvtot += dot * rcont.get_real(LVRCONDV_VALCONV) * rcont.get_real(LVRCONDV_FORFPERCL); + impconvtot += dot * rcont.get_real(LVRCONDV_VALCONV) * rcont.get_real(LVRCONDV_FORFPERCL) / CENTO; consumotot += riga.get_real(RDOC_QTA) * riga.get_real(RDOC_PREZZO); } } @@ -1042,6 +1042,7 @@ void TFatturazione_lavanderie::campi_raggruppamento_righe(TToken_string& campi_r TRiga_documento& TFatturazione_lavanderie::find_or_create_row(TDocumento& doc_out, const TRiga_documento& rin, const char lavtype) { int r; + //scorro le righe documetno for (r = doc_out.physical_rows(); r > 0; r--) //se trovo una riga raggruppabile e di lavanderia, allora interrompo il ciclo @@ -1117,7 +1118,8 @@ void TFatturazione_lavanderie::create_row(TDocumento& doc_out, const TRiga_docum //se è una causale di rotto e se è abilitato nella testata del contratto la fatturazione dei rotti //e se sto ritirando una quantità di merce diversa da zero, allora: - if (cau.is_rotto() && contr.get_int(LVCONDV_ADDCAPROT) && !qta1.is_zero()) + + if (cau.is_rotto() && contr.get_bool(LVCONDV_ADDCAPROT) && !qta1.is_zero()) { //se passo le condizioni iniziali cerco eventualmente una riga che possa essere raggruppata con quella //che sto guardando adesso, altrimenti la creo; in ogni caso aggiungo la quantità da ritirare @@ -1170,7 +1172,7 @@ void TFatturazione_lavanderie::create_row(TDocumento& doc_out, const TRiga_docum //se movimenta la dotazione iniziale, cerco eventualmente una riga che possa essere raggruppata con quella //che sto guardando adesso, altrimenti la creo; in ogni caso aggiungo la quantità che sto consegnando moltiplicata //per il suo segno al prezzo ricavato sopra o da contratto (o da magazzino), o da bolla - if (!sgndotin.is_zero()) + if (!sgndotin.is_zero() && !sgncons.is_zero()) { TRiga_documento& rc = find_or_create_row(doc_out, rin, 'I'); rc.add(RDOC_QTA, sgndotin * qta); @@ -1345,7 +1347,7 @@ void TFatturazione_lav_app::genera_bolle_nolo(TAssoc_array& cliela, TFatturazion if (doc.rows() > 0) { elab.elabora(doc_in, doc_out, _msk->get_date(F_DATAFAT)); - doc_out.write(); + int err = doc_out.write(); numdocgen += doc_out.items(); } @@ -1470,8 +1472,8 @@ void TFatturazione_lav_app::main_loop() query << "USE DOC KEY 3 SELECT (TIPOCF==\"C\")&&" << "(BETWEEN(CODCF," << _msk->get_long(F_DACODCF) << ',' << _msk->get_long(F_ACODCF) << "))\n" << "BY TIPOCF CODCF DATADOC\n" - << "FROM " << "DATADOC=" << dal << " PROVV=D ANNO=" << year << "\n" - << "TO " << "DATADOC=" << al << " PROVV=D ANNO=" << year << "\n"; + << "FROM DATADOC=" << dal << " PROVV=D ANNO=" << year << "\n" + << "TO DATADOC=" << al << " PROVV=D ANNO=" << year << "\n"; // query << "USE DOC KEY 2 SELECT BETWEEN(DATADOC,#DADATA,#ADATA)&&STATO==\"2\")&&(TIPODOC==\"B01\")\n" // << "FROM " << "TIPOCF=C PROVV=D ANNO=#ANNO DATADOC=#DADATA \n" // << "TO " << "TIPOCF=C PROVV=D ANNO=#ANNO DATADOC=#ADATA \n";