From 3ba8cc85fcc964adc51e7cfac832daca06824d7c Mon Sep 17 00:00:00 2001 From: mtollari Date: Fri, 10 Feb 2017 13:29:29 +0000 Subject: [PATCH] Patch level : 12.0 344 Files correlati : Commento : Aggiornamento CU 2017 git-svn-id: svn://10.65.10.50/branches/R_10_00@23604 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- src/m770/771230.cpp | 18 +++++++++-------- src/m770/771231.cpp | 2 +- src/m770/771232.cpp | 10 +++++----- src/m770/777200.cpp | 46 ++++++++++++++++++++++++++------------------ src/m770/777201.cpp | 9 +++++---- src/m770/77g1.cpp | 2 +- src/m770/77tbca7.uml | 7 ++++--- 7 files changed, 53 insertions(+), 41 deletions(-) diff --git a/src/m770/771230.cpp b/src/m770/771230.cpp index fc5d01776..017c6b9ce 100755 --- a/src/m770/771230.cpp +++ b/src/m770/771230.cpp @@ -102,19 +102,21 @@ void TRighe_riepilogo::genera_la(TRectype& quadro, const TRectype& riga, const T quadro.put("ANNO", datapag.year()); quadro.put(QUD_PERC, riga.get(PAG_PERC)); quadro.put(QUD_CODCAUS, codcaus); - - real ammlordo = imponibile; - ammlordo += riga.get_real(PAG_SOMNSRIT); - ammlordo += riga.get_real(PAG_CONTROBB); - ammlordo += riga.get_real(PAG_SOMREGCONV); - quadro.put(QUD_TOTALE, ammlordo); - + real somme = compenso; somme -= imponibile; somme += riga.get_real(PAG_SPESA); //somme -= riga.get_real(PAG_IMPCPA); somme -= riga.get_real(PAG_SOMREGCONV); - quadro.put(QUD_SOMME, somme); // altre somme non soggette + quadro.put(QUD_SOMME, somme); // altre somme non soggette + + // 26/01/17: Spostato qua questo blocco per aggiungere somme e tenere un filo logico di tutto insieme + real ammlordo = imponibile; + ammlordo += riga.get_real(PAG_SOMNSRIT); + ammlordo += riga.get_real(PAG_CONTROBB); + ammlordo += riga.get_real(PAG_SOMREGCONV); + ammlordo += somme; + quadro.put(QUD_TOTALE, ammlordo); quadro.put(QUD_SOMREGCONV, riga.get(PAG_SOMREGCONV)); quadro.put(QUD_IMPONIBILE, imponibile); // AUXXX008 diff --git a/src/m770/771231.cpp b/src/m770/771231.cpp index 98455ec5e..712a0c18e 100755 --- a/src/m770/771231.cpp +++ b/src/m770/771231.cpp @@ -518,7 +518,7 @@ void TQuadroF::calcola_ritenuta_operata(TMask& m, char prosp) real sogg = m.get_real(id_sogg); real ali = m.get_real(id_ali); - real rope = (sogg * ali) / 100.00; + real rope = (sogg * ali) / CENTO; rope.round(); if (rope != ZERO) // Evita di scrivere "0" nel campo (v. reqif_func nella msk) diff --git a/src/m770/771232.cpp b/src/m770/771232.cpp index c24eb03fa..c4f39a806 100755 --- a/src/m770/771232.cpp +++ b/src/m770/771232.cpp @@ -455,14 +455,14 @@ bool TQuadroG::calc_rit(TMask_field& f, KEY k) if (real::is_real(al)) { const real a1 = al; - if (a1 != 0.0 && m.field(ALIQUOTA).enabled()) + if (a1 != ZERO && m.field(ALIQUOTA).enabled()) { al = real::ita2eng(a1.string(".2")); m.set(ALIQUOTA,al); } - if (a1 >= 0.0 && a1 <= 100.0) + if (a1 >= ZERO && a1 <= CENTO) { - real res = ((r1 + r2) / 100.0 * a1); + real res = ((r1 + r2) / CENTO * a1); res.round(); m.set(ROPE,res); } @@ -472,7 +472,7 @@ bool TQuadroG::calc_rit(TMask_field& f, KEY k) else return f.error_box("Aliquota non valida."); - if (f.dlg() == ALIQUOTA && al.empty() && (r1 != 0.0 || r2 != 0.0)) + if (f.dlg() == ALIQUOTA && al.empty() && (r1 != ZERO || r2 != ZERO)) return f.error_box("Il campo aliquota e' obbligatorio."); } if (k == K_ENTER && f.dlg() == ALIQUOTA) @@ -555,7 +555,7 @@ bool TQuadroG::tit_hndlr(TMask_field& f, KEY k) real r2(m.get(UTILI2S)); TString16 tit(f.get()); - if (tit.empty() && (r1 != 0.0 || r2 != 0.0)) + if (tit.empty() && (r1 != ZERO || r2 != ZERO)) return f.error_box("Il campo titolo e' obbligatorio."); } return TRUE; diff --git a/src/m770/777200.cpp b/src/m770/777200.cpp index d97a78ede..b758c789f 100755 --- a/src/m770/777200.cpp +++ b/src/m770/777200.cpp @@ -92,7 +92,7 @@ TTracciatoCU::TTracciatoCU(char tipo) add_field("Denominazione (Alternativo a 12 e 13)",AN,137, 60); add_field("Indirizzo E-mail", AN,197,100); add_field("Telefono o Fax", AN,297, 12); - add_field("Eventi Eccezionali", AN,309, 1); // 17 + add_field("Eventi Eccezionali", NU,309, 1,17); // 17 add_field("Codice fiscale del rappresentante", CF,310,16); // 18 add_field("Codice carica del rappresentante", NU,326, 2); @@ -100,7 +100,7 @@ TTracciatoCU::TTracciatoCU(char tipo) add_field("Nome", AN,352,20); add_field("Codice fiscale del dichiarante", CN,372,11); - add_filler(383,19); // 23 + add_filler(383,19); // 23 add_field("Numero comunicaz. relative a certificazioni",NU, 402, 8); add_field("Casella quadro CT", CB, 410, 1); add_field("Firma del dichiarante", CB, 411, 1); @@ -109,6 +109,7 @@ TTracciatoCU::TTracciatoCU(char tipo) add_field("Impegno a trasmettere la dichiaraz.", NU, 428, 1); add_field("Data dell'impegno", DT, 429, 8); add_field("Firma dell'intermediario", CB, 437, 1); + /* add_filler(438, 1); add_filler(439, 40); add_filler(479, 2); @@ -134,34 +135,36 @@ TTracciatoCU::TTracciatoCU(char tipo) add_filler(1898, 1); // 52 add_filler(1899, 2); // 53 - + */ } else if (tipo == 'D') { - add_field("Codice fiscale del sostituto", CF, 2, 16); // 2 - add_field("Progressivo modulo", NU, 18, 8); // 3 - add_field("Codice fiscale percipiente", CF, 26, 16); // 4 - add_field("Progressivo certificazione", NU, 42, 5); // 5 - add_field("Identificativo dell'invio", NU, 47, 17); // 6 - add_field("Progressivo singola C.U.", NU, 64, 6); // 7 + add_field("Codice fiscale del sostituto", CF, 2, 16, 2); // 2 + add_field("Progressivo modulo", NU, 18, 8, 3); // 3 + add_field("Codice fiscale percipiente", CF, 26, 16, 4); // 4 + add_field("Progressivo certificazione", NU, 42, 5, 5); // 5 + add_field("Identificativo dell'invio", NU, 47, 17, 6); // 6 + add_field("Progressivo singola C.U.", NU, 64, 6, 7); // 7 add_filler(70, 14); add_field("Tipo Operazione", AN, 84, 1, 9); // 9 add_filler(85, 4); - add_field("Conferma singola certificazione", CB, 89, 1); // 11 + add_field("Conferma singola certificazione", CB, 89, 1, 11); // 11 } else if (tipo == 'H') { - add_field("Codice fiscale del sostituto", CF, 2, 16); // 2 - add_field("Progressivo modulo", NU, 18, 8); // 3 - add_field("Codice fiscale percipiente", CF, 26, 16); // 4 - add_field("Progressivo certificazione", NU, 42, 5); // 5 + add_field("Codice fiscale del sostituto", CF, 2, 16, 2); // 2 + add_field("Progressivo modulo", NU, 18, 8, 3); // 3 + add_field("Codice fiscale percipiente", CF, 26, 16, 4); // 4 + add_field("Progressivo certificazione", NU, 42, 5, 5); // 5 + add_filler(47, 17); // 6 - add_field("Spazio a disposizione dell'utente", NU, 64, 6); // 7 + add_field("Spazio a disposizione dell'utente", NU, 64, 6, 6); // 7 + /* add_filler(70, 14); // 8 add_filler(84, 1); // 9 add_filler(85, 4); // 10 add_filler(89, 1); // 11 - + */ } else if (tipo == 'Z') { @@ -171,6 +174,7 @@ TTracciatoCU::TTracciatoCU(char tipo) add_field("Numero record di tipo 'D'", NU, 34, 9); add_field("Numero record di tipo 'G'", NU, 43, 9); // 6 add_field("Numero record di tipo 'H'", NU, 52, 9); + /* add_filler(31,9); add_filler(70,9); add_filler(79,9); @@ -178,6 +182,7 @@ TTracciatoCU::TTracciatoCU(char tipo) add_filler(1898,1); // 11 add_filler(1899,2); //12 + */ } } @@ -563,6 +568,9 @@ bool TTrasferimentoCU::append_record_b() numtel = get_telephone(rec_nditte, NDT_PFAX, NDT_FAX); rec.set(16, numtel); + const TRectype& rec_anagr = cache().get(LF_ANAG, TString(rec_nditte.get("TIPOA")) << "|" << rec_nditte.get("CODANAGR")); + rec.set(17, rec_anagr.get_int("EVECC")); + const TAnagrafica rapp(LF_ANAG, 'F', rec_nditte.get_long(NDT_RAPPR)); if (rapp.ok()) { @@ -745,7 +753,7 @@ bool TTrasferimentoCU::append_record_h(const TRectype& qla, int modulo, TLog_rep real imponibile = qla.get_real("IMPONIBILE"); const TString4 codcaus = qla.get("CODCAUS"); - long codice = atol(cache().get("%CA7", codcaus, "I1")); // 1, 2, 3 + long codice = atol(cache().get("%CA7", codcaus, "I1")); // 1, 2, 5, 6 if (altre_somme.is_zero() && codice == 3) { altre_somme = imponibile; @@ -753,8 +761,8 @@ bool TTrasferimentoCU::append_record_h(const TRectype& qla, int modulo, TLog_rep } if (!altre_somme.is_zero()) { - if (codice <= 0) codice = 3; // Regime minimi - rec.np_put("AU001006", codice); // 1, 2, 3 + if (codice <= 0) codice = 6; // Regime minimi + rec.np_put("AU001006", codice); // 1, 2, 5, 6 rec.np_put("AU001007", altre_somme); } rec.np_put("AU001008", imponibile); // 004 - 005 - 007 diff --git a/src/m770/777201.cpp b/src/m770/777201.cpp index 6a63688e1..a702be3e3 100644 --- a/src/m770/777201.cpp +++ b/src/m770/777201.cpp @@ -586,7 +586,7 @@ void TCU_report::add_underlined_text(TReport_section& body, int row, const char* void TCU_report::create_logo(TReport_section& header) { - add_big_text(header, 4, 0, "CERTIFICAZIONE", COLOR_GRAY).set_vertical_alignment('T'); + add_big_text(header, 3, 0, "CERTIFICAZIONE", COLOR_GRAY).set_vertical_alignment('T'); add_big_text(header, 6, 0, "UNICA", COLOR_BLACK).set_vertical_alignment('B'); add_big_text(header, 6,12, "2017", COLOR_LTGRAY).set_vertical_alignment('B'); @@ -613,8 +613,9 @@ void TCU_report::create_B() add_band(header, 13, 27); begin_paragraph(header, 13, 2, "TIPO DI COMUNICAZIONE"); - add_prompted_bool(header, 0, 0, 2, "#10", "Annullamento"); - add_prompted_bool(header, 0, 28, 2, "#11", "Sostituzione"); + add_prompted_bool(header, 0, 0, 2, "#8", "Annullamento"); + add_prompted_bool(header, 0, 28, 2, "#9", "Sostituzione"); + add_prompted_bool(header, 0, 50, 2, "#10", "Eventi eccezionali"); end_paragraph(header); begin_paragraph(header, CU_AFTER_LAST, 9, "DATI RELATIVI\nAL SOSTITUTO"); @@ -827,7 +828,7 @@ void TCU_report::create_H() add_labeled_field (body, 1, tab2, CU_EURO_LEN/2, "#AU001033", "Categoria", 'C'); add_labeled_number(body, 2, tab1, CU_EURO_LEN, "#AU001034", "Contributi previdenziali\na carico del soggetto erogante", 'C'); add_labeled_number(body, 2, tab2, CU_EURO_LEN, "#AU001035", "Contributi previdenziali\na carico del percipiente", 'C'); - add_labeled_bool (body, 2, tab3, CU_EURO_LEN/4, "#AU001036", "Altri contributi"); + add_labeled_bool (body, 2, 60, CU_EURO_LEN/4, "#AU001036", "Altri contributi"); add_labeled_number(body, 3, tab1, CU_EURO_LEN, "#AU001037", "Importo altri contributi", 'C'); add_labeled_number(body, 3, tab2, CU_EURO_LEN, "#AU001038", "Contributi dovuti", 'C'); add_labeled_number(body, 3, tab3, CU_EURO_LEN, "#AU001039", "Contributi versati", 'C'); diff --git a/src/m770/77g1.cpp b/src/m770/77g1.cpp index 6b1f85e00..b725fac47 100755 --- a/src/m770/77g1.cpp +++ b/src/m770/77g1.cpp @@ -211,7 +211,7 @@ void TQuadroG1::arr2rel(const TMask& m) const real racc2s = row.get(); tot += racc2s; const real rimp1s = row.get(); tot += rimp1s; const real rimp2s = row.get(); tot += rimp2s; - if (i == 0 || tot > 0.0) + if (i == 0 || tot > ZERO) { if (i < 3) last_saved = i; diff --git a/src/m770/77tbca7.uml b/src/m770/77tbca7.uml index 46c5eb6aa..756502db3 100755 --- a/src/m770/77tbca7.uml +++ b/src/m770/77tbca7.uml @@ -330,9 +330,10 @@ BEGIN SHEET "Codice|Descrizione@450" INPUT F_IC ITEM " | " - ITEM "1|somme che non hanno concorso a formare il reddito imponibile (90% dell’ammontare erogato), relativo ai compensi percepiti dai docenti e dai ricercatori in base a quanto stabilito dal D.L. 29 novembre 2008, n. 185 convertito, con modificazioni dalla L. n. 2 del 28 gennaio 2009. Vanno altresì inseriti i relativi rimborsi spese" - ITEM "2|somme che non hanno concorso a formare il reddito imponibile (rispettivamente l’80% dell’ammontare erogato per le lavoratrici ed il 70% per i lavoratori) per i lavoratori appartenenti alle categorie individuate con Decreto del Ministro dell’Economia e delle Finanze del 3 giugno 2011 in possesso dei requisiti previsti e che hanno richiesto di fruire del beneficio fiscale previsto dall’art. 3 della L. 30 dicembre 2010, n. 238" - ITEM "3|erogazione di altri redditi non soggetti a ritenuta ovvero esenti" + ITEM "1|Somme che non hanno concorso a formare il reddito imponibile (90% dell’ammontare erogato), relativo ai compensi percepiti dai docenti e dai ricercatori in base a quanto stabilito dal D.L. 29 novembre 2008, n. 185 convertito, con modificazioni dalla L. n. 2 del 28 gennaio 2009. Vanno altresì inseriti i relativi rimborsi spese" + ITEM "2|Somme che non hanno concorso a formare il reddito imponibile (rispettivamente l’80% dell’ammontare erogato per le lavoratrici ed il 70% per i lavoratori) per i lavoratori appartenenti alle categorie individuate con Decreto del Ministro dell’Economia e delle Finanze del 3 giugno 2011 in possesso dei requisiti previsti e che hanno richiesto di fruire del beneficio fiscale previsto dall’art. 3 della L. 30 dicembre 2010, n. 238" + ITEM "5|Nel caso di somme corrisposte che non hanno concorso a formare il reddito imponibile (30% dell’ammontare erogato), relative ai compensi percepiti dai soggetti che hanno avviato un’attività di lavoro autonomo o di impresa, in base a quanto stabilito dall’articolo 16 del D.lgs. n. 147 del 2015." + ITEM "6|Erogazione di altri redditi non soggetti a ritenuta ovvero esenti" OUTPUT F_ALTRENONSOGG FIELD I1 END