diff --git a/src/tf/tf0200.cpp b/src/tf/tf0200.cpp index a0d7546e0..949f1e7e5 100644 --- a/src/tf/tf0200.cpp +++ b/src/tf/tf0200.cpp @@ -503,8 +503,19 @@ void ComLiqPerIva_mask::extractinator() // Per gli amici GTFO /** Resto *****************************************************************************************************/ TRectype rowLam = getLAM(anno, start); - ivaes = ivaes + rowLam.get_real("R0") + ivaesxc + ivaesdiff; - ivadet = ivadet + rowLam.get_real("R1") + ivadetxc + ivadetdiff; + + /* É saltato fuori che in caso di liquidazione trimestrale l'importo ivaes e ivadet + * viene scritto su ogni mese, quindi prendo solo quando + * start == end -> iva mensile o ultimo mese della trimestrale */ + + if(start == end) + { + ivaes += rowLam.get_real("R0"); + ivadet += rowLam.get_real("R1"); + } + // Non sappiamo che fa per queste, quindi speriamo sia giusta sta roba + ivaes += ivaesxc + ivaesdiff; + ivadet += ivadetxc + ivadetdiff; rettifiche = rettifiche + rowLim.get_real("R5"); varimp = varimp + rowLim.get_real("R17"); @@ -520,21 +531,9 @@ void ComLiqPerIva_mask::extractinator() // Per gli amici GTFO // Credito periodo precedente if(start != 1) // A gennaio non lo calcolo { - /* Se siamo in una liquidazione trimestrale e stiamo calcolando il primo trimestre - * andiamo a prendere i dati da LAM */ - if(!mensile && start <= 3) - { - // Recupero il record di LAM del mese precedente - TRectype tempLam = getLAM(anno, start - 1); - // Calcolo eventuale credito - real appCredito = tempLam.get_real("R0") - tempLam.get_real("R1"); - // Se c'è un credito lo scrivo - if(appCredito > ZERO) - creprec = creprec + appCredito; - } /* Se sono in una liquidazione mensile o nel primo mese di una trimestrale * es. aprile ((4 - 1) % 3) = 0, maggio ((5 - 1) % 3) = 1 */ - else if(mensile || (!mensile && ((start - 1) % 3) == 0)) + if(mensile || (!mensile && ((start - 1) % 3) == 0)) { TString key; key << anno << "|" << start - 1 << "|U"; real appCredito(cache().get(LF_IVALIQ, key, "IVADOVC"));