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)
{
if (_pcon_com ) return TRUE;
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))
if (!_pcon_com )
{
_saldi->zero();
_saldi->put(PCN_GRUPPO, gruppo);
_saldi->put(PCN_CONTO, conto);
_saldi->put(PCN_SOTTOCONTO, sottoc);
_saldi->read(_isgteq);
bool ok = FALSE;
if (_saldi->good())
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)
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))
{
// look for scaricato
_saldi->zero();
_saldi->put(PCN_GRUPPO, gruppo);
_saldi->put(PCN_CONTO, conto);
_saldi->put(PCN_SOTTOCONTO, sottoc);
_saldi->put(SLD_FLSCA, "X");
_saldi->read(_isgteq);
if (_saldi->good())
{
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;
ok &= (gruppo ==_saldi->get_int(PCN_GRUPPO) &&
conto ==_saldi->get_int(PCN_CONTO) &&
sottoc ==_saldi->get_long(PCN_SOTTOCONTO));
}
return _saldi->good() &&
gruppo ==_saldi->get_int(PCN_GRUPPO) &&
conto ==_saldi->get_int(PCN_CONTO) &&
sottoc ==_saldi->get_long(PCN_SOTTOCONTO) &&
(_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);
}
else
{
get_relation()->save_status();
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();
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;
return FALSE;
}
void CG0100_application::init_query_mode(TMask& m)

View File

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

View File

@ -2906,7 +2906,6 @@ void TMastrini_application::calcola_progressivi()
* record */
TLocalisamfile saldi(LF_SALDI, FALSE);
real pdaresca,paveresca,pdarescap,paverescap;
real progdare_attuale,progavere_attuale,progdare_prec,progavere_prec;
real saldo,progredare_eseprec,progreavere_eseprec,pdarep,paverep;
char salini;
@ -2914,84 +2913,47 @@ void TMastrini_application::calcola_progressivi()
saldo = ZERO;
pdarep = ZERO;
paverep = ZERO;
pdaresca = ZERO;
paveresca = ZERO;
pdarescap = ZERO;
paverescap = ZERO;
// Ricerca sull'archivio saldi dei record con gruppo,conto,sottoconto
// 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.zero();
saldi.put(SLD_GRUPPO, _gruppo);
saldi.put(SLD_CONTO, _conto);
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
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)
if (annoes_saldi == _anno_corrente)
{
pdaresca = saldi.get_real(SLD_PDARE);
paveresca = saldi.get_real(SLD_PAVERE);
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);
}
saldi.prev();
}
//Calcola i progressivi dell'esercizio 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)
if (annoes_saldi == _anno_precedente)
{
pdarescap = saldi.get_real(SLD_PDARE);
paverescap = saldi.get_real(SLD_PAVERE);
pdarep = saldi.get_real(SLD_PDARE);
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
// quello corrisponde al saldo finale dell'esercizio precedente. Per ottenere
// i progressivi dell'esercizio precedente devo a questo punto sommare i
@ -3031,13 +2993,13 @@ void TMastrini_application::calcola_progressivi()
if (saldo> ZERO)
{
progredare_eseprec = saldo;// + pdarescap + pdarep;
progredare_eseprec = saldo;
progdare_prec = saldo;
}
else if (saldo < ZERO)
{
saldo = -saldo;
progreavere_eseprec = saldo;// + paverescap + paverep;
progreavere_eseprec = saldo;
progavere_prec = saldo;
}
}
@ -3050,8 +3012,8 @@ void TMastrini_application::calcola_progressivi()
//dei progressivi dell'anno esercizio precedente, e dei progressivi dei
//movimenti scaricati dell'esercizio attuale.
_progredare = pdaresca + progredare_eseprec + _totale_prima_dare;
_progreavere = paveresca + progreavere_eseprec + _totale_prima_avere;
_progredare = progredare_eseprec + _totale_prima_dare;
_progreavere = progreavere_eseprec + _totale_prima_avere;
_saldo_progre_prec = _progredare - _progreavere;
//Calcolo dei progressivi al <ultima data registrazione>
@ -3656,7 +3618,7 @@ bool TMastrini_application::user_create()
exp.add("SOTTOCONTO=SOTTOCONTO");
_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);
_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_SOTTOCONTO,0l);
_tmp_saldi->put(SLD_ANNOES,_annoese);
_tmp_saldi->put(SLD_FLSCA. "");
if (_tmp_saldi->read() == NOERR)
{
_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_SOTTOCONTO,0l);
_tmp_saldi->put(SLD_ANNOES,_annoese);
_tmp_saldi->put(SLD_FLSCA, "");
if (_tmp_saldi->read() == NOERR)
{
_ggruppo = _tmp_saldi->get_int(SLD_GRUPPO);
@ -752,6 +754,7 @@ TDate CG3500_application::UltimaData(int g, int c, long s)
saldi.zero();
if (_annoese != 0)
saldi.put(SLD_ANNOES, _annoese);
saldi->put(SLD_FLSCA, "");
saldi.put(SLD_GRUPPO,g);
if (c != 0)
saldi.put(SLD_CONTO, c);

View File

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

View File

@ -41,8 +41,6 @@ bool TRiga_array::add_riga(const TRectype& rec_saldi)
if ( annoes == annoesr )
{
// pdaresca = r.get_real(SLD_PDARESCA);
// paveresca = r.get_real(SLD_PAVERESCA);
flsca = r.get_bool(SLD_FLSCA);
flag = r.get_char(SLD_FLAGSALINI);
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);
udata = r.get(SLD_DATAULMOV);
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);
flagfinr = rec_saldi.get_char(SLD_FLAGSALFIN);
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 += paverepro;
found = TRUE;
r.put(SLD_FLSCA, flsca ? "X" : " ");
r.put(SLD_FLSCA, flsca);
r.put(SLD_ANNOES, annoes);
// r.put(SLD_PDARESCA, pdarescar);
// r.put(SLD_PAVERESCA,paverescar);
r.put(SLD_PDARE, pdarer);
r.put(SLD_PAVERE,paverer);
r.put(SLD_FLAGSALINI,flagr);
@ -219,7 +211,7 @@ bool TSaldibrowse_application::fai_filtro()
if (_s != 0l)
to.put(SLD_SOTTOCONTO,_s);
_scarongly = m.get_bool(F_SCARICATO);
_scarongly = m.get_bool(F_SCARICATO);
if ( _saldo_gruppo || _saldo_conto )
_cur->setkey(1);
@ -227,7 +219,7 @@ bool TSaldibrowse_application::fai_filtro()
if (_saldo_sottoc)
_cur->setkey(2);
_cur->setregion(from,to);
_cur->setregion(from,to);
return TRUE;
}
@ -428,8 +420,10 @@ void TSaldibrowse_application::compilasheet()
*_cur = 0l;
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;
anno = _cur->curr().get_int(SLD_ANNOES);
@ -460,28 +454,11 @@ void TSaldibrowse_application::compilasheet()
pdaresca = 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')
saldo = pdare + saldoini - pavere;
else
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;
add_r(i,anno,saldofin,flagfin,saldo,flagsal,saldoini,pdare,pavere,saldo,
@ -525,9 +502,6 @@ void TSaldibrowse_application::compilasheet()
else --j;
}
// a che serve ?????
// saldosca = saldo + pdaresca - paveresca;
// come sopra
add_r(j,anno,saldofin,flagfin,saldo,flagsal,saldoini,pdare,pavere,saldo,ultima_data,
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);
for (cf.read(_isgteq);!cf.eof();cf.next())
{
const int ae = cf.get_int(SLD_ANNOES);
const int g = cf.get_int(SLD_GRUPPO);
const int c = cf.get_int(SLD_CONTO);
const long s = cf.get_long(SLD_SOTTOCONTO);
if (g != gr || c != co) break;
if (ae != aec && ae != aep) continue;
TRectype r(cf.curr());
key.format("%3d%3d%6ld", g, c, s);
// Se avevo chiesto anche l'es. prec. puo' darsi che l'abbia gia' trovato
force = !aep_par;
add((const char*) key, r, force);
{
if (!cf.get_bool(SLD_FLSCA))
{
const int ae = cf.get_int(SLD_ANNOES);
const int g = cf.get_int(SLD_GRUPPO);
const int c = cf.get_int(SLD_CONTO);
const long s = cf.get_long(SLD_SOTTOCONTO);
if (g != gr || c != co) break;
if (ae != aec && ae != aep) continue;
TRectype r(cf.curr());
key.format("%3d%3d%6ld", g, c, s);
// 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_SOTTOCONTO,conto.sottoconto());
_saldi.put(SLD_ANNOES,annoes);
_saldi.put(SLD_FLSCA, "");
_saldi.put(SLD_FLSCA, scar);
bool ok = _saldi.read() == NOERR;
if (ok)
{
char flagsalini = _saldi.get_char(SLD_FLAGSALINI);
real saldoini = _saldi.get_real(SLD_SALDO);
real pdare = _saldi.get_real(SLD_PDARE);
real pavere = _saldi.get_real(SLD_PAVERE);
real pdaresca, paveresca;
const char flagsalini = _saldi.get_char(SLD_FLAGSALINI);
const real saldoini = _saldi.get_real(SLD_SALDO);
prgdare = _saldi.get_real(SLD_PDARE);
prgavere = _saldi.get_real(SLD_PAVERE);
// look for scaricated
_saldi.zero();
_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;
}
}
if (flagsalini == 'D')
prgdare += saldoini ;
else
{
if (flagsalini == 'D')
{
prgdare = saldoini + pdare + pdaresca;
prgavere = pavere + paveresca;
}
else
{
prgdare = pdare + pdaresca;
prgavere = saldoini + pavere + paveresca;
}
}
prgavere += saldoini;
}
return ok;
}

View File

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