From 3c417a804c2e69be5339eb7fd2c20c70325b9089 Mon Sep 17 00:00:00 2001 From: Alessandro Bonazzi Date: Mon, 11 Apr 2022 14:52:53 +0200 Subject: [PATCH] Patch level : 12.0 1134 Files correlati : cg7 Commento: modifiche quadro VE Nel caso i attivita non cwcommerciale levendit non vanno esposte nei campi VE20-VE23 Nel campo VE40.1 veniva esposta l'IVa al posto dell'imponibile. --- src/cg/cg7600.cpp | 64 +++++++++++++++++++++++++++++++++------------- src/cg/cg7600n.rep | 2 +- src/cg/cg7600o.rep | 2 +- 3 files changed, 48 insertions(+), 20 deletions(-) diff --git a/src/cg/cg7600.cpp b/src/cg/cg7600.cpp index a84c6108f..766c17417 100644 --- a/src/cg/cg7600.cpp +++ b/src/cg/cg7600.cpp @@ -92,7 +92,7 @@ void TQuadro_VE_recordset::load() imponibile.add("22.00", TString8("VE23.1")); imposta.add("22.00", TString8("VE23.2")); - TString256 query("USE PIM\nFROM CODTAB="); + TString query("USE PIM\nFROM CODTAB="); query << year() << "\nTO CODTAB=" << year(); @@ -166,6 +166,16 @@ void TQuadro_VE_recordset::load() add_value(STRING_TOKEN(imposta.objptr(aliquota)), iva); } } + else + { + const int tipocr = atoi(codtab.mid(15, 1)); // tipo costo_ricavo + + if (tipocr == 4) + { + if (int_tipo_iva11_ven == acq_ind_pass_int || int_tipo_iva11_ven == cess_amm) + add_value("VE40.1", imp); + } + } break; case acq_simp: break; @@ -191,12 +201,12 @@ void TQuadro_VE_recordset::load() break; case acq_ind_pass_int: // passaggi interni if (vendite) - add_value("VE40.1", iva); + add_value("VE40.1", imp); break; case acq_ind_art_19: // indetr. art. 19 break; case cess_amm: // cessioni amministrative - add_value("VE40.1", iva); + add_value("VE40.1", imp); break; case vend_rimborso: // vendite valide per rimborso break; @@ -257,27 +267,45 @@ void TQuadro_VE_recordset::load() } } - TISAM_recordset & exp = get_recordset(REP_PAART17); + TISAM_recordset exp = get_recordset(REP_PAART17); + query = exp.query_text(); + + int pos = query.find("BY") - 1; + + query.insert("&&(ATTIV.ATTNONCOM != \"X\")", pos); + exp.set(query); + exp.requery(); + exp.set_var("#DITTA", prefix().get_codditta()); + exp.set_var("#ANNO", format("%d", year())); for (exp.move_first(); !exp.eof(); exp.move_next()) { - TString8 cod(exp.get(FIELD_NAME(LF_RMOVIVA, RMI_CODIVA)).as_string()); - const TCodiceIVA & codiva = cached_codIVA(cod); - const TString & aliquota = codiva.aliquota(); + TString8 cod(exp.get(FIELD_NAME(LF_RMOVIVA, RMI_CODIVA)).as_string()); + const TCodiceIVA & codiva = cached_codIVA(cod); + const TString & aliquota = codiva.aliquota(); + const TRectype & mov = cache().get(LF_MOV, exp.get(FIELD_NAME(LF_RMOVIVA, RMI_NUMREG)).as_int()); - if (aliquota.full()) - { - const real imp = exp.get(FIELD_NAME(LF_RMOVIVA, RMI_IMPONIBILE)).as_real(); - - if (codiva.is_agricola()) - sub_value(STRING_TOKEN(imponibile_agricolo.objptr(aliquota)), imp); - else - sub_value(STRING_TOKEN(imponibile.objptr(aliquota)), imp); - } - } + if (aliquota.full()) + { + const real imp = exp.get(FIELD_NAME(LF_RMOVIVA, RMI_IMPONIBILE)).as_real(); + real iva = exp.get(FIELD_NAME(LF_RMOVIVA, RMI_IMPOSTA)).as_real(); - TISAM_recordset & reg = get_recordset(REP_REGOLARIZ); + if (codiva.is_agricola()) + sub_value(STRING_TOKEN(imponibile_agricolo.objptr(aliquota)), imp); + else + sub_value(STRING_TOKEN(imponibile.objptr(aliquota)), imp); + } + } + TISAM_recordset reg = get_recordset(REP_REGOLARIZ); + + query = reg.query_text(); + pos = query.find("JOIN") - 1; + query.insert("&&(ATTIV.ATTNONCOM != \"X\")", pos); + reg.set(query); + reg.requery(); + reg.set_var("#DITTA", prefix().get_codditta()); + reg.set_var("#ANNO", format("%d", year())); for (reg.move_first(); !reg.eof(); reg.move_next()) { TString8 cod(reg.get(FIELD_NAME(LF_RMOVIVA, RMI_CODIVA)).as_string()); diff --git a/src/cg/cg7600n.rep b/src/cg/cg7600n.rep index cc35982e4..90d2a835f 100644 --- a/src/cg/cg7600n.rep +++ b/src/cg/cg7600n.rep @@ -107,7 +107,7 @@ MESSAGE ADD,F1.200 - USE RMOVIVA SELECT ((MOV.SPLITPAY="S")||((MOV.SPLITPAY="")(20.SPLITPAY="X")))(MOV.ANNOIVA=#ANNO)(ATTIV.ATTNONCOM!="X") + USE RMOVIVA SELECT ((MOV.SPLITPAY="S")||((MOV.SPLITPAY="")(20.SPLITPAY="X")))(MOV.ANNOIVA=#ANNO) BY RMOVIVA.CODIVA 23.DATAREG JOIN MOV INTO NUMREG==NUMREG JOIN CLIFO TO MOV INTO TIPOCF==TIPO CODCF==CODCF diff --git a/src/cg/cg7600o.rep b/src/cg/cg7600o.rep index de57b3863..fe8b5f33c 100644 --- a/src/cg/cg7600o.rep +++ b/src/cg/cg7600o.rep @@ -79,7 +79,7 @@