diff --git a/src/cg/cg1500.cpp b/src/cg/cg1500.cpp index e582c80b9..b6b1b13ce 100755 --- a/src/cg/cg1500.cpp +++ b/src/cg/cg1500.cpp @@ -5,8 +5,8 @@ // - Non esistono piu' i progressivi dei movimenti scaricati PDARESCA e PAVERESCA; // - Ora esistono un record per i movimenti normali e un record per i movimenti scaricati; la // distinzione e' resa possibile dall' introduzione in chiave di un flag FLSCA (vedi tracciato) -// che e' un booleano. Il record con FLSCA = FALSE contiene la somma dei saldi dei movimenti -// normali e dei movimenti scaricati, mentre il record con FLSCA = TRUE, contiene solo i saldi +// che e' un booleano. Il record con FLSCA = false contiene la somma dei saldi dei movimenti +// normali e dei movimenti scaricati, mentre il record con FLSCA = true, contiene solo i saldi // dei movimenti scaricati. // Tutti i progressivi che nel programma venivano memorizzati nei campi PDARESCA e PAVERESCA dei // file temporanei ora sono memorizzati in PDAREPRO e PAVEREPRO. @@ -41,17 +41,17 @@ #include "cg1.h" #include "cg1500.h" -#include "cglib01.h" -#include "cglib02.h" +#include "cglib.h" + class TStampa_bilanci : public TPrintapp { - static bool mask_anno (TMask_field& f, KEY k); + static bool mask_anno (TMask_field& f, KEY k); static bool mask_datalim (TMask_field& f, KEY k); static bool verifica_handler(TMask_field& f, KEY k); - static bool mask_date (TMask_field& f, KEY k); + static bool mask_dataini (TMask_field& f, KEY k); static bool mask_bilancio(TMask_field& f, KEY k); - static bool mask_tipost (TMask_field& f, KEY k); + static bool mask_tipost (TMask_field& f, KEY k); struct cli_for { @@ -72,7 +72,6 @@ class TStampa_bilanci : public TPrintapp TRelation* _rel; TCursor * _cur; - TProgress_monitor * _prog; TSaldi_list* _listacf, * _lista; TLocalisamfile* _com, * _pcn, * _mov, * _rmov, * _clifo, * _saldi, * _nditte,* _anag,* _caus; TIsamtempfile * _tmp_saldi_att, * _tmp_saldi_pass, * _tmp_saldi_conti_uno; @@ -84,13 +83,12 @@ class TStampa_bilanci : public TPrintapp TString _cofi,_cap,_paiva,_ragsoc,_comunefis,_provfis,_viafis; TString _descr_dare, _descr_avere, _gc_corr_dare, _gc_corr_avere, _descr; TString _gc_prec_dare, _gc_prec_avere, _situazione, _descr_succ; - TString _tmp; #ifdef CONT_SEP TString _cont_sep; #endif char _tipo_conto, _tipoc_succ; - int _annoes, _bilancio, _tipo_stampa, _tipo_stampa1,_stampa_width,_gp,_cp,_i; + int _annoes, _bilancio, _tipo_stampa,_stampa_width,_gp,_cp,_i; int _eof1, _eof2, _gruppo_dare, _gruppo_avere, _conto_dare, _conto_avere; int _add_file_da, _add_file_a, _indbil_dare, _indbil_avere, _indbil; int _eof3, _eof4, _eof5, _eof6, _verifica, _stampac, _stampav, _ordinamento, _print_full_code; @@ -110,13 +108,14 @@ class TStampa_bilanci : public TPrintapp real _prg_saldoini_dare, _prg_saldoini_avere, _prg_inidare_ord, _prg_iniavere_ord; real _nuovo_tot_saldo_d, _nuovo_tot_saldo_a; - TDate _datalim, _data, _datada, _dataa, _dataini, _ultima_data, _u_max; + TDate _data, _dal, _al, _dataini, _ultima_data, _u_max; bool _cambiato_conto_1, _cambiato_conto_2, _add_file_avere; bool _add_file_dare, _prima_volta, _seconda_volta, _totali, _codici, _saldo; bool _add_dare, _add_avere, _controlla, _salto_pagina, _flag, _stampato; bool _sottoc_dare, _sottoc_avere, _salto_pagina1, _livello_conto; bool _mov_ap,_quadratura; bool _print_exercise, _hide_clifo; + TTipo_data _tipo_data; int _stampa_mov_prov; TBill _bill_from, _bill_to; TArray _clienti, _fornitori; @@ -126,10 +125,6 @@ class TStampa_bilanci : public TPrintapp #endif public: - TDate _inizioEs, _fineEs; - - int date2esc(const TDate& d, int* prevesc = NULL); - bool menu (MENU_TAG m) { return TPrintapp::menu(m) ; } virtual bool user_create() ; virtual bool user_destroy(); @@ -144,8 +139,6 @@ public: virtual void postclose_print(); virtual void set_page(int,int); real compensazione(bool compensa, int indbil_conto, real& saldo); - //const char* causale_chiusura() { return _causale_chi;} - //const char* causale_apertura() { return _causale_ap;} bool bil_sez_contr(); bool bil_verifica(); bool ricerca_sottoc_clifo(int,int,bool,int,real&); @@ -179,7 +172,6 @@ public: void stampa_totali(); void stampa_totali_uno(const real&, const real&); void controlla_conto(int,int); - const char* DescrizioneConto(int,int,long,char); //chiama quella di TConto TDate UltimaData(int,int,long,int); void stampa_un_bilancio(const TMask& m); @@ -188,361 +180,139 @@ public: HIDDEN inline TStampa_bilanci& app() { return (TStampa_bilanci&)main_app(); } -TDate InizioEsercizio(int anno) -{ - TEsercizi_contabili esc; - TDate inizio_es; - if (esc.exist(anno)) - inizio_es = esc[anno].inizio(); - return inizio_es; -} - -TDate FineEsercizio(int anno) -{ - TEsercizi_contabili esc; - TDate fine_es; - if (esc.exist(anno)) - fine_es = esc[anno].fine(); - return fine_es; -} - -bool IsEsercizio (const TDate& datalim, int anno_eser) -{ - TEsercizi_contabili esc; - bool yes = esc.date2esc(datalim) == anno_eser; - return yes; -} - -int TStampa_bilanci::date2esc(const TDate& d, int* prevesc) -{ - TEsercizi_contabili esc; - int anno = esc.date2esc(d); - if (prevesc) - *prevesc = esc.pred(anno); - return anno; -} - bool TStampa_bilanci::mask_anno(TMask_field& f, KEY k) { + TMask& m = f.mask(); + if (k == K_ENTER) { - int tipo_stampa; - int anno = f.mask().get_int(F_ANNO); - int bilancio = f.mask().get_int(F_BILANCIO); - if (bilancio == 1) - tipo_stampa = f.mask().get_int(F_STAMPA); - else - tipo_stampa = f.mask().get_int(F_STAMPA1); - if (tipo_stampa == 2) - if (anno == 0) - { - f.error_box(TR("Indicare l'anno di esercizio")); - return FALSE; - } + const int tipo_stampa = m.get_int(F_STAMPA); + const int anno = m.get_int(F_ANNO); + + if (tipo_stampa == 2 && anno == 0) + return f.error_box(TR("Indicare l'anno di esercizio")); } - if ( k == K_TAB || f.focusdirty()) + if (f.running_check(k)) { - int tipo_stampa; - int anno = f.mask().get_int(F_ANNO); - int bilancio = f.mask().get_int(F_BILANCIO); - if (bilancio == 1) - tipo_stampa = f.mask().get_int(F_STAMPA); - else - tipo_stampa = f.mask().get_int(F_STAMPA1); - - if ((bilancio == 2) && (tipo_stampa == 1)) - if (anno != 0) - { - f.mask().show(F_DATADA); - f.mask().show(F_DATAA); - //f.mask().show(F_STAMPAMPROV); - f.mask().show(96); - f.mask().show(97); - f.mask().hide(98); - f.mask().hide(99); - } - else - { - f.mask().show(F_DATADA); - f.mask().show(F_DATAA); - //f.mask().show(F_STAMPAMPROV); - f.mask().show(98); - f.mask().show(99); - f.mask().hide(96); - f.mask().hide(97); - } - } - if (k == K_TAB) - { - int tipo_bil, tipo_stp; - tipo_bil = f.mask().get_int(F_BILANCIO); - if (tipo_bil == 1) - tipo_stp = f.mask().get_int(F_STAMPA); - else - tipo_stp = f.mask().get_int(F_STAMPA1); - if (tipo_bil == 2 && tipo_stp == 1 /* && f.mask().get_int(F_ANNO) == 0 */) - f.mask().show(F_QUADRATURA); - else - { - f.mask().set (F_QUADRATURA,""); - f.mask().hide(F_QUADRATURA); - } + const int tipo_stampa = m.get_int(F_STAMPA); + const int anno = m.get_int(F_ANNO); + const int bilancio = m.get_int(F_BILANCIO); + const TDate datalim = m.get_date(F_DATALIM); + TDate data; + + if (esercizi().exist(datalim)) + data = esercizio(datalim).fine(); + m.enable_page(1, bilancio != 1); + m.show(F_DATAINI, bilancio == 2 && tipo_stampa == 1); + m.show(F_QUADRATURA, bilancio == 2 && tipo_stampa == 1 && data == datalim); } - return TRUE; + return true; } bool TStampa_bilanci::mask_bilancio(TMask_field& f, KEY k) { - int tipo_bil, tipo_stp; - if (k == K_SPACE) { TMask& m = f.mask(); const int anno = m.get_int(F_ANNO); const int bilancio = m.get_int(F_BILANCIO); - int tipo_stampa; - if (bilancio == 1) //bilancio a sezioni contrapposte - { - tipo_stampa = m.get_int(F_STAMPA); - m.disable_page(1); - } - else - { - tipo_stampa = m.get_int(F_STAMPA1); - m.enable_page(1); - } + const int tipo_stampa = m.get_int(F_STAMPA); + const TDate datalim = m.get_date(F_DATALIM); + TDate data; - if (tipo_stampa == 2) //all'ultima immissione - { - m.hide(F_DATADA); - m.hide(F_DATAA); - //m.hide(F_STAMPAMPROV); - m.hide(98); - m.hide(99); - m.hide(96); - m.hide(97); - - // Disabilito le commesse nelle stampe all'ultima immissione - m.hide(-4); - m.reset(-4); - } - else - { - if (bilancio == 2) - if (anno != 0) - { - m.show(F_DATADA); - m.show(F_DATAA); - //m.show(F_STAMPAMPROV); - m.show(96); - m.show(97); - m.hide(98); - m.hide(99); - } - else - { - m.show(F_DATADA); - m.show(F_DATAA); - //m.show(F_STAMPAMPROV); - m.show(98); - m.show(99); - m.hide(96); - m.hide(97); - } - - // Abilito eventualmente le commesse - if (main_app().has_module(CMAUT)) - m.show(-4); - else - { - m.hide(-4); - m.reset(-4); - } - } - - tipo_bil = f.mask().get_int(F_BILANCIO); - if (tipo_bil == 1) - tipo_stp = f.mask().get_int(F_STAMPA); - else - tipo_stp = f.mask().get_int(F_STAMPA1); - if (tipo_bil == 2 && tipo_stp == 1 /* && f.mask().get_int(F_ANNO) == 0 */) - f.mask().show(F_QUADRATURA); - else - { - f.mask().set (F_QUADRATURA,""); - f.mask().hide(F_QUADRATURA); - } - } - return TRUE; + m.enable_page(1, bilancio != 1); + if (esercizi().exist(datalim)) + data = esercizio(datalim).fine(); + m.show(F_DATAINI, bilancio == 2 && tipo_stampa == 1); + m.show(F_QUADRATURA, bilancio == 2 && tipo_stampa == 1 && data == datalim); + } + return true; } bool TStampa_bilanci::mask_datalim (TMask_field& f, KEY k) -{ +{ if (k == K_ENTER) { - int anno = f.mask().get_int(F_ANNO); - int bilancio = f.mask().get_int(F_BILANCIO); - TDate datalim(f.mask().get(F_DATALIM)); - if (bilancio == 1) - if (anno != 0) - { - if ( datalim.ok() ) - { - if (!IsEsercizio(datalim,anno)) - { - f.error_box (TR("La data limite deve appartenere all'esercizio indicato")); - return FALSE; - } - } - else - f.mask().field(F_DATALIM).set(FineEsercizio(anno)); - } - else //anno == 0 + TMask& m = f.mask(); + const int anno = m.get_int(F_ANNO); + const int bilancio = m.get_int(F_BILANCIO); + const TDate data = m.get_date(F_DATALIM); + + if (anno != 0) + { + if (data.ok()) { - if (!datalim.ok()) - { - f.error_box (TR("La data limite e' obbligatoria")); - return FALSE; - } - long anno = app().date2esc(datalim); - if (anno == 0) - { - f.error_box (TR("La data limite deve appartenere ad un esercizio attivo della ditta")); - return FALSE; - } + if (!esercizi().exist(data) || (esercizio(data).codice() != anno)) + return f.error_box (TR("La data limite deve appartenere all'esercizio indicato")); } + else + m.field(F_DATALIM).set(esercizio(anno).fine()); + app()._annoapp = anno; + } + else //anno == 0 + { + if (!data.ok()) + return f.error_box (TR("La data limite e' obbligatoria")); + if (!esercizi().exist(data)) + return f.error_box (TR("La data limite deve appartenere ad un esercizio attivo della ditta")); + } + if (m.get_date(F_DATALIM) < m.get_date(F_DATAINI)) + return f.error_box(TR("La data limite deve essere maggiore o uguale alla data iniziale")); } - return TRUE; + return true; } -bool TStampa_bilanci::mask_date(TMask_field& f, KEY k) +bool TStampa_bilanci::mask_dataini(TMask_field& f, KEY k) { - if (k == K_TAB) - { - const short id = f.dlg(); + TMask& m = f.mask(); + const short id = f.dlg(); - if (id == F_DATAA) - { - TDate data (f.get()); - int bil = f.mask().get_int(F_BILANCIO); - TEsercizi_contabili esc; - int anno = esc.date2esc(data); - if (anno) - { - TDate dataini = esc[anno].fine(); - if (data == dataini && bil == 2 /*&& f.mask().get_int(F_ANNO) == 0*/) - f.mask().show(F_QUADRATURA); - else - { - f.mask().reset(F_QUADRATURA); - f.mask().hide(F_QUADRATURA); - } - } - } - } - - if (k == K_ENTER) - { - const short id = f.dlg(); - int anno = f.mask().get_int(F_ANNO); - int bilancio = f.mask().get_int(F_BILANCIO); - if (bilancio == 2) - { - TDate data (f.mask().get(id)); - if (anno != 0) - { - if (data.ok()) - { - if (!IsEsercizio(data,anno)) - { - f.error_box(TR("La data indicata deve essere all'interno dell'esercizio")); - return FALSE; - } - } - if (!data.ok()) - { - if (id == F_DATADA) - f.mask().field(F_DATADA).set(InizioEsercizio(anno)); - else if (id == F_DATAA) - f.mask().field(F_DATAA).set(FineEsercizio(anno)); - } - app()._annoapp = anno; - } - else - { - if ( !data.ok() ) - { - f.error_box(TR("Indicare una data appartenente ad un esercizio attivo della ditta")); - return FALSE; - } - else - { - if (id == F_DATAA) - { - TDate from (f.mask().get(id - 1)); - app()._annoapp = app().date2esc(from); - if ( app()._annoapp != app().date2esc(data) ) - { - f.error_box(TR("Le date devono appartenere ad uno stesso esercizio attivo della ditta")); - return FALSE; - } - if (from > data) - { - f.error_box(TR("La data limite inferiore non puo' essere maggiore della data limite superiore")); - return FALSE; - } - } - } - } - } + if (k == K_ENTER) + { + const int anno = m.get_int(F_ANNO); + int bilancio = m.get_int(F_BILANCIO); + TDate data = f.get_date(); + + if (anno != 0) + { + if (data.ok()) + { + if (!esercizi().exist(data) || (esercizio(data).codice() != anno)) + return f.error_box(TR("La data iniziale deve appartenere all'esercizio indicato")); + } + else + m.field(F_DATALIM).set(esercizio(anno).inizio()); + app()._annoapp = anno; + } + else //anno == 0 + { + const TDate datalim = m.get_date(F_DATALIM); + + if (!data.ok() && datalim.ok() && esercizi().exist(datalim)) + m.field(F_DATAINI).set(data = esercizio(datalim).inizio()); + if (!data.ok()) + return f.error_box(TR("La data limite e' obbligatoria")); + if (!esercizi().exist(data)) + return f.error_box(TR("La data limite deve appartenere ad un esercizio attivo della ditta")); + app()._annoapp = esercizio(data).codice(); + } } - return TRUE; + return true; } bool TStampa_bilanci::verifica_handler(TMask_field& f, KEY k) { if (k == K_SPACE) { - int tipo_stampa = atoi(f.mask().get(F_STAMPA1)); - int verifica = atoi(f.mask().get(F_VERIFICA)); - if ( (tipo_stampa == 1) && ((verifica == 1) || (verifica == 2)) ) - { - f.mask().hide (F_SITUAZIONE); - f.mask().hide (F_STAMPAC); - f.mask().hide (F_ORDINAMENTO); - f.mask().show (F_STAMPAV); - f.mask().show (F_DATADA); - f.mask().show (F_DATAA); - } - if ( (tipo_stampa == 1) && (verifica == 3) ) - { - f.mask().show (F_SITUAZIONE); - f.mask().show (F_STAMPAC); - f.mask().show (F_ORDINAMENTO); - f.mask().show (F_DATADA); - f.mask().show (F_DATAA); - f.mask().hide (F_STAMPAV); - } - if ( (tipo_stampa == 2) && ((verifica == 1)||(verifica == 2)) ) - { - f.mask().hide (F_SITUAZIONE); - f.mask().hide (F_STAMPAC); - f.mask().hide (F_ORDINAMENTO); - f.mask().hide (F_DATADA); - f.mask().hide (F_DATAA); - f.mask().show (F_STAMPAV); - } - if ( (tipo_stampa == 2) && (verifica == 3) ) - { - f.mask().show (F_SITUAZIONE); - f.mask().show (F_STAMPAC); - f.mask().show (F_ORDINAMENTO); - f.mask().hide (F_DATADA); - f.mask().hide (F_DATAA); - f.mask().hide (F_STAMPAV); - } + TMask& m = f.mask(); + const int verifica = m.get_int(F_VERIFICA); + + m.show(F_SITUAZIONE, verifica == 3); + m.show(F_STAMPAC, verifica == 3); + m.show(F_ORDINAMENTO, verifica == 3); + m.show(F_STAMPAV, verifica != 3); } - return TRUE; + return true; } void TStampa_bilanci::scrivig_file_temp() @@ -580,7 +350,7 @@ void TStampa_bilanci::scrivig_file_temp() tmp->put(SLD_CONTO,0); tmp->put(SLD_SOTTOCONTO,0L); tmp->put(SLD_ANNOES,0); // W96SALDI del 07-06-96 - tmp->put(SLD_FLSCA,FALSE); + tmp->put(SLD_FLSCA,false); if (tmp->read() == NOERR) { tmp->put(SLD_CONTO,0); @@ -594,7 +364,7 @@ void TStampa_bilanci::scrivig_file_temp() tmp->put(SLD_CONTO,0); tmp->put(SLD_SOTTOCONTO,0L); tmp->put(SLD_ANNOES,0); // W96SALDI del 07-06-96 - tmp->put(SLD_FLSCA,FALSE); + tmp->put(SLD_FLSCA,false); tmp->put(nome_campo, valore); tmp->write(); } @@ -626,7 +396,7 @@ void TStampa_bilanci::scrivig_file_temp() tmp->put(SLD_CONTO,0); tmp->put(SLD_SOTTOCONTO,0L); tmp->put(SLD_ANNOES,0); // W96SALDI del 07-06-96 - tmp->put(SLD_FLSCA,FALSE); + tmp->put(SLD_FLSCA,false); if (tmp->read() == NOERR) { tmp->put(SLD_CONTO,0); @@ -640,13 +410,13 @@ void TStampa_bilanci::scrivig_file_temp() tmp->put(SLD_CONTO,0); tmp->put(SLD_SOTTOCONTO,0L); tmp->put(SLD_ANNOES,0); // W96SALDI del 07-06-96 - tmp->put(SLD_FLSCA,FALSE); + tmp->put(SLD_FLSCA,false); tmp->put(nome_campo, valore); tmp->write(); } } } - _add_dare = _add_avere = FALSE; + _add_dare = _add_avere = false; } void TStampa_bilanci::scrivic_file_temp() @@ -657,7 +427,7 @@ void TStampa_bilanci::scrivic_file_temp() if (_add_file_dare) { - _add_dare = TRUE; + _add_dare = true; nome_campo = SLD_PDARE; valore = _conto_da; if (_indbil == 1 || _indbil==2) tmp = _tmp_saldi_att; // da stampare a sx @@ -675,7 +445,7 @@ void TStampa_bilanci::scrivic_file_temp() } if (_add_file_avere) { - _add_avere = TRUE; + _add_avere = true; nome_campo = SLD_PAVERE; valore = _conto_a; if (_indbil==2 || _indbil==1) tmp = _tmp_saldi_pass; //da stampare a dx @@ -820,24 +590,18 @@ bool TStampa_bilanci::bil_sez_contr() long s; char tipo_conto = ' '; real saldo; - bool compensa=FALSE, dettaglio=FALSE, cambiato=FALSE; - bool esiste_conto=FALSE, esiste_sc = FALSE; - bool movimentato = FALSE; + bool compensa = false, dettaglio = false, cambiato = false; + bool esiste_conto = false, esiste_sc = false; + bool movimentato = false; + TProgress_monitor p(_pcn->eod(), TR("Elaborazione conti")); CHECK(_tmp_saldi_att == NULL, "Non posso riaprire cg01"); - _tmp_saldi_att = new TIsamtempfile(LF_SALDI, "cg01", TRUE, TRUE); - _prog->addstatus(1); - _tmp_saldi_pass = new TIsamtempfile(LF_SALDI, "cg02", TRUE, TRUE); - _prog->addstatus(1); - _tmp_saldi_costi = new TIsamtempfile(LF_SALDI, "cg03", TRUE, TRUE); - _prog->addstatus(1); - _tmp_saldi_ricavi = new TIsamtempfile(LF_SALDI, "cg04", TRUE, TRUE); - _prog->addstatus(1); - _tmp_saldi_conti_uno = new TIsamtempfile(LF_SALDI, "cg05", TRUE, TRUE); - _prog->addstatus(1); - _tmp_saldi_conti_due = new TIsamtempfile(LF_SALDI, "cg06", TRUE, TRUE); - _prog->addstatus(1); - + _tmp_saldi_att = new TIsamtempfile(LF_SALDI, "cg01", true, true); + _tmp_saldi_pass = new TIsamtempfile(LF_SALDI, "cg02", true, true); + _tmp_saldi_costi = new TIsamtempfile(LF_SALDI, "cg03", true, true); + _tmp_saldi_ricavi = new TIsamtempfile(LF_SALDI, "cg04", true, true); + _tmp_saldi_conti_uno = new TIsamtempfile(LF_SALDI, "cg05", true, true); + _tmp_saldi_conti_due = new TIsamtempfile(LF_SALDI, "cg06", true, true); _gp=-1; _cp=-1; _gruppo_a = ZERO; @@ -850,22 +614,18 @@ bool TStampa_bilanci::bil_sez_contr() _prg_iniavere_ord = ZERO; _conto_a = ZERO; _conto_da = ZERO; - _add_dare = FALSE; - _add_avere = FALSE; + _add_dare = false; + _add_avere = false; sld.set_annoes(_annoes); - - for (_pcn->first(); !_pcn->eof(); _pcn->next()) + for (_pcn->first(); !_pcn->eof() && p.addstatus(1L); _pcn->next()) { - _prog->addstatus(1); - - g = _pcn->get_int (PCN_GRUPPO); c = _pcn->get_int (PCN_CONTO); s = _pcn->get_long(PCN_SOTTOCONTO); if (c != _cp) - cambiato = TRUE; + cambiato = true; if ( (((_cp != -1) && (c != _cp)) || ((_gp != -1) && (g != _gp))) && esiste_sc ) @@ -873,7 +633,7 @@ bool TStampa_bilanci::bil_sez_contr() scrivic_file_temp(); scrivig_file_temp(); _cp = c; - esiste_conto = TRUE; + esiste_conto = true; _conto_da = ZERO; _conto_a = ZERO; } @@ -881,7 +641,7 @@ bool TStampa_bilanci::bil_sez_contr() if ( ((_gp != -1) && (g != _gp)) && esiste_conto ) { scrivig_file_temp(); - esiste_conto = FALSE; + esiste_conto = false; _gp = g; _gruppo_da = ZERO; _gruppo_a = ZERO; @@ -891,9 +651,9 @@ bool TStampa_bilanci::bil_sez_contr() if (cambiato) { - _add_file_avere = FALSE; - _add_file_dare = FALSE; - cambiato = FALSE; + _add_file_avere = false; + _add_file_dare = false; + cambiato = false; } if ( (s == 0) && (c != 0) ) //si tratta di un conto @@ -928,8 +688,9 @@ bool TStampa_bilanci::bil_sez_contr() scrivic_file_temp(); scrivig_file_temp(); } - else if (esiste_conto) - scrivig_file_temp(); + else + if (esiste_conto) + scrivig_file_temp(); } _pcn->readat(recnum); @@ -939,16 +700,16 @@ bool TStampa_bilanci::bil_sez_contr() if ( (c == 0) || (s == 0) ) //si tratta di un conto o di un gruppo { - esiste_sc = FALSE; + esiste_sc = false; continue; } if (_tipo_stampa == 1) //bil. a sez. contrapposte per data limite { #ifdef CONT_SEP - movimentato = sld.saldo_cont_sep(g, c, s, _annoes, _datalim, indbil_conto, _cont_sep, _stampa_mov_prov) ; + movimentato = sld.saldo_cont_sep(_tipo_data,g, c, s, _annoes, _datalim, indbil_conto, _cont_sep, _stampa_mov_prov) ; #else - movimentato = sld.data_limite_bilancio(_bilancio, g, c, s, _dataini, _datalim, indbil_conto, _stampa_mov_prov); + movimentato = sld.data_limite_bilancio(_tipo_data, g, c, s, _dataini, _al, indbil_conto, _stampa_mov_prov); #endif } else @@ -965,7 +726,8 @@ bool TStampa_bilanci::bil_sez_contr() } saldo = sld.saldo(); - real app = sld.saldoini(); + + real app = sld.saldoini(); bool flag = sld.flagprec(); if (_saldo) //se richiesto di NON stampare i conti con saldo a zero @@ -974,8 +736,6 @@ bool TStampa_bilanci::bil_sez_contr() //modifica del 06/07/1995 if (indbil_conto == 1 || indbil_conto == 2 || indbil_conto == 5) { - //real app = sld.saldoini(); - //bool flag = sld.flagprec(); if (flag) { if (app > ZERO) @@ -984,13 +744,14 @@ bool TStampa_bilanci::bil_sez_contr() _prg_inidare_ord += app; else _prg_saldoini_dare += app; } - else if (app < ZERO) - { - app = -app; - if (indbil_conto == 5) - _prg_iniavere_ord += app; - else _prg_saldoini_avere += app; - } + else + if (app < ZERO) + { + app = -app; + if (indbil_conto == 5) + _prg_iniavere_ord += app; + else _prg_saldoini_avere += app; + } } } //fine @@ -998,12 +759,12 @@ bool TStampa_bilanci::bil_sez_contr() continue; } - esiste_sc = TRUE; + esiste_sc = true; _indbil = indbil_conto; //i due flag seguenti servono solo per i conti d'ordine - _sottoc_dare = FALSE; - _sottoc_avere = FALSE; + _sottoc_dare = false; + _sottoc_avere = false; if (saldo != ZERO) saldo = compensazione(compensa, indbil_conto, saldo); @@ -1014,26 +775,27 @@ bool TStampa_bilanci::bil_sez_contr() { if (app > ZERO) _prg_saldoini_dare += app; - else if (app < ZERO) - { - app = -app; - _prg_saldoini_avere += app; - } + else + if (app < ZERO) + { + app = -app; + _prg_saldoini_avere += app; + } } } if (_indbil == 5) { - //real app = sld.saldoini(); if (flag) { if (app > ZERO) _prg_inidare_ord += app; - else if (app < ZERO) - { - app = -app; - _prg_iniavere_ord += app; - } + else + if (app < ZERO) + { + app = -app; + _prg_iniavere_ord += app; + } } } @@ -1041,14 +803,14 @@ bool TStampa_bilanci::bil_sez_contr() { _gruppo_da += saldo; _conto_da += saldo; - _add_file_dare = TRUE; + _add_file_dare = true; } if ( _indbil==2 || _indbil==4 ) { _gruppo_a += saldo; _conto_a += saldo; - _add_file_avere = TRUE; + _add_file_avere = true; } if (_indbil==5) @@ -1057,16 +819,16 @@ bool TStampa_bilanci::bil_sez_contr() { _gruppo_da_ordine += saldo; _conto_da += saldo; - _add_file_dare = TRUE; - _sottoc_dare = TRUE; + _add_file_dare = true; + _sottoc_dare = true; } else { saldo = -saldo; _gruppo_a_ordine += saldo; _conto_a += saldo; - _add_file_avere = TRUE; - _sottoc_avere = TRUE; + _add_file_avere = true; + _sottoc_avere = true; } scrivig_file_temp(); } @@ -1087,7 +849,7 @@ bool TStampa_bilanci::bil_sez_contr() _pcn->readat(recnum); } - return TRUE; + return true; } bool TStampa_bilanci::ricerca_sottoc_clifo(int g,int c, bool compensa, int indbil_conto,real& saldo) @@ -1095,8 +857,8 @@ bool TStampa_bilanci::ricerca_sottoc_clifo(int g,int c, bool compensa, int indbi TSaldo sld; int aep=0; long s, items; - bool esiste_sc = FALSE; - bool movimentato = FALSE; + bool esiste_sc = false; + bool movimentato = false; if (_annoes) { @@ -1119,9 +881,9 @@ bool TStampa_bilanci::ricerca_sottoc_clifo(int g,int c, bool compensa, int indbi if (_tipo_stampa == 1) //bil. a sez. contrapposte per data limite { #ifdef CONT_SEP - movimentato = sld.saldo_cont_sep(g, c, s, _annoes, _datalim, indbil_conto, _cont_sep, _stampa_mov_prov); + movimentato = sld.saldo_cont_sep(_tipo_data, g, c, s, _annoes, _datalim, indbil_conto, _cont_sep, _stampa_mov_prov); #else - movimentato = sld.data_limite_bilancio(_bilancio,g,c,s,_dataini,_datalim,indbil_conto,_stampa_mov_prov); + movimentato = sld.data_limite_bilancio(_tipo_data ,g,c,s,_dataini,_al,indbil_conto,_stampa_mov_prov); #endif } else @@ -1142,7 +904,6 @@ bool TStampa_bilanci::ricerca_sottoc_clifo(int g,int c, bool compensa, int indbi //modifica del 06/07/1995 if (indbil_conto == 1 || indbil_conto == 2 || indbil_conto == 5) { - //real app = sld.saldoini(); if (flag) { if (app > ZERO) @@ -1151,25 +912,26 @@ bool TStampa_bilanci::ricerca_sottoc_clifo(int g,int c, bool compensa, int indbi _prg_inidare_ord += app; else _prg_saldoini_dare += app; } - else if (app < ZERO) - { - app = -app; - if (indbil_conto == 5) - _prg_iniavere_ord += app; - else _prg_saldoini_avere += app; - } + else + if (app < ZERO) + { + app = -app; + if (indbil_conto == 5) + _prg_iniavere_ord += app; + else _prg_saldoini_avere += app; + } } } //fine continue; } - esiste_sc = TRUE; + esiste_sc = true; _indbil = indbil_conto; //i due flag seguenti servono solo per i conti d'ordine - _sottoc_dare = FALSE; - _sottoc_avere = FALSE; + _sottoc_dare = false; + _sottoc_avere = false; if (saldo != ZERO) saldo = compensazione(compensa, indbil_conto, saldo); @@ -1180,26 +942,27 @@ bool TStampa_bilanci::ricerca_sottoc_clifo(int g,int c, bool compensa, int indbi { if (app > ZERO) _prg_saldoini_dare += app; - else if (app < ZERO) - { - app = -app; - _prg_saldoini_avere += app; - } + else + if (app < ZERO) + { + app = -app; + _prg_saldoini_avere += app; + } } } if (_indbil == 5) { - //real app = sld.saldoini(); if (flag) { if (app > ZERO) _prg_inidare_ord += app; - else if (app < ZERO) - { - app = -app; - _prg_iniavere_ord += app; - } + else + if (app < ZERO) + { + app = -app; + _prg_iniavere_ord += app; + } } } @@ -1207,14 +970,14 @@ bool TStampa_bilanci::ricerca_sottoc_clifo(int g,int c, bool compensa, int indbi { _gruppo_da += saldo; _conto_da += saldo; - _add_file_dare = TRUE; + _add_file_dare = true; } if ( (_indbil==2) || (_indbil==4) ) { _gruppo_a += saldo; _conto_a += saldo; - _add_file_avere = TRUE; + _add_file_avere = true; } if (_indbil==5) @@ -1223,16 +986,16 @@ bool TStampa_bilanci::ricerca_sottoc_clifo(int g,int c, bool compensa, int indbi { _gruppo_da_ordine += saldo; _conto_da += saldo; - _add_file_dare = TRUE; - _sottoc_dare = TRUE; + _add_file_dare = true; + _sottoc_dare = true; } else //il sottoconto ha saldo in avere { saldo = -saldo; _gruppo_a_ordine += saldo; _conto_a += saldo; - _add_file_avere = TRUE; - _sottoc_avere = TRUE; + _add_file_avere = true; + _sottoc_avere = true; } scrivig_file_temp(); } @@ -1250,10 +1013,11 @@ bool TStampa_bilanci::bil_verifica() real saldo_finale, saldo_conto, saldo_gruppo, saldo_iniziale; real mov_conto_dare, mov_conto_avere, prg_conto_dare, prg_conto_avere; real mov_gruppo_dare, mov_gruppo_avere, prg_gruppo_dare, prg_gruppo_avere; - bool esiste_conto = FALSE, esiste_sc = FALSE, movimentato = FALSE; - + bool esiste_conto = false, esiste_sc = false, movimentato = false; + TProgress_monitor p(_pcn->eod(), "Elaborazione saldi"); + CHECK(_tmp_saldi_att == NULL, "Non posso riaprire cg01"); - _tmp_saldi_att = new TIsamtempfile(LF_SALDI, "cg01", TRUE, TRUE); + _tmp_saldi_att = new TIsamtempfile(LF_SALDI, "cg01", true, true); _gp=-1; _cp=-1; @@ -1300,9 +1064,8 @@ bool TStampa_bilanci::bil_verifica() else _pcn->first(); //..se non e' stato selezionato nessun gruppo parto dal primo - for ( ; !_pcn->eof(); _pcn->next()) + for ( ; !_pcn->eof() && p.addstatus(1L); _pcn->next()) { - _prog->addstatus(1); g = _pcn->get_int (PCN_GRUPPO); c = _pcn->get_int (PCN_CONTO); s = _pcn->get_long(PCN_SOTTOCONTO); @@ -1313,7 +1076,7 @@ bool TStampa_bilanci::bil_verifica() if (!((_stampav == 2) && (saldo_conto == 0))) { //modifica del 21/11/1995 - if (_tipo_stampa1 == 1 && _datada == _dataini) + if (_tipo_stampa == 1 && _dal == _dataini) { _saldo_ini_gruppo_dare += _saldo_ini_conto_dare; _saldo_ini_gruppo_avere += _saldo_ini_conto_avere; @@ -1322,7 +1085,8 @@ bool TStampa_bilanci::bil_verifica() //fine { const real app = _saldo_ini_conto_dare + _saldo_ini_conto_avere; - if (app < ZERO) + + if (app < ZERO) _saldo_ini_gruppo_avere += app; else _saldo_ini_gruppo_dare += app; @@ -1339,7 +1103,7 @@ bool TStampa_bilanci::bil_verifica() { scrivi_record_conto(prg_conto_dare,prg_conto_avere,mov_conto_dare, mov_conto_avere,saldo_conto); - esiste_conto = TRUE; + esiste_conto = true; } _cp = c; _saldo_ini_conto_dare = ZERO; @@ -1369,7 +1133,7 @@ bool TStampa_bilanci::bil_verifica() scrivi_record_gruppo(prg_gruppo_dare,prg_gruppo_avere,mov_gruppo_dare, mov_gruppo_avere,saldo_gruppo); _gp = g; - esiste_conto = FALSE; + esiste_conto = false; _saldo_ini_gruppo_dare = ZERO; _saldo_ini_gruppo_avere = ZERO; saldo_gruppo = ZERO; @@ -1400,7 +1164,7 @@ bool TStampa_bilanci::bil_verifica() if (_verifica == 2) { //modifica del 21/11/1995 - if (_tipo_stampa1 == 1 && _datada == _dataini) + if (_tipo_stampa == 1 && _dal == _dataini) { _saldo_ini_gruppo_dare += _saldo_ini_conto_dare; _saldo_ini_gruppo_avere += _saldo_ini_conto_avere; @@ -1409,7 +1173,8 @@ bool TStampa_bilanci::bil_verifica() //fine { real app = _saldo_ini_conto_dare + _saldo_ini_conto_avere; - if (app < ZERO) + + if (app < ZERO) _saldo_ini_gruppo_avere += app; else _saldo_ini_gruppo_dare += app; @@ -1439,16 +1204,16 @@ bool TStampa_bilanci::bil_verifica() if ( (c == 0) || (s == 0) ) { - esiste_sc = FALSE; + esiste_sc = false; continue; } saldo_finale = saldo_iniziale = ZERO; //saldi relativi a ciascun sottoconto _indbil = indbil_conto; - if (_tipo_stampa1 == 1) //bil. di verifica per data limite + if (_tipo_stampa == 1) //bil. di verifica per data limite { //modifica del 21/11/95 - _mov_ap = FALSE; + _mov_ap = false; //modifica del 19/06/95 movimentato = calcola(g,c,s); if (_stampa_mov_prov & 0x1) @@ -1463,14 +1228,15 @@ bool TStampa_bilanci::bil_verifica() TLocalisamfile saldi(LF_SALDI); // W96SALDI saldi.zero(); // Modifica SALDI per movimenti saldi.put(SLD_ANNOES, _annoes); // scaricati del 05-06-96 - saldi.put(SLD_FLSCA, FALSE); // Ho aggiunto saldi.put(SLD_FLSCA, FALSE); + saldi.put(SLD_FLSCA, false); // Ho aggiunto saldi.put(SLD_FLSCA, false); saldi.put(SLD_GRUPPO, g); // In questo modo considero il record con saldi.put(SLD_CONTO, c); // la somma fra progressivi normali e scaricati saldi.put(SLD_SOTTOCONTO, s); if (saldi.read() == NOERR) { const real ss = saldi.get_real(SLD_SALDO); - if (ss.is_zero()) + + if (ss.is_zero()) { if (_annoes != 0 && (indbil_conto == 1 || indbil_conto == 2 || indbil_conto == 5)) { @@ -1500,7 +1266,7 @@ bool TStampa_bilanci::bil_verifica() } } } - else // !movimentato -> _mov_ap e' di sicuro FALSE + else // !movimentato -> _mov_ap e' di sicuro false { if (_annoes != 0 && (indbil_conto == 1 || indbil_conto == 2 || indbil_conto == 5)) { @@ -1511,7 +1277,7 @@ bool TStampa_bilanci::bil_verifica() else _saldo_ini_avere = -saldo_iniziale; //fine if (_stampav == 1 && sld.significativo()) - movimentato = TRUE; + movimentato = true; } } } @@ -1525,19 +1291,17 @@ bool TStampa_bilanci::bil_verifica() _nuovo_tot_saldo_d += _saldo_ini_dare; _nuovo_tot_saldo_a += _saldo_ini_avere; - if (_datada == _dataini) + if (_dal == _dataini) saldo_finale = saldo_iniziale+_mov_periodo_dare-_mov_periodo_avere; - else if (_datada > _dataini) - { - if (saldo_iniziale > 0) - _prg_prec_dare += saldo_iniziale; - else _prg_prec_avere -= saldo_iniziale; - saldo_finale = _prg_prec_dare-_prg_prec_avere+_mov_periodo_dare-_mov_periodo_avere; - - } - //if (saldo_finale == ZERO) - // if (_stampav == 2) - // continue; + else + if (_dal > _dataini) + { + if (saldo_iniziale > 0) + _prg_prec_dare += saldo_iniziale; + else + _prg_prec_avere -= saldo_iniziale; + saldo_finale = _prg_prec_dare-_prg_prec_avere+_mov_periodo_dare-_mov_periodo_avere; + } } //se saldo_finale < 0 verra' stampato con una A, se no con una D } @@ -1553,9 +1317,9 @@ bool TStampa_bilanci::bil_verifica() { if (indbil_conto == 1 || indbil_conto == 2 || indbil_conto == 5) { - saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s,FALSE,_stampa_mov_prov); + saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s,false,_stampa_mov_prov); if (_stampav == 1 && sld.significativo()) - movimentato = TRUE; + movimentato = true; } } } @@ -1578,15 +1342,17 @@ bool TStampa_bilanci::bil_verifica() if ((movimentato || _stampav != 1) && !(saldo_finale.is_zero() && _stampav == 2)) { - esiste_sc = TRUE; - esiste_conto = TRUE; + esiste_sc = true; + esiste_conto = true; - if (_tipo_stampa1 == 2) + if (_tipo_stampa == 2) { _nuovo_tot_saldo_d += _mov_periodo_dare; _nuovo_tot_saldo_a += _mov_periodo_avere; - real nuovo = sld.saldoinisusaldi(); - if (nuovo > ZERO) + + real nuovo = sld.saldoinisusaldi(); + + if (nuovo > ZERO) _nuovo_tot_saldo_d += nuovo; else { @@ -1595,7 +1361,7 @@ bool TStampa_bilanci::bil_verifica() } } //modifica del 21/11/1995 - if (_tipo_stampa1 == 1 && _datada == _dataini) + if (_tipo_stampa == 1 && _dal == _dataini) { _saldo_ini_conto_dare += _saldo_ini_dare; _saldo_ini_conto_avere += _saldo_ini_avere; @@ -1623,10 +1389,10 @@ bool TStampa_bilanci::bil_verifica() _tmp_saldi_att->put(SLD_SOTTOCONTO,s); _tmp_saldi_att->put(SLD_FLAGSALINI,tipo_conto); - if ( (_datada == _dataini) || (_tipo_stampa1 != 1) ) + if ((_dal == _dataini) || (_tipo_stampa != 1)) { //modifica del 21/11/1995 - if (_datada == _dataini && _tipo_stampa1 == 1) + if (_dal == _dataini && _tipo_stampa == 1) { _tmp_saldi_att->put(SLD_PDAREPRO,_saldo_ini_dare); // W96SALDI del 05-06-96 _tmp_saldi_att->put(SLD_PAVEREPRO,_saldo_ini_avere); @@ -1635,18 +1401,20 @@ bool TStampa_bilanci::bil_verifica() { if (saldo_iniziale > ZERO) //va stampato in Dare _tmp_saldi_att->put(SLD_PDAREPRO,saldo_iniziale); // W96SALDI del 05-06-96 - else if (saldo_iniziale < ZERO) - { - saldo_iniziale = -saldo_iniziale; - _tmp_saldi_att->put(SLD_PAVEREPRO,saldo_iniziale); // W96SALDI del 05-06-96 - } + else + if (saldo_iniziale < ZERO) + { + saldo_iniziale = -saldo_iniziale; + _tmp_saldi_att->put(SLD_PAVEREPRO,saldo_iniziale); // W96SALDI del 05-06-96 + } } } - else if (_datada > _dataini) - { - _tmp_saldi_att->put(SLD_PDAREPRO,_prg_prec_dare); // W96SALDI del 05-06-96 - _tmp_saldi_att->put(SLD_PAVEREPRO,_prg_prec_avere); - } + else + if (_dal > _dataini) + { + _tmp_saldi_att->put(SLD_PDAREPRO,_prg_prec_dare); // W96SALDI del 05-06-96 + _tmp_saldi_att->put(SLD_PAVEREPRO,_prg_prec_avere); + } _tmp_saldi_att->put(SLD_PDARE,_mov_periodo_dare); _tmp_saldi_att->put(SLD_PAVERE,_mov_periodo_avere); _tmp_saldi_att->put(SLD_SALDO,saldo_finale); @@ -1664,7 +1432,7 @@ bool TStampa_bilanci::bil_verifica() if ( (_verifica == 2) && esiste_conto ) { //modifica del 21/11/1995 - if (_tipo_stampa1 == 1 && _datada == _dataini) + if (_tipo_stampa == 1 && _dal == _dataini) { _saldo_ini_gruppo_dare += _saldo_ini_conto_dare; _saldo_ini_gruppo_avere += _saldo_ini_conto_avere; @@ -1673,7 +1441,8 @@ bool TStampa_bilanci::bil_verifica() //fine { real app = _saldo_ini_conto_dare + _saldo_ini_conto_avere; - if (app < ZERO) + + if (app < ZERO) _saldo_ini_gruppo_avere += app; else _saldo_ini_gruppo_dare += app; @@ -1695,7 +1464,7 @@ bool TStampa_bilanci::bil_verifica() } _pcn->readat(recnum); } -return TRUE; +return true; } // bilancio di verifica per data limite @@ -1703,17 +1472,8 @@ return TRUE; bool TStampa_bilanci::calcola(int g, int c, long s) { int annoe; - long num_reg; - TDate data_reg, data; - bool conto_mov = FALSE; - + bool conto_mov = false; TDecoder causali(LF_CAUSALI, CAU_MOVAP); - - TRelation rel(LF_RMOV); - rel.add(LF_MOV, "NUMREG==NUMREG"); - - TRectype& rmov = rel.curr(); - const TRectype& mov = rel.curr(LF_MOV); _mov_periodo_dare = ZERO; _mov_periodo_avere = ZERO; @@ -1723,37 +1483,39 @@ bool TStampa_bilanci::calcola(int g, int c, long s) _saldo_ini_avere = ZERO; _u_max = 0l; - TDate data_start = _dataini; +// TDate data_start = _dataini; // Calcolo progressivi precedenti: // e non è indicato l'anno esercizio, prende il primo giorno dell'anno indicato da _datada - if (_annoes == 0) + if (_annoes == 0 && !_dataini.ok()) { - data_start = _datada; - data_start.set_day(1); - data_start.set_month(1); + _dataini = _dal; + _dataini.set_day(1); + _dataini.set_month(1); } - - rmov.zero(); - rmov.put(RMV_GRUPPO,g); - if (c != 0) - { - rmov.put(RMV_CONTO,c); - if (s != 0) - rmov.put(RMV_SOTTOCONTO,s); - } - - TCursor cur(&rel, "", 2, &rmov, &rmov); + + TCursor cur(new TRelation(LF_RMOV), "", 2); + TRectype& rmov = cur.file().curr(); + + rmov.zero(); + rmov.put(RMV_GRUPPO, g); + if (c != 0) + { + rmov.put(RMV_CONTO, c); + if (s != 0) + rmov.put(RMV_SOTTOCONTO, s); + } + cur.setregion(rmov, rmov); + const long items = cur.items(); + cur.freeze(); - for (cur = 0L; cur.pos() < items; ++cur) { annoe = rmov.get_int(RMV_ANNOES); - data = rmov.get_date(RMV_DATAREG); - num_reg = rmov.get_long(RMV_NUMREG); - + const long numreg = rmov.get_long(RMV_NUMREG); + const TRectype& mov = cache().get(LF_MOV, numreg); + const TDate data = get_date_mov(mov, _tipo_data); const TString4 provvis = mov.get(MOV_PROVVIS); - const TDate datacomp = mov.get_date(MOV_DATACOMP); const TString& codcaus = mov.get(MOV_CODCAUS); const char causap = causali.decode(codcaus)[0]; @@ -1768,20 +1530,14 @@ bool TStampa_bilanci::calcola(int g, int c, long s) const char sezione = rmov.get_char(RMV_SEZIONE); const real importo = rmov.get_real(RMV_IMPORTO); - if (_annoes == 0) - data_reg = data; - else - data_reg = datacomp; - if (importo.is_zero()) continue; //calcolo i movimenti del periodo - if ( data_reg >= _datada && data_reg <= _dataa) - if ((causap == 'A' && _dataini.ok() && _dataini != _datada) || (causap != 'A')) - if (((_stampa_mov_prov & 0x1) && provvis.blank()) || - ((_stampa_mov_prov & 0x2) && ((provvis == "P") || (provvis == "N"))) || - ((_stampa_mov_prov & 0x4) && (provvis == "B")) || ((_stampa_mov_prov & 0x8) && (provvis == "C"))) + if ( data >= _dal && data <= _al) + if ((causap == 'A' && _dataini.ok() && _dataini != _dal) || + (causap != 'A')) + if (check_mov(_stampa_mov_prov, provvis)) { conto_mov = true; if (sezione == 'D') @@ -1794,11 +1550,11 @@ bool TStampa_bilanci::calcola(int g, int c, long s) } //il saldo inizio es. e' dato dall'importo dare - importo avere di quei movimenti che hanno causale == apertura e data reg >= data inizio es. e <= data limite sup. - if (_datada == _dataini) //calcolo il saldo iniziale + if (_dal == _dataini) //calcolo il saldo iniziale { if ((_stampa_mov_prov & 0x1) && (causap == 'A')) { - if ( (data_reg >= _dataini) && (data_reg <= _dataa) ) + if ( (data >= _dataini) && (data <= _al) ) { if (sezione == 'D') _saldo_ini_dare += importo; @@ -1809,11 +1565,9 @@ bool TStampa_bilanci::calcola(int g, int c, long s) } } } - else if (_datada > _dataini) //calcolo i progressivi precedenti - if ( (data_reg >= data_start) && (data_reg < _datada) ) - if (((_stampa_mov_prov & 0x1) && provvis.blank()) || - ((_stampa_mov_prov & 0x2) && ((provvis == "P") || (provvis == "N"))) || - ((_stampa_mov_prov & 0x4) && (provvis == "B")) || ((_stampa_mov_prov & 0x8) && (provvis == "C"))) + else + if ( (data >= _dataini) && (data < _dal) ) //calcolo i progressivi precedenti + if (check_mov(_stampa_mov_prov, provvis)) { if (sezione == 'D') _prg_prec_dare += importo; @@ -1832,8 +1586,8 @@ bool TStampa_bilanci::ricerca_cf(int g,int c,char tipocf,int ib, real& saldo_fin real& mov_conto_dare,real& mov_conto_avere,real& prg_conto_dare,real& prg_conto_avere,real& saldo_conto) { TSaldo sld; - bool esiste_sc = FALSE; - const int anno = _tipo_stampa1 == 1 ? _annoapp : _annoes; + bool esiste_sc = false; + const int anno = _tipo_stampa == 1 ? _annoapp : _annoes; _lista = new TSaldi_list(g, c, anno); const TRecnotype items = _lista->items(); @@ -1847,7 +1601,7 @@ bool TStampa_bilanci::ricerca_cf(int g,int c,char tipocf,int ib, real& saldo_fin saldo_finale = saldo_iniziale = ZERO; //saldi relativi a ciascun sottoconto - if (_tipo_stampa1 == 1) //bil. di verifica per data limite + if (_tipo_stampa == 1) //bil. di verifica per data limite { //modifica del 21/11/1995 _mov_ap = false; @@ -1867,8 +1621,8 @@ bool TStampa_bilanci::ricerca_cf(int g,int c,char tipocf,int ib, real& saldo_fin TLocalisamfile saldi(LF_SALDI); saldi.zero(); saldi.put(SLD_ANNOES,_annoes); - saldi.put(SLD_FLSCA, FALSE); // W96SALDI del 05-06-96 - saldi.put(SLD_GRUPPO,g); // Ho aggiunto in chiave saldi.put(SLD_FLSCA, FALSE); + saldi.put(SLD_FLSCA, false); // W96SALDI del 05-06-96 + saldi.put(SLD_GRUPPO,g); // Ho aggiunto in chiave saldi.put(SLD_FLSCA, false); saldi.put(SLD_CONTO,c); // in questa maniera reperisco il record dei saldi saldi.put(SLD_SOTTOCONTO,s); // contenente la somma degli scaricati e non scaricati if (saldi.read() == NOERR) @@ -1876,7 +1630,8 @@ bool TStampa_bilanci::ricerca_cf(int g,int c,char tipocf,int ib, real& saldo_fin //se il saldo iniziale e' diverso da zero non lo devo considerare //perche' l'ho gia' considerato nella funzione calcola const real ss = saldi.get_real(SLD_SALDO); - if (ss.is_zero()) + + if (ss.is_zero()) { if (_annoes != 0 && (ib == 1 || ib == 2 || ib == 5)) { @@ -1945,17 +1700,18 @@ bool TStampa_bilanci::ricerca_cf(int g,int c,char tipocf,int ib, real& saldo_fin _nuovo_tot_saldo_a += _saldo_ini_avere; //fine - if (_datada == _dataini) + if (_dal == _dataini) saldo_finale = saldo_iniziale+_mov_periodo_dare-_mov_periodo_avere; - else if (_datada > _dataini) - { - if (saldo_iniziale > 0) - _prg_prec_dare += saldo_iniziale; - else - _prg_prec_avere -= saldo_iniziale; - saldo_finale = _prg_prec_dare-_prg_prec_avere+_mov_periodo_dare- - _mov_periodo_avere; - } + else + if (_dal > _dataini) + { + if (saldo_iniziale > 0) + _prg_prec_dare += saldo_iniziale; + else + _prg_prec_avere -= saldo_iniziale; + saldo_finale = _prg_prec_dare-_prg_prec_avere+_mov_periodo_dare- + _mov_periodo_avere; + } if (saldo_finale == ZERO) if (_stampav == 2) continue; @@ -1976,7 +1732,7 @@ bool TStampa_bilanci::ricerca_cf(int g,int c,char tipocf,int ib, real& saldo_fin { //vado sui saldi con l'anno precedente e calcolo saldo_finale es.prec //se esiste tale record e almeno un valore e' significativo (indipendentemente dal valore - //del saldo iniziale calcolato, allora metto a TRUE il flag movimentato + //del saldo iniziale calcolato, allora metto a true il flag movimentato //solo se e' un conto patrimoniale if (ib == 1 || ib == 2 || ib == 5) { @@ -2006,8 +1762,10 @@ bool TStampa_bilanci::ricerca_cf(int g,int c,char tipocf,int ib, real& saldo_fin _nuovo_tot_saldo_d += _mov_periodo_dare; _nuovo_tot_saldo_a += _mov_periodo_avere; - real nuovo = sld.saldoinisusaldi(); - if (nuovo > ZERO) + + real nuovo = sld.saldoinisusaldi(); + + if (nuovo > ZERO) _nuovo_tot_saldo_d += nuovo; else { @@ -2016,10 +1774,10 @@ bool TStampa_bilanci::ricerca_cf(int g,int c,char tipocf,int ib, real& saldo_fin } } - esiste_sc = TRUE; + esiste_sc = true; //modifica del 21/11/1995 - if (_tipo_stampa1 == 1 && _datada == _dataini) + if (_tipo_stampa == 1 && _dal == _dataini) { _saldo_ini_conto_dare += _saldo_ini_dare; _saldo_ini_conto_avere += _saldo_ini_avere; @@ -2047,10 +1805,10 @@ bool TStampa_bilanci::ricerca_cf(int g,int c,char tipocf,int ib, real& saldo_fin _tmp_saldi_att->put(SLD_CONTO,c); _tmp_saldi_att->put(SLD_SOTTOCONTO,s); _tmp_saldi_att->put(SLD_FLAGSALINI,tipocf); - if ( (_datada == _dataini) || (_tipo_stampa1 != 1) ) + if ( (_dal == _dataini) || (_tipo_stampa != 1) ) { //modifica del 21/11/1995 - if (_tipo_stampa1 == 1 && _datada == _dataini) + if (_tipo_stampa == 1 && _dal == _dataini) { _tmp_saldi_att->put(SLD_PDAREPRO,_saldo_ini_dare); // W96SALDI del 05-06-96 _tmp_saldi_att->put(SLD_PAVEREPRO,_saldo_ini_avere); @@ -2059,18 +1817,20 @@ bool TStampa_bilanci::ricerca_cf(int g,int c,char tipocf,int ib, real& saldo_fin { if (saldo_iniziale > ZERO) //va stampato in Dare _tmp_saldi_att->put(SLD_PDAREPRO,saldo_iniziale); // W96SALDI del 05-06-96 - else if (saldo_iniziale < ZERO) - { - saldo_iniziale = -saldo_iniziale; - _tmp_saldi_att->put(SLD_PAVEREPRO,saldo_iniziale); // W96SALDI del 05-06-96 - } + else + if (saldo_iniziale < ZERO) + { + saldo_iniziale = -saldo_iniziale; + _tmp_saldi_att->put(SLD_PAVEREPRO,saldo_iniziale); // W96SALDI del 05-06-96 + } } } - else if (_datada > _dataini) - { - _tmp_saldi_att->put(SLD_PDAREPRO,_prg_prec_dare); // W96SALDI del 05-06-96 - _tmp_saldi_att->put(SLD_PAVEREPRO,_prg_prec_avere); - } + else + if (_dal > _dataini) + { + _tmp_saldi_att->put(SLD_PDAREPRO,_prg_prec_dare); // W96SALDI del 05-06-96 + _tmp_saldi_att->put(SLD_PAVEREPRO,_prg_prec_avere); + } _tmp_saldi_att->put(SLD_PDARE,_mov_periodo_dare); _tmp_saldi_att->put(SLD_PAVERE,_mov_periodo_avere); _tmp_saldi_att->put(SLD_SALDO,saldo_finale); @@ -2083,17 +1843,18 @@ bool TStampa_bilanci::ricerca_cf(int g,int c,char tipocf,int ib, real& saldo_fin return esiste_sc; } -void TStampa_bilanci::scrivi_record_gruppo(const real& prg_da, - const real& prg_a,const real& mov_da,const real& mov_a,const real& s) +void TStampa_bilanci::scrivi_record_gruppo(const real& prg_da, const real& prg_a, + const real& mov_da, const real& mov_a, + const real& s) { _tmp_saldi_att->zero(); _tmp_saldi_att->put(SLD_GRUPPO,_gp); _tmp_saldi_att->put(SLD_CONTO,0); _tmp_saldi_att->put(SLD_SOTTOCONTO,0L); - if ( (_datada == _dataini) || (_tipo_stampa1 != 1) ) + if ( (_dal == _dataini) || (_tipo_stampa != 1) ) { //modifica del 21/11/1995 - if (_datada == _dataini && _tipo_stampa1 == 1) + if (_dal == _dataini && _tipo_stampa == 1) { _tmp_saldi_att->put(SLD_PDAREPRO,_saldo_ini_gruppo_dare); // W96SALDI del 05-06-96 _tmp_saldi_att->put(SLD_PAVEREPRO,_saldo_ini_gruppo_avere); @@ -2101,20 +1862,23 @@ void TStampa_bilanci::scrivi_record_gruppo(const real& prg_da, else { real app = _saldo_ini_gruppo_dare + _saldo_ini_gruppo_avere; + if (app > ZERO) //va stampato in Dare _tmp_saldi_att->put(SLD_PDAREPRO,app); // W96SALDI del 05-06-96 - else if (app < ZERO) - { - app = -app; - _tmp_saldi_att->put(SLD_PAVEREPRO,app); // W96SALDI del 05-06-96 - } + else + if (app < ZERO) + { + app = -app; + _tmp_saldi_att->put(SLD_PAVEREPRO,app); // W96SALDI del 05-06-96 + } } } - else if (_datada > _dataini) - { - _tmp_saldi_att->put(SLD_PDAREPRO,prg_da); // W96SALDI del 05-06-96 - _tmp_saldi_att->put(SLD_PAVEREPRO,prg_a); - } + else + if (_dal > _dataini) + { + _tmp_saldi_att->put(SLD_PDAREPRO,prg_da); // W96SALDI del 05-06-96 + _tmp_saldi_att->put(SLD_PAVEREPRO,prg_a); + } _tmp_saldi_att->put(SLD_PDARE,mov_da); _tmp_saldi_att->put(SLD_PAVERE,mov_a); _tmp_saldi_att->put(SLD_SALDO,s); @@ -2128,10 +1892,10 @@ void TStampa_bilanci::scrivi_record_conto(const real& prg_da, const real& prg_a, _tmp_saldi_att->put(SLD_GRUPPO,_gp); _tmp_saldi_att->put(SLD_CONTO,_cp); _tmp_saldi_att->put(SLD_SOTTOCONTO,0L); - if ( (_datada == _dataini) || (_tipo_stampa1 != 1) ) + if ( (_dal == _dataini) || (_tipo_stampa != 1) ) { //modifica del 21/11/1995 - if (_datada == _dataini && _tipo_stampa1 == 1) + if (_dal == _dataini && _tipo_stampa == 1) { _tmp_saldi_att->put(SLD_PDAREPRO,_saldo_ini_conto_dare); // W96SALDI del 05-06-96 _tmp_saldi_att->put(SLD_PAVEREPRO,_saldo_ini_conto_avere); @@ -2139,20 +1903,23 @@ void TStampa_bilanci::scrivi_record_conto(const real& prg_da, const real& prg_a, else { real app = _saldo_ini_conto_dare + _saldo_ini_conto_avere; + if (app > ZERO) //va stampato in Dare _tmp_saldi_att->put(SLD_PDAREPRO,app); // W96SALDI del 05-06-96 - else if (app < ZERO) - { - app = -app; - _tmp_saldi_att->put(SLD_PAVEREPRO,app); // W96SALDI del 05-06-96 - } + else + if (app < ZERO) + { + app = -app; + _tmp_saldi_att->put(SLD_PAVEREPRO,app); // W96SALDI del 05-06-96 + } } } - else if (_datada > _dataini) - { - _tmp_saldi_att->put(SLD_PDAREPRO,prg_da); // W96SALDI del 05-06-96 - _tmp_saldi_att->put(SLD_PAVEREPRO,prg_a); - } + else + if (_dal > _dataini) + { + _tmp_saldi_att->put(SLD_PDAREPRO,prg_da); // W96SALDI del 05-06-96 + _tmp_saldi_att->put(SLD_PAVEREPRO,prg_a); + } _tmp_saldi_att->put(SLD_PDARE,mov_da); _tmp_saldi_att->put(SLD_PAVERE,mov_a); _tmp_saldi_att->put(SLD_SALDO,s); @@ -2169,8 +1936,9 @@ void TStampa_bilanci::init_sort() _sort->addsortkey ((char*)&(cf.conto)-(char*)&(cf.tipocf),3); if (_ordinamento == 1) _sort->addsortkey ((char*)&(cf.codcf)-(char*)&(cf.tipocf),6); - else if (_ordinamento == 2) - _sort->addsortkey ((char*)&(cf.ragsoc)-(char*)&(cf.tipocf),50); + else + if (_ordinamento == 2) + _sort->addsortkey ((char*)&(cf.ragsoc)-(char*)&(cf.tipocf),50); _sort->init(); } @@ -2187,10 +1955,10 @@ void TStampa_bilanci::riempi_record(char t,int g,int c,long s, sprintf_s(cf.ragsoc, "%s", rs); if ( s == 999999L ) { - if ( (_datada == _dataini)||(_tipo_stampa1 != 1) ) + if ((_dal == _dataini) || (_tipo_stampa != 1)) { //modifica del 21/11/1995 - if (_tipo_stampa1 == 1 && _datada == _dataini) + if (_tipo_stampa == 1 && _dal == _dataini) { cf.saldodare = _saldo_ini_conto_dare; cf.saldoavere = _saldo_ini_conto_avere; @@ -2199,24 +1967,27 @@ void TStampa_bilanci::riempi_record(char t,int g,int c,long s, //fine { real app = _saldo_ini_conto_dare + _saldo_ini_conto_avere; + if (app > ZERO) //va stampato in Dare { cf.saldoavere = ZERO; cf.saldodare = app; } - else if (app < ZERO) - { - app = -app; - cf.saldodare = ZERO; - cf.saldoavere = app; - } + else + if (app < ZERO) + { + app = -app; + cf.saldodare = ZERO; + cf.saldoavere = app; + } } } - else if (_datada > _dataini) - { - cf.saldodare = sd; - cf.saldoavere = sa; - } + else + if (_dal > _dataini) + { + cf.saldodare = sd; + cf.saldoavere = sa; + } } else { @@ -2243,13 +2014,13 @@ void TStampa_bilanci::leggi_clifo(const TArray& gccf) real saldo_finale, saldo_conto, saldo_iniziale, saldodare, saldoavere, movdare, movavere; real mov_conto_dare, mov_conto_avere, prg_conto_dare, prg_conto_avere; - bool esiste_sc = FALSE, movimentato = FALSE; + bool esiste_sc = false, movimentato = false; TRecnotype items = _cur->items(); + TProgress_monitor p(_pcn->eod(), "Elaborazione saldi clienti/fornitori"); _gp=-1; _cp=-1; tipocfp = ' '; - _saldo_ini_conto_dare = ZERO; _saldo_ini_conto_avere = ZERO; saldo_conto = ZERO; @@ -2259,16 +2030,16 @@ void TStampa_bilanci::leggi_clifo(const TArray& gccf) prg_conto_avere = ZERO; _u_max = 0l; - const int anno = _tipo_stampa1 == 1 ? _annoapp : _annoes; + const int anno = _tipo_stampa == 1 ? _annoapp : _annoes; + for (int i=0; i < gccf.items(); i++) { int g = ((TToken_string&)gccf[i]).get_int(0); int c = ((TToken_string&)gccf[i]).get_int(1); *_cur = 0l; - for (int i = 0; i < items; i++,++(*_cur)) + for (int i = 0; i < items && p.addstatus(1L); i++,++(*_cur)) { - _prog->addstatus(1); codcf = _cur->curr().get_long(CLI_CODCF); tipocf = _cur->curr().get(CLI_TIPOCF)[0]; ragsoc = _cur->curr().get(CLI_RAGSOC); @@ -2286,7 +2057,7 @@ void TStampa_bilanci::leggi_clifo(const TArray& gccf) int aprec = ese.pred(anno); saldi.zero(); saldi.put(SLD_ANNOES, anno); // W96SALDI del 05-06-96 - saldi.put(SLD_FLSCA, FALSE); + saldi.put(SLD_FLSCA, false); saldi.put(SLD_GRUPPO, g); saldi.put(SLD_CONTO, c); saldi.put(SLD_SOTTOCONTO, codcf); @@ -2302,7 +2073,7 @@ void TStampa_bilanci::leggi_clifo(const TArray& gccf) { saldi.zero(); saldi.put(SLD_ANNOES, aprec); // W96SALDI del 05-06-96 - saldi.put(SLD_FLSCA, FALSE); + saldi.put(SLD_FLSCA, false); saldi.put(SLD_GRUPPO, g); saldi.put(SLD_CONTO, c); saldi.put(SLD_SOTTOCONTO, codcf); @@ -2319,7 +2090,7 @@ void TStampa_bilanci::leggi_clifo(const TArray& gccf) prg_conto_avere,mov_conto_dare,mov_conto_avere,saldo_conto); tipocfp = tipocf; _cp = c; - esiste_sc = FALSE; + esiste_sc = false; _saldo_ini_conto_dare = ZERO; _saldo_ini_conto_avere = ZERO; saldo_conto = ZERO; @@ -2336,10 +2107,10 @@ void TStampa_bilanci::leggi_clifo(const TArray& gccf) movavere = ZERO; saldo_iniziale = ZERO; - if (_tipo_stampa1 == 1) //bilancio di verifica per data limite + if (_tipo_stampa == 1) //bilancio di verifica per data limite { //modifica del 21/11/1995 - _mov_ap = FALSE; + _mov_ap = false; //modifica del 19/06/95 _indbil = cerca_indbil(g,c); @@ -2365,13 +2136,14 @@ void TStampa_bilanci::leggi_clifo(const TArray& gccf) TLocalisamfile saldi(LF_SALDI); saldi.zero(); saldi.put(SLD_ANNOES, _annoes); // W96SALDI del 05-06-96 - saldi.put(SLD_FLSCA, FALSE); + saldi.put(SLD_FLSCA, false); saldi.put(SLD_GRUPPO, g); saldi.put(SLD_CONTO, c); saldi.put(SLD_SOTTOCONTO, codcf); if (saldi.read() == NOERR) { const real s = saldi.get_real(SLD_SALDO); + if (_stampa_mov_prov & 0x1) if (_indbil == 1 || _indbil == 2 || _indbil == 5) if (s.is_zero() && _annoes != 0) //competenza!!! @@ -2390,18 +2162,19 @@ void TStampa_bilanci::leggi_clifo(const TArray& gccf) //movimentato = calcola(g,c,codcf); if (movimentato || _stampac != 1 || saldo_iniziale != ZERO) { - if (_datada == _dataini) + if (_dal == _dataini) saldo_finale = saldo_iniziale+_mov_periodo_dare-_mov_periodo_avere; - else if (_datada > _dataini) - { - //modifica del 19/06 - if (saldo_iniziale > 0) - _prg_prec_dare += saldo_iniziale; - else _prg_prec_avere -= saldo_iniziale; - //fine modifica - saldo_finale = _prg_prec_dare-_prg_prec_avere+_mov_periodo_dare - -_mov_periodo_avere; - } + else + if (_dal > _dataini) + { + //modifica del 19/06 + if (saldo_iniziale > 0) + _prg_prec_dare += saldo_iniziale; + else _prg_prec_avere -= saldo_iniziale; + //fine modifica + saldo_finale = _prg_prec_dare-_prg_prec_avere+_mov_periodo_dare + -_mov_periodo_avere; + } } //se saldo_finale < 0 verra' stampato con una A, se no con una D @@ -2437,10 +2210,10 @@ void TStampa_bilanci::leggi_clifo(const TArray& gccf) if (movimentato || _stampac != 1 || saldo_iniziale != ZERO) if (!(saldo_finale.is_zero() && _stampac == 2)) { - esiste_sc = TRUE; + esiste_sc = true; //modifica del 21/11/1995 - if (_tipo_stampa1 == 1 && _datada == _dataini) + if (_tipo_stampa == 1 && _dal == _dataini) { _saldo_ini_conto_dare += _saldo_ini_dare; _saldo_ini_conto_avere += _saldo_ini_avere; @@ -2460,10 +2233,10 @@ void TStampa_bilanci::leggi_clifo(const TArray& gccf) prg_conto_avere += _prg_prec_avere; saldo_conto += saldo_finale; // somma algebrica!!! - if ( (_datada == _dataini)||(_tipo_stampa1 != 1) ) + if ((_dal == _dataini) || (_tipo_stampa != 1)) { //modifica del 21/11/1995 - if (_tipo_stampa1 == 1 && _datada == _dataini) + if (_tipo_stampa == 1 && _dal == _dataini) { saldodare = _saldo_ini_dare; saldoavere = _saldo_ini_avere; @@ -2473,18 +2246,20 @@ void TStampa_bilanci::leggi_clifo(const TArray& gccf) { if (saldo_iniziale > ZERO) //va stampato in Dare saldodare = saldo_iniziale; - else if (saldo_iniziale < ZERO) - { - saldo_iniziale = -saldo_iniziale; - saldoavere = saldo_iniziale; - } + else + if (saldo_iniziale < ZERO) + { + saldo_iniziale = -saldo_iniziale; + saldoavere = saldo_iniziale; + } } } - else if (_datada > _dataini) - { - saldodare = _prg_prec_dare; - saldoavere = _prg_prec_avere; - } + else + if (_dal > _dataini) + { + saldodare = _prg_prec_dare; + saldoavere = _prg_prec_avere; + } movdare = _mov_periodo_dare; movavere = _mov_periodo_avere; @@ -2508,11 +2283,12 @@ void TStampa_bilanci::crea_sort_clifo() //serve solo per la progind: stima alla meno peggio if (_situazione.empty()) ncur /= 2; long nitems = ncur*(_clienti.items()+_fornitori.items()); - _prog = new TProgress_monitor(nitems,TR("Elaborazione clienti/fornitori"),false); - _prog->addstatus(1); - init_sort(); + + init_sort(); if (_situazione == "C") leggi_clifo(_clienti); - else if (_situazione == "F") leggi_clifo(_fornitori); + else + if (_situazione == "F") + leggi_clifo(_fornitori); else { _cur->setfilter("TIPOCF = \"C\""); @@ -2548,18 +2324,18 @@ void TStampa_bilanci::leggi_files_dare(TIsamtempfile* file) _conto_dare = file->get_int(SLD_CONTO); _sottoconto_dare = file->get_long(SLD_SOTTOCONTO); _saldo_dare = file->get_real(SLD_PDARE); - - _descr_dare = DescrizioneConto(_gruppo_dare,_conto_dare,_sottoconto_dare,' '); + _descr_dare = TBill(_gruppo_dare, _conto_dare, _sottoconto_dare, ' ').descrizione(); _gc_corr_dare = format("%3d%3d", _gruppo_dare, _conto_dare); if (_gc_corr_dare != _gc_prec_dare) { - _cambiato_conto_1 = TRUE; + _cambiato_conto_1 = true; _gc_prec_dare = _gc_corr_dare; } - else if (_sottoconto_dare != 0l) - _cambiato_conto_1 = FALSE; + else + if (_sottoconto_dare != 0l) + _cambiato_conto_1 = false; } void TStampa_bilanci::leggi_files_avere(TIsamtempfile* file) @@ -2568,18 +2344,17 @@ void TStampa_bilanci::leggi_files_avere(TIsamtempfile* file) _conto_avere = file->get_int(SLD_CONTO); _sottoconto_avere = file->get_long(SLD_SOTTOCONTO); _saldo_avere = file->get_real(SLD_PAVERE); - - _descr_avere = DescrizioneConto(_gruppo_avere,_conto_avere,_sottoconto_avere, - ' '); + _descr_avere = TBill(_gruppo_avere, _conto_avere, _sottoconto_avere, ' ').descrizione(); _gc_corr_avere = format("%3d%3d", _gruppo_avere, _conto_avere); if (_gc_corr_avere != _gc_prec_avere) { - _cambiato_conto_2 = TRUE; + _cambiato_conto_2 = true; _gc_prec_avere = _gc_corr_avere; } - else if (_sottoconto_avere != 0l) - _cambiato_conto_2 = FALSE; + else + if (_sottoconto_avere != 0l) + _cambiato_conto_2 = false; } #define TOTAL_PICTURE "###.###.###.###.###" @@ -2587,7 +2362,7 @@ void TStampa_bilanci::leggi_files_avere(TIsamtempfile* file) HIDDEN void total2string(const real& tot, TString& str) { TCurrency cur(tot); - str = cur.string(TRUE); + str = cur.string(true); str.right_just(strlen(TOTAL_PICTURE)); } @@ -2604,11 +2379,11 @@ bool TStampa_bilanci::preprocess_print(int file, int counter) _tmp_saldi_conti_uno->setkey(2); _tmp_saldi_conti_due->setkey(2); _gc_prec_avere = ""; - _prima_volta = _seconda_volta = TRUE; - _flag = _controlla = FALSE; - _salto_pagina = _salto_pagina1 = _stampato = FALSE; - _cambiato_conto_1 = TRUE; - _cambiato_conto_2 = TRUE; + _prima_volta = _seconda_volta = true; + _flag = _controlla = false; + _salto_pagina = _salto_pagina1 = _stampato = false; + _cambiato_conto_1 = true; + _cambiato_conto_2 = true; _tot_dare = ZERO; _tot_avere = ZERO; } @@ -2619,28 +2394,28 @@ bool TStampa_bilanci::preprocess_print(int file, int counter) else set_real_picture ("####.###.###.###"); - set_print_zero(FALSE); - _cambiato_conto_1 = FALSE; - _livello_conto = TRUE; + set_print_zero(false); + _cambiato_conto_1 = false; + _livello_conto = true; _saldo_dare_tot = ZERO; _saldo_avere_tot = ZERO; _mov_dare_tot = ZERO; _mov_avere_tot = ZERO; _saldo_finale_tot = ZERO; } - set_magic_currency(TRUE); - return TRUE; + set_magic_currency(true); + return true; } void TStampa_bilanci::leggi_file_tmp() { - if (_livello_conto) // era meglio chiamarla _livello_conto_oppure_gruppo, perche' nel caso dei saldi di mastro _livello_conto==TRUE <=> si tratta di un gruppo, mentre nel caso del bilancio _livello_conto==TRUE <=> si tratta di un conto + if (_livello_conto) // era meglio chiamarla _livello_conto_oppure_gruppo, perche' nel caso dei saldi di mastro _livello_conto==true <=> si tratta di un gruppo, mentre nel caso del bilancio _livello_conto==true <=> si tratta di un conto { _gruppo = _tmp_saldi_att->get_int(SLD_GRUPPO); _conto = _tmp_saldi_att->get_int(SLD_CONTO); _sottoconto = _tmp_saldi_att->get_long(SLD_SOTTOCONTO); _tipo_conto = _tmp_saldi_att->get_char(SLD_FLAGSALINI); - _descr = DescrizioneConto(_gruppo,_conto,_sottoconto,_tipo_conto); + _descr = TBill(_gruppo,_conto,_sottoconto,_tipo_conto).descrizione(); _saldoini_dare = _tmp_saldi_att->get_real(SLD_PDAREPRO); // W96SALDI del 05-06-96 _saldoini_avere = _tmp_saldi_att->get_real(SLD_PAVEREPRO); _mov_dare = _tmp_saldi_att->get_real(SLD_PDARE); @@ -2656,23 +2431,22 @@ void TStampa_bilanci::leggi_file_tmp() _tipoc_succ = _tmp_saldi_att->get_char(SLD_FLAGSALINI); if ( (_verifica != 2) && (_sottoconto_succ != 0) ) { - if (_tipo_stampa1 == 2) + if (_tipo_stampa == 2) _ultima_data = UltimaData(_gruppo_succ,_conto_succ, _sottoconto_succ,_annoes); else _ultima_data = _tmp_saldi_att->get_date(SLD_DATAULMOV); } - _descr_succ = DescrizioneConto(_gruppo_succ,_conto_succ, - _sottoconto_succ,_tipoc_succ); + _descr_succ = TBill(_gruppo_succ,_conto_succ, _sottoconto_succ,_tipoc_succ).descrizione(); _saldoini_dare_succ = _tmp_saldi_att->get_real(SLD_PDAREPRO); // W96SALDI del 05-06-96 _saldoini_avere_succ = _tmp_saldi_att->get_real(SLD_PAVEREPRO); _mov_dare_succ = _tmp_saldi_att->get_real(SLD_PDARE); _mov_avere_succ = _tmp_saldi_att->get_real(SLD_PAVERE); _saldofinale_succ = _tmp_saldi_att->get_real(SLD_SALDO); - _livello_conto = FALSE; + _livello_conto = false; if ( ((_verifica != 2)&&(_sottoconto_succ == 0)) || ((_verifica == 2)&&(_conto_succ == 0)) ) { - _livello_conto = TRUE; + _livello_conto = true; _gruppo_succ = _gruppo; _conto_succ = _conto; _sottoconto_succ = _sottoconto; @@ -2710,7 +2484,7 @@ bool TStampa_bilanci::preprocess_page(int file, int counter) } else { - _controlla = TRUE; + _controlla = true; if (_salto_pagina) { @@ -2738,7 +2512,7 @@ bool TStampa_bilanci::preprocess_page(int file, int counter) } else { - _flag = TRUE; + _flag = true; if (_salto_pagina1) { @@ -2786,13 +2560,13 @@ bool TStampa_bilanci::preprocess_page(int file, int counter) { _eof1 = _tmp_saldi_att->first(); if (_eof1) - return FALSE; + return false; else leggi_file_tmp(); } } } - return TRUE; + return true; } void TStampa_bilanci::leggi_sort() @@ -2808,7 +2582,7 @@ void TStampa_bilanci::leggi_sort() _descr = cf->ragsoc; if ( (_ordinamento == 2 && _descr != "zzzz") || (_ordinamento == 1 && _sottoconto != 999999L) ) { - if (_tipo_stampa1 == 2) + if (_tipo_stampa == 2) _ultima_data = UltimaData(_gruppo,_conto,_sottoconto,_annoes); else _ultima_data = cf->udata; @@ -2827,13 +2601,13 @@ void TStampa_bilanci::controlla_conto(int file1,int file2) if (_cambiato_conto_1) { set_row(_i,"@67g*"); - _cambiato_conto_1 = FALSE; + _cambiato_conto_1 = false; } else { stampa_prima_colonna(_gruppo_dare, _conto_dare, _sottoconto_dare, _descr_dare,_saldo_dare); - _cambiato_conto_1 = TRUE; + _cambiato_conto_1 = true; if (!_totali) if ( (_conto_dare == 0) && (_sottoconto_dare == 0) ) _tot_dare += _saldo_dare; @@ -2846,13 +2620,13 @@ void TStampa_bilanci::controlla_conto(int file1,int file2) if (_cambiato_conto_2) { set_row(_i,"@67g*"); - _cambiato_conto_2 = FALSE; + _cambiato_conto_2 = false; } else { stampa_seconda_colonna(_gruppo_avere, _conto_avere, _sottoconto_avere, _descr_avere, _saldo_avere); - _cambiato_conto_2 = TRUE; + _cambiato_conto_2 = true; if (!_totali) if ( (_conto_avere == 0) && (_sottoconto_avere == 0) ) _tot_avere += _saldo_avere; @@ -2910,7 +2684,7 @@ void TStampa_bilanci::set_page(int file, int counter) set_row(_i++,FR("@29gCOSTI@98gRICAVI")); set_row(_i++,"@29g-----@98g------"); set_row(_i++, dep); - _salto_pagina = TRUE; + _salto_pagina = true; } @@ -2929,11 +2703,11 @@ void TStampa_bilanci::set_page(int file, int counter) set_row(_i++, dep); if (_eof5 && _eof6) { - _stampato = TRUE; + _stampato = true; stampa_totali_uno(_prg_inidare_ord,_prg_iniavere_ord); } } - _salto_pagina1 = TRUE; + _salto_pagina1 = true; } if (_eof3 && _eof4 && _flag) @@ -2961,15 +2735,16 @@ void TStampa_bilanci::set_page(int file, int counter) *_d = (const char*) _descr; if (_saldofinale > 0) app = 'D'; - else if (_saldofinale < 0) - { - _saldofinale = -_saldofinale; - app = 'A'; - } + else + if (_saldofinale < 0) + { + _saldofinale = -_saldofinale; + app = 'A'; + } if ( (_ordinamento == 2 && _descr == "zzzz") || (_ordinamento == 1 && _sottoconto == 999999L) ) //devo stampare il conto { - _descr = DescrizioneConto(_gruppo,_conto,0L,' '); + _descr = TBill(_gruppo, _conto, 0L, ' ').descrizione(); stampa_record_conto(_gruppo,_conto,_descr,_saldo_dare,_saldo_avere, _mov_dare,_mov_avere,_saldofinale,app); } @@ -2988,28 +2763,29 @@ void TStampa_bilanci::set_page(int file, int counter) if (_descr.len() > 30) set_row(++r, "@46g!@80g!@114g!"); } - else if (app == 'D') - { - set_row(r,"@1g%6ld", _sottoconto); - if ((_saldo_dare != ZERO) || (_saldo_avere != ZERO) || (_mov_dare != ZERO) || - (_mov_avere != ZERO) || (_saldofinale != ZERO)) - set_row(r," %s",(const char*)udata); - set_row(r,"@17g#a@46g!%r@64g%r@80g!%r@98g%r@114g!%r@148g!",_d, - &_saldo_dare,&_saldo_avere,&_mov_dare,&_mov_avere,&_saldofinale); - if (_descr.len() > 30) - set_row(++r, "@46g!@80g!@114g!@148g!"); - } else - { - set_row(r,"@1g%6ld", _sottoconto); - if ((_saldo_dare != ZERO) || (_saldo_avere != ZERO) || (_mov_dare != ZERO) || - (_mov_avere != ZERO) || (_saldofinale != ZERO)) - set_row(r," %s",(const char*)udata); - set_row(r,"@17g#a@46g!%r@64g%r@80g!%r@100g%r@114g!@132g%r@148g!", - _d,&_saldo_dare,&_saldo_avere,&_mov_dare,&_mov_avere,&_saldofinale); - if (_descr.len() > 30) - set_row(++r, "@46g!@80g!@114g!@148g!"); - } + if (app == 'D') + { + set_row(r,"@1g%6ld", _sottoconto); + if ((_saldo_dare != ZERO) || (_saldo_avere != ZERO) || (_mov_dare != ZERO) || + (_mov_avere != ZERO) || (_saldofinale != ZERO)) + set_row(r," %s",(const char*)udata); + set_row(r,"@17g#a@46g!%r@64g%r@80g!%r@98g%r@114g!%r@148g!",_d, + &_saldo_dare,&_saldo_avere,&_mov_dare,&_mov_avere,&_saldofinale); + if (_descr.len() > 30) + set_row(++r, "@46g!@80g!@114g!@148g!"); + } + else + { + set_row(r,"@1g%6ld", _sottoconto); + if ((_saldo_dare != ZERO) || (_saldo_avere != ZERO) || (_mov_dare != ZERO) || + (_mov_avere != ZERO) || (_saldofinale != ZERO)) + set_row(r," %s",(const char*)udata); + set_row(r,"@17g#a@46g!%r@64g%r@80g!%r@100g%r@114g!@132g%r@148g!", + _d,&_saldo_dare,&_saldo_avere,&_mov_dare,&_mov_avere,&_saldofinale); + if (_descr.len() > 30) + set_row(++r, "@46g!@80g!@114g!@148g!"); + } } } } @@ -3043,13 +2819,14 @@ void TStampa_bilanci::set_page(int file, int counter) if (_saldofinale_succ != ZERO) set_row(r,"@131g%c", app); } - else if (app == 'D') - { - set_row(r,"%3d",_conto_succ); - set_row(r," @8g%-.40s@46g!%r@64g%r@80g!%r@98g%r@114g!%r@148g!", - (const char*)_descr_succ,&_saldoini_dare_succ,&_saldoini_avere_succ, - &_mov_dare_succ,&_mov_avere_succ,&_saldofinale_succ); - } + else + if (app == 'D') + { + set_row(r,"%3d",_conto_succ); + set_row(r," @8g%-.40s@46g!%r@64g%r@80g!%r@98g%r@114g!%r@148g!", + (const char*)_descr_succ,&_saldoini_dare_succ,&_saldoini_avere_succ, + &_mov_dare_succ,&_mov_avere_succ,&_saldofinale_succ); + } else { set_row(r,"%3d",_conto_succ); @@ -3182,24 +2959,25 @@ int TStampa_bilanci::stampa_record_conto(int g,int c,const TString& d, if (d.len() > 30) set_row(r+1, "@46g!@80g!@114g!"); } - else if (app == 'D') - { - set_row(r,"%3d-",g); - set_row(r,"%3d ********",c); - set_row(r,"@17g#a",_d); - set_row(r++,"@46g!%r@64g%r@80g!%r@98g%r@114g!%r@148g!",&r1,&r2,&r3,&r4,&r5); - if (d.len() > 30) - set_row(r+1, "@46g!@80g!@114g!@148g!"); - } else - { - set_row(r,"%3d-",g); - set_row(r,"%3d ********",c); - set_row(r,"@17g#a",_d); - set_row(r++,"@46g!%r@64g%r@80g!%r@98g%r@114g!@132g%r@148g!",&r1,&r2,&r3,&r4,&r5); - if (d.len() > 30) - set_row(r+1, "@46g!@80g!@114g!@148g!"); - } + if (app == 'D') + { + set_row(r,"%3d-",g); + set_row(r,"%3d ********",c); + set_row(r,"@17g#a",_d); + set_row(r++,"@46g!%r@64g%r@80g!%r@98g%r@114g!%r@148g!",&r1,&r2,&r3,&r4,&r5); + if (d.len() > 30) + set_row(r+1, "@46g!@80g!@114g!@148g!"); + } + else + { + set_row(r,"%3d-",g); + set_row(r,"%3d ********",c); + set_row(r,"@17g#a",_d); + set_row(r++,"@46g!%r@64g%r@80g!%r@98g%r@114g!@132g%r@148g!",&r1,&r2,&r3,&r4,&r5); + if (d.len() > 30) + set_row(r+1, "@46g!@80g!@114g!@148g!"); + } } set_row(r,"@46g!@80g!@114g!"); @@ -3231,16 +3009,18 @@ void TStampa_bilanci::stampa_riga_totali(int r) if (_saldo_finale_tot > 0) app = 'D'; - else if (_saldo_finale_tot < 0) - { - _saldo_finale_tot = -_saldo_finale_tot; - app = 'A'; - } + else + if (_saldo_finale_tot < 0) + { + _saldo_finale_tot = -_saldo_finale_tot; + app = 'A'; + } //modifica del 21/11/1995 - if (_tipo_stampa1 == 2) + if (_tipo_stampa == 2) { real r = _saldo_dare_tot - _saldo_avere_tot; + if (r > ZERO) { _saldo_dare_tot = r; @@ -3287,10 +3067,10 @@ void TStampa_bilanci::stampa_riga_totali(int r) set_row(r,"@131g%c", app); r++; - if ((_tipo_stampa1 == 1 && _datada == _dataini) || _tipo_stampa1 == 2) + if ((_tipo_stampa == 1 && _dal == _dataini) || _tipo_stampa == 2) { //modifica del 21/11/1995 - if (_tipo_stampa1 == 2) + if (_tipo_stampa == 2) set_row(r,FR("@1g****** ********@17gTOTALE CON SALDI INIZIALI@46g!@80g!%r@98g%r@114g!"),&_nuovo_tot_saldo_d,&_nuovo_tot_saldo_a); else set_row(r,FR("@1g****** ********@17gTOTALE CON MOVIM. DI APERTURA@46g!@80g!%r@98g%r@114g!"),&_nuovo_tot_saldo_d,&_nuovo_tot_saldo_a); @@ -3310,9 +3090,9 @@ void TStampa_bilanci::stampa_riga_totali(int r) &_saldo_avere_tot,&_mov_dare_tot,&_mov_avere_tot, &_saldo_finale_tot); } - if ((_tipo_stampa1 == 1 && _datada == _dataini) || _tipo_stampa1 == 2) + if ((_tipo_stampa == 1 && _dal == _dataini) || _tipo_stampa == 2) { - if (_tipo_stampa1 == 2) + if (_tipo_stampa == 2) set_row(r,FR("@1g****** ********@17gTOTALE CON SALDI INIZIALI@46g!@80g!%r@98g%r@114g!@148g!"),&_nuovo_tot_saldo_d,&_nuovo_tot_saldo_a); else set_row(r,FR("@1g****** ********@17gTOTALE CON MOVIM. DI APERTURA@46g!@80g!%r@98g%r@114g!@148g!"),&_nuovo_tot_saldo_d,&_nuovo_tot_saldo_a); @@ -3326,6 +3106,7 @@ void TStampa_bilanci::stampa_totali() const TString16 dep = ""; real pareggio; real sbilancio = _tot_dare - _tot_avere; + if (sbilancio > ZERO) //_tot_dare > _tot_avere pareggio = _tot_avere + sbilancio; else @@ -3334,13 +3115,13 @@ void TStampa_bilanci::stampa_totali() pareggio = _tot_dare + sbilancio; } if (_prima_volta) //ho finito di stampare le attivita'/passivita' - _prima_volta = FALSE; + _prima_volta = false; else - _seconda_volta = FALSE; + _seconda_volta = false; const bool stato_patrimoniale = _seconda_volta; // cosa mi tocca fare _gc_prec_dare = _gc_corr_avere = ""; - _cambiato_conto_1 = TRUE; - _cambiato_conto_2 = TRUE; + _cambiato_conto_1 = true; + _cambiato_conto_2 = true; set_row(_i++, (const char*)dep); set_row(_i++, (const char*)dep); @@ -3380,13 +3161,13 @@ void TStampa_bilanci::stampa_totali_uno(const real& r1,const real& r2) real sbilprec = r2 - r1; if (_prima_volta) //ho finito di stampare le attivita'/passivita' - _prima_volta = FALSE; + _prima_volta = false; else - _seconda_volta = FALSE; + _seconda_volta = false; const bool stato_patrimoniale = _seconda_volta; // cosa mi tocca fare _gc_prec_dare = _gc_corr_avere = ""; - _cambiato_conto_1 = TRUE; - _cambiato_conto_2 = TRUE; + _cambiato_conto_1 = true; + _cambiato_conto_2 = true; const char* dep = ""; set_row(_i++, (const char*)dep); @@ -3415,47 +3196,49 @@ void TStampa_bilanci::stampa_totali_uno(const real& r1,const real& r2) set_row(_i++, FR("@77gPERDITA DELL'ESERCIZIO IN CORSO@113g%s"), (const char*)pal); set_row(_i++, FR("@91gTOTALE A PAREGGIO@113g%s"),(const char*)bal); } - else if (sbilancio < ZERO) //ho una perdita => va stampato tra le attivita' - { - sbilancio = -sbilancio; - pareggio = _tot_dare + sbilancio + sbilprec; - if (sbilprec != ZERO) - { - TString sb; total2string(sbilprec, sb); - set_row(_i++, FR("@15gSBILANCIO ESERCIZIO PRECEDENTE@48g%s"), - (const char*)sb); - } + else + if (sbilancio < ZERO) //ho una perdita => va stampato tra le attivita' + { + sbilancio = -sbilancio; + pareggio = _tot_dare + sbilancio + sbilprec; + if (sbilprec != ZERO) + { + TString sb; total2string(sbilprec, sb); + set_row(_i++, FR("@15gSBILANCIO ESERCIZIO PRECEDENTE@48g%s"), + (const char*)sb); + } - TString pal; total2string(sbilancio, pal); - TString bal; total2string(pareggio, bal); - if (stato_patrimoniale) - set_row(_i++, FR("@14gPERDITA DELL'ESERCIZIO IN CORSO@48g%s"), (const char*)pal); - else - set_row(_i++, FR("@16gUTILE DELL'ESERCIZIO IN CORSO@48g%s"), (const char*)pal); - set_row(_i++, FR("@28gTOTALE A PAREGGIO@48g%s"),(const char*)bal); - } - else //sbilancio es. in corso == 0 - { - sbilprec = -sbilprec; - if (sbilprec > ZERO) //va stampato sotto le passivita' - { - TString pal; total2string(sbilprec, pal); - pareggio = _tot_avere + sbilprec; - TString bal; total2string(pareggio, bal); - set_row(_i++, FR("@83gSBILANCIO ESERCIZIO PRECEDENTE@113g%s"), - (const char*)pal); - set_row(_i++, FR("@96gTOTALE A PAREGGIO@113g%s"), (const char*)bal); - } - else if (sbilprec < ZERO) - { - sbilprec = -sbilprec; - pareggio = _tot_dare + sbilprec; - TString pal; total2string(sbilprec, pal); - TString bal; total2string(pareggio, bal); - set_row(_i++, FR("@15gSBILANCIO ESERCIZIO PRECEDENTE@48g%s"), (const char*)pal); - set_row(_i++, FR("@28gTOTALE A PAREGGIO@48g%s"), (const char*)bal); - } - } + TString pal; total2string(sbilancio, pal); + TString bal; total2string(pareggio, bal); + if (stato_patrimoniale) + set_row(_i++, FR("@14gPERDITA DELL'ESERCIZIO IN CORSO@48g%s"), (const char*)pal); + else + set_row(_i++, FR("@16gUTILE DELL'ESERCIZIO IN CORSO@48g%s"), (const char*)pal); + set_row(_i++, FR("@28gTOTALE A PAREGGIO@48g%s"),(const char*)bal); + } + else //sbilancio es. in corso == 0 + { + sbilprec = -sbilprec; + if (sbilprec > ZERO) //va stampato sotto le passivita' + { + TString pal; total2string(sbilprec, pal); + pareggio = _tot_avere + sbilprec; + TString bal; total2string(pareggio, bal); + set_row(_i++, FR("@83gSBILANCIO ESERCIZIO PRECEDENTE@113g%s"), + (const char*)pal); + set_row(_i++, FR("@96gTOTALE A PAREGGIO@113g%s"), (const char*)bal); + } + else + if (sbilprec < ZERO) + { + sbilprec = -sbilprec; + pareggio = _tot_dare + sbilprec; + TString pal; total2string(sbilprec, pal); + TString bal; total2string(pareggio, bal); + set_row(_i++, FR("@15gSBILANCIO ESERCIZIO PRECEDENTE@48g%s"), (const char*)pal); + set_row(_i++, FR("@28gTOTALE A PAREGGIO@48g%s"), (const char*)bal); + } + } _tot_dare = ZERO; _tot_avere = ZERO; } @@ -3473,13 +3256,14 @@ void TStampa_bilanci::stampa_prima_colonna(int g, int c, long s, else set_row(_i, "%-.48s @48g%r", desc, &saldo); } - else if ( !(c == 0 && s == 0) ) //se cioe' non e' un gruppo - { - if (s == 0) //se e' un conto - set_row(_i, "%-.44s @44g @48g%r", desc, &saldo); - else - set_row(_i, "%-.48s @48g%r", desc, &saldo); - } + else + if ( !(c == 0 && s == 0) ) //se cioe' non e' un gruppo + { + if (s == 0) //se e' un conto + set_row(_i, "%-.44s @44g @48g%r", desc, &saldo); + else + set_row(_i, "%-.48s @48g%r", desc, &saldo); + } } else { @@ -3544,8 +3328,9 @@ print_action TStampa_bilanci::postprocess_page(int file, int counter) if (_buff == NULL) return NEXT_PAGE; } - else if (_eof1) - return NEXT_PAGE; + else + if (_eof1) + return NEXT_PAGE; } return REPEAT_PAGE; } @@ -3558,7 +3343,7 @@ TDate TStampa_bilanci::UltimaData(int g, int c, long s, int anno) saldi.zero(); if (_annoes != 0) saldi.put(SLD_ANNOES, anno); - saldi.put(SLD_FLSCA, FALSE); // W96SALDI del 05-06-96 + saldi.put(SLD_FLSCA, false); // W96SALDI del 05-06-96 saldi.put(SLD_GRUPPO,g); if (c != 0) saldi.put(SLD_CONTO, c); @@ -3572,58 +3357,6 @@ TDate TStampa_bilanci::UltimaData(int g, int c, long s, int anno) return uldata; } -// Non ho potuto usare quella di TConto!!! Chiedere a me! -// Guy: E tu chi sei? -const char* TStampa_bilanci::DescrizioneConto(int g, int c, long s, char tipocf) -{ -/* - static TString80 ragsoc; - const char* desc = NULL; - - TString80 key; key << g; - if (c != 0) - { - key << "|" << c ; - if (s != 0) - key << "|" << s; - } - const TRectype & pconti = cache().get(LF_PCON, key); - if (!pconti.empty()) - _tmp = pconti.get(PCN_DESCR); - else - { - key.format("%c|%ld", tipocf, s); - const TRectype & clifo = cache().get(LF_CLIFO, key); - - if (!clifo.empty()) - { - char tipoa = clifo.get_char(CLI_TIPOAPER); - if (tipoa == 'F') //persona fisica - { - TString80 cognome, nome; - ragsoc = clifo.get(CLI_RAGSOC); - cognome = ragsoc.mid(0,30); - nome = ragsoc.mid(30,20); - cognome.trim(); nome.trim(); - ragsoc = cognome; - ragsoc << " " << nome; - desc = ragsoc; - } - else - desc = clifo.get(CLI_RAGSOC); - _tmp = desc; - } - else - _tmp = ""; - - } - return _tmp; -*/ - const TBill bill(g, c, s, tipocf); - _tmp = bill.descrizione(); - return _tmp; -} - bool TStampa_bilanci::user_create() { open_files(LF_TAB, 0); @@ -3648,7 +3381,7 @@ bool TStampa_bilanci::user_create() _tmp_saldi_ricavi = NULL; _tmp_saldi_conti_uno = NULL; _tmp_saldi_conti_due = NULL; - return TRUE; + return true; } bool TStampa_bilanci::user_destroy() @@ -3672,7 +3405,7 @@ bool TStampa_bilanci::user_destroy() 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; + return true; } void TStampa_bilanci::leggi_pcon() @@ -3699,43 +3432,32 @@ void TStampa_bilanci::leggi_pcon() gc.add(conto,1); _clienti.add(gc); } - else if ( tipocf == 'F' && (_situazione.empty() || _situazione == "F")) - { - gc.add(gruppo,0); - gc.add(conto,1); - _fornitori.add(gc); - } + else + if ( tipocf == 'F' && (_situazione.empty() || _situazione == "F")) + { + gc.add(gruppo,0); + gc.add(conto,1); + _fornitori.add(gc); + } } } } void TStampa_bilanci::stampa_un_bilancio(const TMask& m) { - _prog = NULL; if (_bilancio == 1) //bilancio a sezioni contrapposte { printer().footerlen(3); - _prog = new TProgress_monitor(_pcn->items(),TR("Elaborazione conti"), false); _totali = m.get_bool(F_TOTALI); _codici = m.get_bool(F_CODICI); _saldo = m.get_bool(F_SALDO); _tipo_stampa = m.get_int(F_STAMPA); - - if (_tipo_stampa == 1) - { - _datalim = m.get(F_DATALIM); - _print_exercise = TRUE; - if (_annoes == 0) - { - _print_exercise = FALSE; - _annoes = date2esc(_datalim); - } - - if (_annoes != 0) - _dataini = InizioEsercizio(_annoes); - else - _dataini = _inizioEs; - } + _annoes = m.get_int(F_ANNO); + _al = m.get(F_DATALIM); + if (_annoes == 0) + _annoes = esercizi().exist(_al) ? esercizio(_al).codice() : esercizio(TDate(TODAY)).codice(); + _dataini = esercizio(_annoes).inizio(); + _print_exercise = (_tipo_stampa == 1); bil_sez_contr(); } else //bilancio di verifica (tipo 1,2,3) @@ -3745,19 +3467,13 @@ void TStampa_bilanci::stampa_un_bilancio(const TMask& m) _verifica = m.get_int(F_VERIFICA); //tipo di bilancio di verifica da stampare _print_full_code = _verifica == 1 && m.get_bool(F_PRINT_FULL_CODE); - if ( (_verifica == 1)||(_verifica == 2) ) - _prog = new TProgress_monitor(_pcn->items(),TR("Elaborazione conti"),false); - _tipo_stampa1 = m.get_int(F_STAMPA1); - if (_tipo_stampa1 == 1) + _tipo_stampa = m.get_int(F_STAMPA); + if (_tipo_stampa == 1) { - if (_annoes != 0) - _dataini = InizioEsercizio(_annoes); - else - _dataini = _inizioEs; - _datada = m.get(F_DATADA); - _dataa = m.get(F_DATAA); + _dal = m.get_date(F_DATAINI); + _al = m.get_date(F_DATALIM); } - if ((_verifica == 1)||(_verifica == 2)) //bilancio di verifica:1bilancio,2saldi mastro + if ((_verifica == 1) || (_verifica == 2)) //bilancio di verifica:1bilancio,2saldi mastro { _stampav = atoi(m.get(F_STAMPAV)); bil_verifica(); @@ -3780,8 +3496,6 @@ void TStampa_bilanci::stampa_un_bilancio(const TMask& m) _sort->endsort(); } } - if (_prog) - delete _prog; print(); } @@ -3795,11 +3509,9 @@ bool TStampa_bilanci::set_print(int) m.set_handler (F_VERIFICA, verifica_handler); m.set_handler (F_BILANCIO, mask_bilancio); - m.set_handler (F_STAMPA1, mask_bilancio); m.set_handler (F_STAMPA, mask_bilancio); m.set_handler (F_DATALIM, mask_datalim); - m.set_handler (F_DATADA, mask_date); - m.set_handler (F_DATAA, mask_date); + m.set_handler (F_DATAINI, mask_dataini); m.set_handler (F_ANNO, mask_anno); m.set(F_NORMALI, "X"); @@ -3815,6 +3527,7 @@ bool TStampa_bilanci::set_print(int) _quadratura = m.get_bool(F_QUADRATURA); _hide_clifo = m.get_bool(F_HIDE_CLIFO); _noseparator = m.get_bool(F_SEPARATOR); + _tipo_data = (_annoes == 0 ? Registrazione : (m.get_bool(F_COMPCR) ? CostiRicavi : Competenza)); #ifdef CONT_SEP _cont_sep = m.get(F_CONTSEP); #endif @@ -3839,7 +3552,7 @@ bool TStampa_bilanci::set_print(int) stampa_un_bilancio(m); } - return FALSE; + return false; } TRectype& look_com (const char* cod, TLocalisamfile *comuni) @@ -3960,27 +3673,26 @@ void TStampa_bilanci::preprocess_header() if (_bilancio == 1) //bilancio a sezioni contrapposte { TString riga (132); - TDate data_da; - TString data; - TString data_lim = _datalim.string(); - - set_header(r, TR("STAMPA BILANCIO A SEZIONI CONTRAPPOSTE")); - if (_tipo_stampa == 1) - { - data_da = _dataini.string(); - data = _datalim.string(); - set_header(r,"@41g%s %s %s %s", TR("dalla data"), (const char*) data_da, TR("alla data"), - (const char*) data); - } - else if (_tipo_stampa == 2) - set_header(r,FR("@41gall'ultima immissione Es. %d"), _annoes); - - //modifica del 20/04/1995 + TString intestazione(TR("STAMPA BILANCIO A SEZIONI CONTRAPPOSTE")); + + if (_tipo_data == Registrazione) + intestazione << ' ' << TR("PER CASSA"); + else + if (_tipo_data == CostiRicavi) + intestazione << ' ' << TR("PER COMPETENZA COSTI/RICAVI"); + set_header(r, intestazione); + if (_tipo_stampa == 1) + set_header(r,"@90g%s %s %s %s", TR("dalla data"), (const char*) _dataini.string(), TR("alla data"), + (const char*) _al.string()); + else + if (_tipo_stampa == 2) + set_header(r,FR("@102gall'ultima immissione Es. %d"), _annoes); + //modifica del 20/04/1995 if (_print_exercise) { - const TString16 d1(InizioEsercizio(_annoes).string()); - const TString16 d2(FineEsercizio(_annoes).string()); - set_header(r, "@84g%s %s %s", TR("Esercizio"), (const char*)d1, (const char*)d2); /**/ + const TEsercizio & es = esercizio(_annoes); + + set_header(++r, "@101g%s %s %s", TR("Esercizio"), (const char*)es.inizio().string(), (const char*)es.fine().string()); /**/ } riga.fill('_'); set_header(++r, (const char*)riga); @@ -3990,59 +3702,66 @@ void TStampa_bilanci::preprocess_header() else // bilancio di verifica { TString riga (_stampa_width); - TString16 datada = _datada.string(); - TString16 dataa = _dataa.string(); + TString intestazione; + if (_verifica == 1) - set_header(r, TR("STAMPA BILANCIO DI VERIFICA")); - else if (_verifica == 2) - set_header(r, TR("STAMPA SALDI DI MASTRO")); + intestazione = TR("STAMPA BILANCIO DI VERIFICA"); + else + if (_verifica == 2) + intestazione = TR("STAMPA SALDI DI MASTRO"); else { if (_situazione == "C") - set_header(r, TR("SITUAZIONE CONTABILE CLIENTI")); - else if (_situazione == "F") - set_header(r, TR("SITUAZIONE CONTABILE FORNITORI")); - else set_header(r,TR("SITUAZIONE CLIENTI/FORNITORI")); + intestazione = TR("SITUAZIONE CONTABILE CLIENTI"); + else + if (_situazione == "F") + intestazione = TR("SITUAZIONE CONTABILE FORNITORI"); + else + intestazione = TR("SITUAZIONE CLIENTI/FORNITORI"); } - - if (_tipo_stampa1 == 1) + if (_tipo_data == Registrazione) + intestazione << ' ' << TR("PER CASSA"); + else + if (_tipo_data == CostiRicavi) + intestazione << ' ' << TR("PER COMPETENZA COSTI/RICAVI"); + set_header(r, intestazione); + if (_tipo_stampa == 1) { - set_header(r,"@30g%s %s %s %s", TR("dalla data"), (const char*) datada, TR("alla data"), - (const char*) dataa); + set_header(r,"@90g%s %s %s %s", TR("dalla data"), (const char*) _dal.string(), TR("alla data"), + (const char*) _al.string()); //modifica del 20/04/1995 if (_annoes != 0) //se l'anno e' 0 non si considera la competenza { - TString16 d1(InizioEsercizio(_annoes).string()); - TString16 d2(FineEsercizio(_annoes).string()); + const TEsercizio & es = esercizio(_annoes); - set_header(r,"@74g%s %s %s", TR("Esercizio"), (const char*)d1, (const char*)d2); /**/ + set_header(++r, "@101g%s %s %s", TR("Esercizio"), (const char*)es.inizio().string(), (const char*)es.fine().string()); /**/ } } - else if (_tipo_stampa1 == 2) - { - set_header(r,FR("@36gall'ultima immissione Es. %d"), _annoes); - //modifica del 20/04/1995 - TString16 d1(InizioEsercizio(_annoes).string()); - TString16 d2(FineEsercizio(_annoes).string()); + else + if (_tipo_stampa == 2) + { + const TEsercizio & es = esercizio(_annoes); - set_header(r,"@72g%s %s %s", TR("Esercizio"), (const char*)d1, (const char*)d2); /**/ - } + set_header(r,FR("@102gall'ultima immissione Es. %d"), _annoes); + set_header(++r, "@101g%s %s %s", TR("Esercizio"), (const char*)es.inizio().string(), (const char*)es.fine().string()); /**/ + } - if ( (_verifica == 1)||(_verifica == 2) ) + if ((_verifica == 1) || (_verifica == 2)) { if (_stampav == 1) - set_header(r, "@107g%s", TR("Tutti i conti movimentati")); - else if (_stampav == 2) - set_header(r, "@107g%s", TR("Conti con saldo <> 0")); + set_header(++r, "@107g%s", TR("Tutti i conti movimentati")); + else + if (_stampav == 2) + set_header(++r, "@112g%s", TR("Conti con saldo <> 0")); else - set_header(r, "@107g%s", TR("Tutti i conti")); + set_header(++r, "@119g%s", TR("Tutti i conti")); } else { if (_stampac == 1) - set_header(r, "@107g%s", TR("Tutti i conti movimentati")); + set_header(++r, "@107g%s", TR("Tutti i conti movimentati")); else - set_header(r, "@107g%s", TR("Conti con saldo <> 0")); + set_header(++r, "@112g%s", TR("Conti con saldo <> 0")); } riga.fill('_'); set_header(++r, (const char*)riga); @@ -4055,15 +3774,15 @@ void TStampa_bilanci::preprocess_header() else h << "@7g!@46g!@55g"; - if ( ((_datada == _dataini)&&(_tipo_stampa1 == 1))||(_tipo_stampa1 != 1) ) + if ( ((_dal == _dataini) && (_tipo_stampa == 1)) || (_tipo_stampa != 1)) { - if (_tipo_stampa1 == 1 && _datada == _dataini) + if (_tipo_stampa == 1 && _dal == _dataini) h << TR("MOVIMENTI DI APERTURA"); else h << TR(" SALDO INIZIALE"); } else - if (_tipo_stampa1 == 1) + if (_tipo_stampa == 1) h << TR("PROGRESSIVI PRECEDENTI"); h << "@80g!@88g"; h << TR("MOVIMENTI DEL PERIODO"); diff --git a/src/cg/cg1500.h b/src/cg/cg1500.h index f20520d5d..aaa7a3557 100755 --- a/src/cg/cg1500.h +++ b/src/cg/cg1500.h @@ -7,15 +7,13 @@ #define F_BILANCIO 105 #define F_ANNO 106 #define F_STAMPA 107 -#define F_STAMPA1 108 #define F_DATALIM 109 #define F_TOTALI 110 #define F_CODICI 111 #define F_SALDO 112 #define F_VERIFICA 113 #define F_STAMPAV 114 -#define F_DATADA 115 -#define F_DATAA 116 +#define F_DATAINI 115 #define F_SITUAZIONE 118 #define F_STAMPAC 119 #define F_ORDINAMENTO 120 @@ -38,8 +36,9 @@ #define F_PROVVB 142 #define F_PROVVC 143 #ifdef CONT_SEP -#define F_CONTSEP 144 +#define F_CONTSEP 144 #endif +#define F_COMPCR 145 #endif // __CG1500_H diff --git a/src/cg/cg1500a.uml b/src/cg/cg1500a.uml index a479a37c0..5e74050f8 100755 --- a/src/cg/cg1500a.uml +++ b/src/cg/cg1500a.uml @@ -50,157 +50,106 @@ BEGIN CHECKTYPE NORMAL WARNING "L'esercizio non esiste" ADD RUN cg0 -5 esc - MESSAGE EMPTY CLEAR,4@ - MESSAGE ENABLE,4@ END RADIOBUTTON F_BILANCIO 37 BEGIN - PROMPT 2 5 "@bTipo bilancio" + PROMPT 1 5 "@bTipo bilancio" HELP "Indicare il tipo di bilancio da stampare" ITEM "1|Bilancio a sezioni contrapposte" - //MESSAGE HIDE,F_STAMPA1|RESET,F_STAMPA1|HIDE,F_VERIFICA|RESET,F_VERIFICA - //MESSAGE HIDE,F_STAMPAV|RESET,F_STAMPAV|HIDE,F_DATADA|RESET,F_DATADA - //MESSAGE HIDE,F_DATAA|RESET,F_DATAA|HIDE,F_SITUAZIONE|RESET,F_SITUAZIONE - //MESSAGE HIDE,F_ORDINAMENTO|RESET,F_ORDINAMENTO|HIDE,F_STAMPAC|RESET,F_STAMPAC MESSAGE SHOW,1@ MESSAGE HIDE,2@|RESET,2@ - MESSAGE HIDE,96|HIDE,97|HIDE,98|HIDE,99 MESSAGE CLEAR,F_MODULO - //MESSAGE SHOW,F_STAMPA|K_SPACE,F_STAMPA + MESSAGE CLEAR,F_QUADRATURA ITEM "2|Bilancio di verifica" - //MESSAGE HIDE,F_STAMPA|RESET,F_STAMPA - //MESSAGE HIDE,F_DATALIM|RESET,F_DATALIM|HIDE,F_TOTALI|RESET,F_TOTALI - //MESSAGE HIDE,F_CODICI|RESET,F_CODICI|HIDE,F_SALDO|RESET,F_SALDO - //MESSAGE HIDE,F_STAMPAV|RESET,F_STAMPAV MESSAGE HIDE,1@|RESET,1@ MESSAGE SHOW,2@ - //MESSAGE SHOW,F_VERIFICA|K_SPACE,F_VERIFICA|SHOW,F_STAMPA1|K_SPACE,F_STAMPA1 MESSAGE ENABLE,F_MODULO - MESSAGE SHOW,96|SHOW,97|SHOW,98|SHOW,99 END RADIOBUTTON F_STAMPA 28 BEGIN PROMPT 41 5 "@bTipo stampa" HELP "Indicare il tipo di stampa" - GROUP 1 ITEM "1|Per date limite" - MESSAGE SHOW,F_DATALIM|SHOW,F_TOTALI|SHOW,F_CODICI|SHOW,F_SALDO + MESSAGE SHOW,F_DATALIM + MESSAGE ENABLE,F_COMPCR #ifdef CONT_SEP MESSAGE SHOW,F_CONTSEP #endif ITEM "2|All'ultima immissione" MESSAGE HIDE,F_DATALIM|RESET,F_DATALIM - MESSAGE SHOW,F_TOTALI|SHOW,F_CODICI|SHOW,F_SALDO + MESSAGE CLEAR,F_COMPCR + MESSAGE CLEAR,F_QUADRATURA #ifdef CONT_SEP MESSAGE HIDE,F_CONTSEP #endif END -RADIOBUTTON F_STAMPA1 28 +DATE F_DATAINI BEGIN - PROMPT 40 5 "@bTipo stampa" - //FLAGS "G" - HELP "Indicare il tipo di stampa" - GROUP 2 - ITEM "1|Per date limite" - MESSAGE SHOW,F_VERIFICA|SHOW,F_MODULO -#ifdef CONT_SEP - MESSAGE SHOW,F_CONTSEP -#endif - ITEM "2|All'ultima immissione" - MESSAGE SHOW,F_VERIFICA|SHOW,F_MODULO - MESSAGE COPY,F_STAMPA -#ifdef CONT_SEP - MESSAGE HIDE,F_CONTSEP -#endif + PROMPT 2 9 "Data iniziale " + HELP "Data dall quale iniziare la stampa" + END DATE F_DATALIM BEGIN - PROMPT 2 9 "Data limite " + PROMPT 42 9 "Data limite " HELP "Data fino alla quale si vuole la stampa" - GROUP 1 END BOOLEAN F_TOTALI BEGIN - PROMPT 33 9 "Non stampare totali per gruppo " + PROMPT 33 10 "Non stampare totali per gruppo " HELP "Indicare se non si devono stampare i totali dei gruppi" GROUP 1 END +BOOLEAN F_COMPCR +BEGIN + PROMPT 66 10 "Bilancio per competenza costi/ricavi " + HELP "Bilancio per competenza costi/ricavi" + FLAGS "D" +END + BOOLEAN F_CODICI BEGIN - PROMPT 2 10 "Non stampare codici conti " + PROMPT 2 11 "Non stampare codici conti " HELP "Indicare se non si devono stampare i codici dei conti" GROUP 1 END BOOLEAN F_SALDO BEGIN - PROMPT 33 10 "Non stampare movimenti con saldo a zero " + PROMPT 33 11 "Non stampare movimenti con saldo a zero " HELP "Indicare se non si devono stampare i movimenti con saldo nullo" GROUP 1 END -TEXT 96 -BEGIN - PROMPT 2 9 "Dalla data competenza " -END - -TEXT 97 -BEGIN - PROMPT 38 9 "Alla data competenza " -END - -TEXT 98 -BEGIN - PROMPT 2 10 "Dalla data operazione " -END - -TEXT 99 -BEGIN - PROMPT 38 10 "Alla data operazione " -END - -DATE F_DATADA -BEGIN - PROMPT 24 10 "" - HELP "Data dall quale iniziare la stampa" - GROUP 2 -END - -DATE F_DATAA -BEGIN - PROMPT 60 10 "" - GROUP 2 -END - BOOLEAN F_NORMALI BEGIN - PROMPT 2 11 "Movimenti : Normali" + PROMPT 2 12 "Movimenti : Normali" END BOOLEAN F_PROVVM BEGIN - PROMPT 29 11 "Provvisori : Manuali" + PROMPT 29 12 "Provvisori : Manuali" END BOOLEAN F_PROVVB BEGIN - PROMPT 52 11 "Comp. costi/ricavi" + PROMPT 52 12 "Comp. costi/ricavi" END BOOLEAN F_PROVVC BEGIN - PROMPT 73 11 "Cespiti" + PROMPT 73 12 "Cespiti" END LIST F_MODULO 1 12 BEGIN - PROMPT 2 12 "Larghezza modulo di stampa " + PROMPT 2 13 "Larghezza modulo di stampa " HELP "Indicare il numero di caratteri del foglio (larghezza)" ITEM "1|132 colonne" @@ -209,13 +158,13 @@ END BOOLEAN F_QUADRATURA BEGIN - PROMPT 2 13 "Quadratura con Libro Giornale" + PROMPT 2 14 "Quadratura con Libro Giornale" END #ifdef CONT_SEP STRING F_CONTSEP 6 BEGIN - PROMPT 2 14 "Contabilità separata " + PROMPT 2 15 "Contabilità separata " USE &NPENT INPUT CODTAB F_CONTSEP DISPLAY "Codice@6" CODTAB @@ -234,13 +183,9 @@ RADIOBUTTON F_VERIFICA 27 BEGIN PROMPT 2 1 "@bStampa bilancio di verifica " HELP "Tipo di bilancio di verifica" - GROUP 2 - ITEM "1|Bilancio" - MESSAGE SHOW,4@|HIDE,5@|HIDE,6@ - ITEM "2|Saldi di mastro" - MESSAGE SHOW,4@|HIDE,5@|HIDE,6@ - ITEM "3|Situazione C/F" - MESSAGE HIDE,4@|SHOW,5@|SHOW,6@ + ITEM "1|Bilancio" MESSAGE SHOW,4@|HIDE,6@ + ITEM "2|Saldi di mastro" MESSAGE SHOW,4@|HIDE,6@ + ITEM "3|Situazione C/F" MESSAGE HIDE,4@|SHOW,6@ END RADIOBUTTON F_STAMPAC 36 @@ -248,7 +193,8 @@ BEGIN PROMPT 34 1 "@bTipo stampa" ITEM "1|Conti movimentati" ITEM "2|Conti con saldo diverso da zero" - GROUP 4 + GROUP 6 + FLAGS "H" END RADIOBUTTON F_STAMPAV 36 @@ -257,8 +203,7 @@ BEGIN ITEM "1|Conti movimentati" ITEM "2|Conti con saldo diverso da zero" ITEM "3|Tutti i conti" - FLAGS "H" - GROUP 6 + GROUP 4 END BOOLEAN F_SEPARATOR diff --git a/src/cg/cg1600.cpp b/src/cg/cg1600.cpp index f49dc1633..951ee849b 100755 --- a/src/cg/cg1600.cpp +++ b/src/cg/cg1600.cpp @@ -19,8 +19,7 @@ #include "cg1.h" #include "cg1600.h" -#include "cglib01.h" -#include "cglib02.h" +#include "cglib.h" class TRiga_sez_opp : public TObject @@ -35,8 +34,8 @@ public: const char * lettera () { return _str->get(4); } const char * num_rom () { return _str->get(5); } const char * numero () const { return _str->get(6); } - real saldo_conto () const; - real saldo_conto_raf() const; + real saldo_conto () const { return _str->get_real(7); } + real saldo_conto_raf() const { return _str->get_real(8); } void incrementa_saldo(real& nuovo_saldo,real& nuovo_saldo_raf); TRiga_sez_opp(int g, int c, long s, const char * sezione, const char * lettera, @@ -44,23 +43,12 @@ public: virtual ~TRiga_sez_opp(); }; -real TRiga_sez_opp::saldo_conto () const -{ - real r(_str->get(7)); - return r; -} - -real TRiga_sez_opp::saldo_conto_raf () const -{ - real r(_str->get(8)); - return r; -} - void TRiga_sez_opp::incrementa_saldo(real& sld,real& sld_raf) { real sld_prec = saldo_conto(); real sld_prec_raf = saldo_conto_raf(); - sld_prec += sld; + + sld_prec += sld; sld_prec_raf += sld_raf; _str->add(sld_prec.string(), 7); _str->add(sld_prec_raf.string(), 8); @@ -126,13 +114,12 @@ void Righe_sez_opp::add(int g, int c, long s, class TStampa_IVdirettiva : public TPrintapp { - static bool data_limite (TMask_field & f,KEY k); - static bool tipo_stampa (TMask_field & f,KEY k); - static bool data_bil_raff (TMask_field & f,KEY k); - static bool tipo_bilancio (TMask_field & f,KEY k); - static bool data_inizio (TMask_field & f,KEY k); - static bool data_fine (TMask_field & f,KEY k); - static bool anno_esercizio (TMask_field & f,KEY k); + static bool data_limite(TMask_field & f,KEY k); + static bool tipo_stampa(TMask_field & f,KEY k); + static bool data_bil_raff(TMask_field & f,KEY k); + static bool tipo_bilancio(TMask_field & f,KEY k); + static bool data_inizio(TMask_field & f,KEY k); + static bool anno_esercizio(TMask_field & f,KEY k); struct bil_ivd { @@ -162,10 +149,11 @@ class TStampa_IVdirettiva : public TPrintapp TParagraph_string* _descr,*_d; TSaldo* _sld; bool _noseparator; + TTipo_data _tipo_data; - TDate _data_fine_ese,_data_fine_ese_prec,_data_fine_raf,_data_fine_raf_prec; + TDate _data_fine_es,_data_fine_ese_prec,_data_fine_raf,_data_fine_raf_prec; TDate _datastampa,_datalimite,_databilrafr,_datai,_datairaf; - TDate _dataini,_datafine,_data_ini_ese,_data_ini_raf; + TDate _datainizio,_data_inizio_es,_data_inizio_raf; int _annoese,_annoeserafr,_anno_esercizio,_anno_esercizio_raf; bool _competenza,_intera_struttura,_stampamov,_stampacod,_stampa_modulo; bool _sbilancio_patr_gia_stampato,_attivo_o_passivo; @@ -206,15 +194,11 @@ class TStampa_IVdirettiva : public TPrintapp TString tmp; // Stringa per porcate galattiche protected: - void aggiungi_anno(int anno, TDate& inizio, TDate& fine); - virtual void on_config_change(); + virtual void on_config_change() { _prima_dopo = ini_get_bool(CONFIG_DITTA, "cg1600", "PrimaDopoImposte"); } public: - - TDate _inizioEs, _fineEs; - int date2esc(const TDate& d); - void esc2date(const int anno, TDate& d1, TDate& d2); + // void esc2date(const int anno, TDate& d1, TDate& d2); bool menu (MENU_TAG m) { return TPrintapp::menu(m) ; } virtual bool user_create() ; @@ -223,8 +207,8 @@ public: virtual bool preprocess_page (int,int); virtual print_action postprocess_page (int,int); - virtual void postclose_print (); - + virtual void postclose_print() { safe_delete(_sort); } + virtual void set_page(int,int); bool preprocess_stampa_scalare(int); @@ -250,7 +234,7 @@ public: void stampa_totali_con_raffronto(); void stampa_totali_verifica(); bool calcola_saldo(real&, real&,int,int,long,int); - bool calcola(int,int,long,const TDate&,const TDate&); + bool calcola(int g, int c, long s, const TDate& fine_es, const TDate& fine_es_prec, const char * filter = ""); bool sottoc_clifo_scalare (int,int,int,int,real&,real&); void sottoc_clifo_verifica(int,int,int,char,TString&,TString&,TString&, TString&,int,bool); void stampa_saldo_132(const real&); @@ -268,35 +252,7 @@ public: TStampa_IVdirettiva() {} }; -HIDDEN inline TStampa_IVdirettiva & a() {return (TStampa_IVdirettiva&) main_app(); } - -void TStampa_IVdirettiva::postclose_print() -{ - delete _sort; -} - -void TStampa_IVdirettiva::aggiungi_anno(int anno, TDate& inizio, TDate& fine) -{ - TEsercizi_contabili ese; - if (ese.exist(anno)) - { - inizio = ese[anno].inizio(); - fine = ese[anno].fine(); - } - else - inizio = fine = botime; -} - -int TStampa_IVdirettiva::date2esc(const TDate& d) -{ - TEsercizi_contabili ese; - return ese.date2esc(d); -} - -void TStampa_IVdirettiva::on_config_change() -{ - _prima_dopo = ini_get_bool(CONFIG_DITTA, "cg1600", "PrimaDopoImposte"); -} +HIDDEN inline TStampa_IVdirettiva & app() {return (TStampa_IVdirettiva&) main_app(); } void TStampa_IVdirettiva::set_bil_key(bil_ivd* b, char sezione, char lettera, const char* numero_romano, const char * numero, @@ -358,147 +314,136 @@ bool TStampa_IVdirettiva::data_limite (TMask_field& f, KEY key) if (key == K_ENTER) { TMask& m = f.mask(); - int tipobil,tipostampa; - TDate datalim; - TDate in="", fin=""; - - tipobil = m.get_int(F_TIPOBIL); - tipostampa = m.get_int(F_TIPOSTAMPA); - int annoese = m.get_int(F_ANNOESE); + TDate datalim = m.get_date(F_DATALIM); + const int tipostampa = m.get_int(F_TIPOSTAMPA); + const int annoese = m.get_int(F_ANNOESE); - if ((tipobil == 1) && (tipostampa == 1)) + if (tipostampa == 1) { - datalim = m.get(F_DATALIM); - - if (annoese != 0) + if (esercizi().exist(annoese)) { - a().aggiungi_anno(annoese, in, fin); - a()._data_ini_ese = in; - a()._data_fine_ese = fin; - - a()._anno_esercizio = annoese; + const TEsercizio & es = esercizio(annoese); + app()._data_inizio_es = es.inizio(); + app()._data_fine_es = es.fine(); + app()._anno_esercizio = annoese; if (datalim == botime) - a()._datalimite = a()._data_fine_ese; + app()._datalimite = app()._data_fine_es; else - if ((datalim < in)||(datalim > fin)) + if (esercizio(datalim).codice() != annoese) return f.error_box(TR("La data limite non appartiene all'esercizio indicato")); else - a()._datalimite = datalim; + app()._datalimite = datalim; } else if (annoese == 0) { - if (datalim == botime) + const TDate dataini = m.get_date(F_DATAINI); + + if (dataini.ok() && esercizi().exist(dataini)) + f.set(datalim = esercizio(dataini).fine()); + if (!datalim.ok()) return f.error_box(TR("La data limite deve essere indicata obbligatoriamente")); - int anno = a().date2esc(datalim); - - if (anno == 0) + if (!esercizi().exist(datalim)) return f.error_box(TR("La data limite indicata non appartiene ad alcun esercizio attivo della ditta")); - a()._data_ini_ese = a()._inizioEs; - a()._data_fine_ese = a()._fineEs; - - a()._datalimite = datalim; - a()._anno_esercizio = anno; + + const TEsercizio & es = esercizio(datalim); + + app()._data_inizio_es = es.inizio(); + app()._data_fine_es = es.fine(); + app()._datalimite = datalim; + app()._anno_esercizio = es.codice(); } } } - TString data1 = a()._datalimite.string(); - TString data2 = a()._data_ini_ese.string(); - TString data3 = a()._data_fine_ese.string(); return true; } bool TStampa_IVdirettiva::data_bil_raff (TMask_field& f, KEY key) { - TMask& m = f.mask(); - int tipobil,tipostampa; - TDate datalim, dataraf; - TDate in = "", fin = "", in_raf = "", fin_raf = ""; - if (key == K_ENTER) { - tipobil = atoi(m.get(F_TIPOBIL)); - tipostampa = atoi(m.get(F_TIPOSTAMPA)); + TMask & m = f.mask(); + const int tipobil = atoi(m.get(F_TIPOBIL)); + const int tipostampa = atoi(m.get(F_TIPOSTAMPA)); int annoese = m.get_int(F_ANNOESE); - int annoraf = m.get_int(F_ANNORAFFR); + const int annoraf = m.get_int(F_ANNORAFFR); - if (tipobil == 1) + if (annoese == 0) + annoese = esercizio(TDate(TODAY)).codice(); + + const TEsercizio & es = esercizio(annoese); + + app()._data_inizio_es = es.inizio(); + app()._data_fine_es = es.fine(); + if (tipobil == 1) { - dataraf = m.get(F_DATABILRAF); + const TDate dataraf = m.get_date(F_DATABILRAF); + const TDate datalim = m.get_date(F_DATALIM); - datalim = m.get(F_DATALIM); - - if (annoraf == 0) + if (annoraf == 0) { - int anno; - - if (datalim != botime) - { - a().date2esc(datalim); - in = a()._inizioEs; - } - else - a().aggiungi_anno(annoese, in, fin); - - TString instr = in.string(); - if (dataraf != botime) - { - anno = a().date2esc(dataraf); - in_raf = a()._inizioEs; - fin_raf = a()._fineEs; - a()._anno_esercizio_raf = anno; - } - else - anno = 1; - if (dataraf > in) - return f.error_box(TR("La data bilancio da raffrontare non puo' essere maggiore o uguale alla data inizio esercizio in corso")); - if (anno == 0) - return f.error_box(TR("La data bilancio da raffrontare indicata non appartiene ad alcun esercizio attivo della ditta")); - + const TDate inizio = datalim != botime ? esercizio(datalim).inizio(): esercizio(annoese).inizio(); - a()._databilrafr = dataraf; - a()._data_ini_raf = in_raf; - a()._data_fine_raf = fin_raf; + if (dataraf > inizio) + return f.error_box(TR("La data bilancio da raffrontare non puo' essere maggiore o uguale alla data inizio esercizio in corso")); + if (dataraf.ok()) + { + const TEsercizio & esraf = esercizio(dataraf); + + app()._anno_esercizio_raf = esraf.codice(); + app()._databilrafr = dataraf; + app()._data_inizio_raf = esraf.inizio(); + app()._data_fine_raf = esraf.fine(); + } + else + { + app()._anno_esercizio_raf = 0; + app()._databilrafr = botime; + app()._data_inizio_raf = botime; + app()._data_fine_raf = eotime; + } } else - { - a().aggiungi_anno(annoraf, in_raf, fin_raf); - a()._data_ini_raf = in_raf; - a()._data_fine_raf = fin_raf; - a().aggiungi_anno(annoese,a()._data_ini_ese,a()._data_fine_ese); - - if (dataraf == botime) - a()._databilrafr = fin_raf; + { + if (esercizi().exist(annoraf)) + { + const TEsercizio & esraf = esercizio(annoraf); - else - if (dataraf < in_raf || dataraf > fin_raf) - return f.error_box(TR("La data bilancio da raffrontare deve appartenere all' esercizio da raffrontare")); - else - a()._databilrafr = dataraf; - a()._anno_esercizio_raf = annoraf; + app()._data_inizio_raf = esraf.inizio(); + app()._data_fine_raf = esraf.fine(); + + if (dataraf == botime) + app()._databilrafr = app()._data_fine_raf; + + else + if (dataraf < app()._data_inizio_raf || dataraf > app()._data_fine_raf) + return f.error_box(TR("La data bilancio da raffrontare deve appartenere all' esercizio da raffrontare")); + else + app()._databilrafr = dataraf; + app()._anno_esercizio_raf = annoraf; + } + else + { + app()._anno_esercizio_raf = 0; + app()._databilrafr = botime; + app()._data_inizio_raf = botime; + app()._data_fine_raf = eotime; + } } } } // IF (key == K_ENTER) - TString data1 = in.string(); - TString data2 = in_raf.string(); - TString data3 = fin_raf.string(); - TString data4 = a()._databilrafr.string(); - TString data5 = a()._data_ini_raf.string(); - TString data6 = a()._data_fine_raf.string(); return true; } bool anno_ese_raff (TMask_field& f, KEY key) { - int annoese, annoraf, anno; - TDate datalim; - if (key == K_ENTER) { - annoese = f.mask().get_int(F_ANNOESE); - annoraf = f.mask().get_int(F_ANNORAFFR); + TMask & m = f.mask(); + const int annoese = m.get_int(F_ANNOESE); + const int annoraf = m.get_int(F_ANNORAFFR); if (annoraf != 0) { @@ -511,15 +456,10 @@ bool anno_ese_raff (TMask_field& f, KEY key) else if (annoese == 0) { - datalim = f.mask().get(F_DATALIM); + const TDate datalim = m.get_date(F_DATALIM); - if (datalim != botime) - { - anno = a().date2esc(datalim); - - if (annoraf >= anno) + if (datalim.ok() && annoraf >= esercizio(datalim).codice()) return f.error_box(TR("L' anno esercizio da raffrontare deve essere inferiore all' anno di esercizio di appartenenza della data limite")); - } } } } @@ -528,141 +468,42 @@ bool anno_ese_raff (TMask_field& f, KEY key) bool TStampa_IVdirettiva::tipo_bilancio (TMask_field& f, KEY key) { - int tipo_bil, anno, tipo_stampa; - if (key == K_SPACE) { - tipo_bil = f.mask().get_int(F_TIPOBIL); - if (tipo_bil == 1) - tipo_stampa = f.mask().get_int(F_TIPOSTAMPA); - else - tipo_stampa = f.mask().get_int(F_TIPOSTAMPA1); - anno = f.mask().get_int(F_ANNOESE); - if (tipo_bil == 1) - { - f.mask().hide (98); - f.mask().hide (99); - f.mask().hide(96); - f.mask().hide(97); - } - else - if (tipo_bil == 2) - { - if (tipo_stampa == 1) - { - if (anno != 0) - { - f.mask().show (96); - f.mask().show (97); - f.mask().hide (98); - f.mask().hide (99); - } - else - if (anno == 0) - { - f.mask().show(98); - f.mask().show(99); - f.mask().hide(96); - f.mask().hide(97); - } - } - else - { - f.mask().hide (98); - f.mask().hide (99); - f.mask().hide(96); - f.mask().hide(97); - } - } - if (tipo_bil == 2 && tipo_stampa == 1 && f.mask().get_int(F_ANNOESE) == 0) - f.mask().show(F_QUADRATURA); - else - f.mask().hide(F_QUADRATURA); + TMask & m = f.mask(); + const int tipo_bil = m.get_int(F_TIPOBIL); + const int tipo_stampa = m.get_int(F_TIPOSTAMPA); + const int anno = m.get_int(F_ANNOESE); + + m.show(F_DATAINI, tipo_bil == 2 && tipo_stampa == 1); + m.show(F_QUADRATURA, tipo_bil == 2 && tipo_stampa == 1 && m.get_int(F_ANNOESE) == 0); } return true; } bool TStampa_IVdirettiva::anno_esercizio (TMask_field& f, KEY key) { - int tipo_bil, anno; - - if (key == K_TAB || f.focusdirty()) - { - int tipo_stp; - - tipo_bil = f.mask().get_int(F_TIPOBIL); - anno = f.mask().get_int(F_ANNOESE); - if (tipo_bil == 1) - tipo_stp = f.mask().get_int(F_TIPOSTAMPA); - else - tipo_stp = f.mask().get_int(F_TIPOSTAMPA1); - if (tipo_bil == 1) - { - f.mask().hide (98); - f.mask().hide (99); - f.mask().hide(96); - f.mask().hide(97); - } - else - if (tipo_bil == 2) - { - if (tipo_stp == 1) - { - if (anno != 0) - { - f.mask().show (96); - f.mask().show (97); - f.mask().hide (98); - f.mask().hide (99); - } - else - if (anno == 0) - { - f.mask().show(98); - f.mask().show(99); - f.mask().hide(96); - f.mask().hide(97); - } - } - else - { - f.mask().hide (98); - f.mask().hide (99); - f.mask().hide(96); - f.mask().hide(97); - } - } - } - - if (key == K_TAB) + if (f.running_check(key)) { - int tipo_bil, tipo_stp; - tipo_bil = f.mask().get_int(F_TIPOBIL); - if (tipo_bil == 1) - tipo_stp = f.mask().get_int(F_TIPOSTAMPA); - else - tipo_stp = f.mask().get_int(F_TIPOSTAMPA1); - if (tipo_bil == 2 && tipo_stp == 1 && f.mask().get_int(F_ANNOESE) == 0) - f.mask().show(F_QUADRATURA); - else - { - f.mask().set (F_QUADRATURA,""); - f.mask().hide(F_QUADRATURA); - } + TMask & m = f.mask(); + const int tipo_bil = m.get_int(F_TIPOBIL); + const int tipo_stampa = m.get_int(F_TIPOSTAMPA); + const int anno = m.get_int(F_ANNOESE); + + m.show(F_DATAINI, tipo_bil == 2 && tipo_stampa == 1); + m.show(F_QUADRATURA, tipo_bil == 2 && tipo_stampa == 1 && m.get_int(F_ANNOESE) == 0); } - + return true; } bool TStampa_IVdirettiva::tipo_stampa(TMask_field& f,KEY k) { - int tipo_bil, tipo_stampa; - if (k == K_ENTER) { - tipo_stampa = f.mask().get_int(F_TIPOSTAMPA); - - int anno = f.mask().get_int(F_ANNOESE); + TMask & m = f.mask(); + const int tipo_stampa = m.get_int(F_TIPOSTAMPA); + const int anno = m.get_int(F_ANNOESE); if (tipo_stampa == 2) if (anno == 0) @@ -672,178 +513,81 @@ bool TStampa_IVdirettiva::tipo_stampa(TMask_field& f,KEY k) } } if (k == K_SPACE) - { - int anno = f.mask().get_int(F_ANNOESE); - tipo_bil = f.mask().get_int(F_TIPOBIL); - if (tipo_bil == 1) - tipo_stampa = f.mask().get_int(F_TIPOSTAMPA); - else - tipo_stampa = f.mask().get_int(F_TIPOSTAMPA1); - - if (tipo_bil == 1) - { - f.mask().hide (98); - f.mask().hide (99); - f.mask().hide(96); - f.mask().hide(97); - } - else - if (tipo_bil == 2) - { - if (tipo_stampa == 1) - { - if (anno != 0) - { - f.mask().show (96); - f.mask().show (97); - f.mask().hide (98); - f.mask().hide (99); - } - else - if (anno == 0) - { - f.mask().show(98); - f.mask().show(99); - f.mask().hide(96); - f.mask().hide(97); - } - } - else - { - f.mask().hide (98); - f.mask().hide (99); - f.mask().hide(96); - f.mask().hide(97); - } - } - - if (tipo_bil == 2 && tipo_stampa == 1 && f.mask().get_int(F_ANNOESE) == 0) - f.mask().show(F_QUADRATURA); - else - f.mask().hide(F_QUADRATURA); + { + TMask & m = f.mask(); + const int anno = m.get_int(F_ANNOESE); + const int tipo_bil = m.get_int(F_TIPOBIL); + const int tipo_stampa = m.get_int(F_TIPOSTAMPA); + + m.show(F_DATAINI, tipo_bil == 2 && tipo_stampa == 1); + m.show(F_QUADRATURA, tipo_bil == 2 && tipo_stampa == 1 && m.get_int(F_ANNOESE) == 0); } - return true; } bool TStampa_IVdirettiva::data_inizio(TMask_field& f, KEY k) { - int anno; - TDate data; - TDate in="", fin=""; - anno = f.mask().get_int(F_ANNOESE); - data = f.mask().get (F_DATAINI); - //a()._anno_esercizio = anno; - if (k == K_ENTER) { - if (anno != 0) - { - a().aggiungi_anno(anno, in, fin); - a()._data_ini_ese = in; - a()._data_fine_ese = fin; - a()._anno_esercizio = anno; + TMask & m = f.mask(); + int anno = m.get_int(F_ANNOESE); + TDate data = f.get_date(); + const TDate datalim = m.get_date(F_DATALIM); - if (data == botime) - a()._dataini = in; + if (!data.ok() && datalim.ok() && esercizi().exist(datalim)) + { + f.set(data = esercizio(datalim).inizio()); + anno = esercizio(datalim).codice(); + } + if (esercizi().exist(anno)) + { + const TEsercizio & es = esercizio(anno); + + app()._data_inizio_es = es.inizio(); + app()._data_fine_es = es.fine(); + app()._anno_esercizio = anno; + + if (!data.ok()) + app()._datainizio = app()._data_inizio_es; else { - if (data < in || data > fin) + if (data < app()._data_inizio_es || data > app()._data_fine_es) return f.error_box(TR("La data non appartiene all' esercizio indicato")); else - a()._dataini = data; + app()._datainizio = data; } } else { - if (data == botime) - return f.error_box(TR("La data deve essere obbligatoriamente indicata")); + if (!data.ok()) + return f.error_box(TR("La data iniziale deve essere obbligatoriamente indicata")); + if (esercizi().exist(data)) + { + const TEsercizio & es = esercizio(data); - int anno = a().date2esc(data); - - if (anno == 0) - return f.error_box(TR("La data limite indicata non appartiene ad alcun esercizio attivo della ditta")); - a()._anno_esercizio = anno; - a()._dataini = data; - a()._data_ini_ese = a()._inizioEs; - a()._data_fine_ese = a()._fineEs; + app()._anno_esercizio = es.codice(); + app()._datainizio = data; + app()._data_inizio_es = es.inizio(); + app()._data_fine_es = es.fine(); + } + else + return f.error_box(TR("La data limite indicata non appartiene ad alcun esercizio attivo della ditta")); } } return true; } -bool TStampa_IVdirettiva::data_fine(TMask_field& f, KEY k) -{ - TMask& m = f.mask(); - int annoes; - TDate data, data_ini; - TDate in="", fin=""; - - annoes = m.get_int(F_ANNOESE); - data = m.get (F_DATAFINE); - data_ini = m.get (F_DATAINI); - - if (k == K_TAB) - { - TDate data (f.get()); - int bil = m.get_int(F_TIPOBIL); - int anno = a().date2esc(data); - - TDate dataini, datafin; - a().aggiungi_anno(anno, dataini, datafin); - - if (data == datafin && bil == 2 && annoes == 0) - m.show(F_QUADRATURA); - else - m.hide(F_QUADRATURA); - } - - if (k == K_ENTER) - { - if (annoes != 0) - { - a().aggiungi_anno(annoes, in, fin); - a()._data_ini_ese = in; - a()._data_fine_ese = fin; - - if (data == botime) - a()._datafine = fin; - else - if (data < in || data > fin) - return f.error_box(TR("La data non appartiene all' esercizio indicato")); - else - a()._datafine = data; - } - else - { - if (data == botime) - return f.error_box(TR("La data deve essere obbligatoriamente indicata")); - a().date2esc(data_ini); - if (data < a()._inizioEs || data > a()._fineEs) - return f.error_box(TR("La data non appartiene all' esercizio indicato")); - a()._datafine = data; - } - if (data < data_ini) - return f.error_box(TR("La data finale non puo' essere inferiore alla data di partenza")); - } - - return true; -} - void TStampa_IVdirettiva::scrivi_record(const TString& sez, const TString& let, const TString& numerorom,const TString & numero, int g,int c,long s,const real& saldo,const real& saldorafr, const real& sld_dare,const real& sld_avere, const real& mov_dare,const real& mov_avere,char tipocf,bool conto_dettagliato) { - //Se esiste solamente la sezione,significa che e' un conto d'ordine //Forzo la lettera della classe a Z, per ottenere, grazie //all'ordinamento del sort, i record dei conti d'ordine per ultimi - if (sez == "9" && let == "E") - int i = 1; set_bil_key(_bil, sez[0], let[0], numerorom, numero, true, g, c, s, tipocf); set_bil_val(_bil, saldo, saldorafr, sld_dare, sld_avere, mov_dare, mov_avere,conto_dettagliato); _sort->sort ((const char*) _bil); @@ -855,10 +599,8 @@ void TStampa_IVdirettiva::riempi_record(const TString& sez, const real& sld_dare,const real& sld_avere, const real& mov_dare,const real& mov_avere,char tipocf,bool conto_dettagliato) { - if (!(_stampamov && saldo.is_zero() && saldorafr.is_zero())) + if (_stampamov || saldo != ZERO || saldorafr != ZERO) { - if (sez == "9" && let == "E") - int i = 1; set_bil_key(_bil, sez[0], let[0], numerorom, numero, false, g, c, s, tipocf); set_bil_val(_bil, saldo, saldorafr, sld_dare, sld_avere, mov_dare, mov_avere,conto_dettagliato); _sort->sort ((const char*) _bil); @@ -1343,9 +1085,7 @@ void TStampa_IVdirettiva::crea_sort_piano_conti_verifica() sld_prg_avere_conto = ZERO; mov_dare_conto = ZERO; mov_avere_conto = ZERO; - _nuovo_tot_saldo_d = ZERO; - _nuovo_tot_saldo_a = ZERO; - + indbil = 0; gruppo_prec = -1; conto_prec = -1; @@ -1455,57 +1195,56 @@ void TStampa_IVdirettiva::crea_sort_piano_conti_verifica() if (_tipo_stampa == 1) { - if(!calcola(g,c,s,_data_fine_ese,_data_fine_ese_prec)) - continue; - - if (_dataini == _data_ini_ese) - { - sld_prg_dare = _saldo_ini_dare; - sld_prg_avere = _saldo_ini_avere; - mov_dare = _mov_periodo_dare; - mov_avere = _mov_periodo_avere; - saldo = sld_prg_dare-sld_prg_avere+mov_dare-mov_avere; - - } - else - if (_dataini > _data_ini_ese) - { - sld_prg_dare = _prg_prec_dare; - sld_prg_avere = _prg_prec_avere; - mov_dare = _mov_periodo_dare; - mov_avere = _mov_periodo_avere; - saldo = sld_prg_dare-sld_prg_avere+mov_dare-mov_avere; + if (calcola(g, c, s, _data_fine_es, _data_fine_ese_prec)) + { + if (_datainizio == _data_inizio_es) + { + sld_prg_dare = _saldo_ini_dare; + sld_prg_avere = _saldo_ini_avere; + mov_dare = _mov_periodo_dare; + mov_avere = _mov_periodo_avere; + saldo = sld_prg_dare - sld_prg_avere + mov_dare - mov_avere; } + else + if (_datainizio > _data_inizio_es) + { + sld_prg_dare = _prg_prec_dare; + sld_prg_avere = _prg_prec_avere; + mov_dare = _mov_periodo_dare; + mov_avere = _mov_periodo_avere; + saldo = sld_prg_dare - sld_prg_avere + mov_dare - mov_avere; + } + } } else - if (_tipo_stampa == 2) + if (_tipo_stampa == 2) { - if (!_sld->ultima_immissione_verifica(_anno_esercizio, g, c, s, indbil, _stampa_mov_prov) && (!_intera_struttura || (_stampamov))) - continue; - real saldoini = _sld->saldoini(); - //fine modifica 11/11/1997 + if (_sld->ultima_immissione_verifica(_anno_esercizio, g, c, s, indbil, _stampa_mov_prov) && (!_intera_struttura || (_stampamov))) + { + real saldoini = _sld->saldoini(); - if (saldoini > ZERO) - { - sld_prg_dare = saldoini; - sld_prg_avere = ZERO; + //fine modifica 11/11/1997 + if (saldoini > ZERO) + { + sld_prg_dare = saldoini; + sld_prg_avere = ZERO; + } + else + { + sld_prg_dare = ZERO; + sld_prg_avere = -saldoini; + } + mov_dare = _sld->prgdare(); + mov_avere = _sld->prgavere(); + saldo = sld_prg_dare - sld_prg_avere + mov_dare - mov_avere; } - else - { - sld_prg_dare = ZERO; - sld_prg_avere = -saldoini; - } - mov_dare = _sld->prgdare(); - mov_avere = _sld->prgavere(); - saldo = sld_prg_dare - sld_prg_avere + mov_dare - mov_avere; } - if (classe_conto) { if (conto_dettagliato) riempi_record(sez_conto,let_conto,numr_conto,num_conto,g,c,s,saldo,ZERO,sld_prg_dare,sld_prg_avere,mov_dare,mov_avere,tmcf); - if (!(saldo.is_zero() && _stampamov))//Se non deve stampare i conti con saldo a zero, non aggiornare il totale del conto + if (saldo != ZERO || _stampamov) //Se non deve stampare i conti con saldo a zero, non aggiornare il totale del conto { saldo_conto += saldo; sld_prg_dare_conto += sld_prg_dare; @@ -1588,26 +1327,27 @@ void TStampa_IVdirettiva::sottoc_clifo_verifica(int g,int c,int anno,char tipocf if (_tipo_stampa == 1) { - if (!calcola(g,c,s,_data_fine_ese,_data_fine_ese_prec)) - continue; + if (calcola(g, c, s, _data_fine_es, _data_fine_ese_prec)) + { + if (_datainizio == _data_inizio_es) + { + sld_prg_dare = _saldo_ini_dare; + sld_prg_avere = _saldo_ini_avere; + mov_dare = _mov_periodo_dare; + mov_avere = _mov_periodo_avere; + saldo = sld_prg_dare - sld_prg_avere + mov_dare - mov_avere; - if (_dataini == _data_ini_ese) - { - sld_prg_dare = _saldo_ini_dare; - sld_prg_avere = _saldo_ini_avere; - mov_dare = _mov_periodo_dare; - mov_avere = _mov_periodo_avere; - saldo = sld_prg_dare-sld_prg_avere+mov_dare-mov_avere; - - } - else if (_dataini > _data_ini_ese) - { - sld_prg_dare = _prg_prec_dare; - sld_prg_avere = _prg_prec_avere; - mov_dare = _mov_periodo_dare; - mov_avere = _mov_periodo_avere; - saldo = sld_prg_dare-sld_prg_avere+mov_dare-mov_avere; - } + } + else + if (_datainizio > _data_inizio_es) + { + sld_prg_dare = _prg_prec_dare; + sld_prg_avere = _prg_prec_avere; + mov_dare = _mov_periodo_dare; + mov_avere = _mov_periodo_avere; + saldo = sld_prg_dare - sld_prg_avere + mov_dare - mov_avere; + } + } } else if (_tipo_stampa == 2) @@ -1635,12 +1375,11 @@ void TStampa_IVdirettiva::sottoc_clifo_verifica(int g,int c,int anno,char tipocf mov_dare = _sld->prgdare(); mov_avere = _sld->prgavere(); saldo = sld_prg_dare-sld_prg_avere+mov_dare-mov_avere; - } if (stsottbil) riempi_record(sez_conto,let_conto,numr_conto,num_conto,g,c,s,saldo,ZERO,sld_prg_dare,sld_prg_avere,mov_dare,mov_avere,tipocf); - if (!(saldo == ZERO && _stampamov)) //Se non deve stampare i conti con saldo a zero, non aggiornare il totale del conto + if (saldo != ZERO || _stampamov) //Se non deve stampare i conti con saldo a zero, non aggiornare il totale del conto { saldo_conto += saldo; sld_prg_dare_conto += sld_prg_dare; @@ -1664,12 +1403,14 @@ bool TStampa_IVdirettiva::sottoc_clifo_scalare(int g,int c,int anno,int indbil,r { long s; int aep = 0; + if (anno > 0) { TEsercizi_contabili ec; aep = ec.pred(anno); } _listasld = new TSaldi_list (g,c,anno,aep); + real saldo,saldo_raf; bool trovato = false; @@ -1706,14 +1447,13 @@ bool TStampa_IVdirettiva::calcola_saldo(real& saldo, real& saldo_raf,int g,int c bool no_movimentato_raf = true; bool esiste = false; TString saldostr,saldo_rafstr; - + _sld->set_annoes(_anno_esercizio); - if (_tipo_bilancio == 1) { if (_tipo_stampa == 1) //bilancio per data limite { - esiste = _sld->data_limite_bilancio(_tipo_stampa,g,c,s,_datai,_datalimite,indbil,_stampa_mov_prov); + esiste = _sld->data_limite_bilancio(_tipo_data, g, c, s, _datai, _datalimite, indbil, _stampa_mov_prov); saldo = _sld->saldo(); if (!esiste && (!_sld->esiste_saldo() || !_sld->significativo())) @@ -1739,20 +1479,21 @@ bool TStampa_IVdirettiva::calcola_saldo(real& saldo, real& saldo_raf,int g,int c no_movimentato = false; } } - else if (_tipo_stampa == 2) - { - if (!_sld->ultima_immissione_bilancio(_anno_esercizio,g,c,s,indbil,_stampa_mov_prov)) - { - if (!_sld->esiste_saldo() || !_sld->significativo()) - no_movimentato = true; - else - no_movimentato = false; - } - else - no_movimentato = false; + else + if (_tipo_stampa == 2) + { + if (!_sld->ultima_immissione_bilancio(_anno_esercizio,g,c,s,indbil,_stampa_mov_prov)) + { + if (!_sld->esiste_saldo() || !_sld->significativo()) + no_movimentato = true; + else + no_movimentato = false; + } + else + no_movimentato = false; - saldo = _sld->saldo(); - } + saldo = _sld->saldo(); + } saldostr = saldo.string(); if (_annoeserafr != 0 || _databilrafr != botime) @@ -1761,7 +1502,7 @@ bool TStampa_IVdirettiva::calcola_saldo(real& saldo, real& saldo_raf,int g,int c if (_databilrafr != _data_fine_raf) //(_tipo_stampa == 1) bilancio per data limite { - esiste = _sld->data_limite_bilancio(DataLimite,g,c,s,_datairaf,_databilrafr,indbil,_stampa_mov_prov); + esiste = _sld->data_limite_bilancio(_tipo_data, g, c, s, _datairaf, _databilrafr, indbil, _stampa_mov_prov); saldo_raf = _sld->saldo(); if (!esiste && (!_sld->esiste_saldo() || !_sld->significativo())) @@ -1787,24 +1528,24 @@ bool TStampa_IVdirettiva::calcola_saldo(real& saldo, real& saldo_raf,int g,int c no_movimentato_raf = false; } } - else if (_databilrafr == _data_fine_raf) - { - if (!_sld->ultima_immissione_bilancio(_anno_esercizio_raf,g,c,s,indbil,_stampa_mov_prov, false)) // W96SALDI : ho aggiunto il parametro false - { // per dire che nel calcola del saldo non deve - if (!_sld->esiste_saldo() || !_sld->significativo()) // includere il saldo di chiusura - no_movimentato_raf = true; - else - no_movimentato_raf = false; - } - else - no_movimentato_raf = false; + else + if (_databilrafr == _data_fine_raf) + { + if (!_sld->ultima_immissione_bilancio(_anno_esercizio_raf,g,c,s,indbil,_stampa_mov_prov, false)) // W96SALDI : ho aggiunto il parametro false + { // per dire che nel calcola del saldo non deve + if (!_sld->esiste_saldo() || !_sld->significativo()) // includere il saldo di chiusura + no_movimentato_raf = true; + else + no_movimentato_raf = false; + } + else + no_movimentato_raf = false; - saldo_raf = _sld->saldo(); - } + saldo_raf = _sld->saldo(); + } saldo_rafstr = saldo_raf.string(); } } - if ((no_movimentato) && (no_movimentato_raf)) return false; else @@ -1812,18 +1553,9 @@ bool TStampa_IVdirettiva::calcola_saldo(real& saldo, real& saldo_raf,int g,int c } bool TStampa_IVdirettiva::calcola(int g, int c, long s, - const TDate& fine_es, const TDate& fine_es_prec) + const TDate& fine_es, const TDate& fine_es_prec, const char * filter) { - TLocalisamfile rmov(LF_RMOV); - TLocalisamfile mov(LF_MOV); TDecoder causali(LF_CAUSALI, CAU_MOVAP); - - TString sezione; - real importo; - int annoe; - long num_reg; - TString4 provvis; - TDate datareg, datacomp, data; bool conto_mov = false; _mov_periodo_dare = ZERO; @@ -1833,89 +1565,75 @@ bool TStampa_IVdirettiva::calcola(int g, int c, long s, _saldo_ini_dare = ZERO; _saldo_ini_avere = ZERO; - rmov.setkey(2); - rmov.zero(); + TCursor cur(new TRelation(LF_RMOV), filter, 2); + TRectype& rmov = cur.file().curr(); + rmov.put(RMV_GRUPPO, g); - if (c != 0) - rmov.put(RMV_CONTO, c); - if (s != 0) - rmov.put(RMV_SOTTOCONTO, s); - TRectype rec(rmov.curr()); + rmov.put(RMV_CONTO, c); + rmov.put(RMV_SOTTOCONTO, s); + cur.setregion(rmov, rmov); - rmov.read(_isgteq); - for (; !rmov.eof(); rmov.next()) + const TRecnotype items = cur.items(); + + cur.freeze(); + + for (cur = 0L; cur.pos() < items; ++cur) { - if (rmov.curr() != rec) break; - - annoe = rmov.get_int(RMV_ANNOES); - datareg = rmov.get_date(RMV_DATAREG); - num_reg = rmov.get_long(RMV_NUMREG); - sezione = rmov.get(RMV_SEZIONE); - importo = rmov.get_real(RMV_IMPORTO); - - mov.setkey(1); - mov.zero(); - mov.put(MOV_NUMREG, num_reg); - mov.read(); - if (mov.bad()) mov.zero(); - provvis = mov.get(MOV_PROVVIS); - datacomp = mov.get_date(MOV_DATACOMP); - + const int annoe = rmov.get_int(RMV_ANNOES); + const long numreg = rmov.get_long(RMV_NUMREG); + const TRectype& mov = cache().get(LF_MOV, numreg); + const TString4 sezione = rmov.get(RMV_SEZIONE); + const real importo = rmov.get_real(RMV_IMPORTO); + const TString4 provvis = mov.get(MOV_PROVVIS); const TString& codcaus = mov.get(MOV_CODCAUS); - char movap = causali.decode(codcaus)[0]; - movap = toupper(movap); + const char movap = toupper(causali.decode(codcaus)[0]); if (movap == 'C' && // la causale e' di chiusura !_quadratura) // Non e' richiesta la quadratura con il Libro Giornale (Modifica continue; // del 18-06-96 richiesta da Patrizia in seguito alla modifica dei SALDI - - if (_annoese == 0) - data = datareg; - if (_annoese != 0) - data = datacomp; - if (importo == ZERO) continue; //calcolo i movimenti del periodo - if ((data >= _dataini) && (data <= _datafine)) - if ((movap == 'A' && _data_ini_ese != _dataini) || (movap != 'A')) - if (((_stampa_mov_prov & 0x1) && provvis.blank()) || - ((_stampa_mov_prov & 0x2) && ((provvis == "P") || (provvis == "N"))) || - ((_stampa_mov_prov & 0x4) && (provvis == "B")) || ((_stampa_mov_prov & 0x8) && (provvis == "C"))) + const TDate data = get_date_mov(mov, _tipo_data); + + if (data.ok() && (data >= _datainizio) && (data <= _datalimite)) + if ((movap == 'A' && _data_inizio_es != _datainizio) || (movap != 'A')) + if (check_mov(_stampa_mov_prov, provvis)) { conto_mov = true; if (sezione == "D") _mov_periodo_dare += importo; - else _mov_periodo_avere += importo; + else + _mov_periodo_avere += importo; } //il saldo inizio es. e' dato dall'importo dare - importo avere di quei movimenti che hanno causale == apertura e data reg >= data inizio es. e <= data limite sup. - if (_dataini == _data_ini_ese) //calcolo il saldo iniziale + if (_datainizio == _data_inizio_es) //calcolo il saldo iniziale { if ((_stampa_mov_prov & 0x1) && (movap == 'A')) { - if (data >= _data_ini_ese && data <= _datafine) + if (data >= _data_inizio_es && data <= _datalimite) { if (sezione == "D") _saldo_ini_dare += importo; - else _saldo_ini_avere += importo; + else + _saldo_ini_avere += importo; conto_mov = true; } } } else - if (_dataini > _data_ini_ese) //calcolo i progressivi precedenti - if ((data >= _data_ini_ese) && (data < _dataini)) - if (((_stampa_mov_prov & 0x1) && provvis.blank()) || - ((_stampa_mov_prov & 0x2) && ((provvis == "P") || (provvis == "N"))) || - ((_stampa_mov_prov & 0x4) && (provvis == "B")) || ((_stampa_mov_prov & 0x8) && (provvis == "C"))) + if (_datainizio > _data_inizio_es) //calcolo i progressivi precedenti + if ((data >= _data_inizio_es) && (data < _datainizio)) + if (check_mov(_stampa_mov_prov, provvis)) { if (sezione == "D") _prg_prec_dare += importo; - else _prg_prec_avere += importo; + else + _prg_prec_avere += importo; conto_mov = true; } @@ -1924,13 +1642,10 @@ bool TStampa_IVdirettiva::calcola(int g, int c, long s, TBill conto(g, c, s); int indbil = conto.indicatore_bilancio(); - if (g == 20 && c == 22 && s == 22) - int i = 1; if ((indbil == 1) || (indbil == 2) || (indbil == 5)) { TSaldo saldo; const int annoes = esercizi().date2esc(fine_es); - real si = saldo.saldofin_esprec(annoes, g, c, s); if (si > ZERO) @@ -1969,24 +1684,18 @@ bool TStampa_IVdirettiva::set_print(int) _stampa_mov_prov |= _msk->get_bool(F_PROVVC) ? 0x8 : 0; // qui _quadratura = _msk->get_bool(F_QUADRATURA); _noseparator = _msk->get_bool(F_SEPARATOR); - - if (_tipo_bilancio == 1) - _tipo_stampa = _msk->get_int(F_TIPOSTAMPA); - else - _tipo_stampa = _msk->get_int(F_TIPOSTAMPA1); - + _tipo_data = (_annoese == 0 ? Registrazione : (_msk->get_bool(F_COMPCR) ? CostiRicavi : Competenza)); + _tipo_stampa = _msk->get_int(F_TIPOSTAMPA); if (_tipo_stampa == 2) { _anno_esercizio = _annoese; _anno_esercizio_raf = _annoeserafr; } - _cont_let = 0; _cont_numr = 0; _cont_num = 0; _cont_gcs = 0; _reset_righe_stampa = true; - if (_tipo_bilancio == 1) set_real_picture("###.###.###.###.###"); else @@ -2041,10 +1750,9 @@ bool TStampa_IVdirettiva::set_print(int) _tot_parz_sld_a = _tot_parz_prg_d = _tot_parz_prg_a = ZERO; _tot_parz_mov_d = _tot_parz_mov_a = ZERO; - _datai = _data_ini_ese; - _datairaf = _data_ini_raf; - TString data1 = _data_ini_ese.string(); - TString data2 = _data_ini_raf.string(); + _datai = _data_inizio_es; + _datairaf = _data_inizio_raf; + // Se si tratta di stampa intera struttura allora passo al sort anche tutte // le classi presenti sulla tabella IV dir. CEE, altrimenti passo solamente @@ -2332,7 +2040,8 @@ void TStampa_IVdirettiva::stampa_totali() if (!_attivo_o_passivo) { real totale = _totale_ordine_attivo - _totale_ordine_passivo; - if (totale != ZERO) + + if (totale != ZERO) { set_row (_i++,TR("SALDO CONTI D'ORDINE")); set_row (_i,TR("SBILANCIO")); @@ -2451,7 +2160,8 @@ void TStampa_IVdirettiva::stampa_totali() if (!_sbilancio_ordine) { real totale = _totale_ordine_attivo - _totale_ordine_passivo; - if (totale != ZERO) + + if (totale != ZERO) { set_row (_i++,"@0g%c", app); set_row (_i++,TR("SALDO CONTI D'ORDINE")); @@ -2484,7 +2194,8 @@ void TStampa_IVdirettiva::stampa_totali() if (!_sbilancio_ordine) { real totale = _totale_ordine_attivo - _totale_ordine_passivo; - if (totale != ZERO && !_sbilancio_ordine) + + if (totale != ZERO && !_sbilancio_ordine) { set_row (_i++,"@0g%c", app); set_row (_i++,TR("SALDO CONTI D'ORDINE")); @@ -2773,7 +2484,8 @@ void TStampa_IVdirettiva::stampa_totali_con_raffronto() { real totale = _totale_ordine_attivo - _totale_ordine_passivo; real tot_raf = _totale_ordine_attivo_raf - _totale_ordine_passivo_raf; - if (totale != ZERO || tot_raf != ZERO) + + if (totale != ZERO || tot_raf != ZERO) { set_row (_i++,TR("SALDO CONTI D'ORDINE")); set_row (_i,TR("SBILANCIO")); @@ -2923,7 +2635,8 @@ void TStampa_IVdirettiva::stampa_totali_con_raffronto() { real totale = _totale_ordine_attivo - _totale_ordine_passivo; real tot_raf = _totale_ordine_attivo_raf - _totale_ordine_passivo_raf; - if (totale != ZERO || tot_raf != ZERO) + + if (totale != ZERO || tot_raf != ZERO) { set_row (_i++,"@0g%c", app); set_row (_i++,TR("SALDO CONTI D'ORDINE")); @@ -2963,7 +2676,8 @@ void TStampa_IVdirettiva::stampa_totali_con_raffronto() { real totale = _totale_ordine_attivo - _totale_ordine_passivo; real tot_raf = _totale_ordine_attivo_raf - _totale_ordine_passivo_raf; - if ((totale != ZERO || tot_raf != ZERO) && !_sbilancio_ordine) + + if ((totale != ZERO || tot_raf != ZERO) && !_sbilancio_ordine) { set_row (_i++,"@0g%c", app); set_row (_i++,TR("SALDO CONTI D'ORDINE")); @@ -3663,7 +3377,6 @@ bool TStampa_IVdirettiva::preprocess_stampa_verifica(int counter) reset_print(); _i = 1; } - if (_reset_righe_stampa) { reset_print(); @@ -3671,7 +3384,6 @@ bool TStampa_IVdirettiva::preprocess_stampa_verifica(int counter) } else _reset_righe_stampa = true; - if (counter) { if (!_intera_struttura) @@ -3709,9 +3421,7 @@ bool TStampa_IVdirettiva::preprocess_stampa_verifica(int counter) _num_tot.trim(); } } - _buff = _sort->retrieve(); - if (_buff == NULL) { stampa_totali_verifica(); @@ -3731,13 +3441,13 @@ bool TStampa_IVdirettiva::preprocess_stampa_verifica(int counter) stampa_saldo_198(_tot_gen_saldo_d,_tot_gen_saldo_a); //modifica 05/04/1995 - if ((_tipo_stampa == 1 && _dataini == _data_ini_ese) || _tipo_stampa == 2) + if ((_tipo_stampa == 1 && _datainizio == _data_inizio_es) || _tipo_stampa == 2) { const real tot_d = _tot_gen_prg_d + _tot_gen_mov_d; const real tot_a = _tot_gen_prg_a + _tot_gen_mov_a; _i++; - if (_tipo_stampa == 1 && _dataini == _data_ini_ese) + if (_tipo_stampa == 1 && _datainizio == _data_inizio_es) set_row(_i,FR("****** ******** TOTALE CON MOVIM. DI APERTURA@46g!@80g!@81g%r@98g%r@114g!"),&tot_d, &tot_a); else set_row(_i,FR("****** ******** TOTALE CON SALDI INIZIALI@46g!@80g!@81g%r@98g%r@114g!"),&tot_d, &tot_a); @@ -3748,7 +3458,6 @@ bool TStampa_IVdirettiva::preprocess_stampa_verifica(int counter) _sez_stamp = ' '; return true; } - if (_buff != NULL) { bil = (struct bil_ivd*) _buff; @@ -3852,13 +3561,14 @@ bool TStampa_IVdirettiva::preprocess_stampa_verifica(int counter) } } - if (_dataini == _data_ini_ese) + if (_datainizio == _data_inizio_es) { //modifica del 27/11/1995 if (_tipo_stampa == 2) { real saldo_num = _sld_prg_dare - _sld_prg_avere; - if (saldo_num > ZERO) + + if (saldo_num > ZERO) _tot_num_prg_d += saldo_num; else { @@ -3866,23 +3576,28 @@ bool TStampa_IVdirettiva::preprocess_stampa_verifica(int counter) _tot_num_prg_a += saldo_num; } real saldo_numr = _sld_prg_dare - _sld_prg_avere; - if (saldo_numr > ZERO) + + if (saldo_numr > ZERO) _tot_numr_prg_d += saldo_numr; else { saldo_numr = -saldo_numr; _tot_numr_prg_a += saldo_numr; } - real saldo_let = _sld_prg_dare - _sld_prg_avere; - if (saldo_let > ZERO) + + real saldo_let = _sld_prg_dare - _sld_prg_avere; + + if (saldo_let > ZERO) _tot_let_prg_d += saldo_let; else { saldo_let = -saldo_let; _tot_let_prg_a += saldo_let; } - real saldo_gen = _sld_prg_dare - _sld_prg_avere; - if (saldo_gen > ZERO) + + real saldo_gen = _sld_prg_dare - _sld_prg_avere; + + if (saldo_gen > ZERO) _tot_gen_prg_d += saldo_gen; else { @@ -3890,18 +3605,18 @@ bool TStampa_IVdirettiva::preprocess_stampa_verifica(int counter) _tot_gen_prg_a += saldo_gen; } } - else if (_tipo_stampa == 1) - { - _tot_num_prg_d += _sld_prg_dare; - _tot_num_prg_a += _sld_prg_avere; - _tot_numr_prg_d += _sld_prg_dare; - _tot_numr_prg_a += _sld_prg_avere; - _tot_let_prg_d += _sld_prg_dare; - _tot_let_prg_a += _sld_prg_avere; - _tot_gen_prg_d += _sld_prg_dare; - _tot_gen_prg_a += _sld_prg_avere; - } - //fine + else + if (_tipo_stampa == 1) + { + _tot_num_prg_d += _sld_prg_dare; + _tot_num_prg_a += _sld_prg_avere; + _tot_numr_prg_d += _sld_prg_dare; + _tot_numr_prg_a += _sld_prg_avere; + _tot_let_prg_d += _sld_prg_dare; + _tot_let_prg_a += _sld_prg_avere; + _tot_gen_prg_d += _sld_prg_dare; + _tot_gen_prg_a += _sld_prg_avere; + } } else { @@ -4350,28 +4065,30 @@ void TStampa_IVdirettiva::setta_righe_verifica() *_d = tc.descrizione(); setta_righe_descr_verifica(*_d, "@15g%s"); _i--; - if (_dataini == _data_ini_ese) + if (_datainizio == _data_inizio_es) { //modifica del 27/11/1995 if (_tipo_stampa == 2) //all'ultima immissione { - real saldoini = _sld_prg_dare - _sld_prg_avere; - if (saldoini > ZERO) - set_row(_i,"@47g%r", &saldoini); - else if (saldoini < ZERO) // Non stampare il saldo iniziale se == 0.0 - { - saldoini = -saldoini; - set_row(_i,"@64g%r", &saldoini); - } + real saldoini = _sld_prg_dare - _sld_prg_avere; + + if (saldoini > ZERO) + set_row(_i,"@47g%r", &saldoini); + else + if (saldoini < ZERO) // Non stampare il saldo iniziale se == 0.0 + { + saldoini = -saldoini; + set_row(_i,"@64g%r", &saldoini); + } } - else if (_tipo_stampa == 1) //per date limiti - { - if (_sld_prg_dare != ZERO) - set_row(_i,"@47g%r", &_sld_prg_dare); - if (_sld_prg_avere != ZERO) - set_row(_i,"@64g%r", &_sld_prg_avere); - } - //fine + else + if (_tipo_stampa == 1) //per date limiti + { + if (_sld_prg_dare != ZERO) + set_row(_i,"@47g%r", &_sld_prg_dare); + if (_sld_prg_avere != ZERO) + set_row(_i,"@64g%r", &_sld_prg_avere); + } } else { @@ -4410,28 +4127,30 @@ void TStampa_IVdirettiva::setta_righe_verifica() *_d = tc.descrizione(); set_row (_i,"@2g#a", _d); - if (_dataini == _data_ini_ese) + if (_datainizio == _data_inizio_es) { //modifica del 27/11/1995 if (_tipo_stampa == 2) { - real saldoini = _sld_prg_dare - _sld_prg_avere; - if (saldoini > ZERO) - set_row(_i,"@47g%r", &saldoini); - else if (saldoini < ZERO) // non stampare il saldo iniziale se == 0.0 - { - saldoini = -saldoini; - set_row(_i,"@64g%r", &saldoini); - } + real saldoini = _sld_prg_dare - _sld_prg_avere; + + if (saldoini > ZERO) + set_row(_i,"@47g%r", &saldoini); + else + if (saldoini < ZERO) // non stampare il saldo iniziale se == 0.0 + { + saldoini = -saldoini; + set_row(_i,"@64g%r", &saldoini); + } } - else if (_tipo_stampa == 1) - { - if (_sld_prg_dare != ZERO) - set_row(_i,"@47g%r", &_sld_prg_dare); - if (_sld_prg_avere != ZERO) - set_row(_i,"@64g%r", &_sld_prg_avere); - } - //fine + else + if (_tipo_stampa == 1) + { + if (_sld_prg_dare != ZERO) + set_row(_i,"@47g%r", &_sld_prg_dare); + if (_sld_prg_avere != ZERO) + set_row(_i,"@64g%r", &_sld_prg_avere); + } } else { @@ -4569,14 +4288,15 @@ void TStampa_IVdirettiva::intesta_verifica_fissa() if (_tipo_stampa == 1) { - if (_dataini == _data_ini_ese) + if (_datainizio == _data_inizio_es) set_header(6,FR("@54gMOVIMENTI DI APERTURA@87gMOVIMENTI DEL PERIODO")); - else if (_dataini > _data_ini_ese) - set_header(6,FR("@54gPROGRESSIVI PRECEDENTI@87gMOVIMENTI DEL PERIODO")); + else + if (_datainizio > _data_inizio_es) + set_header(6,FR("@54gPROGRESSIVI PRECEDENTI@87gMOVIMENTI DEL PERIODO")); } - else if (_tipo_stampa == 2) - set_header(6,FR("@57gSALDO INIZIALE@87gMOVIMENTI DEL PERIODO")); - + else + if (_tipo_stampa == 2) + set_header(6,FR("@57gSALDO INIZIALE@87gMOVIMENTI DEL PERIODO")); if (_stampa_modulo) set_header(6,FR("@129gSALDO")); @@ -4608,29 +4328,26 @@ void TStampa_IVdirettiva::intesta_verifica_fissa() void TStampa_IVdirettiva::intesta_scalare() { - TString datalimitestr,databilrafrstr; TString sep(132); - - TString16 d1e(_data_ini_ese.string()); - TString16 d2e(_data_fine_ese.string()); - TString16 d1r(_data_ini_raf.string()); - TString16 d2r(_data_fine_raf.string()); - - set_header (4,TR("STAMPA BILANCIO CONFORME ALLA IV DIRETTIVA")); - set_header (4,FR("@80gEs. %s/%s"), (const char*)d1e, (const char*)d2e); /**/ + TString intestazione(TR("STAMPA BILANCIO CONFORME ALLA IV DIRETTIVA")); + + if (_tipo_data == Registrazione) + intestazione << " " << TR("PER CASSA"); + else + if (_tipo_data == CostiRicavi) + intestazione << " " << TR("PER COMPETENZA COSTI/RICAVI"); + set_header(4, intestazione); + set_header (4,FR("@80gEs. %s/%s"), (const char*)_data_inizio_es.string(), (const char*)_data_fine_es.string()); /**/ if (_annoeserafr != 0 || _databilrafr != botime) { - set_header (4,FR("@107gEs. %s/%s"), (const char*)d1r, (const char*)d2r); /**/ - databilrafrstr = _databilrafr.string(); - set_header (5,FR("@112galla data@122g%s"), (const char*) databilrafrstr); + set_header (4,FR("@107gEs. %s/%s"), (const char*)_data_inizio_raf.string(), (const char*)_data_fine_raf.string()); /**/ + set_header (5,FR("@112galla data@122g%s"), (const char*)_databilrafr.string()); } if (_tipo_stampa == 1) - { - datalimitestr = _datalimite.string(); - set_header (5,FR("@86galla data@96g%s"), (const char*) datalimitestr); - } - else if (_tipo_stampa == 2) - set_header (5,FR("@90gall'ultima immissione")); + set_header (5,FR("@112galla data@122g%s"), (const char*)_datalimite.string()); + else + if (_tipo_stampa == 2) + set_header (5,FR("@110gall'ultima immissione")); sep.fill('-'); //Stampa 132 - (sep(132)) set_header (6, (const char *) sep); @@ -4638,18 +4355,20 @@ void TStampa_IVdirettiva::intesta_scalare() void TStampa_IVdirettiva::intesta_verifica() { - set_header (4,TR("@0gBILANCIO DI VERIFICA IV DIRETTIVA")); + TString intestazione(TR("BILANCIO DI VERIFICA IV DIRETTIVA")); - if (_tipo_stampa == 1) - { - TString datainistr = _dataini.string(); - TString datafinestr = _datafine.string(); - set_header (4,FR("@43gdalla data@54g%s alla data %s"), - - (const char*)datainistr, (const char*) datafinestr); - } - else if (_tipo_stampa == 2) - set_header (4,FR("@42gall'ultima immissione")); + if (_tipo_data == Registrazione) + intestazione << " " << TR("PER CASSA"); + else + if (_tipo_data == CostiRicavi) + intestazione << " " << TR("PER COMPETENZA COSTI/RICAVI"); + set_header(4, intestazione); + if (_tipo_stampa == 1) + set_header (4,FR("@90gdalla data@101g%s alla data %s"), + (const char*)_datainizio.string(), (const char*)_datalimite.string()); + else + if (_tipo_stampa == 2) + set_header (4,FR("@111gall'ultima immissione")); TString sep; sep.fill('-', _stampa_modulo ? 147 : 132); @@ -4686,11 +4405,9 @@ bool TStampa_IVdirettiva::user_create() _msk->set_handler(F_DATALIM, data_limite); _msk->set_handler(F_TIPOSTAMPA, tipo_stampa); - _msk->set_handler(F_TIPOSTAMPA1, tipo_stampa); _msk->set_handler(F_TIPOBIL, tipo_bilancio); _msk->set_handler(F_ANNOESE, anno_esercizio); _msk->set_handler(F_DATAINI, data_inizio); - _msk->set_handler(F_DATAFINE, data_fine); _msk->set_handler(F_DATABILRAF, data_bil_raff); _msk->set_handler(F_ANNORAFFR, anno_ese_raff); _msk->set(F_NORMALI, "X"); diff --git a/src/cg/cg1600.h b/src/cg/cg1600.h index d96abfdeb..ef25a93a3 100755 --- a/src/cg/cg1600.h +++ b/src/cg/cg1600.h @@ -9,7 +9,6 @@ #define F_DATASTAMPA 103 #define F_TIPOBIL 104 #define F_TIPOSTAMPA 105 -#define F_TIPOSTAMPA1 106 #define F_DATALIM 107 #define F_DATABILRAF 108 #define F_STAMPAINT 109 @@ -18,7 +17,6 @@ #define F_COMPETENZA 112 #define F_STAMPAMODULO 113 #define F_DATAINI 114 -#define F_DATAFINE 115 #define F_ANNOESE 116 #define F_ANNORAFFR 117 #define F_NORMALI 118 @@ -28,6 +26,7 @@ #define F_PROVVM 122 #define F_PROVVB 123 #define F_PROVVC 124 +#define F_COMPCR 125 #endif // __CG1600_H diff --git a/src/cg/cg1600a.uml b/src/cg/cg1600a.uml index 80a43dfc5..b4e3bffbd 100755 --- a/src/cg/cg1600a.uml +++ b/src/cg/cg1600a.uml @@ -54,6 +54,8 @@ BEGIN OUTPUT F_ANNOESE CODTAB FLAGS "RZ" CHECKTYPE NORMAL + MESSAGE EMPTY DISABLE,F_COMPCR + MESSAGE ENABLE,F_COMPCR ADD RUN cg0 -5 esc END @@ -75,10 +77,9 @@ BEGIN PROMPT 4 6 "Tipo bilancio " HELP "Indicare il tipo di bilancio da stampare" ITEM "1|Bilancio scalare" - MESSAGE HIDE,F_TIPOSTAMPA1|RESET,F_TIPOSTAMPA1|SHOW,F_TIPOSTAMPA|K_SPACE,F_TIPOSTAMPA - MESSAGE SHOW,F_ANNORAFFR|SHOW,F_DATABILRAF|HIDE,F_SEPARATOR + MESSAGE SHOW,F_ANNORAFFR|SHOW,F_DATABILRAF|HIDE,F_SEPARATOR + MESSAGE CLEAR,F_QUADRATURA ITEM "2|Bilancio di verifica" - MESSAGE HIDE,F_TIPOSTAMPA|RESET,F_TIPOSTAMPA|SHOW,F_TIPOSTAMPA1|K_SPACE,F_TIPOSTAMPA1 MESSAGE HIDE,F_ANNORAFFR|HIDE,F_DATABILRAF|SHOW,F_SEPARATOR END @@ -87,79 +88,38 @@ BEGIN PROMPT 4 7 "Tipo stampa " HELP "Indicare il tipo di stampa che si vuole avere" ITEM "1|Per data limite" - MESSAGE HIDE,F_STAMPAMODULO|HIDE,F_DATAINI|HIDE,F_DATAFINE - MESSAGE RESET,F_STAMPAMODULO|RESET,F_DATAINI|RESET,F_DATAFINE MESSAGE SHOW,F_DATALIM|SHOW,F_STAMPAINT|SHOW,F_STAMPAMOV + MESSAGE ENABLE,F_COMPCR ITEM "2|All'ultima immissione" - MESSAGE HIDE,F_DATALIM|HIDE,F_STAMPAMODULO|HIDE,F_DATAINI|HIDE,F_DATAFINE - MESSAGE RESET,F_STAMPAMODULO|RESET,F_DATAINI|RESET,F_DATALIM|RESET,F_DATAFINE| + MESSAGE HIDE,F_DATALIM|RESET,F_DATALIM MESSAGE SHOW,F_STAMPAINT|SHOW,F_STAMPACOD|SHOW,F_STAMPAMOV -END - -LIST F_TIPOSTAMPA1 23 -BEGIN - PROMPT 4 7 "Tipo stampa " - ITEM "1|Per data limite" - MESSAGE HIDE,F_DATALIM - MESSAGE RESET,F_DATALIM - MESSAGE SHOW,F_STAMPAINT|SHOW,F_STAMPACOD|SHOW,F_STAMPAMOV - MESSAGE SHOW,F_DATAINI|SHOW,F_DATAFINE|SHOW,F_STAMPAMODULO - ITEM "2|All'ultima immissione" - MESSAGE HIDE,F_DATALIM|HIDE,F_DATAINI|HIDE,F_DATAFINE - MESSAGE RESET,F_DATAINI|RESET,F_DATALIM|RESET,F_DATAFINE - MESSAGE SHOW,F_STAMPAINT|SHOW,F_STAMPACOD|SHOW,F_STAMPAMOV|SHOW,F_STAMPAMODULO - MESSAGE COPY,F_TIPOSTAMPA -END - -TEXT 96 -BEGIN - PROMPT 4 9 "Dalla data competenza " -END - -TEXT 97 -BEGIN - PROMPT 40 9 "Alla data competenza " -END - -TEXT 98 -BEGIN - PROMPT 4 9 "Dalla data operazione " -END - -TEXT 99 -BEGIN - PROMPT 40 9 "Alla data operazione " -END -DATE F_DATALIM -BEGIN - PROMPT 4 9 "Data limite " - HELP "Data fin alla quale si vuole la stampa" - FLAGS "G" -// VALIDATE NOT_EMPTY_FUNC -END - -DATE F_DATABILRAF -BEGIN - PROMPT 36 9 "Data bil. da raffrontare " - HELP "Data d'esercizio da raffrontare con data limite" - FLAGS "G" -// VALIDATE NOT_EMPTY_FUNC + MESSAGE CLEAR,F_COMPCR END DATE F_DATAINI BEGIN - PROMPT 26 9 "" - HELP "Data di inizio calcolo" - FLAGS "G" -// VALIDATE NOT_EMPTY_FUNC + PROMPT 4 8 "Data iniziale " + HELP "Data dalla quale si vuole iniziare la stampa" END -DATE F_DATAFINE +DATE F_DATALIM BEGIN - PROMPT 62 9 "" - HELP "Data di fine calcolo" - FLAGS "G" -// VALIDATE NOT_EMPTY_FUNC + PROMPT 41 8 "Data limite " + HELP "Data fin alla quale si vuole la stampa" +END + +DATE F_DATABILRAF +BEGIN + PROMPT 28 9 "Data bil. da raffrontare " + HELP "Data d'esercizio da raffrontare con data limite" +END + +BOOLEAN F_COMPCR +BEGIN + PROMPT 4 10 "Bilancio per competenza costi/ricavi " + HELP "Bilancio per competenza costi/ricavi" + FLAGS "D" + GROUP 4 END BOOLEAN F_STAMPAINT @@ -172,49 +132,49 @@ END BOOLEAN F_STAMPACOD BEGIN - PROMPT 41 11 "Non stampare cod. conti" + PROMPT 4 12 "Non stampare cod. conti" HELP "Indicare se non stampare i codici dei conti" END BOOLEAN F_STAMPAMOV BEGIN - PROMPT 4 12 "Non stampare mov. con saldo a 0" + PROMPT 4 13 "Non stampare mov. con saldo a 0" HELP "Indicare se non stampare i movimenti con saldo nullo" END BOOLEAN F_NORMALI BEGIN - PROMPT 4 13 "Movimenti : Normali" + PROMPT 4 14 "Movimenti : Normali" END BOOLEAN F_PROVVM BEGIN - PROMPT 30 13 "Provvisori : Manuali" + PROMPT 30 14 "Provvisori : Manuali" END BOOLEAN F_PROVVB BEGIN - PROMPT 53 13 "Comp. costi/ricavi" + PROMPT 53 14 "Comp. costi/ricavi" END BOOLEAN F_PROVVC BEGIN - PROMPT 75 13 "Cespiti" + PROMPT 75 14 "Cespiti" END BOOLEAN F_STAMPAMODULO BEGIN - PROMPT 4 14 "Stampa su modulo 198" + PROMPT 4 15 "Stampa su modulo 198" END BOOLEAN F_QUADRATURA BEGIN - PROMPT 4 15 "Quadratura con Libro Giornale" + PROMPT 4 16 "Quadratura con Libro Giornale" END BOOLEAN F_SEPARATOR BEGIN - PROMPT 4 16 "Non stampare il separatre delle migliaia" + PROMPT 4 17 "Non stampare il separatre delle migliaia" END ENDPAGE