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
This commit is contained in:
mtollari 2017-02-10 13:29:29 +00:00
parent da36c82ed8
commit 3ba8cc85fc
7 changed files with 53 additions and 41 deletions

View File

@ -102,19 +102,21 @@ void TRighe_riepilogo::genera_la(TRectype& quadro, const TRectype& riga, const T
quadro.put("ANNO", datapag.year()); quadro.put("ANNO", datapag.year());
quadro.put(QUD_PERC, riga.get(PAG_PERC)); quadro.put(QUD_PERC, riga.get(PAG_PERC));
quadro.put(QUD_CODCAUS, codcaus); 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; real somme = compenso;
somme -= imponibile; somme -= imponibile;
somme += riga.get_real(PAG_SPESA); somme += riga.get_real(PAG_SPESA);
//somme -= riga.get_real(PAG_IMPCPA); //somme -= riga.get_real(PAG_IMPCPA);
somme -= riga.get_real(PAG_SOMREGCONV); 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_SOMREGCONV, riga.get(PAG_SOMREGCONV));
quadro.put(QUD_IMPONIBILE, imponibile); // AUXXX008 quadro.put(QUD_IMPONIBILE, imponibile); // AUXXX008

View File

@ -518,7 +518,7 @@ void TQuadroF::calcola_ritenuta_operata(TMask& m, char prosp)
real sogg = m.get_real(id_sogg); real sogg = m.get_real(id_sogg);
real ali = m.get_real(id_ali); real ali = m.get_real(id_ali);
real rope = (sogg * ali) / 100.00; real rope = (sogg * ali) / CENTO;
rope.round(); rope.round();
if (rope != ZERO) // Evita di scrivere "0" nel campo (v. reqif_func nella msk) if (rope != ZERO) // Evita di scrivere "0" nel campo (v. reqif_func nella msk)

View File

@ -455,14 +455,14 @@ bool TQuadroG::calc_rit(TMask_field& f, KEY k)
if (real::is_real(al)) if (real::is_real(al))
{ {
const real a1 = 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")); al = real::ita2eng(a1.string(".2"));
m.set(ALIQUOTA,al); 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(); res.round();
m.set(ROPE,res); m.set(ROPE,res);
} }
@ -472,7 +472,7 @@ bool TQuadroG::calc_rit(TMask_field& f, KEY k)
else else
return f.error_box("Aliquota non valida."); 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."); return f.error_box("Il campo aliquota e' obbligatorio.");
} }
if (k == K_ENTER && f.dlg() == ALIQUOTA) 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)); real r2(m.get(UTILI2S));
TString16 tit(f.get()); 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 f.error_box("Il campo titolo e' obbligatorio.");
} }
return TRUE; return TRUE;

View File

@ -92,7 +92,7 @@ TTracciatoCU::TTracciatoCU(char tipo)
add_field("Denominazione (Alternativo a 12 e 13)",AN,137, 60); add_field("Denominazione (Alternativo a 12 e 13)",AN,137, 60);
add_field("Indirizzo E-mail", AN,197,100); add_field("Indirizzo E-mail", AN,197,100);
add_field("Telefono o Fax", AN,297, 12); 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 fiscale del rappresentante", CF,310,16); // 18
add_field("Codice carica del rappresentante", NU,326, 2); 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("Nome", AN,352,20);
add_field("Codice fiscale del dichiarante", CN,372,11); 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("Numero comunicaz. relative a certificazioni",NU, 402, 8);
add_field("Casella quadro CT", CB, 410, 1); add_field("Casella quadro CT", CB, 410, 1);
add_field("Firma del dichiarante", CB, 411, 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("Impegno a trasmettere la dichiaraz.", NU, 428, 1);
add_field("Data dell'impegno", DT, 429, 8); add_field("Data dell'impegno", DT, 429, 8);
add_field("Firma dell'intermediario", CB, 437, 1); add_field("Firma dell'intermediario", CB, 437, 1);
/*
add_filler(438, 1); add_filler(438, 1);
add_filler(439, 40); add_filler(439, 40);
add_filler(479, 2); add_filler(479, 2);
@ -134,34 +135,36 @@ TTracciatoCU::TTracciatoCU(char tipo)
add_filler(1898, 1); // 52 add_filler(1898, 1); // 52
add_filler(1899, 2); // 53 add_filler(1899, 2); // 53
*/
} else } else
if (tipo == 'D') if (tipo == 'D')
{ {
add_field("Codice fiscale del sostituto", CF, 2, 16); // 2 add_field("Codice fiscale del sostituto", CF, 2, 16, 2); // 2
add_field("Progressivo modulo", NU, 18, 8); // 3 add_field("Progressivo modulo", NU, 18, 8, 3); // 3
add_field("Codice fiscale percipiente", CF, 26, 16); // 4 add_field("Codice fiscale percipiente", CF, 26, 16, 4); // 4
add_field("Progressivo certificazione", NU, 42, 5); // 5 add_field("Progressivo certificazione", NU, 42, 5, 5); // 5
add_field("Identificativo dell'invio", NU, 47, 17); // 6 add_field("Identificativo dell'invio", NU, 47, 17, 6); // 6
add_field("Progressivo singola C.U.", NU, 64, 6); // 7 add_field("Progressivo singola C.U.", NU, 64, 6, 7); // 7
add_filler(70, 14); add_filler(70, 14);
add_field("Tipo Operazione", AN, 84, 1, 9); // 9 add_field("Tipo Operazione", AN, 84, 1, 9); // 9
add_filler(85, 4); add_filler(85, 4);
add_field("Conferma singola certificazione", CB, 89, 1); // 11 add_field("Conferma singola certificazione", CB, 89, 1, 11); // 11
} else } else
if (tipo == 'H') if (tipo == 'H')
{ {
add_field("Codice fiscale del sostituto", CF, 2, 16); // 2 add_field("Codice fiscale del sostituto", CF, 2, 16, 2); // 2
add_field("Progressivo modulo", NU, 18, 8); // 3 add_field("Progressivo modulo", NU, 18, 8, 3); // 3
add_field("Codice fiscale percipiente", CF, 26, 16); // 4 add_field("Codice fiscale percipiente", CF, 26, 16, 4); // 4
add_field("Progressivo certificazione", NU, 42, 5); // 5 add_field("Progressivo certificazione", NU, 42, 5, 5); // 5
add_filler(47, 17); // 6 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(70, 14); // 8
add_filler(84, 1); // 9 add_filler(84, 1); // 9
add_filler(85, 4); // 10 add_filler(85, 4); // 10
add_filler(89, 1); // 11 add_filler(89, 1); // 11
*/
} else } else
if (tipo == 'Z') 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 'D'", NU, 34, 9);
add_field("Numero record di tipo 'G'", NU, 43, 9); // 6 add_field("Numero record di tipo 'G'", NU, 43, 9); // 6
add_field("Numero record di tipo 'H'", NU, 52, 9); add_field("Numero record di tipo 'H'", NU, 52, 9);
/*
add_filler(31,9); add_filler(31,9);
add_filler(70,9); add_filler(70,9);
add_filler(79,9); add_filler(79,9);
@ -178,6 +182,7 @@ TTracciatoCU::TTracciatoCU(char tipo)
add_filler(1898,1); // 11 add_filler(1898,1); // 11
add_filler(1899,2); //12 add_filler(1899,2); //12
*/
} }
} }
@ -563,6 +568,9 @@ bool TTrasferimentoCU::append_record_b()
numtel = get_telephone(rec_nditte, NDT_PFAX, NDT_FAX); numtel = get_telephone(rec_nditte, NDT_PFAX, NDT_FAX);
rec.set(16, numtel); 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)); const TAnagrafica rapp(LF_ANAG, 'F', rec_nditte.get_long(NDT_RAPPR));
if (rapp.ok()) 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"); real imponibile = qla.get_real("IMPONIBILE");
const TString4 codcaus = qla.get("CODCAUS"); 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) if (altre_somme.is_zero() && codice == 3)
{ {
altre_somme = imponibile; 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 (!altre_somme.is_zero())
{ {
if (codice <= 0) codice = 3; // Regime minimi if (codice <= 0) codice = 6; // Regime minimi
rec.np_put("AU001006", codice); // 1, 2, 3 rec.np_put("AU001006", codice); // 1, 2, 5, 6
rec.np_put("AU001007", altre_somme); rec.np_put("AU001007", altre_somme);
} }
rec.np_put("AU001008", imponibile); // 004 - 005 - 007 rec.np_put("AU001008", imponibile); // 004 - 005 - 007

View File

@ -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) 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, 0, "UNICA", COLOR_BLACK).set_vertical_alignment('B');
add_big_text(header, 6,12, "2017", COLOR_LTGRAY).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); add_band(header, 13, 27);
begin_paragraph(header, 13, 2, "TIPO DI COMUNICAZIONE"); begin_paragraph(header, 13, 2, "TIPO DI COMUNICAZIONE");
add_prompted_bool(header, 0, 0, 2, "#10", "Annullamento"); add_prompted_bool(header, 0, 0, 2, "#8", "Annullamento");
add_prompted_bool(header, 0, 28, 2, "#11", "Sostituzione"); add_prompted_bool(header, 0, 28, 2, "#9", "Sostituzione");
add_prompted_bool(header, 0, 50, 2, "#10", "Eventi eccezionali");
end_paragraph(header); end_paragraph(header);
begin_paragraph(header, CU_AFTER_LAST, 9, "DATI RELATIVI\nAL SOSTITUTO"); 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_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, 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_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, 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, tab2, CU_EURO_LEN, "#AU001038", "Contributi dovuti", 'C');
add_labeled_number(body, 3, tab3, CU_EURO_LEN, "#AU001039", "Contributi versati", 'C'); add_labeled_number(body, 3, tab3, CU_EURO_LEN, "#AU001039", "Contributi versati", 'C');

View File

@ -211,7 +211,7 @@ void TQuadroG1::arr2rel(const TMask& m)
const real racc2s = row.get(); tot += racc2s; const real racc2s = row.get(); tot += racc2s;
const real rimp1s = row.get(); tot += rimp1s; const real rimp1s = row.get(); tot += rimp1s;
const real rimp2s = row.get(); tot += rimp2s; const real rimp2s = row.get(); tot += rimp2s;
if (i == 0 || tot > 0.0) if (i == 0 || tot > ZERO)
{ {
if (i < 3) if (i < 3)
last_saved = i; last_saved = i;

View File

@ -330,9 +330,10 @@ BEGIN
SHEET "Codice|Descrizione@450" SHEET "Codice|Descrizione@450"
INPUT F_IC INPUT F_IC
ITEM " | " ITEM " | "
ITEM "1|somme che non hanno concorso a formare il reddito imponibile (90% dellammontare 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 "1|Somme che non hanno concorso a formare il reddito imponibile (90% dellammontare 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 l80% dellammontare erogato per le lavoratrici ed il 70% per i lavoratori) per i lavoratori appartenenti alle categorie individuate con Decreto del Ministro dellEconomia e delle Finanze del 3 giugno 2011 in possesso dei requisiti previsti e che hanno richiesto di fruire del beneficio fiscale previsto dallart. 3 della L. 30 dicembre 2010, n. 238" ITEM "2|Somme che non hanno concorso a formare il reddito imponibile (rispettivamente l80% dellammontare erogato per le lavoratrici ed il 70% per i lavoratori) per i lavoratori appartenenti alle categorie individuate con Decreto del Ministro dellEconomia e delle Finanze del 3 giugno 2011 in possesso dei requisiti previsti e che hanno richiesto di fruire del beneficio fiscale previsto dallart. 3 della L. 30 dicembre 2010, n. 238"
ITEM "3|erogazione di altri redditi non soggetti a ritenuta ovvero esenti" ITEM "5|Nel caso di somme corrisposte che non hanno concorso a formare il reddito imponibile (30% dellammontare erogato), relative ai compensi percepiti dai soggetti che hanno avviato unattività di lavoro autonomo o di impresa, in base a quanto stabilito dallarticolo 16 del D.lgs. n. 147 del 2015."
ITEM "6|Erogazione di altri redditi non soggetti a ritenuta ovvero esenti"
OUTPUT F_ALTRENONSOGG OUTPUT F_ALTRENONSOGG
FIELD I1 FIELD I1
END END