#ifndef __CG2103_H #define __CG2103_H #ifndef __ISAM_H #include #endif #ifndef __CONTO_H #include "conto.h" #endif enum TipoIVA { iva_errata = -1, nessuna_iva = 0, iva_vendite = 1, iva_acquisti = 2, iva_generica = 9 }; const char* iva2name(TipoIVA i); class TRegistro : public TObject { bool read_att(); protected: enum TipoRegistro { libro_giornale = 5 }; TRectype _rec, _att; public: bool read(const char* code, int year); TRegistro& operator =(const TRegistro& r); virtual bool ok() const { return !_rec.empty(); } bool corrisp() const; int tipo() const; TipoIVA iva() const; const char* name() const { return _rec.get("CODTAB").mid(4); } int year() const { return _rec.get_int("CODTAB"); } TDate last_print() const { return _rec.get_date("D3"); } bool agenzia_viaggi(); const TString& tipo_attivita(); bool update(long uprotiva, const TDate& lastreg); TRegistro(const char* code = "", int year = 0); virtual ~TRegistro() {} }; class TLibro_giornale : public TRegistro { public: bool read(int year); TLibro_giornale(int year = 0); virtual ~TLibro_giornale() {} }; class TCausale : public TArray { TipoIVA _iva; TRectype _rec; TRegistro _reg; protected: const TRectype& row(int num) const; public: TConto& bill(int num, TConto& c) const; bool data_doc() const; bool num_doc() const; bool apertura() const; bool sezionale() const; bool valuta() const; bool intra() const; bool corrval() const; const char* causale_inc_imm() const; const char* tipo_doc() const; TRegistro& reg() { return _reg; } TipoIVA iva() const; virtual bool ok() const { return !_rec.empty(); } bool similar(const TCausale& c) const; bool read(const char* code, int year); TCausale(const char* code = "", int year = 0); virtual ~TCausale() {} }; #endif