campo-sirio/cg/cglib.h
guy 5f655ece6d Leggere modifiche al programma clienti (eliminazione di variabili static)
Correzione errori cancellazione movimenti provvisori (che pero' non funzionano
ancora)
Aggiunta classe TBill da cui deriva TConto


git-svn-id: svn://10.65.10.50/trunk@278 c028cbd2-c16b-5b4b-a496-9718f37d4682
1994-09-22 16:46:40 +00:00

126 lines
4.0 KiB
C++
Executable File

#ifndef __CGLIB_H
#define __CGLIB_H
#ifndef __ISAM_H
#include <isam.h>
#endif
#ifndef __ASSOC_H
#include <assoc.h>
#endif
#include "conto.h"
TLocalisamfile * get_descr_cf(TLocalisamfile * pconti,
TLocalisamfile * clifo , int g, int c, long s);
class TClifo_list : public TArray
{
public:
TClifo_list(int g, int c, char tipocf);
TRectype& clifo(int i)const { return(TRectype&)this->operator[](i); }
};
//typedef enum {scalare = 1, verifica} bilancio;
class Saldo
{
real _saldo, _saldo_iniziale, _prg_dare, _prg_avere;
int _indbil;
TRectype* _rec;
//bilancio _bilancio;
int _annoes;
TDate _inizioEs, _fineEs;
TString16 _codcaus;
TDate _datareg;
TDate _datacomp;
TString _provv;
protected:
void InFinEs(int);
public:
int annoes () const { return _annoes; }
//bilancio bil () const { return _bilancio; }
void set_annoes (int anno) { _annoes = anno; }
//void set_bil (bilancio bil) { _bilancio = bil; }
void leggi_mov(long);
bool causale_mov(long, const TDate&, const TDate&, TString&);
const char* causale_chiusura_es();
const char* causale_apertura_es();
bool calcola_data_limite(int,int,int,long,const TDate&,const TDate&,int,bool,
const TDate&,const TDate&,const TDate&,bool);
bool calcola_ultima_immissione(int, int, int, int, long, int);
bool ultima_immissione_bilancio(int anno,int g,int c,long s,int indbil);
bool data_limite_bilancio(int,int,int,long,const TDate&,const TDate&,int,bool);
real calcola_saldo_iniziale(int, int, int, long, int);
bool calcola_clifo(int, int, int, int, int);
TRectype& ricerca_progr_prec(int, int, int, long);
real saldofin_esprec(int,int,int,long);
real saldo() {return _saldo;}
real saldoini() {return _saldo_iniziale;}
real prgdare() {return _prg_dare;}
real prgavere() {return _prg_avere;}
bool calcola(int,int,int,int,long,const TDate&,const TDate&,int,bool,
const TDate&,const TDate&,const TDate&,bool);
bool prg_attuali(int,TConto&,int,real&,real&);
bool prg_mov_eliminati(int,TConto&,int,real&,real&);
Saldo();
~Saldo();
};
class TTab_conti : public TAssoc_array
{
void do_agg(TConto* tc, int anno_es, const real& importo, char sezione,
bool movap, bool provv, bool somma, const char* key);
public:
void aggiorna_conto(const TConto& tc, int anno_es, const real& importo,
char sezione, bool movap, bool provv, bool somma);
void aggiorna_conto (int gruppo, int conto, long sottoconto, int anno_es,
const real& importo, char sezione, bool movap,
bool provv, bool somma);
};
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
TConto& tconti() { return *(TConto*)_tab_conti.get(); }
public:
void clear_saldi(int year);
void registra();
void aggiorna (const TConto& 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);
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