From 3d7dd11af562da83cddc3ad78180d795191ea03d Mon Sep 17 00:00:00 2001 From: guy Date: Fri, 10 Feb 1995 17:41:38 +0000 Subject: [PATCH] Corretta decodifica registri nelle causali Allineato uso dei file isam temporanei nelle stampe Zerofillato mese nell'accesso a PIM e PLM in prima nota git-svn-id: svn://10.65.10.50/trunk@989 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- cg/cg0500.cpp | 96 ++++++++++++++++++++++++++++----------------------- cg/cg1500.cpp | 59 ++++++++++++++++--------------- cg/cg2101.cpp | 6 ++-- cg/cg3500.cpp | 13 +++---- 4 files changed, 94 insertions(+), 80 deletions(-) diff --git a/cg/cg0500.cpp b/cg/cg0500.cpp index 75280752f..a85d335a9 100755 --- a/cg/cg0500.cpp +++ b/cg/cg0500.cpp @@ -43,7 +43,8 @@ typedef enum { no_descr, acquisto, vendita, incasso_pagamento, protected: static bool filtra_reg(const TRelation * r); - void set_reg_filter(); + int calc_filter(const TString& tpd); + void set_reg_filter(int filtro); static bool tipocf_hndl (TMask_field& f, KEY k); static bool cod_reg_hndl (TMask_field& f, KEY k); @@ -91,11 +92,11 @@ protected: // int cancella(long items); public: - tipo_descr _tipo_des; // Il tipo di causale corrente + tipo_descr _tipo_des; // Il tipo di causale corrente void compila_array (const TString&, int, int, int); - TSheet_field& ss() const { return *_sheet; } + TSheet_field& ss() const { return *_sheet; } TMask& ss_mask() const { return _sheet->sheet_mask(); } void add_riga (int numrig, char sz, TConto& tc, const TString& d, const TString& da); @@ -112,26 +113,26 @@ HIDDEN TCaus_app& app() { return (TCaus_app&) main_app(); } bool TCaus_app::filtra_reg(const TRelation * r) { - bool ok = FALSE; + bool ok = TRUE; const TRectype& rec = r->lfile().curr(); const int anno = atoi(rec.get("CODTAB").left(4)); if (anno == app().anno_iva()) { - const int tiporeg = rec.get_int("I0"); + const TipoIVA tiporeg = (TipoIVA)rec.get_int("I0"); const bool corrisp = rec.get_bool("B0"); switch (app()._filtro) { case 1: - ok = tiporeg == 1; break; + ok = tiporeg == iva_vendite; break; case 2: - ok = (tiporeg == 1 && corrisp); break; + ok = (tiporeg == iva_vendite && corrisp); break; case 3: - ok = tiporeg == 2; break; + ok = tiporeg == iva_acquisti; break; case 4: // tiporeg 1 senza corrisp OPPURE 2 (NC ST ND AF) - ok = tiporeg == 2 || (tiporeg == 1 && !corrisp) ; break; + ok = tiporeg == iva_acquisti || (tiporeg == iva_vendite && !corrisp) ; break; default: break; } @@ -276,8 +277,10 @@ bool TCaus_app::m770_hndl (TMask_field& f, KEY k) return TRUE; } -void TCaus_app::set_reg_filter() -{ +void TCaus_app::set_reg_filter(int f) +{ + _filtro = f; + TEdit_field& reg = _msk->efield(F_COD_REG); reg.browse()->cursor()->set_filterfunction(filtra_reg); @@ -285,6 +288,39 @@ void TCaus_app::set_reg_filter() des.browse()->cursor()->set_filterfunction(filtra_reg); } + +int TCaus_app::calc_filter(const TString& tpd) +{ + TTable tabtpd("%TPD"); + tabtpd.put("CODTAB", tpd); + + int filtro = 0; + + if (tabtpd.read() == NOERR) + { + const TipoIVA i = (TipoIVA)tabtpd.get_int("I0"); // IVA acquisti, vendite, generica + const bool corrisp = tabtpd.get_bool("B0"); + + if (i == iva_vendite) // vendite + { + if (corrisp) // vendite con corrispettivi + filtro = 2; + else // vendite senza corrispettivi + filtro = 1; + } else + if ( i == iva_acquisti ) // acquisti + filtro = 3; + else + if ( i == 9 ) // sia acquisti che vendite + filtro = 4; + } + + set_reg_filter(filtro); + + return filtro; +} + + bool TCaus_app::tipodoc_hndl (TMask_field& f, KEY k) { // Testo K_TAB perche' il controllo deve scattare anche all'inizio @@ -302,39 +338,7 @@ bool TCaus_app::tipodoc_hndl (TMask_field& f, KEY k) field_reg.enable(); m.enable(F_DES_REG); - - TTable tabtpd("%TPD"); - tabtpd.put("CODTAB", val); - - if (tabtpd.read() == NOERR) - { - const TipoIVA i = (TipoIVA)tabtpd.get_int("I0"); // IVA acquisti, vendite, generica - const bool corrisp = tabtpd.get_bool("B0"); - - if (i == 1) // vendite - { - if (corrisp) // vendite con corrispettivi - { - app()._filtro = 2; - app().set_reg_filter(); - } - else // vendite senza corrispettivi - { - app()._filtro = 1; - app().set_reg_filter(); - } - } else - if ( i == 2 ) // acquisti - { - app()._filtro = 3; - app().set_reg_filter(); - } else - if ( i == 9 ) // sia acquisti che vendite - { - app()._filtro = 4; - app().set_reg_filter(); - } - } + app().calc_filter(val); } else // TIPODOC vuoto || IN || PG || AN { @@ -667,6 +671,10 @@ int TCaus_app::read(TMask& m) m.autoload(_rel); read_rcaus(m); fill_sheet(m); + + const TString16 tpd = m.get(F_TIPO_DOC); + calc_filter(tpd); + return NOERR; } diff --git a/cg/cg1500.cpp b/cg/cg1500.cpp index 61bd7c076..c4227266d 100755 --- a/cg/cg1500.cpp +++ b/cg/cg1500.cpp @@ -651,7 +651,7 @@ void CG1500_application::scrivic_file_temp() void CG1500_application::scrivis_file_temp(int g, int c, long s, real saldo) { TIsamtempfile* tmp = NULL; - TString nome_campo(12); + TString16 nome_campo; if (_indbil==1) { @@ -778,17 +778,18 @@ bool CG1500_application::bil_sez_contr() bool esiste_conto=FALSE, esiste_sc = FALSE; bool movimentato = FALSE; - _tmp_saldi_att->open("cg01"); + CHECK(_tmp_saldi_att == NULL, "La minchia che riapro cg01"); + _tmp_saldi_att = new TIsamtempfile(LF_SALDI, "cg01", 2); _prog->addstatus(1); - _tmp_saldi_pass->open("cg02"); + _tmp_saldi_pass = new TIsamtempfile(LF_SALDI, "cg02", 2); _prog->addstatus(1); - _tmp_saldi_costi->open("cg03"); + _tmp_saldi_costi = new TIsamtempfile(LF_SALDI, "cg03", 2); _prog->addstatus(1); - _tmp_saldi_ricavi->open("cg04"); + _tmp_saldi_ricavi = new TIsamtempfile(LF_SALDI, "cg04", 2); _prog->addstatus(1); - _tmp_saldi_conti_uno->open("cg05"); + _tmp_saldi_conti_uno = new TIsamtempfile(LF_SALDI, "cg05", 2); _prog->addstatus(1); - _tmp_saldi_conti_due->open("cg06"); + _tmp_saldi_conti_due = new TIsamtempfile(LF_SALDI, "cg06", 2); _prog->addstatus(1); _gp=-1; @@ -1120,7 +1121,8 @@ bool CG1500_application::bil_verifica() real mov_gruppo_dare, mov_gruppo_avere, prg_gruppo_dare, prg_gruppo_avere; bool esiste_conto = FALSE, esiste_sc = FALSE, movimentato = FALSE; - _tmp_saldi_att->open("cg01"); + CHECK(_tmp_saldi_att == NULL, "La minchia che riapro cg01"); + _tmp_saldi_att = new TIsamtempfile(LF_SALDI, "cg01", 2); _gp=-1; _cp=-1; @@ -2234,19 +2236,21 @@ void CG1500_application::postclose_print() { if (_bilancio == 1) { - _tmp_saldi_att->close(); - _tmp_saldi_pass->close(); - _tmp_saldi_costi->close(); - _tmp_saldi_ricavi->close(); - _tmp_saldi_conti_uno->close(); - _tmp_saldi_conti_due->close(); + delete _tmp_saldi_att; _tmp_saldi_att = NULL; + delete _tmp_saldi_pass; _tmp_saldi_pass = NULL; + delete _tmp_saldi_costi; _tmp_saldi_costi = NULL; + delete _tmp_saldi_ricavi; _tmp_saldi_ricavi = NULL; + delete _tmp_saldi_conti_uno; _tmp_saldi_conti_uno = NULL; + delete _tmp_saldi_conti_due; _tmp_saldi_conti_due = NULL; } else { if (_verifica == 3) delete _sort; else - _tmp_saldi_att->close(); + { + delete _tmp_saldi_att; _tmp_saldi_att = NULL; + } } //return NEXT_PAGE; } @@ -2913,12 +2917,12 @@ bool CG1500_application::user_create() _nditte = new TLocalisamfile(LF_NDITTE); _anag = new TLocalisamfile(LF_ANAG); _esc = new TTable("ESC"); - _tmp_saldi_att = new TIsamtempfile(LF_SALDI); - _tmp_saldi_pass = new TIsamtempfile(LF_SALDI); - _tmp_saldi_costi = new TIsamtempfile(LF_SALDI); - _tmp_saldi_ricavi = new TIsamtempfile(LF_SALDI); - _tmp_saldi_conti_uno = new TIsamtempfile(LF_SALDI); - _tmp_saldi_conti_due = new TIsamtempfile(LF_SALDI); + _tmp_saldi_att = NULL; + _tmp_saldi_pass = NULL; + _tmp_saldi_costi = NULL; + _tmp_saldi_ricavi = NULL; + _tmp_saldi_conti_uno = NULL; + _tmp_saldi_conti_due = NULL; return TRUE; } @@ -2935,12 +2939,13 @@ bool CG1500_application::user_destroy() delete _nditte; delete _anag; delete _esc; - delete _tmp_saldi_att; - delete _tmp_saldi_pass; - delete _tmp_saldi_costi; - delete _tmp_saldi_ricavi; - delete _tmp_saldi_conti_uno; - delete _tmp_saldi_conti_due; + + if (_tmp_saldi_att) delete _tmp_saldi_att; + if (_tmp_saldi_pass) delete _tmp_saldi_pass; + if (_tmp_saldi_costi) delete _tmp_saldi_costi; + if (_tmp_saldi_ricavi) delete _tmp_saldi_ricavi; + if (_tmp_saldi_conti_uno) delete _tmp_saldi_conti_uno; + if (_tmp_saldi_conti_due) delete _tmp_saldi_conti_due; return TRUE; } diff --git a/cg/cg2101.cpp b/cg/cg2101.cpp index defaa38ab..7c41d66a4 100755 --- a/cg/cg2101.cpp +++ b/cg/cg2101.cpp @@ -189,8 +189,7 @@ bool TMovimentoPN::controlla_liquidazione(const TDate& data, bool reset) const const int mese = date2liq(data); // Chiave di LIM: Anno (1-4), Mese (5-6) - TString16 key; - key << anno << mese; + TString16 key; key.format("%04d%02d", anno, mese); TTable lim("LIM"); lim.setkey(1); lim.put("CODTAB", key); @@ -285,7 +284,8 @@ int TMovimentoPN::registra(bool re, bool force) for (int a = 1; a <= att; a++) { TString16 chiave; - chiave << annoiva << registro.attivita() << a << date2liq(datareg); + chiave << annoiva << registro.attivita() << a + << format("%02d", date2liq(datareg)); plm.put("CODTAB", chiave); if (plm.read() == NOERR) { diff --git a/cg/cg3500.cpp b/cg/cg3500.cpp index 7a21f4a5c..7f884f0fd 100755 --- a/cg/cg3500.cpp +++ b/cg/cg3500.cpp @@ -4,7 +4,6 @@ #include #include #include -#include #include #include @@ -74,9 +73,10 @@ bool CG3500_application::riepilogo() char tipo_conto = ' '; bool esiste_conto = FALSE, esiste_sc = FALSE; real saldo_conto,prg_conto_dare,prg_conto_avere,saldo_gruppo,prg_gruppo_dare,prg_gruppo_avere,prg_dare,prg_avere,saldo; - - _tmp_saldi->open("cg01"); + CHECK(_tmp_saldi == NULL, "La minchia che riapro cg01!"); + _tmp_saldi = new TIsamtempfile(LF_SALDI, "cg01", 2); + gp=-1; cp=-1; _udata_max = 0l; @@ -637,8 +637,9 @@ bool CG3500_application::preprocess_page(int file, int counter) } void CG3500_application::postclose_print() -{ - _tmp_saldi->close(); +{ + if (_tmp_saldi) + { delete _tmp_saldi; _tmp_saldi = NULL; } //return NEXT_PAGE; } @@ -761,7 +762,7 @@ bool CG3500_application::user_create() _saldi = new TLocalisamfile(LF_SALDI); _nditte = new TLocalisamfile(LF_NDITTE); _anag = new TLocalisamfile(LF_ANAG); - _tmp_saldi = new TIsamtempfile (LF_SALDI); + _tmp_saldi = NULL; return TRUE; }