5f618c9efe
git-svn-id: svn://10.65.10.50/branches/R_10_00@23180 c028cbd2-c16b-5b4b-a496-9718f37d4682
131 lines
4.6 KiB
C++
131 lines
4.6 KiB
C++
#ifndef __FELIB_H__
|
|
#define __FELIB_H__
|
|
|
|
#ifndef __ISAM_H__
|
|
#include <isam.h>
|
|
#endif
|
|
|
|
#ifndef __TEXTSET_H__
|
|
#include <textset.h>
|
|
#endif
|
|
|
|
///////////////////////////////////////////////////////////
|
|
// TAnagrafica
|
|
///////////////////////////////////////////////////////////
|
|
|
|
class TAnagrafica : public TObject
|
|
{
|
|
char _tipo; // F o G
|
|
TString4 _stato_paiv;
|
|
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& stato_partita_IVA() const;
|
|
|
|
const TString& ragione_sociale() const;
|
|
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& codice_comune_residenza() const { return estero() ? EMPTY_STRING : _com_res; }
|
|
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 TSpesometro_rep : public TReport
|
|
{
|
|
TCache* _cofi;
|
|
|
|
protected:
|
|
const TString& cofi2ragsoc(char tipocf, const TString& cofi) const;
|
|
const TString& paiv2ragsoc(char tipocf, const TString& cofi) const;
|
|
virtual bool get_usr_val(const TString& name, TVariant& var) const;
|
|
|
|
public:
|
|
TSpesometro_rep(const TFilename& file);
|
|
~TSpesometro_rep();
|
|
};
|
|
|
|
// Utility
|
|
bool fe_is_nota_variazione(const TRectype& rec);
|
|
bool fe_decode_cofi(const TString& cofi, char& sex_nasc, TDate& dt_nasc, TString& com_nasc);
|
|
|
|
#endif |