Corretta stampa quadro B

git-svn-id: svn://10.65.10.50/trunk@3553 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1996-09-09 10:52:13 +00:00
parent d879223237
commit 5dc5a1fe6d
2 changed files with 136 additions and 78 deletions

View File

@ -153,7 +153,6 @@ BEGIN
PROMPT 125 22 ""
END
END
SECTION BODY ODD 12
@ -276,21 +275,22 @@ END
NUMERO 151
BEGIN
KEY "ANNI PARZIALI"
PROMPT 73 5 ""
PROMPT 75 5 ""
FIELD ANNIPARZ
END
NUMERO 152
BEGIN
KEY "MESI PARZIALI"
PROMPT 80 5 ""
PROMPT 82 5 ""
FIELD MESIPARZ
END
NUMERO 153
BEGIN
KEY "PERCENTUALE TEMPO PARZIALE"
PROMPT 85 5 ""
PROMPT 83 5 ""
PICTURE "##@,@@"
FIELD PERCPARZ
END
@ -306,29 +306,30 @@ END
NUMERO 17
BEGIN
KEY "MESE EROGAZIONE"
PROMPT 103 5 ""
PROMPT 104 5 ""
FIELD MESEEROG
END
STRINGA 18
BEGIN
KEY "TITOLO EROGAZIONE"
PROMPT 109 5 ""
PROMPT 110 5 ""
FIELD TITEROG
END
NUMERO 19
BEGIN
KEY "PERCENTUALE ABBATTIMENTO"
PROMPT 114 5 ""
PROMPT 112 5 ""
PICTURE "##@,@@"
FIELD PERCABB
END
NUMERO 20
BEGIN
KEY "AMMONTARE NETTO"
PROMPT 117 5 ""
PICTURE "###.###.###.###^^^"
PROMPT 119 5 ""
PICTURE "#.###.###.###^^^"
FIELD AMMNETTO
MESSAGE ADD,FL->20
END
@ -349,15 +350,16 @@ END
NUMERO 23
BEGIN
KEY "PERCENTUALE ABBATTIMENTO"
PROMPT 21 7 ""
FIELD PERCABB2
KEY "ABBATTIMENTO"
PROMPT 22 7 ""
PICTURE "###.###.###^^^"
FIELD ABBATT
END
NUMERO 24
BEGIN
KEY "AMMONTARE NETTO"
PROMPT 34 7 ""
PROMPT 35 7 ""
PICTURE "###.###.###^^^"
FIELD AMMNETTO2
MESSAGE ADD,FL->24
@ -366,7 +368,7 @@ END
NUMERO 25
BEGIN
KEY "CONTRIBUTI OBBLIGATORI LAVORATORE"
PROMPT 48 7 ""
PROMPT 50 7 ""
PICTURE "###.###.###.###^^^"
FIELD CONTLAV
MESSAGE ADD,FL->25
@ -411,7 +413,7 @@ END
NUMERO 30
BEGIN
KEY "T.F.R. PER REDDITO DI RIFERIMENTO"
PROMPT 10 9 ""
PROMPT 11 9 ""
PICTURE "###.###.###.###^^^"
FIELD TFRIND
MESSAGE ADD,FL->30
@ -420,14 +422,15 @@ END
NUMERO 31
BEGIN
KEY "ALIQUOTA"
PROMPT 27 9 ""
PROMPT 28 9 ""
PICTURE "##@,@@"
FIELD ALIQUOTA
END
NUMERO 32
BEGIN
KEY "RETRIBUZIONE MEDIA BIENNIO PRECEDENTE"
PROMPT 32 9 ""
PROMPT 33 9 ""
PICTURE "###.###.###.###^^^"
FIELD RETRMEDIA
END
@ -435,15 +438,16 @@ END
NUMERO 33
BEGIN
KEY "ALIQUOTA"
PROMPT 50 9 ""
PROMPT 49 9 ""
PICTURE "##@,@@"
FIELD ALIQUOTA2
END
NUMERO 34
BEGIN
KEY "IMPONIBILE T.F.R."
PROMPT 54 9 ""
PICTURE "###.###.###.###^^^"
PROMPT 57 9 ""
PICTURE "#.###.###.###^^^"
FIELD IMPTFR
MESSAGE ADD,FL->34
END
@ -451,8 +455,8 @@ END
NUMERO 35
BEGIN
KEY "IMPONIBILE ALTRE INDENNITA'"
PROMPT 71 9 ""
PICTURE "###.###.###.###^^^"
PROMPT 73 9 ""
PICTURE "#.###.###.###^^^"
FIELD IMPIND
MESSAGE ADD,FL->35
END
@ -460,8 +464,8 @@ END
NUMERO 36
BEGIN
KEY "IMPONIBILE DELL'ANNO"
PROMPT 85 9 ""
PICTURE "###.###.###.###^^^"
PROMPT 88 9 ""
PICTURE "#.###.###.###^^^"
FIELD IMPANNO
MESSAGE ADD,FL->36
END
@ -469,8 +473,8 @@ END
NUMERO 37
BEGIN
KEY "TOTALE REDDITO IMPONIBILE"
PROMPT 101 9 ""
PICTURE "###.###.###.###^^^"
PROMPT 103 9 ""
PICTURE "#.###.###.###^^^"
FIELD TOTIMP
MESSAGE ADD,FL->37
END
@ -478,8 +482,8 @@ END
NUMERO 38
BEGIN
KEY "RITENUTE OPERATE"
PROMPT 117 9 ""
PICTURE "###.###.###.###^^^"
PROMPT 128 9 ""
PICTURE "#.###.###.###^^^"
FIELD ROPEACC
MESSAGE ADD,FL->38
END
@ -487,7 +491,7 @@ END
NUMERO 39
BEGIN
KEY "IMPOSTA DOVUTA"
PROMPT 10 11 ""
PROMPT 11 11 ""
PICTURE "###.###.###.###^^^"
FIELD IMPDOV
MESSAGE ADD,FL->39
@ -496,7 +500,7 @@ END
NUMERO 40
BEGIN
KEY "RITENUTE FISCALI"
PROMPT 27 11 ""
PROMPT 28 11 ""
PICTURE "###.###.###.###^^^"
FIELD RITECC
MESSAGE ADD,FL->40
@ -505,7 +509,7 @@ END
NUMERO 41
BEGIN
KEY "QUOTA SPETTANTE"
PROMPT 44 11 ""
PROMPT 45 11 ""
PICTURE "###.###.###.###^^^"
FIELD QUOTASPET
END
@ -513,7 +517,7 @@ END
NUMERO 42
BEGIN
KEY "INDENNITA' SPETTANTE"
PROMPT 61 11 ""
PROMPT 62 11 ""
PICTURE "###.###.###.###^^^"
FIELD INDSPETT
MESSAGE ADD,FL->42
@ -522,7 +526,7 @@ END
NUMERO 43
BEGIN
KEY "RITENUTE OPERATE"
PROMPT 78 11 ""
PROMPT 79 11 ""
PICTURE "###.###.###.###^^^"
FIELD ROPE
MESSAGE ADD,FL->43
@ -531,7 +535,7 @@ END
NUMERO 44
BEGIN
KEY "IMPONIBILE C.S.S.N."
PROMPT 95 11 ""
PROMPT 96 11 ""
PICTURE "###.###.###.###^^^"
FIELD IMPOCSSN
MESSAGE ADD,FL->44
@ -551,35 +555,35 @@ END
NUMERO 20
BEGIN
KEY "AMMONTARE NETTO"
PROMPT 117 1 ""
PICTURE "###.###.###.###^^^"
PROMPT 119 1 ""
PICTURE "#.###.###.###^^^"
END
NUMERO 24
BEGIN
KEY "AMMONTARE NETTO"
PROMPT 26 3 ""
PROMPT 35 3 ""
PICTURE "###.###.###^^^"
END
NUMERO 25
BEGIN
KEY "CONTRIBUTI OBBLIGATORI LAVORATORE"
PROMPT 41 3 ""
PROMPT 50 3 ""
PICTURE "###.###.###.###^^^"
END
NUMERO 26
BEGIN
KEY "T.F.R."
PROMPT 60 3 ""
PROMPT 67 3 ""
PICTURE "###.###.###.###^^^"
END
NUMERO 27
BEGIN
KEY "ALTRE INDENNITA'"
PROMPT 72 3 ""
PROMPT 84 3 ""
PICTURE "###.###.###.###^^^"
END
@ -600,77 +604,77 @@ END
NUMERO 30
BEGIN
KEY "T.F.R. PER REDDITO DI RIFERIMENTO"
PROMPT 10 5 ""
PROMPT 11 5 ""
PICTURE "###.###.###.###^^^"
END
NUMERO 34
BEGIN
KEY "IMPONIBILE T.F.R."
PROMPT 54 5 ""
PROMPT 57 5 ""
PICTURE "###.###.###.###^^^"
END
NUMERO 35
BEGIN
KEY "IMPONIBILE ALTRE INDENNITA'"
PROMPT 71 5 ""
PICTURE "###.###.###.###^^^"
PROMPT 73 5 ""
PICTURE "#.###.###.###^^^"
END
NUMERO 36
BEGIN
KEY "IMPONIBILE DELL'ANNO"
PROMPT 85 5 ""
PICTURE "###.###.###.###^^^"
PROMPT 88 5 ""
PICTURE "#.###.###.###^^^"
END
NUMERO 37
BEGIN
KEY "TOTALE REDDITO IMPONIBILE"
PROMPT 101 5 ""
PICTURE "###.###.###.###^^^"
PROMPT 103 5 ""
PICTURE "#.###.###.###^^^"
END
NUMERO 38
BEGIN
KEY "RITENUTE OPERATE"
PROMPT 117 5 ""
PICTURE "###.###.###.###^^^"
PROMPT 128 5 ""
PICTURE "#.###.###.###^^^"
END
NUMERO 39
BEGIN
KEY "IMPOSTA DOVUTA"
PROMPT 10 7 ""
PROMPT 11 7 ""
PICTURE "###.###.###.###^^^"
END
NUMERO 40
BEGIN
KEY "RITENUTE FISCALI"
PROMPT 27 7 ""
PROMPT 28 7 ""
PICTURE "###.###.###.###^^^"
END
NUMERO 42
BEGIN
KEY "INDENNITA' SPETTANTE"
PROMPT 61 7 ""
PROMPT 62 7 ""
PICTURE "###.###.###.###^^^"
END
NUMERO 43
BEGIN
KEY "RITENUTE OPERATE"
PROMPT 78 7 ""
PROMPT 79 7 ""
PICTURE "###.###.###.###^^^"
END
NUMERO 44
BEGIN
KEY "IMPONIBILE C.S.S.N."
PROMPT 95 7 ""
PROMPT 96 7 ""
PICTURE "###.###.###.###^^^"
END

View File

@ -3882,8 +3882,8 @@ TDipendente::TDipendente(const TCursor& cur)
{
_fine_rapporto = rec.get("DATAFR");
_lavoro_precedente = rec.get("CFDLPREC").not_empty();
_causa = rec.get_char("CAUSA");
_rettifica_conguaglio = rec.get_char("RETCON");
_causa = toupper(rec.get_char("CAUSA"));
_rettifica_conguaglio = toupper(rec.get_char("RETCON"));
_numero_progressivo = rec.get_int("NPROG");
}
else
@ -4003,6 +4003,10 @@ protected:
virtual int prima_riga(PaginaQuadro p) const;
virtual int riga_totali(PaginaQuadro p) const;
bool init(long codditta);
virtual void preprocess_corpo(const TRectype& rec);
void stampa_corpo(TPrinter& pr);
void stampa_totali(TPrinter& pr);
void stampa_firma(TPrinter& pr);
@ -4015,7 +4019,35 @@ public:
void TQuadroA::azzera_totali()
{
TPrint_section& totali = section('F', last_page);
totali.reset();
totali.reset(); // Azzera le righe
for (int i = totali.fields()-1; i >= 0; i--)
totali.field(i).set(""); // Azzera i campi
}
void TQuadroA::preprocess_corpo(const TRectype& rec)
{
if (rec.num() == LF_QUAA)
{
const bool lav_prec = rec.get("CFDLPREC").not_empty();
const char rett_con = toupper(rec.get_char("RETCON"));
const bool add = !lav_prec && rett_con != 'B';
enable_message_add(add);
// Nasconde i dati anagrafici quando rett_con = B
TPrint_section& body = section('B', odd_page);
for (int i = 2; i <= 12; i++)
{
TForm_item& f = body.field(i);
f.enable(rett_con != 'B');
}
// Stampa solo le date di fine rapporto del 95
TForm_item& datafr = body.field(16);
const TDate dfr = rec.get("DATAFR");
datafr.enable(dfr.year() == 1995);
}
}
void TQuadroA::stampa_corpo(TPrinter& pr)
@ -4090,12 +4122,18 @@ int TQuadroA::riga_totali(PaginaQuadro p) const
return prima_riga(p) + elementi_pagina(p) * h;
}
bool TQuadroA::init(long codditta)
{
azzera_totali();
return InitPrint(codditta);
}
bool TQuadroA::print(const long codditta, const long NumFis, const long NumNoFis)
{
TCursor& cur = *cursor();
TPrinter& pr = printer();
if (!InitPrint(codditta))
if (!init(codditta))
return FALSE;
pr.formlen(QA_FORMLEN);
@ -4134,23 +4172,7 @@ bool TQuadroA::print(const long codditta, const long NumFis, const long NumNoFis
}
if (!stampato_ultimo)
{
if (quadro() == "A")
{
const TDipendente& dip = indice[pos];
const bool add = !dip.lavoro_precedente() && dip.rettifica_conguaglio() != 'B';
enable_message_add(add);
TForm_item& datafr = find_field('B', odd_page, 16);
datafr.enable(dip.anno_fine_rapporto() == 1995);
} else
if (quadro() == "A2")
{
const TRectype& rec = cur.curr();
const char retcon = rec.get_char("RETCON");
const bool add = retcon != 'B';
enable_message_add(add);
}
}
preprocess_corpo(cur.curr());
switch(_PaginaCorrente)
{
@ -4290,6 +4312,7 @@ protected:
virtual int elementi_pagina(PaginaQuadro p) const;
virtual int prima_riga(PaginaQuadro p) const;
virtual long filtra(const long codditta);
virtual void preprocess_corpo(const TRectype& rec);
public:
TQuadroA1(const char* form, const char* quadro) : TQuadroA(form, quadro) { }
@ -4318,6 +4341,17 @@ long TQuadroA1::filtra(const long codditta)
return items;
}
void TQuadroA1::preprocess_corpo(const TRectype& rec)
{
if (rec.num() == LF_QUAA1)
{
// Stampa solo le date di ricezione del 95
const TDate dr = rec.get("DATARIC26");
TForm_item& dataric = find_field('B', odd_page, 26);
dataric.enable(dr.year() == 1995);
}
}
class TStampaQuadroA1 : public TStampaQuadroA
{
protected:
@ -4348,6 +4382,7 @@ class TQuadroA2 : public TQuadroA
protected:
virtual int elementi_pagina(PaginaQuadro p) const;
virtual int prima_riga(PaginaQuadro p) const;
virtual void preprocess_corpo(const TRectype& rec);
public:
TQuadroA2(const char* form, const char* quadro) : TQuadroA(form, quadro) { }
@ -4365,6 +4400,24 @@ int TQuadroA2::prima_riga(PaginaQuadro p) const
return p == PRIMA ? 32 : 4;
}
void TQuadroA2::preprocess_corpo(const TRectype& rec)
{
if (rec.num() == LF_QUAA2)
{
const char ret_con = toupper(rec.get_char("RETCON"));
const bool add = ret_con != 'B';
enable_message_add(add);
// Nasconde i dati anagrafici quando rett_con = B
TPrint_section& body = section('B', odd_page);
for (int i = 2; i <= 7; i++)
{
TForm_item& f = body.field(i);
f.enable(add);
}
}
}
class TStampaQuadroA2 : public TStampaQuadroA
{
protected:
@ -4499,6 +4552,7 @@ bool TBusta::print(const long codditta, const long, const long)
const bool ok = InitPrint(codditta);
if (ok)
{
// Calcola identificatore del quadretto corrispondente al quadro L
TForm_item& dietor = find_field('B', odd_page, 'L' * 10);
const int anno = anno_770();
const bool elle = esiste_record_L(codditta, anno);