#ifndef __FELIB_H__ #define __FELIB_H__ #ifndef __ISAM_H__ #include #endif #ifndef __TEXTSET_H__ #include #endif /////////////////////////////////////////////////////////// // TAnagrafica /////////////////////////////////////////////////////////// class TAnagrafica : public TObject { char _tipo; // F o G TString16 _cofi, _paiv; TString80 _ragsoc; TString4 _com_nasc, _com_res; TString80 _loc_res, _ind_res, _via_res; TString16 _civ_res, _cap_res; TDate _data_nasc; int _allegato, _stato_estero, _stato_nasc; TAnagrafica& operator =(const TAnagrafica&) { CHECK(false, "Can't copy TAnagrafica"); } TAnagrafica(const TAnagrafica&) { CHECK(false, "Can't copy TAnagrafica"); } protected: void build_ind_res(const TRectype& rec, const char* ind, const char* civ); void split_ragsoc(); public: virtual bool ok() const { return _tipo=='F' || _tipo == 'G'; } bool fisica() const { return _tipo == 'F'; } bool giuridica() const { return _tipo == 'G'; } const TString& codice_fiscale() const { return _cofi; } const TString& partita_IVA() const { return _paiv; } const TString& ragione_sociale() const { return _ragsoc; } const TString& cognome() const; const TString& nome() const; char sesso() const { CHECK(fisica(), "Solo sesso fisico!"); return (_cofi[9] >= '4') ? 'F' : 'M'; } const TDate& data_nascita() const { return _data_nasc; } bool italiano() const; bool estero() const { return !italiano(); } const TString& stato_estero_UNICO() const; int inserimento_in_allegato() const { return _allegato; } char is_black_list(const TDate& datareg) const; const TString& comune_nascita() const; const TString& provincia_nascita() const; const TString& comune_residenza() const; const TString& provincia_residenza() const; const TString& localita_residenza() const { return _loc_res; } const TString& indirizzo_residenza() const { return _ind_res; } const TString& via_residenza() const { return _via_res; } const TString& civico_residenza() const { return _civ_res; } const TString& CAP_residenza() const { return _cap_res; } bool init(const TRectype& rec); bool init(int num, const TString& codice); bool init(int num, long codice); bool init(int num, char tipo, long codice); bool init(char tipocf, long codice, const TString& ocfpi); TAnagrafica() : _tipo('\0') {} TAnagrafica(int lognum, const TString& codice) { init(lognum, codice); } TAnagrafica(int lognum, long codice) { init(lognum, codice); } TAnagrafica(int lognum, char tipo, long codice) { init(lognum, tipo, codice); } TAnagrafica(char tipo, long codice, const TString& ocfpi) { init(tipo, codice, ocfpi); } TAnagrafica(const TRectype& rec) { init(rec); } }; /////////////////////////////////////////////////////////// // TSpesometro_set /////////////////////////////////////////////////////////// class TSpesometro_set : public TCSV_recordset { protected: virtual bool set(unsigned int fld, const TVariant& var); void init(); void add_header_data(int n, const TString& value); const TString& get_recapito(const TRectype& ndt, const char* numero, const char* prefisso) const; public: virtual const TVariant& get(unsigned int column) const; bool set(unsigned int n, const char* v) { return set(n, TVariant(v)); } bool set(unsigned int n, const TString& v) { return set(n, TVariant(v)); } bool set(unsigned int n, char v) { TString4 str; str << v; return set(n, str); } bool set(unsigned int n, int v) { return set(n, TVariant(long(v))); } bool set(unsigned int n, bool v) { return set(n, TVariant(v)); } bool set(unsigned int n, const real& v) { return set(n, TVariant(v)); } bool set(unsigned int n, const TDate& v) { return set(n, TVariant(v)); } bool add_header(const TMask& msk); bool add_footer(const TMask& msk); TSpesometro_set(); TSpesometro_set(const TFilename& file); }; /////////////////////////////////////////////////////////// // TSpesometro_rep /////////////////////////////////////////////////////////// class TCofi_cache : public TCache { TLocalisamfile _clifo, _occas; protected: virtual TObject* key2obj(const char* key); TObject* find_ragsoc(bool piva, char tipocf, const TString& code); public: const TString& cofi2ragsoc(char tipocf, const TString& cofi); const TString& paiv2ragsoc(char tipocf, const TString& paiv); TCofi_cache() : _clifo(LF_CLIFO), _occas(LF_OCCAS) { } }; class TSpesometro_rep : public TReport { TCofi_cache _cofi; protected: const TString& cofi2ragsoc(char tipocf, const TString& cofi) const { return ((TSpesometro_rep*)this)->_cofi.cofi2ragsoc(tipocf, cofi); } const TString& paiv2ragsoc(char tipocf, const TString& cofi) const { return ((TSpesometro_rep*)this)->_cofi.paiv2ragsoc(tipocf, cofi); } virtual bool get_usr_val(const TString& name, TVariant& var) const; public: TSpesometro_rep(const TFilename& file); }; // Utility bool fe_is_nota_variazione(const TRectype& rec); #endif