ce559da866
Files correlati : Ricompilazione Demo : [ ] Commento : Corretta gestione clinti corrispondenti a persone fisiche git-svn-id: svn://10.65.10.50/branches/R_10_00@22489 c028cbd2-c16b-5b4b-a496-9718f37d4682
131 lines
4.6 KiB
C++
131 lines
4.6 KiB
C++
#ifndef __FELIB_H__
|
|
#define __FELIB_H__
|
|
|
|
#ifndef __TEXTSET_H__
|
|
#include <textset.h>
|
|
#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;
|
|
TDate _data_nasc;
|
|
int _allegato, _stato_estero;
|
|
|
|
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);
|
|
|
|
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 { return _ragsoc.left(24); }
|
|
const TString& nome() const { CHECK(fisica(), "Non chiedere nome giuridico!"); return _ragsoc.mid(30,20); }
|
|
char sesso() const { CHECK(fisica(), "Solo sesso fisico!"); return (_cofi[9] >= '4') ? 'F' : 'M'; }
|
|
const TDate& data_nascita() const { return _data_nasc; }
|
|
int stato_estero() const { return _stato_estero; }
|
|
int inserimento_in_allegato() const { return _allegato; }
|
|
|
|
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; }
|
|
|
|
bool init(const TRectype& rec);
|
|
bool init(int num, const TString& codice) { return init(cache().get(num, codice)); }
|
|
bool init(int num, long codice) { return init(cache().get(num, codice)); }
|
|
bool init(int num, char tipo, long codice);
|
|
bool init(char tipo, 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); }
|
|
};
|
|
|
|
///////////////////////////////////////////////////////////
|
|
// TDati_rilevanti_set
|
|
///////////////////////////////////////////////////////////
|
|
|
|
class TDati_rilevanti_set : public TAS400_recordset
|
|
{
|
|
int _anno;
|
|
|
|
protected:
|
|
virtual bool set_field(const TAS400_column_info& fi, const TVariant& var);
|
|
virtual const TVariant& get_field(const TAS400_column_info& fi) const;
|
|
|
|
void init();
|
|
bool set_val(int n, const TVariant& v) { return TAS400_recordset::set(n-1, v); }
|
|
|
|
public:
|
|
bool set(unsigned int n, const TVariant& v) { return set_val(n, v); }
|
|
bool set(unsigned int n, const TString& v) { return set_val(n, v); }
|
|
bool set(unsigned int n, char v) { TString4 str; str << v; return set_val(n, str); }
|
|
bool set(unsigned int n, int v) { return set_val(n, long(v)); }
|
|
bool set(unsigned int n, const real& v) { return set_val(n, v); }
|
|
bool set(unsigned int n, const TDate& v) { return set_val(n, v); }
|
|
void add_header(const TMask& msk, int num_inv = 1, int tot_inv = 1);
|
|
void add_footer();
|
|
bool split(const TFilename& name, const TRecnotype maxalleg = 15000);
|
|
int anno() const { return _anno; }
|
|
|
|
TDati_rilevanti_set(int anno);
|
|
TDati_rilevanti_set(const TFilename& file);
|
|
};
|
|
|
|
///////////////////////////////////////////////////////////
|
|
// TDati_rilevanti_rep
|
|
///////////////////////////////////////////////////////////
|
|
|
|
class TCofi_cache : public TCache
|
|
{
|
|
TLocalisamfile _clifo, _occas;
|
|
|
|
protected:
|
|
virtual TObject* key2obj(const char* key);
|
|
|
|
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 TDati_rilevanti_rep : public TReport
|
|
{
|
|
TCofi_cache _cofi;
|
|
|
|
protected:
|
|
const TString& cofi2ragsoc(char tipocf, const TString& cofi) const
|
|
{ return ((TDati_rilevanti_rep*)this)->_cofi.cofi2ragsoc(tipocf, cofi); }
|
|
|
|
const TString& paiv2ragsoc(char tipocf, const TString& cofi) const
|
|
{ return ((TDati_rilevanti_rep*)this)->_cofi.paiv2ragsoc(tipocf, cofi); }
|
|
|
|
virtual bool get_usr_val(const TString& name, TVariant& var) const;
|
|
|
|
public:
|
|
TDati_rilevanti_rep(const TFilename& file);
|
|
};
|
|
|
|
|
|
|
|
#endif |