diff --git a/sc/sc2100.cpp b/sc/sc2100.cpp index c71dc2556..119f7e7ae 100755 --- a/sc/sc2100.cpp +++ b/sc/sc2100.cpp @@ -527,16 +527,18 @@ void TEC_array::add_row(const TRiga_partite& row) const bool in_valuta = form().in_valuta() && row.in_valuta(); const char sezione = row.get_char(PART_TIPOCF) == 'C' ? 'D' : 'A'; - if (row.is_fattura()) - { - for (int r = 1; r <= row.rate(); r++) - { - const TRiga_scadenze& rata = row.rata(r); - const TDate data(rata.get(SCAD_DATASCAD)); - if (data <= form().data_limite_operazione()) - { - TEC_row& rec = new_row(row, data, rata.importo(in_valuta), r); - if (data <= form().data_limite_scaduto()) + const TDate data_op(row.get(PART_DATAREG)); + if (data_op <= form().data_limite_operazione()) + { + if (row.is_fattura()) + { + for (int r = 1; r <= row.rate(); r++) + { + const TRiga_scadenze& rata = row.rata(r); + const TDate data_scad(rata.get(SCAD_DATASCAD)); + TEC_row& rec = new_row(row, data_scad, rata.importo(in_valuta), r); + + if (data_scad <= form().data_limite_scaduto()) { const real s = calcola_scaduto(rata, in_valuta); rec.scaduto(s); @@ -547,16 +549,13 @@ void TEC_array::add_row(const TRiga_partite& row) il.normalize(sezione); rec.importo_lire(il.valore()); } - } + } } - } - else - { - const TDate data(row.get(PART_DATAPAG)); - if (data <= form().data_limite_operazione()) - { + else + { + const TDate data_pag(row.get(PART_DATAPAG)); const TImporto imp(row.importo(in_valuta, 0x1)); // Importo pulito senza nient'altro - TEC_row& riga = new_row(row, data, imp, 1); + TEC_row& riga = new_row(row, data_pag, imp, 1); const int tipo_pag = row.get_int(PART_TIPOPAG); const tipo_movimento tipo_mov = row.tipo(); @@ -565,7 +564,6 @@ void TEC_array::add_row(const TRiga_partite& row) if ((tipo_mov == tm_pagamento || tipo_mov == tm_pagamento_insoluto) && (tipo_pag >= 2 && tipo_pag <= 7)) { - const TDate data_pag(row.get(PART_DATAPAG)); const TDate& dls = form().data_limite_scaduto(); const int gr = form().giorni_rischio(); @@ -595,7 +593,7 @@ void TEC_array::add_row(const TRiga_partite& row) const TImporto abbuoni(row.importo(in_valuta, 0x2)); if (!abbuoni.is_zero()) { - TEC_row& rec = new_row(row, data, abbuoni, 2); + TEC_row& rec = new_row(row, data_pag, abbuoni, 2); rec.descrizione(form().describe(PEC_ABBUONI)); if (in_valuta) { @@ -608,7 +606,7 @@ void TEC_array::add_row(const TRiga_partite& row) TImporto diffcam(row.importo(FALSE, 0x4)); if (!diffcam.is_zero()) { - TEC_row& rec = new_row(row, data, TImporto('D', ZERO), 3); + TEC_row& rec = new_row(row, data_pag, TImporto('D', ZERO), 3); rec.descrizione(form().describe(PEC_DIFFCAM)); if (in_valuta) { @@ -622,7 +620,7 @@ void TEC_array::add_row(const TRiga_partite& row) TImporto ritenute(row.importo(FALSE, 0x8)); if (!ritenute.is_zero()) { - TEC_row& rec = new_row(row, data, TImporto('D', ZERO), 4); + TEC_row& rec = new_row(row, data_pag, TImporto('D', ZERO), 4); rec.descrizione(form().describe(PEC_RITENUTE)); if (in_valuta) { @@ -694,8 +692,11 @@ TEC_array::TEC_array(const TPartita& game, const TEC_form* f) } } } - sort(); - arrange_scaduto(game); + if (items() > 0) + { + sort(); + arrange_scaduto(game); + } } diff --git a/sc/sc2400a.uml b/sc/sc2400a.uml index f5bfb67af..e3dffd565 100755 --- a/sc/sc2400a.uml +++ b/sc/sc2400a.uml @@ -63,34 +63,34 @@ END DATE F_DATALIMOP BEGIN - PROMPT 30 4 "Data limite operazione " + PROMPT 1 4 "Data limite operazione " END DATE F_DATALIMSOL BEGIN - PROMPT 1 4 "Data limite sollecito " + PROMPT 1 5 "Data limite sollecito " FLAGS "A" VALIDATE DATE_CMP_FUNC <= F_DATASEND - WARNING "La data limite sollecito deve essere specificata e non puņ essere superiore alla data di invio" + WARNING "La data limite sollecito deve essere specificata e non puo' essere superiore alla data di invio" CHECKTYPE REQUIRED END NUMBER F_IMPORMIN 18 BEGIN - PROMPT 1 5 "Importo minimo " + PROMPT 1 6 "Importo minimo " END RADIOBUTTON F_RIFIMPMIN 10 BEGIN - PROMPT 45 4 "" + PROMPT 45 5 "" ITEM "P|Partita" ITEM "C|Cliente" END BOOLEAN F_STAMPESP BEGIN - PROMPT 1 6 "Stampa esposizione" + PROMPT 1 7 "Stampa esposizione" END STRING F_LUOGOSEND 50 32 diff --git a/sc/sc2401.cpp b/sc/sc2401.cpp index 000f36960..8a3199498 100755 --- a/sc/sc2401.cpp +++ b/sc/sc2401.cpp @@ -452,54 +452,52 @@ void TESSL_array::add_row(const TRiga_partite& row) real importo_in_lire(ZERO); const char sezione = form().sezione_normale(); - if (row.is_fattura()) + const TDate data_op(row.get(PART_DATAREG)); + if (data_op <= form().data_limite_operazione()) { - for (int r = 1; r <= row.rate(); r++) - { - const TRiga_scadenze& rata = row.rata(r); - const TDate data(rata.get(SCAD_DATASCAD)); - if (data <= form().data_limite_operazione()) - { - TESSL_row& rec = new_row(row, data, rata.importo(in_valuta), r); + if (row.is_fattura()) + { + for (int r = 1; r <= row.rate(); r++) + { + const TRiga_scadenze& rata = row.rata(r); + const TDate data_scad(rata.get(SCAD_DATASCAD)); + TESSL_row& rec = new_row(row, data_scad, rata.importo(in_valuta), r); + if (in_valuta) { TImporto il(rata.importo(FALSE)); il.normalize(sezione); rec.importo_in_lire(il.valore()); } - if (data <= form().data_limite_scaduto()) + if (data_scad <= form().data_limite_scaduto()) { const real s = calcola_scaduto(rata, in_valuta); rec.scaduto(s); } - } + } } - } - else - { - const TDate data(row.get(PART_DATAPAG)); - if (data <= form().data_limite_operazione()) - { + else + { + const TDate data_pag(row.get(PART_DATAPAG)); const TImporto imp(row.importo(in_valuta, 0x1)); // Importo pulito senza nient'altro - TESSL_row& riga = new_row(row, data, imp, 1); + TESSL_row& riga = new_row(row, data_pag, imp, 1); if (in_valuta) { TImporto i(row.importo(FALSE, 0x1)); i.normalize(sezione); riga.importo_in_lire(i.valore()); } - + const int tipo_pag = row.get_int(PART_TIPOPAG); const tipo_movimento tipo_mov = row.tipo(); - + // Controlla se e' un pagamento con effetti if ((tipo_mov == tm_pagamento || tipo_mov == tm_pagamento_insoluto) && (tipo_pag >= 2 && tipo_pag <= 7)) { - const TDate data_pag(row.get(PART_DATAPAG)); const TDate& dls = form().data_limite_scaduto(); const int gr = form().giorni_rischio(); - + bool sbf = FALSE; if (gr > 0) { @@ -507,13 +505,13 @@ void TESSL_array::add_row(const TRiga_partite& row) sbf = data_pag > dir && data_pag <= dls; riga.salvo_buon_fine(sbf); // Esposto salvo buon fine } - + bool esp = sbf; if (!esp) { esp = gr > 0 ? data_pag >= dls : data_pag > dls; // Esposto normale } - + if (esp) { TImporto esposto(imp); @@ -521,11 +519,11 @@ void TESSL_array::add_row(const TRiga_partite& row) riga.esposto(esposto.valore()); } } - + TImporto ritenute(row.importo(FALSE, 0x8)); if (!ritenute.is_zero()) { - TESSL_row& r = new_row(row, data, TImporto('D', ZERO), 4); + TESSL_row& r = new_row(row, data_pag, TImporto('D', ZERO), 4); r.descrizione(form().describe(PEC_RITENUTE)); if (in_valuta) { @@ -535,11 +533,11 @@ void TESSL_array::add_row(const TRiga_partite& row) else r.importo(ritenute); } - + const TImporto abbuoni(row.importo(in_valuta, 0x2)); if (!abbuoni.is_zero()) { - TESSL_row& r = new_row(row, data, abbuoni, 2); + TESSL_row& r = new_row(row, data_pag, abbuoni, 2); r.descrizione(form().describe(PEC_ABBUONI)); if (in_valuta) { @@ -548,11 +546,11 @@ void TESSL_array::add_row(const TRiga_partite& row) r.importo_in_lire(il.valore()); } } - + TImporto diffcam(row.importo(FALSE, 0x4)); if (!diffcam.is_zero()) { - TESSL_row& r = new_row(row, data, TImporto('D', ZERO), 3); + TESSL_row& r = new_row(row, data_pag, TImporto('D', ZERO), 3); r.descrizione(form().describe(PEC_DIFFCAM)); if (in_valuta) { @@ -562,7 +560,7 @@ void TESSL_array::add_row(const TRiga_partite& row) else r.importo(diffcam); } - } + } } } @@ -623,9 +621,12 @@ TESSL_array::TESSL_array(const TPartita& game, const TESSL_form* f) s.scaduto(imp->valore()); } } + } + if (items() > 0) + { + sort(); + arrange_scaduto(game); } - sort(); - arrange_scaduto(game); }