campo-sirio/cg/conto.h
guy 8d5d6540be cg0600.cpp Tolto file principale _saldi e usato uno temporaneo
cg2.url       Aggiunto menu colori
cg2100.cpp    Aggiunta gestione menu colori
cg2100b.uml   Accorciata colonna tipo
cg2100c.uml   Accorciata colonna tipo
cg2102.cpp    Gestione righe colorate
cg2102.h      Aggiunte funzioni gestione righe colorate
cg3.cpp       Aggiunti mastrini a video
cg3.url       Aggiunto menu dei mastrini a video
conto.cpp     MEGAFIGATA, velocizzato TBill
conto.h       Sembra che funzioni bene!


git-svn-id: svn://10.65.10.50/trunk@3892 c028cbd2-c16b-5b4b-a496-9718f37d4682
1996-11-12 15:18:10 +00:00

134 lines
3.7 KiB
C++
Executable File

#ifndef __CONTO_H
#define __CONTO_H
#ifndef __REAL_H
#include <real.h>
#endif
#ifndef __ISAM_H
class TRectype;
#endif
#ifndef __MASK_H
class TMask;
#endif
class TBill : public TSortable
{
char _tipo; // ' ' = Conto, 'C' = Cliente, 'F' = 'Fornitore'
int _gruppo, _conto;
long _sottoconto; // Sottoconto, codice cliente o fornitore
TString* _descrizione; // Vuota fino alla chiamata di describe
int _tipo_cr; // Tipo costo/ricavo
bool _sospeso;
char _sezione;
protected:
virtual int compare(const TSortable& s) const;
virtual const char* class_name() const { return "Conto"; }
void set_description(const char* d);
const TBill& copy(const TBill& b);
const char* field_name(int n, bool contro) const;
public: // TObject
virtual bool ok() const; // Gruppo, Conto e Sottoconto non nulli
public:
TBill(int g = 0, int c = 0, long s = 0L, char t = ' ', const char* d = NULL, int r = -1)
: _tipo(t), _gruppo(g), _conto(c), _sottoconto(s), _descrizione(NULL),
_sezione(' '), _sospeso(FALSE)
{ set(g,c,s,t,d,r);}
TBill(TToken_string& tgcsd, int from, int mode = 0)
: _descrizione(NULL)
{ get(tgcsd, from, mode); }
TBill(const TRectype& rec, bool contro = FALSE)
: _descrizione(NULL)
{ get(rec, contro); }
TBill(const TBill& b)
: _descrizione(NULL)
{ copy(b); }
virtual ~TBill();
const TBill& set(int g = 0, int c = 0, long s = 0L, char t = ' ',
const char* d = NULL, int r = -1);
const TBill& get(TToken_string& ts, int from, int mode = 0);
const TBill& add_to(TToken_string& ts, int from, int mode = 0);
const TBill& operator=(const TBill& b) { return copy(b); }
bool empty() const { return _gruppo==0 && _conto==0 && _sottoconto == 0; }
char tipo() const { return _tipo; }
int gruppo() const { return _gruppo; }
int conto() const { return _conto; }
long sottoconto() const { return _sottoconto; }
long codclifo() const { return _sottoconto; }
long& codclifo() { return _sottoconto; }
bool find();
const TString& descrizione() const;
int tipo_cr() const;
void tipo_cr(int tcr) { _tipo_cr = tcr; }
int tipo_att();
bool read(TRectype& r);
bool sospeso() const { return _sospeso; } // _sospeso e' letto nella read()
char sezione() const { return _sezione; }
void put(TRectype& r, bool contro = FALSE) const;
bool get(const TRectype& r, bool contro = FALSE);
void set(TMask& m, short g, short c, short s, short t = 0, short d = 0) const;
void get(const TMask& m, short g, short c, short s, short t = 0, short d = 0);
const char* string(int mode = 0) const;
};
enum TIndbil { ib_null, ib_attivita, ib_passivita, ib_costi, ib_ricavi, ib_conti_ordine };
class TConto : public TBill
{
real _dare, _avere, _darepro, _averepro, _saldofin, _saldo;
TImporto _saldo_finale;
public:
TConto(int g = 0, int c = 0, long s = 0L, char t = ' ', const char* d = NULL)
: TBill(g, c, s, t, d) {}
TConto (TToken_string& tgcsd, int from, int mode = 0)
: TBill(tgcsd, from, mode) {}
real& dare() { return _dare; }
const real& dare() const { return _dare; }
real& avere() { return _avere; }
const real& avere() const { return _avere; }
real& darepro() { return _darepro; }
const real& darepro() const { return _darepro; }
real& averepro() { return _averepro; }
const real& averepro() const { return _averepro; }
real& saldo() { return _saldo; }
const real& saldo() const { return _saldo; }
real& saldofin() { return _saldofin; }
const real& saldofin() const { return _saldofin; }
TImporto& saldo_finale() { return _saldo_finale; }
const TImporto& saldo_finale() const { return _saldo_finale; }
};
#endif