Migliorata gestione TAnagrafica

git-svn-id: svn://10.65.10.50/branches/R_10_00@23180 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2016-02-25 11:34:34 +00:00
parent e9a34d143f
commit 5f618c9efe
2 changed files with 37 additions and 26 deletions

View File

@ -1,5 +1,4 @@
#include <diction.h>
#include <progind.h>
#include <recarray.h>
#include <mask.h>
#include <validate.h>
@ -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; }

View File

@ -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