diff --git a/cg/cg2104.cpp b/cg/cg2104.cpp index 469e3b06e..531080ae4 100755 --- a/cg/cg2104.cpp +++ b/cg/cg2104.cpp @@ -230,6 +230,10 @@ bool TPrimanota_application::pag_sheet_handler(TMask_field& f, KEY key) word err = pag.validate(); if (m.edit_mode()) err &= ~(P_RSUM | P_TOTNCLIT | P_TOTNCVAL ); // Ignora totale importi e rate + if ((err && P_ZEROLIT) && yesno_box("Almeno una rata ha importo zero in lire si desidera continuare ? ")) + err &= ~P_ZEROLIT; + if ((err && P_ZEROVAL) && yesno_box("Almeno una rata ha importo in valuta zero si desidera continuare ? ")) + err &= ~P_ZEROVAL; if (err != P_OK) { TString s(256); @@ -943,7 +947,7 @@ void TPrimanota_application::write_scadenze(const TMask& m) int nuova_riga = 0; - if (anno > 0 && !numpart.blank() && m.page_enabled(2)) + if (anno > 0 && !numpart.blank() && m.page_enabled(2) && !m.get_real(F_TOTALE).is_zero()) { const int tmov = causale().tipomov(); const TString& desc = m.get(F_DESCR); @@ -1018,25 +1022,24 @@ void TPrimanota_application::write_scadenze(const TMask& m) for (i = 0; i < ps.items(); i++) { TToken_string& row = ps.row(i); - - TRiga_scadenze& scadenza = partita.new_row(); + TRiga_scadenze& scadenza = partita.new_row(); - scadenza.put(SCAD_CODPAG, codpag); // Codice pagamento - scadenza.put(SCAD_CODAG, agente); // Codice agente + scadenza.put(SCAD_CODPAG, codpag); // Codice pagamento + scadenza.put(SCAD_CODAG, agente); // Codice agente - scadenza.put(SCAD_DATASCAD, row.get(0)); // 0 = Data scadenza - scadenza.put(SCAD_IMPORTO, row.get()); // 1 = Importo - scadenza.put(SCAD_IMPORTOVAL, row.get()); // 2 = Importo in valuta - row.get(); // 3 = Percentuale - scadenza.put(SCAD_TIPOPAG, row.get()); // 4 = Tipo pagamento - scadenza.put(SCAD_ULTCLASS, row.get()); // 5 = Ulteriore classificazione - row.get(); // 6 = Descrizione pagamento - scadenza.put(SCAD_CODABIPR, row.get()); // 7 = Ns ABI - scadenza.put(SCAD_CODCABPR, row.get()); // 8 = Ns CAB - scadenza.put(SCAD_CODABI, row.get()); // 9 = Vs ABI - scadenza.put(SCAD_CODCAB, row.get()); //10 = Vs CAB - scadenza.put(SCAD_DESCR, row.get()); //11 = Note - scadenza.put(SCAD_BLOCCATA, row.get()); //12 = Non pagabile + scadenza.put(SCAD_DATASCAD, row.get(0)); // 0 = Data scadenza + scadenza.put(SCAD_IMPORTO, row.get()); // 1 = Importo + scadenza.put(SCAD_IMPORTOVAL, row.get()); // 2 = Importo in valuta + row.get(); // 3 = Percentuale + scadenza.put(SCAD_TIPOPAG, row.get()); // 4 = Tipo pagamento + scadenza.put(SCAD_ULTCLASS, row.get()); // 5 = Ulteriore classificazione + row.get(); // 6 = Descrizione pagamento + scadenza.put(SCAD_CODABIPR, row.get()); // 7 = Ns ABI + scadenza.put(SCAD_CODCABPR, row.get()); // 8 = Ns CAB + scadenza.put(SCAD_CODABI, row.get()); // 9 = Vs ABI + scadenza.put(SCAD_CODCAB, row.get()); //10 = Vs CAB + scadenza.put(SCAD_DESCR, row.get()); //11 = Note + scadenza.put(SCAD_BLOCCATA, row.get()); //12 = Non pagabile } } diff --git a/cg/cg2106.cpp b/cg/cg2106.cpp index 769a1feb4..e94b88563 100755 --- a/cg/cg2106.cpp +++ b/cg/cg2106.cpp @@ -290,7 +290,7 @@ bool TPrimanota_application::test_prorata() if (prorata100) ok = !esiste_riga_iva_detraibile; else - ok = esiste_riga_iva_detraibile; + ok = _msk[2]->get_real(F_TOTALE).is_zero() || esiste_riga_iva_detraibile; } return ok;