diff --git a/src/cg/cgsaldac.cpp b/src/cg/cgsaldac.cpp index 43d048d1c..ad6fe6857 100755 --- a/src/cg/cgsaldac.cpp +++ b/src/cg/cgsaldac.cpp @@ -2336,13 +2336,28 @@ int TPartita::tipopag2causale(int tipo) const } TImporto TPartita::esposto(bool valuta, const TDate & data_scad, const TDate & data_rischio, bool & sbf) const -{ - int r = primo_pagamento(); - - if (r < 0) - r = first(); - return riga(r).esposto(valuta, data_scad, data_rischio, sbf); +{ + TImporto esposto; + bool found_pag = false; + + for (int row = last(); row > 0; row = pred(row)) + { + const TRiga_partite & riga_partita = riga(row); + if (riga_partita.is_fattura()) + { + for (int rata = riga_partita.rate(); rata > 0; rata--) + { + const TRiga_scadenze& scad = riga_partita.rata(rata); + const TImporto imp = scad.esposto(valuta, data_scad, data_rischio, sbf); + + if (!imp.is_zero()) + esposto += imp; + } + } + } + return esposto; } + /////////////////////////////////////////////////////////// // TPartite_array ///////////////////////////////////////////////////////////