Patch level : 12.0 904

Files correlati     : cg4.exe
Commento            :

Corretto aggiornamento saldi. riaggiungeva in dare i saldi iniziali
This commit is contained in:
Alessandro Bonazzi 2019-11-30 12:36:11 +01:00
parent 1865b49287
commit 14afa6c813

View File

@ -110,7 +110,7 @@ real TSaldo::saldofin_esprec(int annoes, int g, int c, long s, bool saldo_chiusu
const char flagsf = _saldi.get_char(SLD_FLAGSALFIN); const char flagsf = _saldi.get_char(SLD_FLAGSALFIN);
const real saldosf = _saldi.get_real(SLD_SALDOFIN); const real saldosf = _saldi.get_real(SLD_SALDOFIN);
real tot = pdare-pavere; real tot = pdare - pavere;
if (flag == 'D') tot += saldo; if (flag == 'D') tot += saldo;
else tot -= saldo; else tot -= saldo;
@ -310,30 +310,30 @@ bool TSaldo::ultima_immissione_verifica(int annoes,int g,int c,long s,int indbil
// int gruppo = _saldi.get_int(SLD_GRUPPO); // int gruppo = _saldi.get_int(SLD_GRUPPO);
// int conto = _saldi.get_int(SLD_CONTO); // int conto = _saldi.get_int(SLD_CONTO);
// long sottoconto = _saldi.get_long(SLD_SOTTOCONTO); // long sottoconto = _saldi.get_long(SLD_SOTTOCONTO);
_saldo_iniziale = _saldi.get_real(SLD_SALDO); _saldo_iniziale = _saldi.get_real(SLD_SALDO);
_prg_dare = _saldi.get_real(SLD_PDARE); _prg_dare = _saldi.get_real(SLD_PDARE);
_prg_avere = _saldi.get_real(SLD_PAVERE); _prg_avere = _saldi.get_real(SLD_PAVERE);
sezione = _saldi.get_char(SLD_FLAGSALINI); sezione = _saldi.get_char(SLD_FLAGSALINI);
_sezsf = _saldi.get_char(SLD_FLAGSALFIN); // W96SALDI del 19-06-96 modifica richiesta _sezsf = _saldi.get_char(SLD_FLAGSALFIN); // W96SALDI del 19-06-96 modifica richiesta
_saldofin = _saldi.get_real(SLD_SALDOFIN); // da PATRIZIA _saldofin = _saldi.get_real(SLD_SALDOFIN); // da PATRIZIA
if (provv == 1) //bilancio normale (senza provvisori) if (provv == 1) //bilancio normale (senza provvisori)
if (_saldo_iniziale.is_zero() && _prg_dare.is_zero() && _prg_avere.is_zero()) if (_saldo_iniziale.is_zero() && _prg_dare.is_zero() && _prg_avere.is_zero())
return esito; return esito;
if (sezione == 'A') if (sezione == 'A')
_saldo_iniziale = -_saldo_iniziale; _saldo_iniziale = -_saldo_iniziale;
if (_sezsf == 'A') if (_sezsf == 'A')
_saldofin = -_saldofin; // W96SALDI del 19-06-96 _saldofin = -_saldofin; // W96SALDI del 19-06-96
_saldoiniziale = _saldo_iniziale; //saldo iniziale presente sul record saldi _saldoiniziale = _saldo_iniziale; //saldo iniziale presente sul record saldi
//non comprensivo del saldo finale es.precedente //non comprensivo del saldo finale es.precedente
if (_saldo_iniziale.is_zero() && !(provv & 0x1)) if (_saldo_iniziale.is_zero() && !(provv & 0x1))
{ {
if (indbil == 1 || indbil == 2 || indbil == 5) if (indbil == 1 || indbil == 2 || indbil == 5)
_saldo_iniziale += saldofin_esprec(annoes,g,c,s, false, provv); _saldo_iniziale += saldofin_esprec(annoes, g, c, s, false, provv);
} }
esito = true; esito = true;
_saldo = _saldo_iniziale + _saldofin; _saldo = _saldo_iniziale + _saldofin;
@ -341,12 +341,12 @@ bool TSaldo::ultima_immissione_verifica(int annoes,int g,int c,long s,int indbil
{ {
_prg_dare = ZERO; _prg_dare = ZERO;
_prg_avere = ZERO; _prg_avere = ZERO;
} }
if (provv & 0x2) if (provv & 0x2)
{ {
_prg_dare += _saldi.get_real(SLD_PDAREPRO); _prg_dare += _saldi.get_real(SLD_PDAREPRO);
_prg_avere += _saldi.get_real(SLD_PAVEREPRO); _prg_avere += _saldi.get_real(SLD_PAVEREPRO);
} }
if (provv & 0x4) if (provv & 0x4)
{ {
@ -358,7 +358,7 @@ bool TSaldo::ultima_immissione_verifica(int annoes,int g,int c,long s,int indbil
_prg_dare += _saldi.get_real(SLD_PDAREPROC); _prg_dare += _saldi.get_real(SLD_PDAREPROC);
_prg_avere += _saldi.get_real(SLD_PAVEREPROC); _prg_avere += _saldi.get_real(SLD_PAVEREPROC);
} }
} }
return esito; return esito;
} }
@ -378,8 +378,8 @@ bool TSaldo::ultima_immissione_bilancio(int annoes,int g,int c,long s,int indbil
real pdarepro, paverepro, pdareprob, pavereprob, pdareproc, pavereproc; real pdarepro, paverepro, pdareprob, pavereprob, pdareproc, pavereproc;
bool esito = false; bool esito = false;
_saldo_iniziale = ZERO; _saldo_iniziale = ZERO;
_prg_dare = ZERO; _prg_dare = ZERO;
_prg_avere = ZERO; _prg_avere = ZERO;
_saldo = ZERO; _saldo = ZERO;
_saldofin = ZERO; _saldofin = ZERO;
@ -407,18 +407,18 @@ bool TSaldo::ultima_immissione_bilancio(int annoes,int g,int c,long s,int indbil
// gruppo = _saldi.get_int(SLD_GRUPPO); // gruppo = _saldi.get_int(SLD_GRUPPO);
// conto = _saldi.get_int(SLD_CONTO); // conto = _saldi.get_int(SLD_CONTO);
// sottoconto = _saldi.get_long(SLD_SOTTOCONTO); // sottoconto = _saldi.get_long(SLD_SOTTOCONTO);
_saldo_iniziale = _saldi.get_real(SLD_SALDO); _saldo_iniziale = _saldi.get_real(SLD_SALDO);
_prg_dare = _saldi.get_real(SLD_PDARE); _prg_dare = _saldi.get_real(SLD_PDARE);
_prg_avere = _saldi.get_real(SLD_PAVERE); _prg_avere = _saldi.get_real(SLD_PAVERE);
pdarepro = _saldi.get_real(SLD_PDAREPRO); pdarepro = _saldi.get_real(SLD_PDAREPRO);
paverepro = _saldi.get_real(SLD_PAVEREPRO); paverepro = _saldi.get_real(SLD_PAVEREPRO);
pdareprob = _saldi.get_real(SLD_PDAREPROB); pdareprob = _saldi.get_real(SLD_PDAREPROB);
pavereprob = _saldi.get_real(SLD_PAVEREPROB); pavereprob = _saldi.get_real(SLD_PAVEREPROB);
pdareproc = _saldi.get_real(SLD_PDAREPROC); pdareproc = _saldi.get_real(SLD_PDAREPROC);
pavereproc = _saldi.get_real(SLD_PAVEREPROC); pavereproc = _saldi.get_real(SLD_PAVEREPROC);
sezione = _saldi.get_char(SLD_FLAGSALINI); sezione = _saldi.get_char(SLD_FLAGSALINI);
_sezsf = _saldi.get_char(SLD_FLAGSALFIN); _sezsf = _saldi.get_char(SLD_FLAGSALFIN);
_saldofin = _saldi.get_real(SLD_SALDOFIN); _saldofin = _saldi.get_real(SLD_SALDOFIN);
esito = false; esito = false;
if (provv & 0x1) if (provv & 0x1)
@ -430,22 +430,22 @@ bool TSaldo::ultima_immissione_bilancio(int annoes,int g,int c,long s,int indbil
if (provv & 0x8) // (con provvisori cespiti) if (provv & 0x8) // (con provvisori cespiti)
esito |= (pdareproc != ZERO || pavereproc != ZERO); esito |= (pdareproc != ZERO || pavereproc != ZERO);
if (sezione == 'A') if (sezione == 'A')
_saldo_iniziale = -_saldo_iniziale; _saldo_iniziale = -_saldo_iniziale;
if (saldo_chiusura) // W96SALDI modifica inserita per il discorso di inclusione oppure 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 if (_sezsf == 'A') // no del saldo di chiusura inserita il 09-07-96
_saldofin = -_saldofin; _saldofin = -_saldofin;
_rec_presente_ec = esito; _rec_presente_ec = esito;
} }
if (_saldo_iniziale.is_zero() && (provv & 0x1)) if (_saldo_iniziale.is_zero() && (provv & 0x1))
if (indbil == 1 || indbil == 2 || indbil == 5) if (indbil == 1 || indbil == 2 || indbil == 5)
{ {
_prec = true; _prec = true;
_saldo_iniziale += saldofin_esprec(annoes,g,c,s,false,provv); _saldo_iniziale += saldofin_esprec(annoes, g, c, s, false, provv);
} }
_saldo = ZERO; _saldo = ZERO;
if (provv & 0x1) if (provv & 0x1)
@ -456,11 +456,11 @@ bool TSaldo::ultima_immissione_bilancio(int annoes,int g,int c,long s,int indbil
_saldo += pdareprob - pavereprob; _saldo += pdareprob - pavereprob;
if (provv & 0x8) // (con provvisori cespiti) if (provv & 0x8) // (con provvisori cespiti)
_saldo += pdareproc - pavereproc; _saldo += pdareproc - pavereproc;
if (saldo_chiusura && (provv & 0x1)) // W96SALDI modifica inserita per il discorso di inclusione oppure if (saldo_chiusura && (provv & 0x1)) // W96SALDI modifica inserita per il discorso di inclusione oppure
_saldo += _saldofin; // no del saldo di chiusura inserita il 09-07-96 _saldo += _saldofin; // no del saldo di chiusura inserita il 09-07-96
return esito; return esito;
} }
const real& TSaldo::saldo_periodo(int g, int c, long s, const TDate& dal, const TDate& al, const real& TSaldo::saldo_periodo(int g, int c, long s, const TDate& dal, const TDate& al,
int indbil, int provv) int indbil, int provv)
@ -919,7 +919,7 @@ void TSaldo_agg::reset()
void TSaldo_agg::clear_saldi(int year) void TSaldo_agg::clear_saldi(int year)
{ {
TFast_isamfile saldi(LF_SALDI); TLocalisamfile saldi(LF_SALDI);
set_anno_es(year); set_anno_es(year);
saldi.zero(); saldi.zero();
@ -1047,15 +1047,8 @@ void TSaldo_agg::registra()
saldi.put(SLD_FLAGSALINI, flag_salini); saldi.put(SLD_FLAGSALINI, flag_salini);
saldi.put(SLD_SALDO, si); saldi.put(SLD_SALDO, si);
} }
TImporto sld('D', tcon.saldo());
TImporto old_sld(saldi.get_char(SLD_FLAGSALINI), saldi.get_real(SLD_SALDO));
sld += old_sld; TImporto sf('D', tcon.saldofin());
sld.normalize();
saldi.put(SLD_FLAGSALINI, sld.sezione());
saldi.put(SLD_SALDO, sld.valore());
TImporto sf('D', tcon.saldofin());
TImporto old_sf(saldi.get_char(SLD_FLAGSALFIN), saldi.get_real(SLD_SALDOFIN)); TImporto old_sf(saldi.get_char(SLD_FLAGSALFIN), saldi.get_real(SLD_SALDOFIN));
sf += old_sf; sf += old_sf;