Patch level : 4.0 604
Files correlati : ve0.exe ve6.exe Ricompilazione Demo : [ ] Commento : Corretta COntabilizzazione analitica git-svn-id: svn://10.65.10.50/trunk@14843 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
672d00c7b2
commit
a0e8995ee5
@ -486,6 +486,7 @@ class TContabilizzazione_analitica : public TElaborazione // velib04f
|
|||||||
TToken_string _search_seq;
|
TToken_string _search_seq;
|
||||||
TBill _sco_perc_bill_an, _sco_imp_bill_an;
|
TBill _sco_perc_bill_an, _sco_imp_bill_an;
|
||||||
TCache_causali* _caus;
|
TCache_causali* _caus;
|
||||||
|
TString16 _fld_cms_cont;
|
||||||
|
|
||||||
error_type _error; // Errore rilevato durante l'elaborazione
|
error_type _error; // Errore rilevato durante l'elaborazione
|
||||||
bool _usepdcc;
|
bool _usepdcc;
|
||||||
|
@ -20,32 +20,56 @@ protected:
|
|||||||
TObject* key2obj(const char* key);
|
TObject* key2obj(const char* key);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
const TCausale& causale(const TDocumento& doc);
|
const TCausale& causale(const TDocumento& doc, const TString & fld_cms);
|
||||||
TCache_causali() : TCache(17) { }
|
TCache_causali() : TCache(17) { }
|
||||||
};
|
};
|
||||||
|
|
||||||
TObject* TCache_causali::key2obj(const char* key)
|
TObject* TCache_causali::key2obj(const char* key)
|
||||||
{
|
{
|
||||||
TToken_string k = key;
|
TToken_string k(key);
|
||||||
const int year = k.get_int(1);
|
TString4 cod;
|
||||||
TString cod = k.get(0);
|
k.get(0, cod);
|
||||||
cod.trim();
|
cod.trim();
|
||||||
|
int year; k.get(1, year);
|
||||||
return new TCausale(cod, year);
|
return new TCausale(cod, year);
|
||||||
}
|
}
|
||||||
|
|
||||||
const TCausale& TCache_causali::causale(const TDocumento& doc)
|
const TCausale& TCache_causali::causale(const TDocumento& doc, const TString & fld_cms)
|
||||||
{
|
{
|
||||||
|
TString4 codcaus;
|
||||||
|
TToken_string key;
|
||||||
|
|
||||||
|
if (!fld_cms.blank())
|
||||||
|
{
|
||||||
|
const TString & cms = doc.commessa_principale();
|
||||||
|
|
||||||
|
if (!cms.blank())
|
||||||
|
{
|
||||||
|
key.add(cms);
|
||||||
|
const TString16 fld_val = cache().get(LF_COMMESSE, key, fld_cms);
|
||||||
|
|
||||||
|
if (!fld_val.blank())
|
||||||
|
{
|
||||||
|
key = "CTCMS";
|
||||||
|
key.add(doc.tipo().codice());
|
||||||
|
key.add(fld_val);
|
||||||
|
codcaus = cache().get(LF_MULTIREL, key, "DATA");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (codcaus.blank())
|
||||||
|
{
|
||||||
// Cerca il codice causale sul cliente
|
// Cerca il codice causale sul cliente
|
||||||
const char* const fld = doc.is_nota_credito() ? CFV_CODCAUSNC : CFV_CODCAUS;
|
const char* const fld = doc.is_nota_credito() ? CFV_CODCAUSNC : CFV_CODCAUS;
|
||||||
|
|
||||||
TString16 key;
|
|
||||||
key.format("%c|%ld", doc.get_char(DOC_TIPOCF), doc.get_long(DOC_CODCF));
|
key.format("%c|%ld", doc.get_char(DOC_TIPOCF), doc.get_long(DOC_CODCF));
|
||||||
TString4 codcaus = cache().get(LF_CFVEN, key, fld);
|
codcaus = cache().get(LF_CFVEN, key, fld);
|
||||||
if (codcaus.blank()) // Se non lo trova guarda sul tipo documento
|
if (codcaus.blank()) // Se non lo trova guarda sul tipo documento
|
||||||
{
|
{
|
||||||
const TTipo_documento& tipo = doc.tipo();
|
const TTipo_documento& tipo = doc.tipo();
|
||||||
codcaus = tipo.causale();
|
codcaus = tipo.causale();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//Assegna l'anno della causale
|
//Assegna l'anno della causale
|
||||||
const int year = doc.get_date(DOC_DATADOC).year();
|
const int year = doc.get_date(DOC_DATADOC).year();
|
||||||
@ -61,7 +85,7 @@ const TCausale& TCache_causali::causale(const TDocumento& doc)
|
|||||||
const TCausale& TContabilizzazione_analitica::doc2caus(const TDocumento& doc)
|
const TCausale& TContabilizzazione_analitica::doc2caus(const TDocumento& doc)
|
||||||
{
|
{
|
||||||
CHECK(_caus, "Cache nulla");
|
CHECK(_caus, "Cache nulla");
|
||||||
return _caus->causale(doc);
|
return _caus->causale(doc, _fld_cms_cont);
|
||||||
}
|
}
|
||||||
|
|
||||||
const TCausale& TContabilizzazione_analitica::rdoc2caus(const TRiga_documento& rdoc)
|
const TCausale& TContabilizzazione_analitica::rdoc2caus(const TRiga_documento& rdoc)
|
||||||
@ -446,9 +470,10 @@ bool TContabilizzazione_analitica::elabora(TDocumento& doc, long numreg_cg, TVis
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
TEsercizi_contabili esc;
|
||||||
datadoc = doc.get(DOC_DATADOC);
|
datadoc = doc.get(DOC_DATADOC);
|
||||||
datareg = datacomp = datadoc;
|
datareg = datacomp = datadoc;
|
||||||
annoes = datareg.year();
|
annoes = esc.date2esc(datareg);
|
||||||
doc.riferimento(descr);
|
doc.riferimento(descr);
|
||||||
if (descr.empty())
|
if (descr.empty())
|
||||||
descr = doc.tipo().descrizione();
|
descr = doc.tipo().descrizione();
|
||||||
@ -701,6 +726,7 @@ void TContabilizzazione_analitica::init()
|
|||||||
gr = conf.get_int("SCOIMCODCON","ve",1);
|
gr = conf.get_int("SCOIMCODCON","ve",1);
|
||||||
co = conf.get_int("SCOIMCODCON","ve",2);
|
co = conf.get_int("SCOIMCODCON","ve",2);
|
||||||
so = conf.get_long("SCOIMCODCON","ve",3);
|
so = conf.get_long("SCOIMCODCON","ve",3);
|
||||||
|
_fld_cms_cont = conf.get("CMSCNTFIELD","ve");
|
||||||
_sco_imp_bill_an.set(gr,co,so);
|
_sco_imp_bill_an.set(gr,co,so);
|
||||||
|
|
||||||
_caus = new TCache_causali;
|
_caus = new TCache_causali;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user