From 22fd96658dfc02d8ac975786e506cfbeae34e531 Mon Sep 17 00:00:00 2001 From: Alessandro Bonazzi Date: Wed, 15 Feb 2023 16:56:59 +0100 Subject: [PATCH] Patch level : 12.0 1244 Files correlati : cg4.exe cg5.exe Mcg5500c.msk Commento: Ricorretta ventilazione dei corrispettivi Considerato anche il credito utilizzato iva durante l'anno nell'annuale Interno : Bisogna provare qualche liquidazione con utilizzo del credito iva --- src/cg/cg4301.cpp | 10 +++++----- src/cg/cg4303.cpp | 11 +++++------ src/cg/cg4304.cpp | 21 ++++++++++++++------- src/cg/cg5500.cpp | 21 +++++++++++---------- src/cg/cg5500c.uml | 2 +- 5 files changed, 36 insertions(+), 29 deletions(-) diff --git a/src/cg/cg4301.cpp b/src/cg/cg4301.cpp index eda004d48..d47ca4b77 100755 --- a/src/cg/cg4301.cpp +++ b/src/cg/cg4301.cpp @@ -2440,7 +2440,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array & true_corrisp = true; _pim->put("I0",LORDO); // questi sono corrispettivi davvero; comportamento normale - if (tipoiva == "VE") // da ventilare + if (civa.iva_da_ventilare()) // da ventilare { lor += imponibile; add_vendite(month, reg, tipodet, imponibile); @@ -2471,7 +2471,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array & // perche' si e' gia' registrato lo scontrino medesimo true_corrisp = true; // non e' vero ma non devono essere sommate ai falsi // corrispettivi - if (tipoiva == "VE") + if (civa.iva_da_ventilare()) { const real rr = imponibile + imposta; imp += rr; @@ -2535,7 +2535,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array & if (corrisp) if (tipodoc == "FS") { - if (tipoiva == "VE") + if (civa.iva_da_ventilare()) vendite += iiimmm; } else @@ -3251,7 +3251,7 @@ void TLiquidazione_app::iva11_set_arr_phase_1(const TString& codatt) array.add(imponibile,TAB11_EC112); } - if (!(corrisp && tipoiva != "VE" && (tipodoc == "CR" || tipodoc == "RF" || tipodoc == "SC"))) + if (!(corrisp && civa.iva_da_ventilare() && (tipodoc == "CR" || tipodoc == "RF" || tipodoc == "SC"))) { if (!autofattura && tipoiva != "NS") if (tipodoc == "AF") @@ -4471,7 +4471,7 @@ void TLiquidazione_app::write_liq(int month, const char* codatts) if (month == 13) { // Riporta eventuale credito nella tabella parametri liquidazione dell'anno successivo - real riporto = credito_utilizzabile - risultato; + real riporto = credito_utilizzabile - risultato + credito_utilizzato_iva; if (riporto < ZERO) riporto = ZERO; diff --git a/src/cg/cg4303.cpp b/src/cg/cg4303.cpp index 0fb74019b..83a554e79 100755 --- a/src/cg/cg4303.cpp +++ b/src/cg/cg4303.cpp @@ -157,13 +157,12 @@ void TLiquidazione_app::recalc_ventilation(int month, const char* codatt) */ if (tipodet == 1 ||( tipocr == 5 && tipodet == 3) || tipodet == 9) continue; - - TString att(codatt); - - if (tipocr == 1 && (mese == m) && - att == (const char*)(*_pim_codatt)) + + const TString8 curr_att((const char*)(*_pim_codatt)); + + if (tipocr == 1 && (mese == m) && att == curr_att) { - if (civa.iva_da_ventilare()) + if (!civa.iva_da_ventilare()) { real lurd = _pim->get_real("R0"); lurd += _pim->get_real("R1"); diff --git a/src/cg/cg4304.cpp b/src/cg/cg4304.cpp index fe6386e0d..9d14da70e 100755 --- a/src/cg/cg4304.cpp +++ b/src/cg/cg4304.cpp @@ -599,7 +599,7 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt, const bool const TCodiceIVA & civa1 = cached_codIVA(codiva); // codice IVA aggiornato per eventuale ventilazione // se e' corrispettivo da ventilare non scrivo un cannolo ripieno visto che e' stato ventilato - if (tipomov == vendita && tipoiva == "VE" && !describe_pis) + if (tipomov == vendita && civa.iva_da_ventilare() && !describe_pis) continue; // se e' il dettaglio di una attivita' mista non stampa gli acquisti, il perche' losalamadonna @@ -699,9 +699,9 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt, const bool cx._totale = 0; _CorrItem& ca = is_key ? (_CorrItem&) corr_ann[codiva] : cx; if (sosp_imp != vol_affari) - ca._totale += tab->get_real(tipoiva == "VE" ? "R2" : "R3"); // Se e' codice IVA da Vent. stiamo scorrendo i PIS: va stampato il lordo dei progressivi successivi + ca._totale += tab->get_real(civa.iva_da_ventilare() ? "R2" : "R3"); // Se e' codice IVA da Vent. stiamo scorrendo i PIS: va stampato il lordo dei progressivi successivi if (sosp_imp != liquidazione) - ca._totale_vf += tab->get_real(tipoiva == "VE" ? "R2" : "R3"); + ca._totale_vf += tab->get_real(civa.iva_da_ventilare() ? "R2" : "R3"); if (!is_key) // se non c'e' lo aggiunge { ca._aliquota = civa.moltiplicatore_percentuale(); // Se e' nuovo setta l'aliquota @@ -2422,10 +2422,13 @@ void TLiquidazione_app::set_grand_2000(_DescrItem& d, int &rw) if (cred_prec > ZERO) set_row(rw++,FR("@11gCredito utilizzabile@58g%r"), &cred_prec); if (_month < 13) - set_row(rw++, FR("@11gCredito IVA compensabile detratto@75g%r"), &credito_utilizzato_IVA); + set_row(rw++, FR("@11gCredito IVA compensabile detratto@75g%r"), &credito_utilizzato_IVA ); + set_row(rw++, FR("@11gCredito IVA compensabile detratto@58g%r"), &TLiquidazione_app::credito_utilizzato_IVA(13)); + } - if (_month == 13) cre_deb_per += versamenti; + if (_month == 13) + cre_deb_per += versamenti; print_importo(rw++, TR("IVA dovuta o a credito per il periodo"), cre_deb_per + corr_acc); @@ -2453,13 +2456,17 @@ void TLiquidazione_app::set_grand_2000(_DescrItem& d, int &rw) else if (_is_visliq) rw++; - const real tot_vers = acc_dec + versamenti + vers_int; + const real tot_vers = acc_dec + versamenti + vers_int; + if (!tot_vers.is_zero() && (_month == 13 || !_is_visliq)) set_row(rw++, FR("@11gTotale versamenti effettuati@58g%r"), &tot_vers); else if (_is_visliq) rw++; - const real iva = risultato + interessi + corr_acc; + real iva = risultato + interessi + corr_acc; + + if (_month == 13) + iva -= TLiquidazione_app::credito_utilizzato_IVA(13); if (_month == 13 && credito_compensabile) { real credito_utilizzabile = lia.get_real("R0"); diff --git a/src/cg/cg5500.cpp b/src/cg/cg5500.cpp index eb194aba8..dae5ee9a7 100755 --- a/src/cg/cg5500.cpp +++ b/src/cg/cg5500.cpp @@ -1693,7 +1693,7 @@ void Visliq_app::read_general(TMask& m) bool enable_date = r1 != ZERO; sh.set_row_cell(S_CREDIVA, criva, row); - sh.enable_cell(row, S_CREDIVA, criva > ZERO ? debcred1 == "D" : debcred3 == "D"); + sh.enable_cell(row, S_CREDIVA, criva > ZERO ? debcred1 != "C" : debcred3 != "C"); sh.set_row_cell(S_CREDF24PRE, crf24, row); sh.set_row_cell(S_CREDF24, autf24, row); enable_date |= autf24 != ZERO; @@ -1797,21 +1797,22 @@ void Visliq_app::read_general(TMask& m) } } } - sv.insert(11, false); + int rowacc = 11 / step; + sv.insert(rowacc, false); nomemese = itoname(12); nomemese << " acconto"; - sv.set_row_cell(S_MESE, nomemese, 11); // mese + sv.set_row_cell(S_MESE, nomemese, rowacc); // mese if (date.objptr(14) != nullptr) { TToken_string & banca = (TToken_string &)banche[14]; - sv.set_row_cell(S_DATA, (TDate &)date[14], 11); // data vers. - sv.set_row_cell(S_ABI, banca.get(0), 11); // azienda - sv.set_row_cell(S_CAB, banca.get(1), 11); // dipendenza - sv.set_row_cell(S_CONC, banca.get(2), 11); // concessionaria - sv.set_row_cell(S_VERSAMENTO, (real &) versamenti[14], 11);// versamenti - sv.set_row_cell(S_INTERESSI, (real &) interessi[14], 11);// interessi - sv.set_row_cell(S_STAMPATO, stampato[14], 11);// stampato + sv.set_row_cell(S_DATA, (TDate &)date[14], rowacc); // data vers. + sv.set_row_cell(S_ABI, banca.get(0), rowacc); // azienda + sv.set_row_cell(S_CAB, banca.get(1), rowacc); // dipendenza + sv.set_row_cell(S_CONC, banca.get(2), rowacc); // concessionaria + sv.set_row_cell(S_VERSAMENTO, (real &) versamenti[14], rowacc);// versamenti + sv.set_row_cell(S_INTERESSI, (real &) interessi[14], rowacc);// interessi + sv.set_row_cell(S_STAMPATO, stampato[14], rowacc);// stampato } sv.force_update(); diff --git a/src/cg/cg5500c.uml b/src/cg/cg5500c.uml index 56becf80c..949793260 100755 --- a/src/cg/cg5500c.uml +++ b/src/cg/cg5500c.uml @@ -58,7 +58,7 @@ BEGIN PROMPT 1 6 "Credito utilizzato a Gennaio " END -SPREADSHEET F_VISLIQ1 -2 -1 +SPREADSHEET F_VISLIQ1 -2 7 BEGIN PROMPT 0 7 "Liquidazione" ITEM "Mese@10"