From b549435a00bfe0fda7fc45fc1bd48cbffbf524b8 Mon Sep 17 00:00:00 2001 From: guy Date: Tue, 20 Jan 2004 11:09:30 +0000 Subject: [PATCH] Patch level : 2.0 670 Files correlati : cg1.exe cg1500a.msk Ricompilazione Demo : [ ] Commento : CM20076 Stampa bilancio di verifica. Ditta con esercizio 2003 ancora aperto e 2004 in corso. Nel 2003 ho dei movimenti provvisori. Se richiedo la stampa del bilancio di verifica con esercizio 2004 in forma globale, nella colonna dei progressivi precedenti mi deve dare la somma dei valori del 2003 compresi i valori provvisori gestiti nello stesso esercizio. CM20077 Stampa bilancio sezioni contrapposte Ditta con esercizio 2003 ancora aperto e 2004 in corso. Nel 2003 ho dei movimenti provvisori. Se richiedo la stampa del bilancio sezioni contrapposte con esercizio 2004 in forma globale, deve dare la somma dei valori del 2003 compresi i valori provvisori gestiti nello stesso esercizio. git-svn-id: svn://10.65.10.50/trunk@11712 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- cg/cg1.cpp | 4 +- cg/cg1500.cpp | 30 ++++++------- cg/cg1500a.uml | 16 ++----- cg/cg2100.cpp | 2 +- cg/cg3600.cpp | 17 ++++---- cg/cg5100.cpp | 5 +-- cg/cglib02.cpp | 115 +++++++++++++++++++++---------------------------- cg/cglib02.h | 5 ++- 8 files changed, 84 insertions(+), 110 deletions(-) diff --git a/cg/cg1.cpp b/cg/cg1.cpp index b4f23154f..550b7efda 100755 --- a/cg/cg1.cpp +++ b/cg/cg1.cpp @@ -12,7 +12,7 @@ int main(int argc,char** argv) case 2: cg1300(argc,argv); break; // Aggiornamenti case 3: - cg1400(argc,argv); break; // Stampa deleghe iva + cg1400(argc,argv); break; // Stampa deleghe iva case 4: cg1500(argc,argv); break; // Stampa bilanci case 5: @@ -20,7 +20,7 @@ int main(int argc,char** argv) case 6: cg1700(argc,argv); break; // Stampa causali default: - cg1100(argc,argv); break; // Stampa Piano dei conti + cg1100(argc,argv); break; // Stampa Piano dei conti } exit(0); // Altrimenti non esce mai! return 0; diff --git a/cg/cg1500.cpp b/cg/cg1500.cpp index 71caf11cb..1ec6cc731 100755 --- a/cg/cg1500.cpp +++ b/cg/cg1500.cpp @@ -392,8 +392,8 @@ bool TStampa_bilanci::mask_bilancio(TMask_field& f, KEY k) f.mask().set (F_QUADRATURA,""); f.mask().hide(F_QUADRATURA); } -} -return TRUE; + } + return TRUE; } bool TStampa_bilanci::mask_datalim (TMask_field& f, KEY k) @@ -1477,7 +1477,7 @@ bool TStampa_bilanci::bil_verifica() { if (_annoes != 0 && (indbil_conto == 1 || indbil_conto == 2 || indbil_conto == 5)) { - saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s); + saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s,false,_stampa_mov_prov == 2); //modifica del 21/11/95 if (saldo_iniziale > ZERO) _saldo_ini_dare = saldo_iniziale; @@ -1507,7 +1507,7 @@ bool TStampa_bilanci::bil_verifica() { if (_annoes != 0 && (indbil_conto == 1 || indbil_conto == 2 || indbil_conto == 5)) { - saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s); + saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s,false,_stampa_mov_prov == 2); //modifica del 21/11/95 if (saldo_iniziale > ZERO) _saldo_ini_dare = saldo_iniziale; @@ -1535,8 +1535,7 @@ bool TStampa_bilanci::bil_verifica() 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; + saldo_finale = _prg_prec_dare-_prg_prec_avere+_mov_periodo_dare-_mov_periodo_avere; } //if (saldo_finale == ZERO) @@ -1557,7 +1556,7 @@ 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); + saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s,FALSE,_stampa_mov_prov == 2); if (_stampav == 1 && sld.significativo()) movimentato = TRUE; } @@ -1893,7 +1892,7 @@ bool TStampa_bilanci::ricerca_cf(int g,int c,char tipocf,int ib, real& saldo_fin { if (_annoes != 0 && (ib == 1 || ib == 2 || ib == 5)) { - saldo_iniziale += sld.saldofin_esprec(_annoes,g,c,s); + saldo_iniziale += sld.saldofin_esprec(_annoes,g,c,s,false,_stampa_mov_prov==2); //modifica del 21/11/1995 if (saldo_iniziale > ZERO) _saldo_ini_dare = saldo_iniziale; @@ -1923,7 +1922,7 @@ bool TStampa_bilanci::ricerca_cf(int g,int c,char tipocf,int ib, real& saldo_fin { if (_annoes != 0 && (ib == 1 || ib == 2 || ib == 5)) { - saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s); + saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s,false,_stampa_mov_prov==2); //modifica del 21/11/1995 if (saldo_iniziale > ZERO) _saldo_ini_dare = saldo_iniziale; @@ -1981,7 +1980,7 @@ bool TStampa_bilanci::ricerca_cf(int g,int c,char tipocf,int ib, real& saldo_fin //solo se e' un conto patrimoniale if (ib == 1 || ib == 2 || ib == 5) { - saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s,FALSE); + saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s,false,_stampa_mov_prov==2); movimentato = sld.significativo(); } } @@ -2349,7 +2348,7 @@ void TStampa_bilanci::leggi_clifo(const TArray& gccf) if (_indbil == 1 || _indbil == 2 || _indbil == 5) if (_annoes != 0) //cioe' se sto ragionando per competenza { - saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,codcf); + saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,codcf,false,_stampa_mov_prov==2); if (saldo_iniziale > ZERO) _saldo_ini_dare = saldo_iniziale; else _saldo_ini_avere = -saldo_iniziale; @@ -2376,7 +2375,7 @@ void TStampa_bilanci::leggi_clifo(const TArray& gccf) if (_indbil == 1 || _indbil == 2 || _indbil == 5) if (s.is_zero() && _annoes != 0) //competenza!!! { - saldo_iniziale += sld.saldofin_esprec(_annoes,g,c,codcf); + saldo_iniziale += sld.saldofin_esprec(_annoes,g,c,codcf,false,_stampa_mov_prov==2); //modifica del 21/11/1995 if (saldo_iniziale > ZERO) _saldo_ini_dare = saldo_iniziale; @@ -2414,7 +2413,7 @@ void TStampa_bilanci::leggi_clifo(const TArray& gccf) if (_stampa_mov_prov != 3) if (!movimentato /* && _stampac!=1 */ ) if (_indbil == 1 || _indbil == 2 || _indbil == 5) - saldo_iniziale = sld.saldofin_esprec(anno,g,c,codcf,FALSE); + saldo_iniziale = sld.saldofin_esprec(anno,g,c,codcf,false,_stampa_mov_prov==2); if (movimentato) saldo_iniziale = sld.saldoini(); @@ -3982,10 +3981,9 @@ void TStampa_bilanci::preprocess_header() //modifica del 20/04/1995 if (_print_exercise) { - TString d1(InizioEsercizio(_annoes).string()); - TString d2(FineEsercizio(_annoes).string()); + 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); /**/ - } r++; header_cdc(r); diff --git a/cg/cg1500a.uml b/cg/cg1500a.uml index 232905de5..bdca00a6f 100755 --- a/cg/cg1500a.uml +++ b/cg/cg1500a.uml @@ -160,20 +160,12 @@ BEGIN PROMPT 60 10 "" END -/* -BOOLEAN F_STAMPAMPROV -BEGIN - PROMPT 2 11 "Stampa movimenti provvisori " - HELP "Indicare se stampare i movimenti provvisori" -END -*/ - LIST F_STAMPAMPROV 15 BEGIN - PROMPT 2 11 "Bilancio " - ITEM "1|Normale" - ITEM "2|Globale" - ITEM "3|Solo provvisori" + PROMPT 2 11 "Bilancio " + ITEM "1|Normale" + ITEM "2|Globale" + ITEM "3|Solo provvisori" END LIST F_MODULO 1 12 diff --git a/cg/cg2100.cpp b/cg/cg2100.cpp index e15c39185..07868942d 100755 --- a/cg/cg2100.cpp +++ b/cg/cg2100.cpp @@ -1613,7 +1613,7 @@ void TPrimanota_application::ini2mask(TConfig& ini, TMask& msk, bool query) add_not_empty(riga, 14, ini, RMV_CODCMS); // Commessa 115 add_not_empty(riga, 15, ini, RMV_FASCMS); // Fase 116 - riga.add(tipo, 16); // Tipo di riga 116 + riga.add(tipo, cg.cid2index(CG_ROWTYPE)); // Tipo di riga 119 } if (is_fattura()) diff --git a/cg/cg3600.cpp b/cg/cg3600.cpp index 5686a12be..e5eb5644a 100755 --- a/cg/cg3600.cpp +++ b/cg/cg3600.cpp @@ -1340,13 +1340,13 @@ void TGrid_control::update_selection(XI_EVENT* xiev) { const bool is_curr = xiev->v.rec_request.data_rec == _cur_rec; if (_read_only) - { -/* + { +/* if (is_curr) xiev->v.rec_request.attrib |= XI_ATR_SELECTED; else xiev->v.rec_request.attrib &= ~XI_ATR_SELECTED; -*/ +*/ } else xiev->v.rec_request.has_focus = is_curr; @@ -1425,9 +1425,10 @@ bool TGrid_control::event_handler(XI_OBJ* itf, XI_EVENT *xiev) { if (xiev->v.select.column == 0) { - _cur_rec = rec; // Assegno subito il record corrente - _grid->on_record_button(rec); - if (_read_only) + // _cur_rec = rec; // A 16 bit era condizionato a XI_R4 + if (rec == _cur_rec) // Aggiunto a 32 bit + _grid->on_record_button(rec); + if (_read_only) refused = TRUE; } else @@ -1441,7 +1442,7 @@ bool TGrid_control::event_handler(XI_OBJ* itf, XI_EVENT *xiev) _cur_rec = rec; // Assegno solo ora il record corrente } } - else + else refused = TRUE; } } @@ -2324,9 +2325,7 @@ void TMastrini_grid::on_grid_button() void TMastrini_grid::on_record_button(long rec) { - TWait_cursor hourglass; const TRectype& testata = _mastrino.testata(rec); - bool refresh = testata.edit(); if (refresh && yesno_box(TR("Si desidera aggiornare il mastrino?"))) reread(); diff --git a/cg/cg5100.cpp b/cg/cg5100.cpp index 24a8cf812..59262c3f0 100755 --- a/cg/cg5100.cpp +++ b/cg/cg5100.cpp @@ -93,7 +93,7 @@ void TParametri_ditta::check_registers(int year) if (flags < R_ALL) { TString wrn(TR("I seguenti registri non esistono per l'attivita' ")); - wrn << att << "(" << year << "):"; + wrn << att << " (" << year << "):"; if ((flags & R_VEN) == 0x00) wrn << TR("\n\tregistro vendite"); if ((flags & R_ACQ) == 0x00) wrn << TR("\n\tregistro acquisti"); warning_box(wrn); @@ -102,8 +102,7 @@ void TParametri_ditta::check_registers(int year) // libro giornale non si controlla per attivita' if(!is_giornale) - warning_box(FR("Non esiste probabilmente nessun " - "libro giornale per l'anno %d"), year); + warning_box(FR("Non esiste probabilmente nessun libro giornale per l'anno %d"), year); } diff --git a/cg/cglib02.cpp b/cg/cglib02.cpp index fdfd09369..f3f88dcb7 100755 --- a/cg/cglib02.cpp +++ b/cg/cglib02.cpp @@ -93,9 +93,9 @@ TSaldo::TSaldo() : _saldi(LF_SALDI), _saldoiniziale(ZERO), _saldo_iniziale(ZERO) real TSaldo::saldofin_esprec(int annoes, int g, int c, long s, bool saldo_chiusura, bool provvis) { - const int annoesprec = EsePre(annoes); _significativo = FALSE; + const int annoesprec = EsePre(annoes); if (!ricerca_progr_prec(annoesprec, g, c, s)) // non ci sono esercizi prima del primo return ZERO; @@ -127,13 +127,13 @@ real TSaldo::saldofin_esprec(int annoes, int g, int c, long s, bool saldo_chiusu tot -= paverepro; } - _significativo = (tot != 0); + _significativo = !tot.is_zero(); return tot; } //richiamata nel bilancio a sez.contr per data limite //in realta' calcola il saldo finale es.prec -real TSaldo::calcola_saldo_iniziale(int g,int c,long s,int indbil) +real TSaldo::calcola_saldo_iniziale(int g,int c,long s,int indbil, bool provvis) { real saldoini; _significativo = TRUE; @@ -146,7 +146,7 @@ real TSaldo::calcola_saldo_iniziale(int g,int c,long s,int indbil) _saldi.put(SLD_FLSCA,""); if (_rec_presente_ec = (_saldi.read() == NOERR)) - saldoini = _saldi.get_real(SLD_SALDO); + saldoini = _saldi.get_real(SLD_SALDO); _significativo = _rec_presente_ec && saldoini != ZERO; @@ -158,31 +158,13 @@ real TSaldo::calcola_saldo_iniziale(int g,int c,long s,int indbil) if (indbil == 1 || indbil == 2 || indbil == 5) { _prec = TRUE; - saldoini = saldofin_esprec(_annoes, g, c, s); + saldoini = saldofin_esprec(_annoes, g, c, s, false, provvis); } _saldo_iniziale = saldoini; } return _saldo_iniziale; } -/* -const TString& TSaldo::causale_chiusura_es() const -{ - TConfig conf(CONFIG_DITTA, "cg"); - TString& tmp = get_tmp_string(); - tmp = conf.get("CoCaCh"); - return tmp; -} - -const TString& TSaldo::causale_apertura_es() const -{ - TConfig conf(CONFIG_DITTA, "cg"); - TString& tmp = get_tmp_string(); - tmp = conf.get("CoCaAp"); - return tmp; -} -*/ - bool TSaldo::leggi_mov(long nr) { const TRectype& mov = cache().get(LF_MOV, nr); @@ -223,7 +205,7 @@ bool TSaldo::data_limite_bilancio(int bilancio, int g, int c, long s, const TDat // Anche se non movimentato vado a vedere il saldo if (stp_prov != 3 && (filter == NULL || *filter == '\0')) - _saldo = calcola_saldo_iniziale(g,c,s,indbil); + _saldo = calcola_saldo_iniziale(g,c,s,indbil,stp_prov == 2); for (cur = 0L; cur.pos() < items; ++cur) { @@ -294,8 +276,6 @@ bool TSaldo::ultima_immissione_verifica(int annoes,int g,int c,long s,int indbil { //Si considerano i saldi e non piu' i movimenti char sezione; - int gruppo, conto, annoe; - long sottoconto; real pdarepro, paverepro; bool esito = FALSE; @@ -313,13 +293,13 @@ bool TSaldo::ultima_immissione_verifica(int annoes,int g,int c,long s,int indbil _saldi.put(SLD_CONTO,c); _saldi.put(SLD_SOTTOCONTO,s); _saldi.put(SLD_FLSCA, ""); - + if (_saldi.read() == NOERR) { - annoe = _saldi.get_int(SLD_ANNOES); - gruppo = _saldi.get_int(SLD_GRUPPO); - conto = _saldi.get_int(SLD_CONTO); - sottoconto = _saldi.get_long(SLD_SOTTOCONTO); +// int annoe = _saldi.get_int(SLD_ANNOES); +// int gruppo = _saldi.get_int(SLD_GRUPPO); +// int conto = _saldi.get_int(SLD_CONTO); +// long sottoconto = _saldi.get_long(SLD_SOTTOCONTO); _saldo_iniziale = _saldi.get_real(SLD_SALDO); _prg_dare = _saldi.get_real(SLD_PDARE); _prg_avere = _saldi.get_real(SLD_PAVERE); @@ -330,26 +310,27 @@ bool TSaldo::ultima_immissione_verifica(int annoes,int g,int c,long s,int indbil _saldofin = _saldi.get_real(SLD_SALDOFIN); // da PATRIZIA if (stp_prov == 1) //bilancio normale (senza provvisori) - if (_saldo_iniziale == ZERO && _prg_dare == ZERO && _prg_avere == ZERO) + if (_saldo_iniziale.is_zero() && _prg_dare.is_zero() && _prg_avere.is_zero()) return esito; // if (stp_prov == 0 && paverepro == ZERO) - if (stp_prov == 3 && paverepro == ZERO && pdarepro == ZERO) // Modifica del 24-09-96 errore MI0890. + if (stp_prov == 3 && paverepro.is_zero() && pdarepro.is_zero()) // Modifica del 24-09-96 errore MI0890. { _saldo = _prg_dare = _prg_avere = ZERO; // N.B. Non e' detto che funzioni sempre!!!!!! return esito; - } - - if (sezione == 'A') _saldo_iniziale = -_saldo_iniziale; - - if (_sezsf == 'A') _saldofin = -_saldofin; // W96SALDI del 19-06-96 + } + if (sezione == 'A') + _saldo_iniziale = -_saldo_iniziale; + if (_sezsf == 'A') + _saldofin = -_saldofin; // W96SALDI del 19-06-96 _saldoiniziale = _saldo_iniziale; //saldo iniziale presente sul record saldi //non comprensivo del saldo finale es.precedente - if (stp_prov != 3) + if (_saldo_iniziale.is_zero() && stp_prov != 3) + { if (indbil == 1 || indbil == 2 || indbil == 5) - if (_saldo_iniziale == ZERO) - _saldo_iniziale += saldofin_esprec(annoes,gruppo,conto,sottoconto); + _saldo_iniziale += saldofin_esprec(annoes,g,c,s, false, stp_prov == 2); + } esito = TRUE; @@ -388,8 +369,8 @@ bool TSaldo::ultima_immissione_bilancio(int annoes,int g,int c,long s,int indbil { //Si considerano i saldi e non piu' i movimenti char sezione; - int gruppo, conto, annoe; - long sottoconto; +// int gruppo, conto, annoe; +// long sottoconto; real pdarepro, paverepro; bool esito = FALSE; @@ -412,10 +393,10 @@ bool TSaldo::ultima_immissione_bilancio(int annoes,int g,int c,long s,int indbil if (_saldi.read() == NOERR) { - annoe = _saldi.get_int(SLD_ANNOES); - gruppo = _saldi.get_int(SLD_GRUPPO); - conto = _saldi.get_int(SLD_CONTO); - sottoconto = _saldi.get_long(SLD_SOTTOCONTO); +// annoe = _saldi.get_int(SLD_ANNOES); +// gruppo = _saldi.get_int(SLD_GRUPPO); +// conto = _saldi.get_int(SLD_CONTO); +// sottoconto = _saldi.get_long(SLD_SOTTOCONTO); _saldo_iniziale = _saldi.get_real(SLD_SALDO); _prg_dare = _saldi.get_real(SLD_PDARE); _prg_avere = _saldi.get_real(SLD_PAVERE); @@ -435,7 +416,8 @@ bool TSaldo::ultima_immissione_bilancio(int annoes,int g,int c,long s,int indbil if (stp_prov == 3) //bilancio dei soli mov. provvisori esito = (pdarepro != ZERO || paverepro != ZERO); - if (sezione == 'A') _saldo_iniziale = -_saldo_iniziale; + if (sezione == 'A') + _saldo_iniziale = -_saldo_iniziale; if (saldo_chiusura) // W96SALDI modifica inserita per il discorso di inclusione oppure if (_sezsf == 'A') // no del saldo di chiusura inserita il 09-07-96 @@ -444,13 +426,12 @@ bool TSaldo::ultima_immissione_bilancio(int annoes,int g,int c,long s,int indbil _rec_presente_ec = esito; } - if (stp_prov != 3) + if (_saldo_iniziale.is_zero() && stp_prov != 3) if (indbil == 1 || indbil == 2 || indbil == 5) - if (_saldo_iniziale == ZERO) - { - _prec = TRUE; - _saldo_iniziale += saldofin_esprec(annoes,g,c,s); - } + { + _prec = TRUE; + _saldo_iniziale += saldofin_esprec(annoes,g,c,s,false,stp_prov==2); + } if (stp_prov == 1) _saldo = _saldo_iniziale + _prg_dare - _prg_avere; @@ -623,10 +604,10 @@ bool TSaldo::prg_saldo(int annoes, TConto& conto, real& prgdare, real& prgavere, // TContoExt /////////////////////////////////////////////////////////// -class TContoExt : public TConto +class TContoExt : public TConto { bool _scaricato; - + public: bool scaricato() const { return _scaricato; } @@ -637,12 +618,17 @@ public: : TConto(tgcsd, from, mode), _scaricato(sc) {} virtual ~TContoExt() {} }; + +const TString& TTab_conti::build_key(const TBill& c, int anno, bool scar) const +{ + static TString80 key; + key.format("%4d%3d%3d%6ld%c", anno, c.gruppo(), c.conto(), c.sottoconto(), scar ? 'X' : '\0'); + return key; +} TConto* TTab_conti::add(const TBill& c, int anno, bool scar) { - TString80 key; - key.format("%4d%3d%3d%6ld", anno, c.gruppo(), c.conto(), c.sottoconto()); - if (scar) key << "X"; + const TString& key = build_key(c, anno, scar); TContoExt* tc = new TContoExt(c.gruppo(), c.conto(), c.sottoconto(), c.tipo(), NULL, scar); TAssoc_array::add(key, tc); @@ -651,18 +637,14 @@ TConto* TTab_conti::add(const TBill& c, int anno, bool scar) TConto* TTab_conti::find(const TBill& c, int anno, bool scar) { - TString80 key; - key.format("%4d%3d%3d%6ld", anno, c.gruppo(), c.conto(), c.sottoconto()); - if (scar) key << "X"; + const TString& key = build_key(c, anno, scar); TContoExt* tc = (TContoExt*)objptr(key); return tc; } void TTab_conti::remove(const TBill& c, int anno, bool scar) { - TString80 key; - key.format("%4d%3d%3d%6ld", anno, c.gruppo(), c.conto(), c.sottoconto()); - if (scar) key << "X"; + const TString& key = build_key(c, anno, scar); TAssoc_array::remove(key); } @@ -736,8 +718,9 @@ void TSaldo_agg::aggiorna(const TBill& tc, const TImporto& imp, bool somma, bool void TSaldo_agg::aggiorna(int gruppo, int conto, long sottoconto, const real& importo, char sezione, bool somma, bool scaricato) { + const TBill bill(gruppo, conto, sottoconto); const TImporto imp(sezione, importo); - _tab_conti.aggiorna_conto(TBill(gruppo, conto, sottoconto), _anno_es, imp, _movap, + _tab_conti.aggiorna_conto(bill, _anno_es, imp, _movap, _provv, somma, _movimentato, scaricato); } diff --git a/cg/cglib02.h b/cg/cglib02.h index 1b5cad583..9c5b1a1fc 100755 --- a/cg/cglib02.h +++ b/cg/cglib02.h @@ -88,7 +88,7 @@ class TSaldo : public TObject protected: void InFinEs(int); bool leggi_mov(long numreg); // Leggi testata - real calcola_saldo_iniziale(int g, int c, long s, int indbil); + real calcola_saldo_iniziale(int g, int c, long s, int indbil, bool provvis); bool prg_saldo(int, TConto&, real&, real&, bool); const real& iniziale() const { return _saldo_iniziale;} void set_iniziale(const real& val) { _saldo_iniziale = val; } @@ -136,6 +136,9 @@ public: class TTab_conti : public TAssoc_array { +protected: + const TString& build_key(const TBill& c, int anno, bool scar) const; + public: void aggiorna_conto(const TBill& tc, int anno_es, const TImporto& importo, tiposal movap, bool provv, bool somma, bool movimentato, bool scaricato);