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

View File

@ -3882,8 +3882,8 @@ TDipendente::TDipendente(const TCursor& cur)
{ {
_fine_rapporto = rec.get("DATAFR"); _fine_rapporto = rec.get("DATAFR");
_lavoro_precedente = rec.get("CFDLPREC").not_empty(); _lavoro_precedente = rec.get("CFDLPREC").not_empty();
_causa = rec.get_char("CAUSA"); _causa = toupper(rec.get_char("CAUSA"));
_rettifica_conguaglio = rec.get_char("RETCON"); _rettifica_conguaglio = toupper(rec.get_char("RETCON"));
_numero_progressivo = rec.get_int("NPROG"); _numero_progressivo = rec.get_int("NPROG");
} }
else else
@ -4003,6 +4003,10 @@ protected:
virtual int prima_riga(PaginaQuadro p) const; virtual int prima_riga(PaginaQuadro p) const;
virtual int riga_totali(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_corpo(TPrinter& pr);
void stampa_totali(TPrinter& pr); void stampa_totali(TPrinter& pr);
void stampa_firma(TPrinter& pr); void stampa_firma(TPrinter& pr);
@ -4015,7 +4019,35 @@ public:
void TQuadroA::azzera_totali() void TQuadroA::azzera_totali()
{ {
TPrint_section& totali = section('F', last_page); 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) void TQuadroA::stampa_corpo(TPrinter& pr)
@ -4088,6 +4120,12 @@ int TQuadroA::riga_totali(PaginaQuadro p) const
{ {
const int h = ((TQuadroA*)this)->section('B', odd_page).height(); const int h = ((TQuadroA*)this)->section('B', odd_page).height();
return prima_riga(p) + elementi_pagina(p) * h; 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) bool TQuadroA::print(const long codditta, const long NumFis, const long NumNoFis)
@ -4095,7 +4133,7 @@ bool TQuadroA::print(const long codditta, const long NumFis, const long NumNoFis
TCursor& cur = *cursor(); TCursor& cur = *cursor();
TPrinter& pr = printer(); TPrinter& pr = printer();
if (!InitPrint(codditta)) if (!init(codditta))
return FALSE; return FALSE;
pr.formlen(QA_FORMLEN); pr.formlen(QA_FORMLEN);
@ -4134,23 +4172,7 @@ bool TQuadroA::print(const long codditta, const long NumFis, const long NumNoFis
} }
if (!stampato_ultimo) if (!stampato_ultimo)
{ preprocess_corpo(cur.curr());
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);
}
}
switch(_PaginaCorrente) switch(_PaginaCorrente)
{ {
@ -4290,6 +4312,7 @@ protected:
virtual int elementi_pagina(PaginaQuadro p) const; virtual int elementi_pagina(PaginaQuadro p) const;
virtual int prima_riga(PaginaQuadro p) const; virtual int prima_riga(PaginaQuadro p) const;
virtual long filtra(const long codditta); virtual long filtra(const long codditta);
virtual void preprocess_corpo(const TRectype& rec);
public: public:
TQuadroA1(const char* form, const char* quadro) : TQuadroA(form, quadro) { } TQuadroA1(const char* form, const char* quadro) : TQuadroA(form, quadro) { }
@ -4316,7 +4339,18 @@ long TQuadroA1::filtra(const long codditta)
const long items = cursor()->items(); const long items = cursor()->items();
return items; 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 class TStampaQuadroA1 : public TStampaQuadroA
{ {
@ -4348,6 +4382,7 @@ class TQuadroA2 : public TQuadroA
protected: protected:
virtual int elementi_pagina(PaginaQuadro p) const; virtual int elementi_pagina(PaginaQuadro p) const;
virtual int prima_riga(PaginaQuadro p) const; virtual int prima_riga(PaginaQuadro p) const;
virtual void preprocess_corpo(const TRectype& rec);
public: public:
TQuadroA2(const char* form, const char* quadro) : TQuadroA(form, quadro) { } 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; 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 class TStampaQuadroA2 : public TStampaQuadroA
{ {
protected: protected:
@ -4498,7 +4551,8 @@ bool TBusta::print(const long codditta, const long, const long)
{ {
const bool ok = InitPrint(codditta); const bool ok = InitPrint(codditta);
if (ok) if (ok)
{ {
// Calcola identificatore del quadretto corrispondente al quadro L
TForm_item& dietor = find_field('B', odd_page, 'L' * 10); TForm_item& dietor = find_field('B', odd_page, 'L' * 10);
const int anno = anno_770(); const int anno = anno_770();
const bool elle = esiste_record_L(codditta, anno); const bool elle = esiste_record_L(codditta, anno);