From 3bb3075200d8df33d5a56fb86709358b61b8c308 Mon Sep 17 00:00:00 2001 From: angelo Date: Wed, 29 Oct 1997 14:52:58 +0000 Subject: [PATCH] Modifiche per correzione mese 13: corretto confronto tra il mese ricavato dal TRecfield di PIM e quello corrente nelle funzioni per l'IVA11. Correzione nella write_liq(): in caso di mese 13, vanno considerati tutti i mesi precedenti per quanto riguarda rimborsi, versamenti, rettifiche (memorizzati in LIM). git-svn-id: svn://10.65.10.50/trunk@5486 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- cg/cg4301.cpp | 120 +++++++++++++++++++++++++++----------------------- 1 file changed, 64 insertions(+), 56 deletions(-) diff --git a/cg/cg4301.cpp b/cg/cg4301.cpp index 3574be0aa..218d0d200 100755 --- a/cg/cg4301.cpp +++ b/cg/cg4301.cpp @@ -1689,11 +1689,11 @@ void TLiquidazione_app::iva11_set_arr_pim(const TString& codatt) for (_pim->first(); !_pim->eof(); _pim->next()) { if (_year != *_pim_anno) continue; - if (*_pim_mese != "13") continue; + if (atoi(*_pim_mese) != 13) continue; cur_att = *_pim_codatt; cur_att.rtrim(1); if (codatt != cur_att) continue; // considera solo quelli dell'anno, obviously. - // Must consider current activity too... + // Must consider current activity too... codiva = *_pim_codiva; reg = *_pim_codreg; look_iva(codiva); look_reg(reg); // posiziona la tabella registri e quella IVA @@ -1940,7 +1940,7 @@ void TLiquidazione_app::iva11_set_arr_pim(const TString& codatt) // ATTENZIONE: solo per i regimi 74ter (ag. viaggio) for (_plm->first();!_plm->eof();_plm->next()) { - if (_year != *_plm_anno || *_plm_mese == "13") continue; + if (_year != *_plm_anno || atoi(*_plm_mese) != 13) continue; cur_att = *_plm_codatt; cur_att.rtrim(1); if (codatt != cur_att) continue; @@ -2094,9 +2094,8 @@ void TLiquidazione_app::write_liq(int month, const char* codatts) differita = FALSE; } } - // Modifiche per PIM13 - int m = (month == 13) ? 13 : 1; - for (; m <= 13; m++) + + for (int m = 1; m <= 13; m++) { // ciclo su tutti i mesi del caso (1 o 3; // tutti se annuale) @@ -2105,45 +2104,66 @@ void TLiquidazione_app::write_liq(int month, const char* codatts) look_plm(differita ? 12 : m, att); bool is_lim = look_lim(_isdifferita ? m+deltam : m); - - // gia' conteggiato: prorata - // da conteggiare: IVA vendite ag. viaggio - // a debito: IVA vendite, debito precedente - // a credito: IVA acquisti, ulteriori detrazioni 1 e 2 - - if (!attivita_agricola) + + // Se trattasi di annuale considera solo PLM/PUM del mese 13 + if ((month == 13 && m == 13) || month != 13) { - iva_vend += _plm->get_real("R0"); - iva_acq += _plm->get_real("R1"); - risultato += (_plm->get_real("R0") - _plm->get_real("R1")); - res_debt += _plm->get_real("R0"); - res_cred += _plm->get_real("R1"); - } - else - { - // Tiene aggiornata l'iva vendite - iva_vend += _plm->get_real("R6") + _plm->get_real("R5"); - // Tiene aggiornata l'iva acquisti, che andra' rettificata all'uscita del mese - // secondo la formula: - // iva_acq = iva_acq + iva detraibile calcolata - // l'iva detraibile calcolata e' a sua volta fatta cosi' - // sum(plm->R11) * { sum(pum->R11) / [sum(pum->R11) + sum(pum->R10)]} - // dove plm->R11 = acquisti misti fuori CEE - // pum->R10 = tot. imponibile reg agr. 1 - // pum->R11 = tot. imponibile reg agr. 2 - iva_acq += _plm->get_real("R7") + _plm->get_real("R5"); - acq_noCEE += _plm->get_real("R11"); - imp_agr1 += _pum->get_real("R10"); - imp_agr2 += _pum->get_real("R11"); - } - detrazioni+= (_plm->get_real("R3") + _plm->get_real("R4")); + // gia' conteggiato: prorata + // da conteggiare: IVA vendite ag. viaggio + // a debito: IVA vendite, debito precedente + // a credito: IVA acquisti, ulteriori detrazioni 1 e 2 + + if (!attivita_agricola) + { + iva_vend += _plm->get_real("R0"); + iva_acq += _plm->get_real("R1"); + risultato += (_plm->get_real("R0") - _plm->get_real("R1")); + res_debt += _plm->get_real("R0"); + res_cred += _plm->get_real("R1"); + } + else + { + // Tiene aggiornata l'iva vendite + iva_vend += _plm->get_real("R6") + _plm->get_real("R5"); + // Tiene aggiornata l'iva acquisti, che andra' rettificata all'uscita del mese + // secondo la formula: + // iva_acq = iva_acq + iva detraibile calcolata + // l'iva detraibile calcolata e' a sua volta fatta cosi' + // sum(plm->R11) * { sum(pum->R11) / [sum(pum->R11) + sum(pum->R10)]} + // dove plm->R11 = acquisti misti fuori CEE + // pum->R10 = tot. imponibile reg agr. 1 + // pum->R11 = tot. imponibile reg agr. 2 + iva_acq += _plm->get_real("R7") + _plm->get_real("R5"); + acq_noCEE += _plm->get_real("R11"); + imp_agr1 += _pum->get_real("R10"); + imp_agr2 += _pum->get_real("R11"); + } + detrazioni+= (_plm->get_real("R3") + _plm->get_real("R4")); + + // detrazioni solo non in regime agricolo + if (!attivita_agricola) + { + risultato -= (_plm->get_real("R3") + _plm->get_real("R4")); + res_cred += (_plm->get_real("R3") + _plm->get_real("R4")); + } - // detrazioni solo non in regime agricolo - if (!attivita_agricola) - { - risultato -= (_plm->get_real("R3") + _plm->get_real("R4")); - res_cred += (_plm->get_real("R3") + _plm->get_real("R4")); - } + /* totalizza importi 74 ter */ + if (_isviaggio) + { + // somma totali per calcolo successivo + c_iCEE += _plm->get_real("R5"); + c_eCEE += _plm->get_real("R6"); + a_iCEE += _plm->get_real("R7"); + a_eCEE += _plm->get_real("R8"); + c_mCEE += _plm->get_real("R9"); + a_mCEE += _plm->get_real("R10"); + a_meCEE += _plm->get_real("R11"); + } + } // endif per considerare solo PLM del mese 13 + + // Le seguenti cose (versamenti, rettifiche e rimborsi) + // vanno considerate per tutti i mesi (tabella lim) + /* se annuale, somma versamenti mesi 1-12 * solo una volta (non per tutte le attivita') */ @@ -2168,6 +2188,7 @@ void TLiquidazione_app::write_liq(int month, const char* codatts) rimborsi += _lim->get_real("R1"); res_debt += _lim->get_real("R1"); } + /* * rettifiche gia' col loro bravo segno */ @@ -2194,19 +2215,6 @@ void TLiquidazione_app::write_liq(int month, const char* codatts) res_debt += abs(_lim->get_real("R5")); } } - - /* totalizza importi 74 ter */ - if (_isviaggio) - { - // somma totali per calcolo successivo - c_iCEE += _plm->get_real("R5"); - c_eCEE += _plm->get_real("R6"); - a_iCEE += _plm->get_real("R7"); - a_eCEE += _plm->get_real("R8"); - c_mCEE += _plm->get_real("R9"); - a_mCEE += _plm->get_real("R10"); - a_meCEE += _plm->get_real("R11"); - } } // fine ciclo sul mese // counter attivita' per evitare troppi versamenti