diff --git a/cg/cg2104.cpp b/cg/cg2104.cpp index 531080ae4..7381697b1 100755 --- a/cg/cg2104.cpp +++ b/cg/cg2104.cpp @@ -1017,8 +1017,22 @@ void TPrimanota_application::write_scadenze(const TMask& m) partita.put(PART_IMPOSTA, m.get(F_IMPOSTE)); TSheet_field& ps = m.sfield(FS_RATESHEET); - - partita.elimina_rata(-1); // Elimina tutte le rate eventuali + const int new_rate = ps.items(); + const int nrate = partita.rate(); + TArray ant; + + for (int i = 0; i < new_rate; i++) + { + real * r = new real; + + ant.add(r); + if (i < nrate) + *r = partita.rata(i + 1).get_real(SCAD_IMPORTOANT); + } + for (int i = new_rate; i < nrate; i++) + ((real &)ant[new_rate - 1]) += partita.rata(i + 1).get_real(SCAD_IMPORTOANT); + + partita.elimina_rata(-1); // Elimina tutte le rate eventuali for (i = 0; i < ps.items(); i++) { TToken_string& row = ps.row(i); @@ -1040,6 +1054,7 @@ void TPrimanota_application::write_scadenze(const TMask& m) 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_IMPORTOANT, ((real &)ant[i])); } }