From d0b788810d78ab10cfcff0ca775a561ae87e1e4f Mon Sep 17 00:00:00 2001 From: angelo Date: Tue, 18 Jun 1996 09:29:09 +0000 Subject: [PATCH] Correzione MI3386. git-svn-id: svn://10.65.10.50/trunk@3007 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- cg/cg4302.cpp | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/cg/cg4302.cpp b/cg/cg4302.cpp index 508fa74f3..fb9392f6a 100755 --- a/cg/cg4302.cpp +++ b/cg/cg4302.cpp @@ -676,15 +676,32 @@ real TLiquidazione_app::versamenti_IVA(int month, const char* types, bool intr) { //if (_del->get_bool("B0") || _is_visliq) // solo se stampata, a meno // che non sia per visliq - if (_month == 13) - ret += _del->get_real("R2"); // Questo e' l'importo lordo non arrotondato!! + real importo_dovuto_non_arrotondato(_del->get_real("R2")); + real interessi(_del->get_real("R1")); + real importo_dovuto_arrotondato(_del->get_real("R0")); + real work(importo_dovuto_non_arrotondato); + + work.round(ROUND_MILLELIRE); + if (_month == 13 && _freqviva == "T" && importo_dovuto_arrotondato == work) + ret += importo_dovuto_non_arrotondato; // Questo e' l'importo lordo non arrotondato!! else - ret += _del->get_real("R0"); + ret += importo_dovuto_arrotondato; //gli interessi vengono memorizzati solo se si //devono pagare (=> nessun controllo su intra) - ret -= _del->get_real("R1"); // al netto degli interessi - // In caso di 13a liq devo fare la somma degli importi netti dovuti, ecco perche' leggo R2, + ret -= interessi; // al netto degli interessi + // In caso di 13a liq e per trimestrali... devo fare la somma + // degli importi netti dovuti, ecco perche' leggo R2, // perche togliendo poi gli interessi ottengo il dovuto netto! + // Questa casistica vale pero' solo se in R2 c'e' qualcosa(!=0) ed + // e' relativo all'importo presente in R0. Ovvero: + // nel caso si estraggano i versamenti trimestrali, i campi R2 + // vengono correttamente compilati. Se poi si modificano a mano i + // valori di R0 (tramite gestione versamenti, visualizzazione o + // calcolo acconti) tale importo non e' piu' consistente, ecco quindi + // il controllo effettuato tra R0 e ROUND(R2). In realta' sarebbe piu' + // oppurtuno che in gestione versamenti, visualizzazione liquidazione e + // calcolo acconti, vi sia la possibilita' di modificare anche R2. + // Tutto cio' e' relativo all'errore MI3386. } } return ret;