diff --git a/fe/felib.cpp b/fe/felib.cpp index f6d784abd..f80364eda 100644 --- a/fe/felib.cpp +++ b/fe/felib.cpp @@ -1,5 +1,4 @@ #include -#include #include #include #include @@ -292,7 +291,6 @@ const TString& TAnagrafica::stato_partita_IVA() const return str; } - char TAnagrafica::is_black_list(const TDate& datareg) const { char is_black = ' '; @@ -388,7 +386,10 @@ bool TAnagrafica::init(const TRectype& rec) _cofi = rec.get(ANA_COFI); _paiv = rec.get(ANA_PAIV); _stato_paiv = rec.get(ANA_STATOPAIV); - + + if (_ragsoc.starts_with("EYCK")) + int zingara = 1; + // Comune di residenza fiscale o domicilio _stato_estero = rec.get_int(ANA_STATORES); _com_res = rec.get(ANA_COMRF); @@ -452,7 +453,7 @@ bool TAnagrafica::init(const TRectype& rec) if (!is_firm) is_firm = rs.ends_with(" spa") || (rs.find(" di ") > 15); // Shopping Point di Karoline Reiner } - + if (!is_firm) { bool has_cofi = false; // Codice fiscale alfanumerico? @@ -574,6 +575,8 @@ bool TAnagrafica::init(const TRectype& rec) return init(rec.get_char(ALL_TIPOCF), rec.get_long(ALL_CODCF), rec.get(ALL_OCFPI)); case LF_EFFETTI: return init(rec.get_char(EFF_TIPOCF), rec.get_long(EFF_CODCF), EMPTY_STRING); + case LF_PERC: + return init(LF_ANAG, rec.get_char("TIPOA"), rec.get_long("CODANAGR")); default: CHECKD(false, "Record non valido per TAnagrafica ", rec.num()); break; @@ -865,6 +868,20 @@ TSpesometro_set::TSpesometro_set() : TCSV_recordset("CSV(|)") // TCofi_cache /////////////////////////////////////////////////////////// +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) { } +}; + TObject* TCofi_cache::find_ragsoc(bool piva, char tipocf, const TString& code) { const int fkey = piva ? 5 : 4; @@ -997,6 +1014,12 @@ const TString& TCofi_cache::paiv2ragsoc(char tipocf, const TString& paiv) // TSpesometro_rep /////////////////////////////////////////////////////////// +const TString& TSpesometro_rep::cofi2ragsoc(char tipocf, const TString& cofi) const +{ return ((TCofi_cache*)_cofi)->cofi2ragsoc(tipocf, cofi); } + +const TString& TSpesometro_rep::paiv2ragsoc(char tipocf, const TString& cofi) const +{ return ((TCofi_cache*)_cofi)->paiv2ragsoc(tipocf, cofi); } + bool TSpesometro_rep::get_usr_val(const TString& name, TVariant& var) const { if (name == "ANNO") @@ -1004,7 +1027,7 @@ bool TSpesometro_rep::get_usr_val(const TString& name, TVariant& var) const const TFixed_string d("DataReg"); TVariant var; if (!get_record_field(d, var)) - var = "2013"; + var = "2015"; else var = var.as_string().right(4); return true; @@ -1015,6 +1038,7 @@ bool TSpesometro_rep::get_usr_val(const TString& name, TVariant& var) const TSpesometro_rep::TSpesometro_rep(const TFilename& file) { + _cofi = new TCofi_cache; load("fe0100"); TSpesometro_set* set = new TSpesometro_set(file); @@ -1034,3 +1058,7 @@ TSpesometro_rep::TSpesometro_rep(const TFilename& file) set_recordset(set); } + +TSpesometro_rep::~TSpesometro_rep() +{ delete _cofi; } + diff --git a/fe/felib.h b/fe/felib.h index 987855bcd..3efa9a75c 100644 --- a/fe/felib.h +++ b/fe/felib.h @@ -110,35 +110,18 @@ public: // 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; + TCache* _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); } - + 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