diff --git a/ab/ab0400.cpp b/ab/ab0400.cpp index 3347018a4..49e12d726 100755 --- a/ab/ab0400.cpp +++ b/ab/ab0400.cpp @@ -360,7 +360,7 @@ void TRicl_saldi::mask2parms(const TMask & m) void TRicl_saldi::ini2parms(const char * filename) { - TConfig c(filename); + TConfig c(filename, "Main"); TEsercizi_contabili es; _calc_type = (TCalc_type) c.get_int("Tipo"); diff --git a/cg/cglib02.cpp b/cg/cglib02.cpp index 0871cff82..78fde9f93 100755 --- a/cg/cglib02.cpp +++ b/cg/cglib02.cpp @@ -479,6 +479,7 @@ real & TSaldo::saldo_periodo(int g, int c, long s, const TDate& dal, const TDate TEsercizi_contabili es; const int codes = es.date2esc(dal); + const TDate inizio = es.esercizio(codes).inizio(); const bool is_commessa = codcomm.not_empty(); _annoes = codes; @@ -525,45 +526,39 @@ real & TSaldo::saldo_periodo(int g, int c, long s, const TDate& dal, const TDate { p.addstatus(1L); - const long num_reg = rmov.get_long(RMV_NUMREG); - - leggi_mov(num_reg); - - const char sezione = rmov.get_char(RMV_SEZIONE); + const long num_reg = rmov.get_long(RMV_NUMREG); const real importo = rmov.get_real(RMV_IMPORTO); - if ((_datacomp >= dal && _datacomp <= al) && - (provv || _provv.empty()) && - (!is_commessa || codcomm == rmov.get(RMV_CODCMS)) && + if ((!is_commessa || codcomm == rmov.get(RMV_CODCMS)) && importo != ZERO) { + const char sezione = rmov.get_char(RMV_SEZIONE); // "Se la causale del movimento e' di chiusura, // o di apertura il movimento non va considerato" - if (_codcaus.not_empty()) + const TString& movap = _causali_apertura.decode(_codcaus); + leggi_mov(num_reg); + + if ((provv || _provv.empty()) && movap.blank()) { - const TString& movap = _causali_apertura.decode(_codcaus); - if (movap == "A" || movap == "C") - continue; - } + if (_datacomp >= dal && _datacomp <= al) + { + _movimentato = TRUE; - _movimentato = TRUE; - - if (sezione == 'D') - _prg_dare += importo; - else - _prg_avere += importo; - } - else - if ((!is_commessa) && _datacomp < dal) - { - if (codes == es.date2esc(_datacomp)) - { if (sezione == 'D') - _saldo_iniziale += importo; + _prg_dare += importo; else - _saldo_iniziale -= importo; - } - } + _prg_avere += importo; + } + else + if ((!is_commessa) && _datacomp >= inizio && _datacomp < dal) + { + if (sezione == 'D') + _saldo_iniziale += importo; + else + _saldo_iniziale -= importo; + } + } + } }