Patch level : 12.0 310 314
Files correlati : Modifica CRPA Aggiunto flag per la contabilità separata.Patch level : 12.0 310 314 Files correlati : Modifica CRPA Separata la contabilità separata dalla contabilità. git-svn-id: svn://10.65.10.50/branches/R_10_00@23446 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
0861f950cc
commit
4f2eea5dc9
@ -627,120 +627,133 @@ bool TSaldo::prg_saldo(int annoes, TConto& conto, real& prgdare, real& prgavere,
|
|||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TSaldo::saldo_cont_sep(int g, int c, long s, const int codes, TDate al,
|
bool TSaldo::saldo_cont_sep(int g, int c, long s, const int codes, TDate al,
|
||||||
int indbil, const char * cont_sep, int provv, bool first)
|
int indbil, const char * cont_sep, int provv, bool chiusura, bool first)
|
||||||
|
|
||||||
{
|
{
|
||||||
_saldo_iniziale = ZERO;
|
_movimentato = false;
|
||||||
_saldo = ZERO;
|
_rec_presente_ep = false;
|
||||||
_prg_dare = ZERO;
|
_rec_presente_ec = false;
|
||||||
_prg_avere = ZERO;
|
_prec = false;
|
||||||
_movimentato = false;
|
real saldo_ini_prec;
|
||||||
_rec_presente_ep = false;
|
|
||||||
_rec_presente_ec = false;
|
TEsercizi_contabili es;
|
||||||
_prec = false;
|
|
||||||
|
_annoes = codes;
|
||||||
TEsercizi_contabili es;
|
const TDate inizio = es[_annoes].inizio();
|
||||||
|
|
||||||
_annoes = codes;
|
TString80 key; key.format("%04d| |%d|%d|%ld", _annoes, g, c, s);
|
||||||
const TDate inizio = es[_annoes].inizio();
|
const TRectype& saldo = cache().get(LF_SALDI, key);
|
||||||
|
|
||||||
TString80 key; key.format("%04d| |%d|%d|%ld", _annoes, g, c, s);
|
|
||||||
const TRectype& saldo = cache().get(LF_SALDI, key);
|
if (!al.ok())
|
||||||
|
al = es[_annoes].fine();
|
||||||
|
|
||||||
if (!al.ok())
|
/* if ((indbil < 3 || indbil == 5) && first)
|
||||||
al = es[_annoes].fine();
|
{
|
||||||
|
const int codesprec = es.date2prevesc(al);
|
||||||
/* if (_prec && first)
|
|
||||||
{
|
saldo_cont_sep(g, c, s, codesprec, es[codesprec].fine(), indbil, cont_sep, provv, chiusura, false);
|
||||||
const int codesprec = es.date2prevesc(al);
|
saldo_ini_prec = _saldo;
|
||||||
|
} */
|
||||||
_saldo_iniziale = saldo_cont_sep(g, c, s, codesprec, es[codesprec].fine(), indbil, cont_sep, provv, false);
|
_saldo_iniziale = ZERO;
|
||||||
} */
|
_saldo = ZERO;
|
||||||
|
_prg_dare = ZERO;
|
||||||
TRelation relrmov(LF_RMOV);
|
_prg_avere = ZERO;
|
||||||
|
|
||||||
TRectype& rmov = relrmov.curr();
|
TRelation relrmov(LF_RMOV);
|
||||||
|
|
||||||
rmov.put(RMV_GRUPPO,g);
|
TRectype& rmov = relrmov.curr();
|
||||||
rmov.put(RMV_CONTO,c);
|
|
||||||
rmov.put(RMV_SOTTOCONTO,s);
|
rmov.put(RMV_GRUPPO,g);
|
||||||
|
rmov.put(RMV_CONTO,c);
|
||||||
TCursor cur(&relrmov, "", 2, &rmov, &rmov);
|
rmov.put(RMV_SOTTOCONTO,s);
|
||||||
const TRecnotype items = cur.items();
|
|
||||||
|
TCursor cur(&relrmov, "", 2, &rmov, &rmov);
|
||||||
if (items > 0)
|
const TRecnotype items = cur.items();
|
||||||
{
|
|
||||||
cur.freeze();
|
if (items > 0)
|
||||||
|
{
|
||||||
TProgind* p = NULL;
|
cur.freeze();
|
||||||
if (items > 100) // E' proprio utile la progind?
|
|
||||||
{
|
TProgind* p = NULL;
|
||||||
TString80 prompt;
|
if (items > 100) // E' proprio utile la progind?
|
||||||
prompt.format(FR("Calcolo saldo del conto %d.%d.%ld"), g, c, s);
|
{
|
||||||
p = new TProgind(items, prompt, false);
|
TString80 prompt;
|
||||||
}
|
prompt.format(FR("Calcolo saldo del conto %d.%d.%ld"), g, c, s);
|
||||||
|
p = new TProgind(items, prompt, false);
|
||||||
for (cur = 0L; cur.pos() < items; ++cur)
|
}
|
||||||
{
|
|
||||||
if (p != NULL)
|
for (cur = 0L; cur.pos() < items; ++cur)
|
||||||
p->addstatus(1L);
|
{
|
||||||
|
if (p != NULL)
|
||||||
const long num_reg = rmov.get_long(RMV_NUMREG);
|
p->addstatus(1L);
|
||||||
const real importo = rmov.get_real(RMV_IMPORTO);
|
|
||||||
|
const long num_reg = rmov.get_long(RMV_NUMREG);
|
||||||
if (!importo.is_zero())
|
const real importo = rmov.get_real(RMV_IMPORTO);
|
||||||
{
|
|
||||||
const char sezione = rmov.get_char(RMV_SEZIONE);
|
if (!importo.is_zero())
|
||||||
const TRectype& mov = cache().get(LF_MOV, num_reg);
|
{
|
||||||
const bool ok = !mov.empty();
|
const char sezione = rmov.get_char(RMV_SEZIONE);
|
||||||
|
const TRectype& mov = cache().get(LF_MOV, num_reg);
|
||||||
if (ok)
|
const bool ok = !mov.empty();
|
||||||
{
|
|
||||||
if (mov.get(MOV_CONTSEP) == cont_sep)
|
if (ok)
|
||||||
{
|
{
|
||||||
_codcaus = mov.get(MOV_CODCAUS);
|
if (mov.get(MOV_CONTSEP) == cont_sep)
|
||||||
_datareg = mov.get(MOV_DATAREG);
|
{
|
||||||
_provv = mov.get(MOV_PROVVIS);
|
_codcaus = mov.get(MOV_CODCAUS);
|
||||||
_datacomp = mov.get(MOV_DATACOMP);
|
_datareg = mov.get(MOV_DATAREG);
|
||||||
const TString& movap = _causali_apertura.decode(_codcaus);
|
_provv = mov.get(MOV_PROVVIS);
|
||||||
|
_datacomp = mov.get(MOV_DATACOMP);
|
||||||
if (provv > 1 || _provv.empty())
|
const TString& movap = _causali_apertura.decode(_codcaus);
|
||||||
{
|
|
||||||
if (_datacomp >= inizio && _datacomp <= al)
|
if (provv > 1 || _provv.empty())
|
||||||
{
|
{
|
||||||
if (movap.blank())
|
if (_datacomp >= inizio && _datacomp <= al)
|
||||||
{
|
{
|
||||||
_movimentato = true;
|
if (movap.blank())
|
||||||
if (sezione == 'D')
|
{
|
||||||
_prg_dare += importo;
|
_movimentato = true;
|
||||||
else
|
if (sezione == 'D')
|
||||||
_prg_avere += importo;
|
_prg_dare += importo;
|
||||||
}
|
else
|
||||||
else
|
_prg_avere += importo;
|
||||||
if (movap == "A")
|
}
|
||||||
{
|
else
|
||||||
_movimentato = true;
|
if (movap == "A")
|
||||||
if (sezione == 'D')
|
{
|
||||||
_saldo_iniziale += importo;
|
_movimentato = true;
|
||||||
else
|
if (sezione == 'D')
|
||||||
_saldo_iniziale -= importo;
|
_saldo_iniziale += importo;
|
||||||
}
|
else
|
||||||
}
|
_saldo_iniziale -= importo;
|
||||||
}
|
}
|
||||||
}
|
else
|
||||||
}
|
if (chiusura && movap == "C")
|
||||||
else
|
{
|
||||||
NFCHECK("Testata assente: %ld", num_reg);
|
_movimentato = true;
|
||||||
}
|
if (sezione == 'D')
|
||||||
}
|
_prg_dare += importo;
|
||||||
if (p != NULL)
|
else
|
||||||
delete p;
|
_prg_avere += importo;
|
||||||
}
|
}
|
||||||
_saldo = _saldo_iniziale + _prg_dare - _prg_avere;
|
}
|
||||||
return _movimentato;
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
NFCHECK("Testata assente: %ld", num_reg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (p != NULL)
|
||||||
|
delete p;
|
||||||
|
}
|
||||||
|
// if ((indbil < 3 || indbil == 5) && first && _saldo_iniziale == ZERO)
|
||||||
|
// _saldo_iniziale = saldo_ini_prec;
|
||||||
|
_saldo = _saldo_iniziale + _prg_dare - _prg_avere;
|
||||||
|
return _movimentato;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
@ -119,7 +119,7 @@ public:
|
|||||||
bool ultima_immissione_verifica(int annoes, int g,int c,long s,int indbil,int prov);
|
bool ultima_immissione_verifica(int annoes, int g,int c,long s,int indbil,int prov);
|
||||||
bool data_limite_bilancio(int annoes,int g,int c,long s,const TDate& data_inf,const TDate& data_suo,int indbil,int stp_prov, const char* filter = NULL);
|
bool data_limite_bilancio(int annoes,int g,int c,long s,const TDate& data_inf,const TDate& data_suo,int indbil,int stp_prov, const char* filter = NULL);
|
||||||
const real& saldo_periodo(int g, int c, long s, const TDate& dal, const TDate& al, int indbil, bool provv);
|
const real& saldo_periodo(int g, int c, long s, const TDate& dal, const TDate& al, int indbil, bool provv);
|
||||||
bool saldo_cont_sep(int g, int c, long s, const int codes, TDate al, int indbil, const char * cont_sep, int provv, bool first = true);
|
bool saldo_cont_sep(int g, int c, long s, const int codes, TDate al, int indbil, const char * cont_sep, int provv, bool chiusura = false, bool first = true);
|
||||||
bool ricerca_progr_prec(int, int, int, long);
|
bool ricerca_progr_prec(int, int, int, long);
|
||||||
|
|
||||||
real saldofin_esprec(int,int,int,long,bool saldo_chiusura = FALSE, bool provvisori = FALSE);
|
real saldofin_esprec(int,int,int,long,bool saldo_chiusura = FALSE, bool provvisori = FALSE);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user