149 lines
4.1 KiB
C++
Executable File
149 lines
4.1 KiB
C++
Executable File
#ifndef __CGLIB_H
|
|
#define __CGLIB_H
|
|
|
|
#ifndef __ISAM_H
|
|
#include <isam.h>
|
|
#endif
|
|
|
|
#include <assoc.h>
|
|
#include "../cg/conto.h"
|
|
#include "../cg/cg2103.h" // per TCausale
|
|
|
|
|
|
class TCaus : public TCausale
|
|
{
|
|
private:
|
|
TRectype _rec;
|
|
|
|
public:
|
|
bool chiusura() const;
|
|
bool apertura() const;
|
|
virtual bool read(const char* cod);
|
|
|
|
TCaus(const char* cod);
|
|
~TCaus() {}
|
|
};
|
|
|
|
class TSaldi_list : public TAssoc_array
|
|
{
|
|
public:
|
|
TSaldi_list (int g, int c, int aec, int aep=0);
|
|
TRectype* saldi() const;
|
|
};
|
|
|
|
enum tipobil { DataLimite=1, UltimaImmissione };
|
|
|
|
class TSaldo
|
|
{
|
|
real _saldo, _saldo_iniziale;
|
|
real _prg_dare, _prg_avere, _prg_daresca, _prg_averesca;
|
|
int _indbil;
|
|
TRectype _saldo_ep;
|
|
int _annoes;
|
|
TDate _inizioEs, _fineEs;
|
|
TString16 _codcaus;
|
|
TDate _datareg;
|
|
TDate _datacomp;
|
|
TString _provv;
|
|
|
|
bool _movimentato;
|
|
bool _significativo;
|
|
bool _rec_presente_ec;
|
|
bool _rec_presente_ep;
|
|
|
|
protected:
|
|
void InFinEs(int);
|
|
void leggi_mov(long numreg); // Leggi testata
|
|
real calcola_saldo_iniziale(int g, int c, long s, int indbil);
|
|
|
|
public:
|
|
|
|
bool movimentato() const { return _movimentato; }
|
|
bool significativo() const { return _significativo; }
|
|
bool esiste_saldo() const { return _rec_presente_ec || _rec_presente_ep;}
|
|
|
|
const int EsePre (const int annocorr); // Determina esercizio precedente
|
|
int annoes () const { return _annoes; }
|
|
void set_annoes (int anno) { _annoes = anno; }
|
|
|
|
bool causale_mov(long, const TDate&, const TDate&, TString&);
|
|
const char* causale_chiusura_es();
|
|
const char* causale_apertura_es();
|
|
|
|
bool ultima_immissione_bilancio(int anno,int g,int c,long s,int indbil);
|
|
bool ultima_immissione_verifica(int anno,int g,int c,long s,int indbil);
|
|
bool data_limite_bilancio(int,int,int,long,const TDate&,const TDate&,int,bool);
|
|
|
|
TRectype& ricerca_progr_prec(int, int, int, long);
|
|
|
|
real saldofin_esprec(int,int,int,long);
|
|
bool prg_attuali(int,TConto&,real&,real&);
|
|
bool prg_mov_eliminati(int,TConto&,real&,real&);
|
|
|
|
const real& saldo() const { return _saldo;}
|
|
const real& saldoini() const { return _saldo_iniziale;}
|
|
const real& prgdare() const { return _prg_dare;}
|
|
const real& prgavere() const { return _prg_avere;}
|
|
bool prg_attuali(int,TConto&,int,real&,real&);
|
|
bool prg_mov_eliminati(int,TConto&,int,real&,real&);
|
|
TSaldo();
|
|
~TSaldo();
|
|
};
|
|
|
|
|
|
|
|
class TTab_conti : public TAssoc_array
|
|
{
|
|
public:
|
|
void aggiorna_conto(const TBill& tc, int anno_es, const real& importo,
|
|
char sezione, bool movap, bool provv, bool somma);
|
|
|
|
TConto* add(const TBill& c, int anno);
|
|
TConto* find(const TBill& c, int anno);
|
|
void remove(const TBill& c, int anno);
|
|
};
|
|
|
|
|
|
class TSaldo_agg : public TObject
|
|
{
|
|
TTab_conti _tab_conti;
|
|
bool _movap; // se e' mov. d'apertura (aggiorno SALDO e FLAGSALINI in
|
|
// saldi)
|
|
bool _provv;
|
|
int _anno_es; // anno esercizio
|
|
TDate _data_ulmov; // data ultimo movimento
|
|
long _num_ulmov; // numero ultimo movimento
|
|
TRectype * _rec; // record corrente sui saldi
|
|
|
|
public:
|
|
void clear_saldi(int year);
|
|
void registra();
|
|
void aggiorna (const TBill& tc, const real& importo, char sezione, bool somma=TRUE);
|
|
void aggiorna (int gruppo, int conto, long sottoconto,
|
|
const real& importo, char sezione, bool somma=TRUE);
|
|
|
|
TConto* find(const TBill& c, int anno) { return _tab_conti.find(c, anno); }
|
|
|
|
void set_anno_es(int anno) { _anno_es = anno; }
|
|
int anno_es() const { return _anno_es; }
|
|
|
|
void set_movap (bool movap) { _movap = movap; }
|
|
bool movap() const { return _movap; }
|
|
|
|
void set_movprovv (bool p) { _provv = p; }
|
|
bool movprovv() const { return _provv; }
|
|
|
|
void set_data_ulmov (const TDate& data) { _data_ulmov = data; }
|
|
const TDate& data_ulmov() const { return _data_ulmov; }
|
|
|
|
void set_num_ulmov (long num) { _num_ulmov = num; }
|
|
long num_ulmov() const { return _num_ulmov; }
|
|
|
|
void reset(); // pulisce l'array dei conti
|
|
TSaldo_agg();
|
|
int items() const { return _tab_conti.items();}
|
|
};
|
|
|
|
#endif
|
|
|