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 <diction.h>
|
||||||
|
#include <progind.h>
|
||||||
#include <relation.h>
|
#include <relation.h>
|
||||||
|
|
||||||
#include <tabutil.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;
|
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)
|
bool TSaldo::ricerca_progr_prec (int annoesprec, int g, int c, long s)
|
||||||
{
|
{
|
||||||
if (annoesprec == 0)
|
if (annoesprec == 0)
|
||||||
|
@ -87,11 +87,13 @@ class TSaldo : public TObject
|
|||||||
TRecord_cache _movimenti;
|
TRecord_cache _movimenti;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void InFinEs(int);
|
void InFinEs(int);
|
||||||
bool leggi_mov(long numreg); // Leggi testata
|
bool leggi_mov(long numreg); // Leggi testata
|
||||||
real calcola_saldo_iniziale(int g, int c, long s, int indbil);
|
real calcola_saldo_iniziale(int g, int c, long s, int indbil);
|
||||||
bool prg_saldo(int, TConto&, real&, real&, bool);
|
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:
|
public:
|
||||||
|
|
||||||
bool movimentato() const { return _movimentato; }
|
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_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 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);
|
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);
|
bool ricerca_progr_prec(int, int, int, long);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user