From 5dc5a1fe6d7302a64799bdbf3abeb7e391795462 Mon Sep 17 00:00:00 2001 From: guy Date: Mon, 9 Sep 1996 10:52:13 +0000 Subject: [PATCH] Corretta stampa quadro B git-svn-id: svn://10.65.10.50/trunk@3553 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- m770/77qb.frm | 114 +++++++++++++++++++++++++------------------------ m770/77stq.cpp | 100 +++++++++++++++++++++++++++++++++---------- 2 files changed, 136 insertions(+), 78 deletions(-) diff --git a/m770/77qb.frm b/m770/77qb.frm index ba202e38a..7c9e57db9 100755 --- a/m770/77qb.frm +++ b/m770/77qb.frm @@ -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 diff --git a/m770/77stq.cpp b/m770/77stq.cpp index cf425c875..0948b57e8 100755 --- a/m770/77stq.cpp +++ b/m770/77stq.cpp @@ -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) @@ -4088,6 +4120,12 @@ int TQuadroA::riga_totali(PaginaQuadro p) const { const int h = ((TQuadroA*)this)->section('B', odd_page).height(); 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) @@ -4095,7 +4133,7 @@ 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) { } @@ -4316,7 +4339,18 @@ long TQuadroA1::filtra(const long codditta) const long items = cursor()->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 { @@ -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: @@ -4498,7 +4551,8 @@ 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);