Modifiche per nuova gestione archivio saldi

git-svn-id: svn://10.65.10.50/trunk@2956 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 1996-06-04 14:18:45 +00:00
parent aea53e301e
commit 3358b09cbb
9 changed files with 133 additions and 229 deletions

View File

@ -148,72 +148,49 @@ void CG0100_application::on_firm_change()
bool CG0100_application::protected_record(TRectype &rec) bool CG0100_application::protected_record(TRectype &rec)
{ {
if (_pcon_com ) return TRUE; if (!_pcon_com )
TMask* m = get_mask(MODE_MOD);
TLocalisamfile& pconti = _rel->lfile();
const int gruppo = atoi(m->get(FLD_CM1_GRUPPO));
const int conto = atoi(m->get(FLD_CM1_CONTO));
const long sottoc = atol(m->get(FLD_CM1_SOTTOCONTO));
// Se e' un sottoconto posso cancellarlo se non esistono saldi
if ((gruppo != 0) && (conto != 0) && (sottoc != 0))
{ {
_saldi->zero(); TMask* m = get_mask(MODE_MOD);
_saldi->put(PCN_GRUPPO, gruppo); TLocalisamfile& pconti = _rel->lfile();
_saldi->put(PCN_CONTO, conto); const int gruppo = atoi(m->get(FLD_CM1_GRUPPO));
_saldi->put(PCN_SOTTOCONTO, sottoc); const int conto = atoi(m->get(FLD_CM1_CONTO));
_saldi->read(_isgteq); const long sottoc = atol(m->get(FLD_CM1_SOTTOCONTO));
bool ok = FALSE;
// Se e' un sottoconto posso cancellarlo se non esistono saldi
if (_saldi->good()) if ((gruppo != 0) && (conto != 0) && (sottoc != 0))
ok = _saldi->get_real(SLD_SALDO) != ZERO ||
_saldi->get_real(SLD_PDARE) != ZERO ||
_saldi->get_real(SLD_PAVERE) != ZERO ||
_saldi->get_real(SLD_SALDOFIN) != ZERO ||
_saldi->get_real(SLD_PDAREPRO) != ZERO ||
_saldi->get_real(SLD_PAVEREPRO) != ZERO;
return ok && gruppo ==_saldi->get_int(PCN_GRUPPO) &&
conto ==_saldi->get_int(PCN_CONTO) &&
sottoc ==_saldi->get_long(PCN_SOTTOCONTO);
if (!ok)
{ {
// look for scaricato
_saldi->zero(); _saldi->zero();
_saldi->put(PCN_GRUPPO, gruppo); _saldi->put(PCN_GRUPPO, gruppo);
_saldi->put(PCN_CONTO, conto); _saldi->put(PCN_CONTO, conto);
_saldi->put(PCN_SOTTOCONTO, sottoc); _saldi->put(PCN_SOTTOCONTO, sottoc);
_saldi->put(SLD_FLSCA, "X");
_saldi->read(_isgteq); _saldi->read(_isgteq);
return _saldi->good() &&
if (_saldi->good()) gruppo ==_saldi->get_int(PCN_GRUPPO) &&
{ conto ==_saldi->get_int(PCN_CONTO) &&
ok = _saldi->get_real(SLD_SALDO) != ZERO || sottoc ==_saldi->get_long(PCN_SOTTOCONTO) &&
_saldi->get_real(SLD_PDARE) != ZERO || (_saldi->get_real(SLD_SALDO) != ZERO || _saldi->get_real(SLD_PDARE) != ZERO ||
_saldi->get_real(SLD_PAVERE) != ZERO || _saldi->get_real(SLD_PAVERE) != ZERO || _saldi->get_real(SLD_SALDOFIN) != ZERO ||
_saldi->get_real(SLD_SALDOFIN) != ZERO || _saldi->get_real(SLD_PDAREPRO) != ZERO || _saldi->get_real(SLD_PAVEREPRO) != ZERO);
_saldi->get_real(SLD_PDAREPRO) != ZERO || }
_saldi->get_real(SLD_PAVEREPRO) != ZERO; else
ok &= (gruppo ==_saldi->get_int(PCN_GRUPPO) && {
conto ==_saldi->get_int(PCN_CONTO) && get_relation()->save_status();
sottoc ==_saldi->get_long(PCN_SOTTOCONTO)); pconti.zero() ;
} pconti.put(PCN_GRUPPO, gruppo);
// Se e' un conto controllo se ha dei sottoconti
if (conto != 0)
pconti.put(PCN_CONTO, conto);
TRectype rec1(pconti.curr());
pconti.setkey(1) ;
pconti.read();
pconti.next();
bool prot = (pconti.good() && (pconti.curr() == rec1));
get_relation()->restore_status();
return prot;
} }
if (ok) return TRUE;
} }
get_relation()->save_status(); return FALSE;
pconti.zero() ;
pconti.put(PCN_GRUPPO, gruppo);
// Se e' un conto controllo se ha dei sottoconti
if (conto != 0)
pconti.put(PCN_CONTO, conto);
TRectype rec1(pconti.curr());
pconti.setkey(1) ;
pconti.read();
pconti.next();
const bool prot = (pconti.good() && (pconti.curr() == rec1));
get_relation()->restore_status();
return prot;
} }
void CG0100_application::init_query_mode(TMask& m) void CG0100_application::init_query_mode(TMask& m)

View File

@ -21,7 +21,7 @@ class CGTab_application : public Tab_application
protected: protected:
virtual void init_modify_mode(TMask& m); virtual bool protected_record(TRectype & rec);
virtual bool user_create(); virtual bool user_create();
virtual bool user_destroy(); virtual bool user_destroy();
@ -34,19 +34,19 @@ class CGTab_application : public Tab_application
virtual ~CGTab_application() {} virtual ~CGTab_application() {}
}; };
void CGTab_application::init_modify_mode(TMask& m) bool CGTab_application::protected_record(TRectype &rec)
{ {
if (get_tabname() == "ESC") if (get_tabname() == "ESC")
{ {
// cerca saldo con questo esercizio // cerca saldo con questo esercizio
TString cod(m.get(F_ANNO)); TString cod(rec.get("CODTAB"));
_saldi->zero(); _saldi->zero();
_saldi->put(SLD_ANNOES, cod); _saldi->put(SLD_ANNOES, cod);
// se ce n'e' uno non si puo' cancellare // se ce n'e' uno non si puo' cancellare
if (_saldi->read() == NOERR) if (_saldi->read(_isgteq) == NOERR && cod == rec.get("CODTAB"))
m.disable(DLG_DELREC); return TRUE;
else m.enable(DLG_DELREC); }
} return Tab_application::protected_record(rec);
} }
bool CGTab_application::user_create() bool CGTab_application::user_create()

View File

@ -673,7 +673,8 @@ void TListaMov_application::stampa_errori_rmov()
saldi.put(SLD_ANNOES,anno); saldi.put(SLD_ANNOES,anno);
saldi.put(SLD_GRUPPO,gruppo); saldi.put(SLD_GRUPPO,gruppo);
saldi.put(SLD_CONTO, conto); saldi.put(SLD_CONTO, conto);
saldi.put(SLD_SOTTOCONTO,sottoconto); saldi.put(SLD_SOTTOCONTO,sottoconto);
saldi.put(SLD_FLSCA, "");
if (saldi.read() != NOERR) if (saldi.read() != NOERR)
set_row(_nr++, "@11gCodice gruppo/conto/sottoconto non presente in Saldi p.d.c."); set_row(_nr++, "@11gCodice gruppo/conto/sottoconto non presente in Saldi p.d.c.");
@ -1885,6 +1886,7 @@ bool TListaMov_application::segnala_errori_ogniriga()
saldi.put(SLD_GRUPPO,gruppo); saldi.put(SLD_GRUPPO,gruppo);
saldi.put(SLD_CONTO, conto); saldi.put(SLD_CONTO, conto);
saldi.put(SLD_SOTTOCONTO,sottoconto); saldi.put(SLD_SOTTOCONTO,sottoconto);
saldi.put(SLD_FLSCA, "");
if (saldi.read() != NOERR) if (saldi.read() != NOERR)
{ {

View File

@ -2906,7 +2906,6 @@ void TMastrini_application::calcola_progressivi()
* record */ * record */
TLocalisamfile saldi(LF_SALDI, FALSE); TLocalisamfile saldi(LF_SALDI, FALSE);
real pdaresca,paveresca,pdarescap,paverescap;
real progdare_attuale,progavere_attuale,progdare_prec,progavere_prec; real progdare_attuale,progavere_attuale,progdare_prec,progavere_prec;
real saldo,progredare_eseprec,progreavere_eseprec,pdarep,paverep; real saldo,progredare_eseprec,progreavere_eseprec,pdarep,paverep;
char salini; char salini;
@ -2914,84 +2913,47 @@ void TMastrini_application::calcola_progressivi()
saldo = ZERO; saldo = ZERO;
pdarep = ZERO; pdarep = ZERO;
paverep = ZERO; paverep = ZERO;
pdaresca = ZERO;
paveresca = ZERO;
pdarescap = ZERO;
paverescap = ZERO;
// Ricerca sull'archivio saldi dei record con gruppo,conto,sottoconto // Ricerca sull'archivio saldi dei record con gruppo,conto,sottoconto
// uguali a quelli di rmov per il calcolo dei progressivi precedenti // uguali a quelli di rmov per il calcolo dei progressivi precedenti
TRectype record(saldi.curr());
record.zero();
record.put(SLD_GRUPPO, _gruppo);
record.put(SLD_CONTO, _conto);
record.put(SLD_SOTTOCONTO, _sottoc);
saldi.setkey(2); saldi.setkey(2);
saldi.zero(); saldi.zero();
saldi.put(SLD_GRUPPO, _gruppo); saldi.put(SLD_GRUPPO, _gruppo);
saldi.put(SLD_CONTO, _conto); saldi.put(SLD_CONTO, _conto);
saldi.put(SLD_SOTTOCONTO, _sottoc); saldi.put(SLD_SOTTOCONTO, _sottoc);
for (saldi.read(_isgteq); saldi.good(); saldi.next())
{
if (saldi.curr() != record)
break;
int annoes_saldi = saldi.curr().get_int(SLD_ANNOES); TRectype record(saldi.curr());
for (saldi.read(_isgteq); saldi.good() && saldi.curr() == record; saldi.next())
{
if (!saldi.get_bool(SLD_FLSCA))
{
int annoes_saldi = saldi.curr().get_int(SLD_ANNOES);
//Calcola i progressivi dell'esercizio attuale //Calcola i progressivi dell'esercizio attuale
if (annoes_saldi == _anno_corrente) if (annoes_saldi == _anno_corrente)
{
pdaresca = ZERO;
paveresca = ZERO;
progdare_attuale = saldi.get_real(SLD_PDARE);
progavere_attuale = saldi.get_real(SLD_PAVERE);
saldo = saldi.get_real(SLD_SALDO);
salini = saldi.get(SLD_FLAGSALINI)[0];
_ultima_data_reg = saldi.get_date(SLD_DATAULMOV);
// cerca eventuale record scaricati
saldi.next();
if (!saldi.eof() && saldi.get_bool(SLD_FLSCA) &&
annoes_saldi == saldi.curr().get_int(SLD_ANNOES) &&
saldi.get_int(SLD_GRUPPO) == _gruppo &&
saldi.get_int(SLD_CONTO) == _conto &&
saldi.get_long(SLD_SOTTOCONTO) == _sottoc)
{ {
pdaresca = saldi.get_real(SLD_PDARE); progdare_attuale = saldi.get_real(SLD_PDARE);
paveresca = saldi.get_real(SLD_PAVERE); progavere_attuale = saldi.get_real(SLD_PAVERE);
saldo = saldi.get_real(SLD_SALDO);
salini = saldi.get(SLD_FLAGSALINI)[0];
_ultima_data_reg = saldi.get_date(SLD_DATAULMOV);
} }
saldi.prev();
}
//Calcola i progressivi dell'esercizio precedente //Calcola i progressivi dell'esercizio precedente
if (annoes_saldi == _anno_precedente) if (annoes_saldi == _anno_precedente)
{
pdarescap = ZERO;
pdarep = saldi.get_real(SLD_PDARE);
paverescap = ZERO;
paverep = saldi.get_real(SLD_PAVERE);
// cerca eventuale record scaricati
saldi.next();
if (!saldi.eof() && saldi.get_bool(SLD_FLSCA) &&
annoes_saldi == saldi.curr().get_int(SLD_ANNOES) &&
saldi.get_int(SLD_GRUPPO) == _gruppo &&
saldi.get_int(SLD_CONTO) == _conto &&
saldi.get_long(SLD_SOTTOCONTO) == _sottoc)
{ {
pdarescap = saldi.get_real(SLD_PDARE); pdarep = saldi.get_real(SLD_PDARE);
paverescap = saldi.get_real(SLD_PAVERE); paverep = saldi.get_real(SLD_PAVERE);
// cerca eventuale record scaricati
} }
saldi.prev();
}
// Se il saldo dell'esercizio attuale e' diverso da 0 allora significa che // Se il saldo dell'esercizio attuale e' diverso da 0 allora significa che
// quello corrisponde al saldo finale dell'esercizio precedente. Per ottenere // quello corrisponde al saldo finale dell'esercizio precedente. Per ottenere
// i progressivi dell'esercizio precedente devo a questo punto sommare i // i progressivi dell'esercizio precedente devo a questo punto sommare i
@ -3031,13 +2993,13 @@ void TMastrini_application::calcola_progressivi()
if (saldo> ZERO) if (saldo> ZERO)
{ {
progredare_eseprec = saldo;// + pdarescap + pdarep; progredare_eseprec = saldo;
progdare_prec = saldo; progdare_prec = saldo;
} }
else if (saldo < ZERO) else if (saldo < ZERO)
{ {
saldo = -saldo; saldo = -saldo;
progreavere_eseprec = saldo;// + paverescap + paverep; progreavere_eseprec = saldo;
progavere_prec = saldo; progavere_prec = saldo;
} }
} }
@ -3050,8 +3012,8 @@ void TMastrini_application::calcola_progressivi()
//dei progressivi dell'anno esercizio precedente, e dei progressivi dei //dei progressivi dell'anno esercizio precedente, e dei progressivi dei
//movimenti scaricati dell'esercizio attuale. //movimenti scaricati dell'esercizio attuale.
_progredare = pdaresca + progredare_eseprec + _totale_prima_dare; _progredare = progredare_eseprec + _totale_prima_dare;
_progreavere = paveresca + progreavere_eseprec + _totale_prima_avere; _progreavere = progreavere_eseprec + _totale_prima_avere;
_saldo_progre_prec = _progredare - _progreavere; _saldo_progre_prec = _progredare - _progreavere;
//Calcolo dei progressivi al <ultima data registrazione> //Calcolo dei progressivi al <ultima data registrazione>
@ -3656,7 +3618,7 @@ bool TMastrini_application::user_create()
exp.add("SOTTOCONTO=SOTTOCONTO"); exp.add("SOTTOCONTO=SOTTOCONTO");
_rel->add(LF_RMOV,exp,2,LF_SALDI); _rel->add(LF_RMOV,exp,2,LF_SALDI);
_cur1=add_cursor(new TCursor(_rel,"",2)); _cur1=add_cursor(new TCursor(_rel,"FLSCA=\"F\"",2));
_nditte = new TLocalisamfile (LF_NDITTE); _nditte = new TLocalisamfile (LF_NDITTE);
_unloc = new TLocalisamfile (LF_UNLOC); _unloc = new TLocalisamfile (LF_UNLOC);

View File

@ -555,6 +555,7 @@ bool CG3500_application::CercaConto(int g, int c)
_tmp_saldi->put(SLD_CONTO,c); _tmp_saldi->put(SLD_CONTO,c);
_tmp_saldi->put(SLD_SOTTOCONTO,0l); _tmp_saldi->put(SLD_SOTTOCONTO,0l);
_tmp_saldi->put(SLD_ANNOES,_annoese); _tmp_saldi->put(SLD_ANNOES,_annoese);
_tmp_saldi->put(SLD_FLSCA. "");
if (_tmp_saldi->read() == NOERR) if (_tmp_saldi->read() == NOERR)
{ {
_gconto = _tmp_saldi->get_int(SLD_GRUPPO); _gconto = _tmp_saldi->get_int(SLD_GRUPPO);
@ -583,6 +584,7 @@ bool CG3500_application::CercaGruppo(int g)
_tmp_saldi->put(SLD_CONTO,0); _tmp_saldi->put(SLD_CONTO,0);
_tmp_saldi->put(SLD_SOTTOCONTO,0l); _tmp_saldi->put(SLD_SOTTOCONTO,0l);
_tmp_saldi->put(SLD_ANNOES,_annoese); _tmp_saldi->put(SLD_ANNOES,_annoese);
_tmp_saldi->put(SLD_FLSCA, "");
if (_tmp_saldi->read() == NOERR) if (_tmp_saldi->read() == NOERR)
{ {
_ggruppo = _tmp_saldi->get_int(SLD_GRUPPO); _ggruppo = _tmp_saldi->get_int(SLD_GRUPPO);
@ -752,6 +754,7 @@ TDate CG3500_application::UltimaData(int g, int c, long s)
saldi.zero(); saldi.zero();
if (_annoese != 0) if (_annoese != 0)
saldi.put(SLD_ANNOES, _annoese); saldi.put(SLD_ANNOES, _annoese);
saldi->put(SLD_FLSCA, "");
saldi.put(SLD_GRUPPO,g); saldi.put(SLD_GRUPPO,g);
if (c != 0) if (c != 0)
saldi.put(SLD_CONTO, c); saldi.put(SLD_CONTO, c);

View File

@ -773,6 +773,8 @@ void CG4600_application::costi()
_saldi->put(SLD_CONTO, c); _saldi->put(SLD_CONTO, c);
(*_rec) = _saldi->curr(); (*_rec) = _saldi->curr();
_saldi->put(SLD_FLSCA,"");
j = 0; j = 0;
numrig = 0; numrig = 0;
@ -925,6 +927,8 @@ void CG4600_application::ricavi()
_saldi->put(SLD_CONTO, c); _saldi->put(SLD_CONTO, c);
(*_rec) = _saldi->curr(); (*_rec) = _saldi->curr();
_saldi->put(SLD_FLSCA,"");
j = 0; j = 0;
numrig = 0; numrig = 0;
@ -1170,6 +1174,8 @@ void CG4600_application::chiudi_attivita()
// TRectype rec (_saldi->curr()); // TRectype rec (_saldi->curr());
*_rec = _saldi->curr(); *_rec = _saldi->curr();
_saldi->put(SLD_FLSCA,"");
j = 0; j = 0;
numrig = 0; numrig = 0;
@ -1322,6 +1328,8 @@ void CG4600_application::chiudi_passivita()
_saldi->put(SLD_CONTO, c); _saldi->put(SLD_CONTO, c);
TRectype rec (_saldi->curr()); TRectype rec (_saldi->curr());
_saldi->put(SLD_FLSCA,"");
j = 0; j = 0;
numrig = 0; numrig = 0;
@ -1475,6 +1483,8 @@ void CG4600_application::chiudi_conti_ordine()
// TRectype rec (_saldi->curr()); // TRectype rec (_saldi->curr());
*_rec = _saldi->curr(); *_rec = _saldi->curr();
_saldi->put(SLD_FLSCA,"");
j = 0; j = 0;
numrig = 0; numrig = 0;
@ -1675,6 +1685,8 @@ void CG4600_application::apri_attivita()
_saldi->put(SLD_CONTO, c); _saldi->put(SLD_CONTO, c);
TRectype rec (_saldi->curr()); TRectype rec (_saldi->curr());
_saldi->put(SLD_FLSCA,"");
j = 0; j = 0;
numrig = 0; numrig = 0;
@ -1821,6 +1833,8 @@ void CG4600_application::apri_passivita()
_saldi->put(SLD_CONTO, c); _saldi->put(SLD_CONTO, c);
TRectype rec (_saldi->curr()); TRectype rec (_saldi->curr());
_saldi->put(SLD_FLSCA,"");
j = 0; j = 0;
numrig = 0; numrig = 0;
@ -1967,6 +1981,8 @@ void CG4600_application::apri_conti_ordine()
_saldi->put(SLD_CONTO, c); _saldi->put(SLD_CONTO, c);
TRectype rec (_saldi->curr()); TRectype rec (_saldi->curr());
_saldi->put(SLD_FLSCA,"");
j = 0; j = 0;
numrig = 0; numrig = 0;

View File

@ -41,8 +41,6 @@ bool TRiga_array::add_riga(const TRectype& rec_saldi)
if ( annoes == annoesr ) if ( annoes == annoesr )
{ {
// pdaresca = r.get_real(SLD_PDARESCA);
// paveresca = r.get_real(SLD_PAVERESCA);
flsca = r.get_bool(SLD_FLSCA); flsca = r.get_bool(SLD_FLSCA);
flag = r.get_char(SLD_FLAGSALINI); flag = r.get_char(SLD_FLAGSALINI);
flagfin = r.get_char(SLD_FLAGSALFIN); flagfin = r.get_char(SLD_FLAGSALFIN);
@ -54,10 +52,6 @@ bool TRiga_array::add_riga(const TRectype& rec_saldi)
paverepro = r.get_real(SLD_PAVEREPRO); paverepro = r.get_real(SLD_PAVEREPRO);
udata = r.get(SLD_DATAULMOV); udata = r.get(SLD_DATAULMOV);
unum = r.get_long(SLD_NUMULTMOV); unum = r.get_long(SLD_NUMULTMOV);
// pdarescar = rec_saldi.get_real(SLD_PDARESCA);
// pdarescar += pdaresca;
// paverescar = rec_saldi.get_real(SLD_PAVERESCA);
// paverescar+= paveresca;
flagr = rec_saldi.get_char(SLD_FLAGSALINI); flagr = rec_saldi.get_char(SLD_FLAGSALINI);
flagfinr = rec_saldi.get_char(SLD_FLAGSALFIN); flagfinr = rec_saldi.get_char(SLD_FLAGSALFIN);
pdarer = rec_saldi.get_real(SLD_PDARE); pdarer = rec_saldi.get_real(SLD_PDARE);
@ -85,10 +79,8 @@ bool TRiga_array::add_riga(const TRectype& rec_saldi)
paverepror = rec_saldi.get_real(SLD_PAVEREPRO); paverepror = rec_saldi.get_real(SLD_PAVEREPRO);
paverepror += paverepro; paverepror += paverepro;
found = TRUE; found = TRUE;
r.put(SLD_FLSCA, flsca ? "X" : " "); r.put(SLD_FLSCA, flsca);
r.put(SLD_ANNOES, annoes); r.put(SLD_ANNOES, annoes);
// r.put(SLD_PDARESCA, pdarescar);
// r.put(SLD_PAVERESCA,paverescar);
r.put(SLD_PDARE, pdarer); r.put(SLD_PDARE, pdarer);
r.put(SLD_PAVERE,paverer); r.put(SLD_PAVERE,paverer);
r.put(SLD_FLAGSALINI,flagr); r.put(SLD_FLAGSALINI,flagr);
@ -219,7 +211,7 @@ bool TSaldibrowse_application::fai_filtro()
if (_s != 0l) if (_s != 0l)
to.put(SLD_SOTTOCONTO,_s); to.put(SLD_SOTTOCONTO,_s);
_scarongly = m.get_bool(F_SCARICATO); _scarongly = m.get_bool(F_SCARICATO);
if ( _saldo_gruppo || _saldo_conto ) if ( _saldo_gruppo || _saldo_conto )
_cur->setkey(1); _cur->setkey(1);
@ -227,7 +219,7 @@ bool TSaldibrowse_application::fai_filtro()
if (_saldo_sottoc) if (_saldo_sottoc)
_cur->setkey(2); _cur->setkey(2);
_cur->setregion(from,to); _cur->setregion(from,to);
return TRUE; return TRUE;
} }
@ -428,8 +420,10 @@ void TSaldibrowse_application::compilasheet()
*_cur = 0l; *_cur = 0l;
for (int i = 0; i < items; i++,++(*_cur)) for (int i = 0; i < items; i++,++(*_cur))
{ {
if (_scarongly &&! _cur->curr().get_bool(SLD_FLSCA))
const bool scar = _cur->curr().get_bool(SLD_FLSCA);
if ((_scarongly && !scar) || (!_scarongly && scar))
continue; continue;
anno = _cur->curr().get_int(SLD_ANNOES); anno = _cur->curr().get_int(SLD_ANNOES);
@ -460,28 +454,11 @@ void TSaldibrowse_application::compilasheet()
pdaresca = ZERO; pdaresca = ZERO;
paveresca = ZERO; paveresca = ZERO;
// look for scariche'
if (i < items - 1 && !_scarongly)
{
++(*_cur);
if (_cur->curr().get_bool(SLD_FLSCA) &&
sottoconto == _cur->curr().get_long(SLD_SOTTOCONTO) &&
conto == _cur->curr().get_int(SLD_CONTO) &&
gruppo == _cur->curr().get_int(SLD_GRUPPO) &&
anno == _cur->curr().get_int(SLD_ANNOES))
{
pdaresca = _cur->curr().get_real(SLD_PDARE);
paveresca = _cur->curr().get_real(SLD_PAVERE);
}
else --(*_cur);
}
if (flagsal == 'D') if (flagsal == 'D')
saldo = pdare + saldoini - pavere; saldo = pdare + saldoini - pavere;
else else
saldo = pdare - saldoini - pavere; saldo = pdare - saldoini - pavere;
// saldosca = saldo + pdaresca - paveresca; //in realta' non e' proprio il saldo degli scaricati ma quello complessivo
// .... ma tanto nessuno lo usa....
saldopro = pdarepro - paverepro; saldopro = pdarepro - paverepro;
add_r(i,anno,saldofin,flagfin,saldo,flagsal,saldoini,pdare,pavere,saldo, add_r(i,anno,saldofin,flagfin,saldo,flagsal,saldoini,pdare,pavere,saldo,
@ -525,9 +502,6 @@ void TSaldibrowse_application::compilasheet()
else --j; else --j;
} }
// a che serve ?????
// saldosca = saldo + pdaresca - paveresca;
// come sopra // come sopra
add_r(j,anno,saldofin,flagfin,saldo,flagsal,saldoini,pdare,pavere,saldo,ultima_data, add_r(j,anno,saldofin,flagfin,saldo,flagsal,saldoini,pdare,pavere,saldo,ultima_data,
ultimo_num,pdarepro,paverepro,saldopro, pdaresca, paveresca); ultimo_num,pdarepro,paverepro,saldopro, pdaresca, paveresca);

View File

@ -76,21 +76,24 @@ TSaldi_list::TSaldi_list(int gr, int co, int aec, int aep_par)
cf.put(SLD_CONTO,co); cf.put(SLD_CONTO,co);
for (cf.read(_isgteq);!cf.eof();cf.next()) for (cf.read(_isgteq);!cf.eof();cf.next())
{ {
const int ae = cf.get_int(SLD_ANNOES); if (!cf.get_bool(SLD_FLSCA))
const int g = cf.get_int(SLD_GRUPPO); {
const int c = cf.get_int(SLD_CONTO); const int ae = cf.get_int(SLD_ANNOES);
const long s = cf.get_long(SLD_SOTTOCONTO); const int g = cf.get_int(SLD_GRUPPO);
const int c = cf.get_int(SLD_CONTO);
if (g != gr || c != co) break; const long s = cf.get_long(SLD_SOTTOCONTO);
if (ae != aec && ae != aep) continue;
if (g != gr || c != co) break;
TRectype r(cf.curr()); if (ae != aec && ae != aep) continue;
key.format("%3d%3d%6ld", g, c, s);
TRectype r(cf.curr());
// Se avevo chiesto anche l'es. prec. puo' darsi che l'abbia gia' trovato key.format("%3d%3d%6ld", g, c, s);
force = !aep_par;
add((const char*) key, r, force); // Se avevo chiesto anche l'es. prec. puo' darsi che l'abbia gia' trovato
force = !aep_par;
add((const char*) key, r, force);
}
} }
} }
@ -467,60 +470,21 @@ bool TSaldo::prg_saldo(int annoes, TConto& conto, real& prgdare, real& prgavere,
_saldi.put(SLD_CONTO,conto.conto()); _saldi.put(SLD_CONTO,conto.conto());
_saldi.put(SLD_SOTTOCONTO,conto.sottoconto()); _saldi.put(SLD_SOTTOCONTO,conto.sottoconto());
_saldi.put(SLD_ANNOES,annoes); _saldi.put(SLD_ANNOES,annoes);
_saldi.put(SLD_FLSCA, ""); _saldi.put(SLD_FLSCA, scar);
bool ok = _saldi.read() == NOERR; bool ok = _saldi.read() == NOERR;
if (ok) if (ok)
{ {
char flagsalini = _saldi.get_char(SLD_FLAGSALINI); const char flagsalini = _saldi.get_char(SLD_FLAGSALINI);
real saldoini = _saldi.get_real(SLD_SALDO); const real saldoini = _saldi.get_real(SLD_SALDO);
real pdare = _saldi.get_real(SLD_PDARE); prgdare = _saldi.get_real(SLD_PDARE);
real pavere = _saldi.get_real(SLD_PAVERE); prgavere = _saldi.get_real(SLD_PAVERE);
real pdaresca, paveresca;
// look for scaricated if (flagsalini == 'D')
_saldi.zero(); prgdare += saldoini ;
_saldi.put(SLD_GRUPPO,conto.gruppo());
_saldi.put(SLD_CONTO,conto.conto());
_saldi.put(SLD_SOTTOCONTO,conto.sottoconto());
_saldi.put(SLD_ANNOES,annoes);
_saldi.put(SLD_FLSCA, "X");
if (_saldi.read() == NOERR)
{
pdaresca = _saldi.get_real(SLD_PDARE);
paveresca = _saldi.get_real(SLD_PAVERE);
}
// fill reals with proper kanker
if (scar)
{
if (flagsalini == 'D')
{
prgdare = saldoini + pdaresca;
prgavere = paveresca;
}
else
{
prgdare = pdaresca;
prgavere = saldoini + paveresca;
}
}
else else
{ prgavere += saldoini;
if (flagsalini == 'D')
{
prgdare = saldoini + pdare + pdaresca;
prgavere = pavere + paveresca;
}
else
{
prgdare = pdare + pdaresca;
prgavere = saldoini + pavere + paveresca;
}
}
} }
return ok; return ok;
} }

View File

@ -151,7 +151,7 @@ void TSaldo_agg::clear_saldi(int year)
{ {
if (!saldi.get_bool(SLD_FLSCA)) if (!saldi.get_bool(SLD_FLSCA))
{ {
saldi.put(SLD_FLAGSALINI, "D"); /* saldi.put(SLD_FLAGSALINI, "D");
saldi.zero(SLD_SALDO); saldi.zero(SLD_SALDO);
saldi.zero(SLD_PDAREPRO); saldi.zero(SLD_PDAREPRO);
saldi.zero(SLD_PAVEREPRO); saldi.zero(SLD_PAVEREPRO);
@ -159,10 +159,16 @@ void TSaldo_agg::clear_saldi(int year)
saldi.zero(SLD_PAVERE); saldi.zero(SLD_PAVERE);
saldi.zero(SLD_NUMULTMOV); saldi.zero(SLD_NUMULTMOV);
saldi.zero(SLD_DATAULMOV); saldi.zero(SLD_DATAULMOV);
saldi.rewrite(); */
saldi.remove();
} }
else else
saldi.reread(_unlock); {
saldi.put(SLD_FLSCA, "");
saldi.write();
saldi.put(SLD_FLSCA, "X");
saldi.read(_unlock);
}
} }
saldi.reread(_unlock); saldi.reread(_unlock);
} }