Patch level : 12.0 1032

Files correlati     : 770.exe 770100b.uml 771mod.exe 777.exe

Commento :

Certificazione Unica 2021

Interno

Da contollare l'invio e la corrispondenza delmodul cetificazione unica.
This commit is contained in:
Alessandro Bonazzi 2021-02-14 19:22:49 +01:00
parent e4ff08bd51
commit 4dfa874deb
13 changed files with 240 additions and 189 deletions

View File

@ -22,8 +22,8 @@
// Token_string pilota per relazione tra l'informazione e la
// sua posizione nello sheet, ogni riga individua uno sheet diverso
const char* PILOT_SHEET[] = {
"DATAPAG|COMPENSO|SPESA|IMPONIBILE|PERC|RITENUTA|SOMREGCONV|ALQIMP10|CTSSNPERC|CTSSNCOMP|COD10|NETTO|SOMNSRIT|AMMLORDO|QUOTAPROV|IMPNETTO|COMNETTO|NUMVERS|NUMREG",
"DATAPAG|COMPENSO|IMPCPA|IMPONIBILE|PERC|RITENUTA|SPESA|SOMREGCONV|NETTO|SOMNSRIT|AMMLORDO|QUOTAPROV|IMPNETTO|COMNETTO|NUMVERS|NUMREG",
"DATAPAG|COMPENSO|SPESA|IMPONIBILE|PERC|RITENUTA|SOMREGCONV|ALQIMP10|CTSSNPERC|CTSSNCOMP|COD10|SRNETRIT|NETTO|SOMNSRIT|AMMLORDO|QUOTAPROV|IMPNETTO|COMNETTO|NUMVERS|NUMREG",
"DATAPAG|COMPENSO|IMPCPA|IMPONIBILE|PERC|RITENUTA|SPESA|SOMREGCONV|SRNETRIT|NETTO|SOMNSRIT|AMMLORDO|QUOTAPROV|IMPNETTO|COMNETTO|NUMVERS|NUMREG",
};
// Items per causale quadro SC
@ -952,36 +952,37 @@ void TSchedaPercipienti::rec2row(TToken_string& r, TRectype& rec, int row)
Pag_struct s;
// compilo campi struttura
s.datapag = rec.get_date("DATAPAG");
s.imponibile = rec.get_real("IMPONIBILE");
s.perc = rec.get_real("PERC");
s.ritenuta = rec.get_real("RITENUTA");
s.compenso = rec.get_real("COMPENSO");
s.netto = rec.get_real("NETTO");
s.numvers = rec.get_long("NUMVERS");
s.spesa = rec.get_real("SPESA");
s.ctssnperc = rec.get_real("CTSSNPERC");
s.ctssncomp = rec.get_real("CTSSNCOMP");
s.ritlorda = rec.get_real("RITLORDA");
s.controbb = rec.get_real("CONTROBB");
s.detfamil = rec.get_real("DETFAMIL");
s.detlavdip = rec.get_real("DETLAVDIP");
s.totdet = rec.get_real("TOTDET");
s.giolavdip = rec.get_int("GIOLAVDIP");
s.impcpa = rec.get_real("IMPCPA");
s.somregconv = rec.get_real("SOMREGCONV");
s.alqimp10 = rec.get_real("ALQIMP10");
s.cod10 = rec.get("COD10");
s.utpagati = rec.get_real("UTPAGATI");
s.utspett = rec.get_real("UTSPETT");
s.ritutpag = rec.get_real("RITUTPAG");
s.ritutspe = rec.get_real("RITUTSPE");
s.nquote = rec.get_real("NQUOTE");
s.somnsrit = rec.get_real("SOMNSRIT");
s.ammlordo = rec.get_real("AMMLORDO");
s.quotaprov = rec.get_real("QUOTAPROV");
s.impnetto = rec.get_real("IMPNETTO");
s.comnetto = rec.get_real("COMNETTO");
s.datapag = rec.get_date(PAG_DATAPAG);
s.imponibile = rec.get_real(PAG_IMPONIBILE);
s.perc = rec.get_real(PAG_PERC);
s.ritenuta = rec.get_real(PAG_RITENUTA);
s.compenso = rec.get_real(PAG_COMPENSO);
s.netto = rec.get_real(PAG_NETTO);
s.numvers = rec.get_long(PAG_NUMVERS);
s.spesa = rec.get_real(PAG_SPESA);
s.ctssnperc = rec.get_real(PAG_INPSPERC);
s.ctssncomp = rec.get_real(PAG_INPSCOMP);
s.ritlorda = rec.get_real(PAG_RITLORDA);
s.controbb = rec.get_real(PAG_CONTROBB);
s.detfamil = rec.get_real(PAG_DETFAMIL);
s.detlavdip = rec.get_real(PAG_DETLAVDIP);
s.totdet = rec.get_real(PAG_TOTDET);
s.giolavdip = rec.get_int(PAG_GIOLAVDIP);
s.impcpa = rec.get_real(PAG_IMPCPA);
s.somregconv = rec.get_real(PAG_SOMREGCONV);
s.alqimp10 = rec.get_real(PAG_ALQIMP10);
s.cod10 = rec.get(PAG_COD10);
s.srnetrit = rec.get_real(PAG_SRNETRIT);
s.utpagati = rec.get_real(PAG_UTPAGATI);
s.utspett = rec.get_real(PAG_UTSPETT);
s.ritutpag = rec.get_real(PAG_RITUTPAG);
s.ritutspe = rec.get_real(PAG_RITUTSPE);
s.nquote = rec.get_real(PAG_NQUOTE);
s.somnsrit = rec.get_real(PAG_SOMNSRIT);
s.ammlordo = rec.get_real(PAG_AMMLORDO);
s.quotaprov = rec.get_real(PAG_QUOTAPROV);
s.impnetto = rec.get_real(PAG_IMPNETTO);
s.comnetto = rec.get_real(PAG_COMNETTO);
s.numreg = rec.get_long(PAG_NUMREG);
// compilo riga di sheet
@ -1339,36 +1340,37 @@ void TSchedaPercipienti::mask2rel(const TMask& m)
h_CodNonSogg);
// compilo restanti campi
r.put("DATAPAG", s.datapag);
r.put("IMPONIBILE",s.imponibile);
r.put("PERC", s.perc);
r.put("RITENUTA", s.ritenuta);
r.put("COMPENSO", s.compenso);
r.put("NETTO",s.netto);
r.put("NUMVERS", s.numvers);
r.put("SPESA", s.spesa);
r.put("CTSSNPERC", s.ctssnperc);
r.put("CTSSNCOMP", s.ctssncomp);
r.put("RITLORDA", s.ritlorda);
r.put("CONTROBB", s.controbb);
r.put("DETFAMIL", s.detfamil);
r.put("DETLAVDIP", s.detlavdip);
r.put("TOTDET", s.totdet);
r.put("GIOLAVDIP", s.giolavdip);
r.put("IMPCPA", s.impcpa);
r.put("SOMREGCONV", s.somregconv);
r.put("ALQIMP10", s.alqimp10);
r.put("COD10", s.cod10);
r.put("UTPAGATI", s.utpagati);
r.put("UTSPETT", s.utspett);
r.put("RITUTPAG", s.ritutpag);
r.put("RITUTSPE", s.ritutspe);
r.put("NQUOTE", s.nquote);
r.put("SOMNSRIT", s.somnsrit);
r.put("AMMLORDO", s.ammlordo);
r.put("QUOTAPROV", s.quotaprov);
r.put("IMPNETTO", s.impnetto);
r.put("COMNETTO", s.comnetto);
r.put(PAG_DATAPAG, s.datapag);
r.put(PAG_IMPONIBILE,s.imponibile);
r.put(PAG_PERC, s.perc);
r.put(PAG_RITENUTA, s.ritenuta);
r.put(PAG_COMPENSO, s.compenso);
r.put(PAG_NETTO,s.netto);
r.put(PAG_NUMVERS, s.numvers);
r.put(PAG_SPESA, s.spesa);
r.put(PAG_INPSPERC, s.ctssnperc);
r.put(PAG_INPSCOMP, s.ctssncomp);
r.put(PAG_RITLORDA, s.ritlorda);
r.put(PAG_CONTROBB, s.controbb);
r.put(PAG_DETFAMIL, s.detfamil);
r.put(PAG_DETLAVDIP, s.detlavdip);
r.put(PAG_TOTDET, s.totdet);
r.put(PAG_GIOLAVDIP, s.giolavdip);
r.put(PAG_IMPCPA, s.impcpa);
r.put(PAG_SOMREGCONV, s.somregconv);
r.put(PAG_ALQIMP10, s.alqimp10);
r.put(PAG_COD10, s.cod10);
r.put(PAG_SRNETRIT, s.srnetrit);
r.put(PAG_UTPAGATI, s.utpagati);
r.put(PAG_UTSPETT, s.utspett);
r.put(PAG_RITUTPAG, s.ritutpag);
r.put(PAG_RITUTSPE, s.ritutspe);
r.put(PAG_NQUOTE, s.nquote);
r.put(PAG_SOMNSRIT, s.somnsrit);
r.put(PAG_AMMLORDO, s.ammlordo);
r.put(PAG_QUOTAPROV, s.quotaprov);
r.put(PAG_IMPNETTO, s.impnetto);
r.put(PAG_COMNETTO, s.comnetto);
r.put(PAG_NUMREG, s.numreg);
}
@ -1712,7 +1714,11 @@ Pag_struct& TSchedaPercipienti::from_sheet_to_struct(TToken_string& t, Pag_struc
// set codice contributo 10%
if ((pos = token_pos("COD10")) != -1)
s.cod10 = t.get(pos);
s.cod10 = t.get(pos);
// set imorti restituiti al netto della ritenuta
if ((pos = token_pos("SRNETRIT")) != -1)
s.srnetrit = t.get_real(pos);
// set utili pagati
if ((pos = token_pos("UTPAGATI")) != -1)
@ -1853,6 +1859,10 @@ void TSchedaPercipienti::from_struct_to_sheet(const Pag_struct& s, TToken_string
if ((pos = token_pos("COD10")) != -1)
t.add(s.cod10, pos);
// set imorti restituiti al netto della ritenuta
if ((pos = token_pos("SRNETRIT")) != -1)
t.add(s.srnetrit, pos);
// set utili pagati
if ((pos = token_pos("UTPAGATI")) != -1)
t.add(s.utpagati.string(), pos);
@ -1989,6 +1999,10 @@ Pag_struct& TSchedaPercipienti::from_mask_to_struct(const TMask& m, Pag_struct&
if ((dlg = token_dlg("COD10")) != -1)
s.cod10 = m.get(dlg);
// set importi retituiti al netto della ritenuta
if ((dlg = token_dlg("SRNETRIT")) != -1)
s.srnetrit = m.get_real(dlg);
// set utili pagati
if ((dlg = token_dlg("UTPAGATI")) != -1)
s.utpagati = m.get_real(dlg);
@ -2119,6 +2133,10 @@ void TSchedaPercipienti::from_struct_to_mask(const Pag_struct& s, TMask& m) cons
// set codice contributo 10%
if ((dlg = token_dlg("COD10")) != -1)
m.set(dlg, s.cod10);
// set importi retituiti al netto della ritenuta
if ((dlg = token_dlg("SRNETRIT")) != -1)
m.set(dlg, s.srnetrit);
// set utili pagati
if ((dlg = token_dlg("UTPAGATI")) != -1)
@ -2187,6 +2205,7 @@ Pag_struct& TSchedaPercipienti::clear_struct(Pag_struct& s) const
s.somregconv = ZERO;
s.alqimp10 = ZERO;
s.cod10 = "";
s.srnetrit = ZERO;
s.utpagati = ZERO;
s.utspett = ZERO;
s.ritutpag = ZERO;

View File

@ -251,6 +251,7 @@ BEGIN
ITEM "Con.10% perc.@15"
ITEM "Con.10% compl.@15"
ITEM "Cod.10%"
ITEM "Somme restituite\n netto ritenuta@15"
ITEM "Compenso netto@15"
ITEM "Som.non sog.rit@15"
ITEM "Ammontare lordo@15"
@ -273,6 +274,7 @@ BEGIN
ITEM "Ritenuta@15"
ITEM "Spese@15"
ITEM "Somme reg.conv.@15"
ITEM "Somme restituite\n netto ritenuta@15"
ITEM "Compenso netto@15"
ITEM "Som.non sog.rit@15"
ITEM "Ammontare lordo@15"

View File

@ -1,7 +1,7 @@
// m70100e.uml - masksheet riga pagamento quadri D,D1,E,E1
// con l'ultima versione dei quadri si utilizza con SF SG (tanto per complicarci la vita)
PAGE "Pagamento " -1 -1 50 19
PAGE "Pagamento " -1 -1 80 25
DATE 101
BEGIN
@ -97,12 +97,23 @@ END
TEXT DLG_NULL
BEGIN
PROMPT 2 10 "Compenso netto"
PROMPT 2 10 "Somme Rest.Net.Rit."
END
CURRENCY 109 15
BEGIN
PROMPT 33 10 ""
FIELD LF_RPAG->SRNETRIT
END
TEXT DLG_NULL
BEGIN
PROMPT 2 11 "Compenso netto"
END
CURRENCY 110 15
BEGIN
PROMPT 33 11 ""
FLAGS "D"
FIELD LF_RPAG->NETTO
END
@ -110,42 +121,42 @@ END
// --------------------------------------------------
// Inizio campi gestiti a programma ma non a maschera
// --------------------------------------------------
CURRENCY 110 15
CURRENCY 111 15
BEGIN
PROMPT 80 80 ""
FLAGS "D"
FIELD LF_RPAG->SOMNSRIT
END
CURRENCY 111 15
CURRENCY 112 15
BEGIN
PROMPT 80 80 ""
FLAGS "D"
FIELD LF_RPAG->AMMLORDO
END
CURRENCY 112 15
CURRENCY 113 15
BEGIN
PROMPT 80 80 ""
FLAGS "D"
FIELD LF_RPAG->QUOTAPROV
END
CURRENCY 113 15
CURRENCY 114 15
BEGIN
PROMPT 80 80 ""
FLAGS "D"
FIELD LF_RPAG->IMPNETTO
END
CURRENCY 114 15
CURRENCY 115 15
BEGIN
PROMPT 80 80 ""
FLAGS "D"
FIELD LF_RPAG->COMNETTO
END
NUMBER 115 5
NUMBER 116 5
BEGIN
PROMPT 80 80 ""
FLAGS "D"
@ -155,7 +166,7 @@ END
// Fine campi gestiti a programma ma non a maschera
// ------------------------------------------------
NUMBER 116 7
NUMBER 117 7
BEGIN
PROMPT 33 11 "Registrazione num."
FLAGS "DR"

View File

@ -1,7 +1,7 @@
// m70100f.uml - masksheet riga pagamento quadri Dbis
// con l'ultima versione dei quadri si utilizza con SC SE (incasiniamoci)
PAGE "Pagamento " -1 -1 50 19
PAGE "Pagamento " -1 -1 80 24
DATE 101
BEGIN
@ -141,14 +141,26 @@ BEGIN
WARNING "Il codice contributo Inps deve essere indicato"
END
TEXT DLG_NULL
BEGIN
PROMPT 2 13 "Compenso netto"
PROMPT 2 13 "Somme Rest.Net.Rit."
END
CURRENCY 112 15
BEGIN
PROMPT 33 13 ""
FIELD LF_RPAG->SRNETRIT
END
TEXT DLG_NULL
BEGIN
PROMPT 2 15 "Compenso netto"
END
CURRENCY 113 15
BEGIN
PROMPT 33 15 ""
FLAGS "D"
FIELD LF_RPAG->NETTO
END
@ -156,42 +168,42 @@ END
// --------------------------------------------------
// Inizio campi gestiti a programma ma non a maschera
// --------------------------------------------------
CURRENCY 113 15
CURRENCY 114 15
BEGIN
PROMPT 80 80 ""
FLAGS "D"
FIELD LF_RPAG->SOMNSRIT
END
CURRENCY 114 15
CURRENCY 115 15
BEGIN
PROMPT 80 80 ""
FLAGS "D"
FIELD LF_RPAG->AMMLORDO
END
CURRENCY 115 15
CURRENCY 116 15
BEGIN
PROMPT 80 80 ""
FLAGS "D"
FIELD LF_RPAG->QUOTAPROV
END
CURRENCY 116 15
CURRENCY 117 15
BEGIN
PROMPT 80 80 ""
FLAGS "D"
FIELD LF_RPAG->IMPNETTO
END
CURRENCY 117 15
CURRENCY 118 15
BEGIN
PROMPT 80 80 ""
FLAGS "D"
FIELD LF_RPAG->COMNETTO
END
NUMBER 118 5
NUMBER 119 5
BEGIN
PROMPT 80 80 ""
FLAGS "D"
@ -201,7 +213,7 @@ END
// Fine campi gestiti a programma ma non a maschera
// ------------------------------------------------
NUMBER 119 7
NUMBER 120 7
BEGIN
PROMPT 33 14 "Registrazione num. "
FLAGS "DR"

View File

@ -127,12 +127,15 @@ void TRighe_riepilogo::genera_la(TRectype& quadro, const TRectype& riga, const T
{
const real inps_perc = riga.get_real(PAG_INPSPERC);
const real inps_erog = inps_tot - inps_perc;
const real somm_rest = riga.get_real(PAG_NETRIT);
quadro.put(QUD_CTINPSEROG, inps_erog); // AUXXX020
quadro.put(QUD_CTINPSPERC, inps_perc); // AUXXX021
quadro.put(QUD_SRNETRIT, somm_rest); // AUXXX022
}
const real somm_rest = riga.get_real(PAG_SRNETRIT);
quadro.put(QUD_SRNETRIT, somm_rest); // AUXXX022
if (somme.is_zero() && quadro.get(QUD_TOTALE) == quadro.get(QUD_IMPONIBILE))
{
const TRectype& ca7 = cache().get("%CA7", codcaus);
@ -827,7 +830,7 @@ void TQuadroC_E2::genera_la(TRectype& quadro, const TRectype& riga, const TStrin
const real inps_tot = riga.get(PAG_INPSCOMP);
real inps_erog, inps_perc;
const real somm_rest = riga.get_real(PAG_NETRIT);
const real somm_rest = riga.get_real(PAG_SRNETRIT);
if (inps_tot > ZERO && riga.get_real(PAG_IMPONIBILE) > real(5000))
{
inps_perc = riga.get_real(PAG_INPSPERC);
@ -835,7 +838,7 @@ void TQuadroC_E2::genera_la(TRectype& quadro, const TRectype& riga, const TStrin
}
quadro.put(QUD_CTINPSEROG, inps_erog); // AUXXX020
quadro.put(QUD_CTINPSPERC, inps_perc); // AUXXX021
quadro.put(QUD_SRNETRIT, somm_rest); // AUXXX022
quadro.put(QUD_SRNETRIT, somm_rest); // AUXXX022
const TRectype& perc = cache().get_rec(LF_PERC, quadro.get(SPR_CODDITTA), quadro.get(SPR_TIPOA), quadro.get(SPR_CODANAGR));
quadro.put("ENTEPREV", perc.get("ENTEPREV")); // AUXXX029 / 32

View File

@ -572,7 +572,7 @@ void TCache770::destroy()
///////////////////////////////////////////////////////////
const char* TTrasferimento770::default_name() const
{ return "MOD77015"; }
{ return "MOD77021"; }
bool TTrasferimento770::open(const char* path, char mode, int volume)
{

View File

@ -20,6 +20,7 @@
#include <nditte.h>
#include "base.h"
#include "quadroc.h"
#include "quadrod.h"
///////////////////////////////////////////////////////////
// Utilities
@ -751,6 +752,7 @@ bool TTrasferimentoCU::append_record_d(const TRectype& qla, TLog_report& log)
else // Estero aggiunta 2021
{
TString stato_estero;
rec.np_put("DA002011", stato_estero);
}
@ -848,10 +850,10 @@ bool TTrasferimentoCU::append_record_h(const TRectype& qla, int modulo, TLog_rep
rec.np_put("AU001019", qla.get_real("RITANNIPRE")); // ritenute anni precedenti
rec.np_put("AU001020", qla.get_real("SPESERIMB")); // spese rimborsate
rec.np_put("AU001021", qla.get_real("RITRIMB")); // ritenute rimborsate
rec.np_put("AU001022", qla.get_real("SRNETRIT")); // somme restituite al netto della ritenuta subita
rec.np_put("AU001022", qla.get_real(QUD_SRNETRIT)); // somme restituite al netto della ritenuta subita
const real cce = qla.get_real("CTINPSEROG");
const real ccp = qla.get_real("CTINPSPERC");
const real cce = qla.get_real(QUD_CTINPSEROG);
const real ccp = qla.get_real(QUD_CTINPSPERC);
const real cal = qla.get_real("ALTRICONTR");
const real cdo = qla.get_real("CONTRDOV");
const real cve = qla.get_real("CONTRVER");

View File

@ -6,10 +6,10 @@
#endif
// Nota che sono stati definiti anche in 777lib
#define THIS_YEAR "2020"
#define THIS_YEARN 2020
#define LAST_YEAR "2019"
#define LAST_YEARN 2019
#define THIS_YEAR "2021"
#define THIS_YEARN 2021
#define LAST_YEAR "2020"
#define LAST_YEARN 2020
class TRecordCU;

View File

@ -725,7 +725,6 @@ void TCU_report::create_D()
add_labeled_field(body, 1, 49, 3, "#DA002008", "Categorie\nparticolari", 'C');
add_labeled_number(body,1, 55, 3, "#DA002009", "Eventi\neccezionali", 'C');
add_labeled_number(body,1, 61, 3, "#DA002010", "Casi di esclusione\ndalla precompilata", 'C');
add_labeled_number(body,1, 67, 3, "#DA002011", "Stato\nEstero", 'C');
end_paragraph(body);
begin_paragraph(body, CU_AFTER_LAST, 8, "");
@ -749,9 +748,6 @@ void TCU_report::create_D()
add_labeled_field(body, 0, 0, 16, "#DA002040", "Codice di identificazione fiscale estero");
add_labeled_field(body, 0, CU_AFTER_LAST, CU_ALIGN_RIGHT, "#DA002041", "Località di residenza estera");
add_labeled_field(body, 1, 0, 50, "#DA002042", "Via e numero civico");
// 2015
//add_labeled_field(body, 1, CU_ALIGN_RIGHT, 5, "#DA002043", "Codice Stato estero", 'C');
// 2016
add_labeled_field(body, 1, CU_AFTER_LAST, 5, "#DA002043", "Non residenti\nShumacker", 'C');
add_labeled_field(body, 1, CU_ALIGN_RIGHT, 5, "#DA002044", "Codice Stato estero", 'C');
@ -785,15 +781,15 @@ void TCU_report::create_H()
title->set_picture("CERTIFICAZIONE LAVORO AUTONOMO, PROVVIGIONI E REDDITI DIVERSI");
title->set_font(fnt_big);
body.add(title);
add_band(body, 5, _syntetic ? 44: 58);
add_band(body, 5, _syntetic ? 46 : 63);
const int tab0 = 2, tab1 = 6, tab2 = 27, tab3 = CU_ALIGN_RIGHT;
begin_paragraph(body, 5, 3, "DATI RELATIVI ALLE SOMME EROGATE\nTIPOLOGIA REDDITUALE", 0x3);
begin_paragraph(body, 5, 5, "DATI RELATIVI ALLE SOMME EROGATE\nTIPOLOGIA REDDITUALE"); // , 0x3);
add_labeled_field(body, 0, tab0, 2, "#AU001001", "Causale");
end_paragraph(body);
begin_paragraph(body, -1, 18, "DATI FISCALI");
begin_paragraph(body, -1, _syntetic ? 18 : 21, "DATI FISCALI");
add_labeled_number(body, 0, tab1-1, 4, "#AU001002", "Anno", 'C');
add_labeled_bool (body, 0, CU_AFTER_LAST, 2, "#AU001003", "Anticipazione");
add_labeled_number(body, 0, tab2, CU_EURO_LEN, "#AU001004", "Ammontare lordo corrisposto", 'C');
@ -819,7 +815,8 @@ void TCU_report::create_H()
add_labeled_number(body, 5, tab1, CU_EURO_LEN, "#AU001019", "Ritenute operate anni precedenti", 'C');
add_labeled_number(body, 5, tab2, CU_EURO_LEN, "#AU001020", "Spese rimborsate", 'C');
add_labeled_number(body, 5, tab3, CU_EURO_LEN, "#AU001021", "Ritenute rimborsate", 'C');
add_labeled_number(body, 5, tab3, CU_EURO_LEN, "#AU001022", "Somme restituite al netto della ritenuta subita", 'C');
if (!_syntetic)
add_labeled_number(body, 6, tab1, CU_EURO_LEN, "#AU001022", "Somme restituite al netto della ritenuta subita", 'C');
end_paragraph(body);
// 2016

View File

@ -9,10 +9,10 @@
#define CF_PRODUTTORE get_iva_sirio();
// Nota che sono anche definiti in 777200.h
#define THIS_YEAR "2020"
#define THIS_YEARN 2020
#define LAST_YEAR "2019"
#define LAST_YEARN 2019
#define THIS_YEAR "2021"
#define THIS_YEARN 2021
#define LAST_YEAR "2020"
#define LAST_YEARN 2020
enum { CODE_SIZE = 8, FIELD_SIZE = 16, BLOCK_SIZE = 24, HEADER_SIZE = 89, USEABLE_SIZE = 1800, TOTAL_SIZE = 1900 };

View File

@ -388,6 +388,7 @@ struct Pag_struct
real somregconv;
real alqimp10;
TString16 cod10;
real srnetrit;
real utpagati;
real utspett;
real ritutpag;

View File

@ -1082,65 +1082,67 @@ bool TVersamento_stampa::find(TVersamento& vers)
// overloading operatore di confronto per la struct dei pagamenti
bool Pag_struct::operator==(const Pag_struct& s) const
{
if (this->datapag != s.datapag)
if (datapag != s.datapag)
return 0;
if (this->imponibile != s.imponibile)
if (imponibile != s.imponibile)
return 0;
if (this->perc != s.perc)
if (perc != s.perc)
return 0;
if (this->ritenuta != s.ritenuta)
if (ritenuta != s.ritenuta)
return 0;
if (this->compenso != s.compenso)
if (compenso != s.compenso)
return 0;
if (this->netto != s.netto)
if (netto != s.netto)
return 0;
if (this->numvers != s.numvers)
if (numvers != s.numvers)
return 0;
if (this->spesa != s.spesa)
if (spesa != s.spesa)
return 0;
if (this->ctssnperc != s.ctssnperc)
if (ctssnperc != s.ctssnperc)
return 0;
if (this->ctssncomp != s.ctssncomp)
if (ctssncomp != s.ctssncomp)
return 0;
if (this->ritlorda != s.ritlorda)
if (ritlorda != s.ritlorda)
return 0;
if (this->controbb != s.controbb)
if (controbb != s.controbb)
return 0;
if (this->detfamil != s.detfamil)
if (detfamil != s.detfamil)
return 0;
if (this->detlavdip != s.detlavdip)
if (detlavdip != s.detlavdip)
return 0;
if (this->totdet != s.totdet)
if (totdet != s.totdet)
return 0;
if (this->giolavdip != s.giolavdip)
if (giolavdip != s.giolavdip)
return 0;
if (this->impcpa != s.impcpa)
if (impcpa != s.impcpa)
return 0;
if (this->somregconv != s.somregconv)
if (somregconv != s.somregconv)
return 0;
if (this->alqimp10 != s.alqimp10)
if (alqimp10 != s.alqimp10)
return 0;
if (this->cod10 != s.cod10)
if (cod10 != s.cod10)
return 0;
if (this->utpagati != s.utpagati)
if (srnetrit != s.srnetrit)
return 0;
if (this->utspett != s.utspett)
if (utpagati != s.utpagati)
return 0;
if (this->ritutpag != s.ritutpag)
if (utspett != s.utspett)
return 0;
if (this->ritutspe != s.ritutspe)
if (ritutpag != s.ritutpag)
return 0;
if (this->nquote != s.nquote)
if (ritutspe != s.ritutspe)
return 0;
if (this->somnsrit != s.somnsrit)
if (nquote != s.nquote)
return 0;
if (this->ammlordo != s.ammlordo)
if (somnsrit != s.somnsrit)
return 0;
if (this->quotaprov != s.quotaprov)
if (ammlordo != s.ammlordo)
return 0;
if (this->impnetto != s.impnetto)
if (quotaprov != s.quotaprov)
return 0;
if (this->comnetto != s.comnetto)
if (impnetto != s.impnetto)
return 0;
if (comnetto != s.comnetto)
return 0;
// strutture uguali
@ -1152,37 +1154,38 @@ bool Pag_struct::operator==(const Pag_struct& s) const
Pag_struct& Pag_struct::operator=(const TRectype& rec)
{
// compila struttura con valori del record
this->datapag = rec.get_date("DATAPAG");
this->imponibile = rec.get_real("IMPONIBILE");
this->perc = rec.get_real("PERC");
this->ritenuta = rec.get_real("RITENUTA");
this->compenso = rec.get_real("COMPENSO");
this->netto = rec.get_real("NETTO");
this->numvers = rec.get_long("NUMVERS");
this->spesa = rec.get_real("SPESA");
this->ctssnperc = rec.get_real("CTSSNPERC");
this->ctssncomp = rec.get_real("CTSSNCOMP");
this->ritlorda = rec.get_real("RITLORDA");
this->controbb = rec.get_real("CONTROBB");
this->detfamil = rec.get_real("DETFAMIL");
this->detlavdip = rec.get_real("DETLAVDIP");
this->totdet = rec.get_real("TOTDET");
this->giolavdip = rec.get_int("GIOLAVDIP");
this->impcpa = rec.get_real("IMPCPA");
this->somregconv = rec.get_real("SOMREGCONV");
this->alqimp10 = rec.get_real("ALQIMP10");
this->cod10 = rec.get("COD10");
this->utpagati = rec.get_real("UTPAGATI");
this->utspett = rec.get_real("UTSPETT");
this->ritutpag = rec.get_real("RITUTPAG");
this->ritutspe = rec.get_real("RITUTSPE");
this->nquote = rec.get_real("NQUOTE");
this->somnsrit = rec.get_real("SOMNSRIT");
this->ammlordo = rec.get_real("AMMLORDO");
this->quotaprov = rec.get_real("QUOTAPROV");
this->impnetto = rec.get_real("IMPNETTO");
this->comnetto = rec.get_real(PAG_COMNETTO);
this->numreg = rec.get_long(PAG_NUMREG);
datapag = rec.get_date(PAG_DATAPAG);
imponibile = rec.get_real(PAG_IMPONIBILE);
perc = rec.get_real(PAG_PERC);
ritenuta = rec.get_real(PAG_RITENUTA);
compenso = rec.get_real(PAG_COMPENSO);
netto = rec.get_real(PAG_NETTO);
numvers = rec.get_long(PAG_NUMVERS);
spesa = rec.get_real(PAG_SPESA);
ctssnperc = rec.get_real(PAG_INPSPERC);
ctssncomp = rec.get_real(PAG_INPSCOMP);
ritlorda = rec.get_real(PAG_RITLORDA);
controbb = rec.get_real(PAG_CONTROBB);
detfamil = rec.get_real(PAG_DETFAMIL);
detlavdip = rec.get_real(PAG_DETLAVDIP);
totdet = rec.get_real(PAG_TOTDET);
giolavdip = rec.get_int(PAG_GIOLAVDIP);
impcpa = rec.get_real(PAG_IMPCPA);
somregconv = rec.get_real(PAG_SOMREGCONV);
alqimp10 = rec.get_real(PAG_ALQIMP10);
cod10 = rec.get(PAG_COD10);
srnetrit = rec.get_real(PAG_SRNETRIT);
utpagati = rec.get_real(PAG_UTPAGATI);
utspett = rec.get_real(PAG_UTSPETT);
ritutpag = rec.get_real(PAG_RITUTPAG);
ritutspe = rec.get_real(PAG_RITUTSPE);
nquote = rec.get_real(PAG_NQUOTE);
somnsrit = rec.get_real(PAG_SOMNSRIT);
ammlordo = rec.get_real(PAG_AMMLORDO);
quotaprov = rec.get_real(PAG_QUOTAPROV);
impnetto = rec.get_real(PAG_IMPNETTO);
comnetto = rec.get_real(PAG_COMNETTO);
numreg = rec.get_long(PAG_NUMREG);
return *this;
}
@ -1191,28 +1194,29 @@ Pag_struct& Pag_struct::operator=(const TRectype& rec)
Pag_struct& Pag_struct::operator+=(const Pag_struct& s)
{
// aggiunge agli importi i valori della struttura passata
this->imponibile += s.imponibile;
this->ritenuta += s.ritenuta;
this->compenso += s.compenso;
this->netto += s.netto;
this->spesa += s.spesa;
this->ctssnperc += s.ctssnperc;
this->ctssncomp += s.ctssncomp;
this->ritlorda += s.ritlorda;
this->controbb += s.controbb;
this->detfamil += s.detfamil;
this->detlavdip += s.detlavdip;
this->totdet += s.totdet;
this->impcpa += s.impcpa;
this->somregconv += s.somregconv;
this->utpagati += s.utpagati;
this->utspett += s.utspett;
this->ritutpag += s.ritutpag;
this->ritutspe += s.ritutspe;
this->somnsrit += s.somnsrit;
this->ammlordo += s.ammlordo;
this->quotaprov += s.quotaprov;
this->impnetto += s.impnetto;
imponibile += s.imponibile;
ritenuta += s.ritenuta;
compenso += s.compenso;
netto += s.netto;
spesa += s.spesa;
ctssnperc += s.ctssnperc;
ctssncomp += s.ctssncomp;
srnetrit += s.srnetrit;
ritlorda += s.ritlorda;
controbb += s.controbb;
detfamil += s.detfamil;
detlavdip += s.detlavdip;
totdet += s.totdet;
impcpa += s.impcpa;
somregconv += s.somregconv;
utpagati += s.utpagati;
utspett += s.utspett;
ritutpag += s.ritutpag;
ritutspe += s.ritutspe;
somnsrit += s.somnsrit;
ammlordo += s.ammlordo;
quotaprov += s.quotaprov;
impnetto += s.impnetto;
this->comnetto += s.comnetto;
return *this;

View File

@ -18,7 +18,7 @@
#define PAG_NUMPAG "NUMPAG"
#define PAG_SPESA "SPESA"
#define PAG_INPSPERC "CTSSNPERC"
#define PAG_NETRIT "SRNETRIT"
#define PAG_SRNETRIT "SRNETRIT"
#define PAG_INPSCOMP "CTSSNCOMP"
#define PAG_RITLORDA "RITLORDA"
#define PAG_CONTROBB "CONTROBB"