From fd084f10b7f2299d1d7f80ed18fd3eb3056850b5 Mon Sep 17 00:00:00 2001 From: Alessandro Bonazzi Date: Fri, 25 Feb 2022 20:05:36 +0100 Subject: [PATCH] Patch level : 12.0 1116 Files correlati : ve1 Commento : Riscritto il calcolo dell'esposto di una partita per la stampa fido, ora calcola l'esposto per ogni rata. Non lo calcola per le note di credito e per i pagamenti non assegnati. --- src/cg/cgsaldac.cpp | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) 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 ///////////////////////////////////////////////////////////