From 42329619687071fc7ffe3655abf6d45c2d0da007 Mon Sep 17 00:00:00 2001 From: guy Date: Thu, 10 Oct 1996 10:40:50 +0000 Subject: [PATCH] 77qd1.frm Aggiunte due X per le ritenute nella testata 77stq.cpp Sistemata separazione tra diverse ritenute del quadro D1 77stqab.cpp Tolta riga inutile nella calcola firma git-svn-id: svn://10.65.10.50/trunk@3745 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- m770/77qd1.frm | 12 +++++ m770/77stq.cpp | 130 ++++++++++++++++++++++++++++++----------------- m770/77stqab.cpp | 6 +-- 3 files changed, 98 insertions(+), 50 deletions(-) diff --git a/m770/77qd1.frm b/m770/77qd1.frm index 775c3eb7a..ecfdea6db 100755 --- a/m770/77qd1.frm +++ b/m770/77qd1.frm @@ -170,6 +170,18 @@ BEGIN PROMPT 125 22 "" END +STRINGA 21 +BEGIN + KEY "Ritenuta d'acconto" + PROMPT 110 21 "" +END + +STRINGA 22 +BEGIN + KEY "Ritenuta d'imposta" + PROMPT 110 22 "" +END + END SECTION BODY ODD 6 diff --git a/m770/77stq.cpp b/m770/77stq.cpp index 5d77b267d..e26537477 100755 --- a/m770/77stq.cpp +++ b/m770/77stq.cpp @@ -589,7 +589,7 @@ void TDicForm::jump_to_line(TPrinter& pr, const int lin) void TDicForm::stampa_totali(TPrinter& pr) { TPrint_section& totali = section('F', last_page); - totali.update(); + totali.update(); for (int i = 0; i < totali.items(); i++) { pr.print(totali.row(i)); @@ -702,7 +702,7 @@ class TQuadroG : public TDicForm void stampa_prospetti3_4(TPrinter& pr); protected: - virtual bool ultima_pagina() const { return _PaginaCorrente==SECONDA; } + virtual bool ultima_pagina() const { return _PaginaCorrente==SECONDA; } virtual void inc_curr_page(); virtual void next_page(TPrinter& pr); virtual void stampa_totali(TPrinter& pr) {} @@ -2223,14 +2223,14 @@ bool TQuadroD1::controlla_percentuale(TCursor* cur, const real& perc_p) void TQuadroD1::leggi_importi() { - TCursor* cur = cursor(); + TRectype& cur = cursor()->curr(); - _totale = cur->curr().get_real(QD1_TOTALE); - _quotapro = cur->curr().get_real(QD1_QUOTAPRO); - _speseant = cur->curr().get_real(QD1_SPESEANT); - _imponibile = cur->curr().get_real(QD1_IMPONIBILE); - _importo = cur->curr().get_real(QD1_IMPORTO); - _netto = cur->curr().get_real(QD1_NETTO); + _totale = cur.get_real(QD1_TOTALE); + _quotapro = cur.get_real(QD1_QUOTAPRO); + _speseant = cur.get_real(QD1_SPESEANT); + _imponibile = cur.get_real(QD1_IMPONIBILE); + _importo = cur.get_real(QD1_IMPORTO); + _netto = cur.get_real(QD1_NETTO); } void TQuadroD1::setta_importi(TPrint_section& body) @@ -2315,6 +2315,8 @@ bool TQuadroD1::print(const long codditta, const long NumFis, const long NumNoFi { bool StabilitaInesistenzaNoFis = FALSE; bool StabilitaInesistenzaFis = FALSE; + bool StampatoRitenutaImposta = FALSE; + long CtrFis = NumFis; long CtrNoFis = NumNoFis; long PtrFis = -1L, PtrNoFis=-1L; @@ -2338,22 +2340,35 @@ bool TQuadroD1::print(const long codditta, const long NumFis, const long NumNoFi { for (int pagina=1; pagina <= QD_PAGINE; pagina++, next_page(pr)) { - pr.formlen(QD_FORMLEN); - + pr.formlen(dic_form_len()); + if (_PaginaCorrente == PRIMA) { if (_modulaser) ClearFlagModulaser(); - bool testata = TRUE; for (int righe=0; righe < QD1_RIGHE_PRIMA; righe++) { stampa = TRUE; // Stampa intestazione, solo sul primo foglio. - if (testata) + if (righe == 0) { (*cur) = PtrFis >= 0L ? PtrFis : 0L; + + const char tipo = cur->curr().get(QD1_TIPOA)[0]; + TPrint_section& head = section('H', first_page); + if (tipo == 'F') + { + const bool rit_acc = cur->curr(-14).get_bool("B0"); + head.find_field(21).set(rit_acc ? "X" : ""); + head.find_field(22).set(rit_acc ? "" : "X"); + } + else + { + head.find_field(21).set(""); + head.find_field(22).set(""); + } + stampa_testata(pr); - testata = FALSE; } if (_finite_fis || StabilitaInesistenzaFis) @@ -2388,17 +2403,23 @@ bool TQuadroD1::print(const long codditta, const long NumFis, const long NumNoFi (*cur) = PtrFis; const char tipo = cur->curr().get(QD1_TIPOA)[0]; - if (tipo != 'F') - break; - else - { + if (tipo == 'F') + { + const bool rit_imp = !cur->curr(-14).get_bool("B0"); + if (righe > 0 && rit_imp && !StampatoRitenutaImposta) + break; + CtrFis--; if (CtrFis == 0L) _finite_fis = TRUE; real perc_p = cur->curr().get_real(QD1_PERC); stampa = controlla_percentuale(cur,perc_p); if (stampa) + { set_body(pr, 'F'); + if (rit_imp) + StampatoRitenutaImposta = TRUE; + } else { leggi_importi(); @@ -2414,6 +2435,8 @@ bool TQuadroD1::print(const long codditta, const long NumFis, const long NumNoFi LastRecord = cur->pos() >= _Items-1; } } + else + break; } // for righe.. PtrFis = cur->pos(); } @@ -2439,17 +2462,23 @@ bool TQuadroD1::print(const long codditta, const long NumFis, const long NumNoFi (*cur) = PtrFis; const char tipo = cur->curr().get(QD1_TIPOA)[0]; - if (tipo != 'F') - break; - else + if (tipo == 'F') { + const bool rit_imp = !cur->curr(-14).get_bool("B0"); + if (rit_imp && !StampatoRitenutaImposta) + break; + CtrFis--; if (CtrFis == 0L) _finite_fis = TRUE; real perc_p = cur->curr().get_real(QD1_PERC); stampa = controlla_percentuale(cur,perc_p); if (stampa) + { set_body(pr, 'F'); + if (rit_imp) + StampatoRitenutaImposta = TRUE; + } else { leggi_importi(); @@ -2464,6 +2493,8 @@ bool TQuadroD1::print(const long codditta, const long NumFis, const long NumNoFi LastRecord = cur->pos() >= _Items-1; } } + else + break; } PtrFis = cur->pos(); } @@ -2487,17 +2518,22 @@ bool TQuadroD1::print(const long codditta, const long NumFis, const long NumNoFi (*cur) = PtrFis; const char tipo = cur->curr().get(QD1_TIPOA)[0]; - if (tipo != 'F') - break; - else + if (tipo == 'F') { + const bool rit_imp = !cur->curr(-14).get_bool("B0"); + if (rit_imp && !StampatoRitenutaImposta) + break; CtrFis--; if (CtrFis == 0L) _finite_fis = TRUE; real perc_p = cur->curr().get_real(QD1_PERC); stampa = controlla_percentuale(cur,perc_p); if (stampa) + { set_body(pr, 'F'); + if (rit_imp) + StampatoRitenutaImposta = TRUE; + } else { leggi_importi(); @@ -2513,6 +2549,8 @@ bool TQuadroD1::print(const long codditta, const long NumFis, const long NumNoFi LastRecord = cur->pos() >= _Items-1; } } + else + break; } PtrFis = cur->pos(); } @@ -2629,7 +2667,7 @@ bool TStampaQuadroD1::user_create() _form = new TQuadroD1("77QD1", quadro()); TString sortkey(80); - sortkey.format("CODDITTA|TIPOA|216@->RAGSOC|CODANAGR|CODCAUS|PERC", LF_QUAD1, LF_QUAD1); + sortkey.format("CODDITTA|TIPOA|14@->B0-|216@->RAGSOC|CODANAGR|CODCAUS|PERC"); _cur = new TSorted_cursor(_form->TForm::relation(), sortkey); return TRUE; @@ -3170,7 +3208,7 @@ class TQuadroF : public TDicForm void azzera_contatori(); void aggiorna_totali(char tipoprosp, TRectype& r); void stampa_totali(char tipoprosp, TPrinter& pr); - virtual bool ultima_pagina() const { return _PaginaCorrente==SECONDA; } + virtual bool ultima_pagina() const { return _PaginaCorrente==SECONDA; } public: virtual bool print(const long codditta, const long numfis=0L, const long numnofis=0L); @@ -3736,9 +3774,9 @@ bool get_alleg_730(const long codditta) base.put("CODDITTA",(long)codditta); if (base.read()==NOERR) { - const long allegA=base.get_long("N730ALLA"); - const long allegA2=base.get_long("N730ALLA2"); - return allegA || allegA2; + const long allegA=base.get_long("N730ALLA"); + const long allegA2=base.get_long("N730ALLA2"); + return allegA || allegA2; } else return FALSE; @@ -3767,29 +3805,29 @@ bool TBusta::print(const long codditta, const long, const long) all730.set(bAlleg730 ? "X" : ""); TPrinter& pr=printer(); - TPrint_section& body = section('B', odd_page); - const int body_righe = body.height(); + TPrint_section& body = section('B', odd_page); + const int body_righe = body.height(); TCursor* cur=cursor(); - bool finito=FALSE; + bool finito=FALSE; (*cur)=0L; pr.formlen(BUSTA_CON_POSIZ); if (!_PaginaPosizionamento) jump_to_line(pr,prima_riga(PRIMA)); - while (!finito) - { - body.reset(); - body.update(); - for (int i=0; i < body_righe; i++) - { - pr.print(body.row(i)); - _RigaCorr++; - } - if (usa_progind()) - progind()->addstatus(1); - ++(*cur); - finito= cur->pos() >= cur->items()-1; + while (!finito) + { + body.reset(); + body.update(); + for (int i=0; i < body_righe; i++) + { + pr.print(body.row(i)); + _RigaCorr++; + } + if (usa_progind()) + progind()->addstatus(1); + ++(*cur); + finito= cur->pos() >= cur->items()-1; pr.formlen(BUSTA_SENZA_POSIZ); - _PaginaPosizionamento=FALSE; + _PaginaPosizionamento=FALSE; } // TForm::print(0); } diff --git a/m770/77stqab.cpp b/m770/77stqab.cpp index b4a088759..bb0c2394b 100755 --- a/m770/77stqab.cpp +++ b/m770/77stqab.cpp @@ -170,11 +170,9 @@ int TQuadroA::calcola_firma() TString nome = cognome.mid(30, -1); cognome.cut(30); cognome.trim(); cognome << ' ' << nome; - signature.set(cognome); - - totali.row(y).reset(); - totali.row(y).put(cognome, signature.x()-1); } + totali.row(y).reset(); + totali.row(y).put(cognome, signature.x()-1); return y; }