Patch level : 2..0 452
Files correlati : ab0.exe Ricompilazione Demo : [ ] Commento : Aggiunto metodo valore_al all' oggetto saldo fare la patch man mano che ci sono spedizioni git-svn-id: svn://10.65.10.50/trunk@11008 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
6126e3356e
commit
391a5e9a50
103
cg/cglib02.cpp
103
cg/cglib02.cpp
@ -5,6 +5,7 @@
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#include <diction.h>
|
||||
#include <progind.h>
|
||||
#include <relation.h>
|
||||
|
||||
#include <tabutil.h>
|
||||
@ -463,6 +464,108 @@ bool TSaldo::ultima_immissione_bilancio(int annoes,int g,int c,long s,int indbil
|
||||
return esito;
|
||||
}
|
||||
|
||||
real & TSaldo::valore_al(int g, int c, long s, const TDate& dal, const TDate& al,
|
||||
int indbil, bool provv)
|
||||
|
||||
{
|
||||
_saldo_iniziale = ZERO;
|
||||
_saldo = ZERO;
|
||||
_prg_dare = ZERO;
|
||||
_prg_avere = ZERO;
|
||||
_movimentato = FALSE;
|
||||
_rec_presente_ep = FALSE;
|
||||
_rec_presente_ec = FALSE;
|
||||
_prec = FALSE;
|
||||
|
||||
TEsercizi_contabili es;
|
||||
const int codes = es.date2esc(dal);
|
||||
|
||||
_annoes = codes;
|
||||
TString16 key;
|
||||
|
||||
key.format("%d||%d|%d|%ld", _annoes, g, c, s);
|
||||
const TRectype & saldo = cache().get(LF_SALDI, key);
|
||||
|
||||
_saldo_iniziale = saldo.get_real(SLD_SALDO);
|
||||
_prec = _saldo_iniziale == ZERO;
|
||||
|
||||
if (_prec)
|
||||
{
|
||||
_prec = TRUE;
|
||||
_saldo_iniziale = saldofin_esprec(codes,g,c,s);
|
||||
}
|
||||
else
|
||||
if (saldo.get_char(SLD_FLAGSALINI) == 'A')
|
||||
_saldo_iniziale = -_saldo_iniziale;
|
||||
|
||||
|
||||
TRelation relrmov(LF_RMOV);
|
||||
TRectype & rmov = relrmov.curr();
|
||||
|
||||
rmov.put(RMV_GRUPPO,g);
|
||||
rmov.put(RMV_CONTO,c);
|
||||
rmov.put(RMV_SOTTOCONTO,s);
|
||||
|
||||
TCursor cur(&relrmov, "", 2, &rmov, &rmov);
|
||||
const TRecnotype items = cur.items();
|
||||
|
||||
cur.freeze();
|
||||
|
||||
TString prompt(30);
|
||||
|
||||
prompt.format(FR("Calcolo saldo conto %d-%d_%ld"), g, c, s);
|
||||
|
||||
TProgind p(items, prompt, FALSE);
|
||||
|
||||
for (cur = 0L; cur.pos() < items && !p.iscancelled(); ++cur)
|
||||
{
|
||||
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 real importo = rmov.get_real(RMV_IMPORTO);
|
||||
|
||||
if ((_datacomp >= dal && _datacomp <= al) &&
|
||||
(provv || _provv.empty()) &&
|
||||
importo != ZERO)
|
||||
{
|
||||
// "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);
|
||||
if (movap == "A" || movap == "C")
|
||||
continue;
|
||||
}
|
||||
|
||||
_movimentato = TRUE;
|
||||
|
||||
if (sezione == 'D')
|
||||
_prg_dare += importo;
|
||||
else
|
||||
_prg_avere += importo;
|
||||
}
|
||||
else
|
||||
if (_datacomp < dal)
|
||||
{
|
||||
if (codes == es.date2esc(_datacomp))
|
||||
{
|
||||
if (sezione == 'D')
|
||||
_saldo_iniziale += importo;
|
||||
else
|
||||
_saldo_iniziale -= importo;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
_saldo = _saldo_iniziale + _prg_dare - _prg_avere;
|
||||
return _saldo;
|
||||
}
|
||||
|
||||
bool TSaldo::ricerca_progr_prec (int annoesprec, int g, int c, long s)
|
||||
{
|
||||
if (annoesprec == 0)
|
||||
|
@ -87,11 +87,13 @@ class TSaldo : public TObject
|
||||
TRecord_cache _movimenti;
|
||||
|
||||
protected:
|
||||
void InFinEs(int);
|
||||
void InFinEs(int);
|
||||
bool leggi_mov(long numreg); // Leggi testata
|
||||
real calcola_saldo_iniziale(int g, int c, long s, int indbil);
|
||||
bool prg_saldo(int, TConto&, real&, real&, bool);
|
||||
|
||||
const real & iniziale() const { return _saldo_iniziale;}
|
||||
void set_iniziale(const real & val) { _saldo_iniziale = val; }
|
||||
|
||||
public:
|
||||
|
||||
bool movimentato() const { return _movimentato; }
|
||||
@ -109,7 +111,7 @@ public:
|
||||
bool ultima_immissione_bilancio(int anno,int g,int c,long s,int indbil,int prov,bool saldo_chiusura = TRUE);
|
||||
bool ultima_immissione_verifica(int anno,int g,int c,long s,int indbil,int prov);
|
||||
bool data_limite_bilancio(int,int,int,long,const TDate&,const TDate&,int,int, const char* = NULL);
|
||||
|
||||
real & valore_al(int g,int c,long s,const TDate& dal,const TDate& al,int indbil, bool provv);
|
||||
|
||||
bool ricerca_progr_prec(int, int, int, long);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user