Patch level :2.2 160
Files correlati :ca3.exe, ca3700a.msk Ricompilazione Demo : [ ] Commento :stampa rendiconto: prima versione funzionante git-svn-id: svn://10.65.10.50/trunk@13293 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
0e84bac04b
commit
a2691965e6
@ -195,9 +195,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
class TTipo_documento : public TRectype // velib03
|
class TTipo_documento : public TRectype // velib03
|
||||||
{
|
{
|
||||||
enum { _altro, _bolla, _fattura, _ordine};
|
|
||||||
|
|
||||||
static TAssoc_array _formule_documento;
|
static TAssoc_array _formule_documento;
|
||||||
TToken_string _formule;
|
TToken_string _formule;
|
||||||
TString_array _keys_descrs; // Tipi riga per listbox
|
TString_array _keys_descrs; // Tipi riga per listbox
|
||||||
@ -232,6 +230,8 @@ protected:
|
|||||||
public:
|
public:
|
||||||
TObject* dup() const { return new TTipo_documento(codice()); }
|
TObject* dup() const { return new TTipo_documento(codice()); }
|
||||||
|
|
||||||
|
enum { _altro, _bolla, _fattura, _ordine};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// const TString& profile_name() const { return get("S4"); }
|
// const TString& profile_name() const { return get("S4"); }
|
||||||
const TFilename& profile_name(TFilename& name) const;
|
const TFilename& profile_name(TFilename& name) const;
|
||||||
|
@ -469,10 +469,12 @@ public:
|
|||||||
class TContabilizzazione_analitica : public TElaborazione // velib04f
|
class TContabilizzazione_analitica : public TElaborazione // velib04f
|
||||||
{
|
{
|
||||||
error_type _error; // Errore rilevato durante l'elaborazione
|
error_type _error; // Errore rilevato durante l'elaborazione
|
||||||
|
bool _usepdcc;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool search_costo_ricavo(const TRiga_documento& riga, TBill& conto);
|
bool search_costo_ricavo(const TRiga_documento& riga, TBill& conto);
|
||||||
bool find_conti(const TRiga_documento& riga, TString_array& conti);
|
bool find_conti(const TRiga_documento& riga, TString_array& conti);
|
||||||
|
void init();
|
||||||
|
|
||||||
const TCausale& doc2caus(const TDocumento& doc);
|
const TCausale& doc2caus(const TDocumento& doc);
|
||||||
const TCausale& rdoc2caus(const TRiga_documento& rdoc);
|
const TCausale& rdoc2caus(const TRiga_documento& rdoc);
|
||||||
@ -482,7 +484,7 @@ protected:
|
|||||||
public:
|
public:
|
||||||
virtual bool elabora(TLista_documenti& doc_in, TLista_documenti& doc_out,
|
virtual bool elabora(TLista_documenti& doc_in, TLista_documenti& doc_out,
|
||||||
const TDate& data_elab, bool interattivo = false);
|
const TDate& data_elab, bool interattivo = false);
|
||||||
bool elabora(TDocumento& doc, long numreg_cg, TViswin* viswin, bool can_write);
|
bool elabora(TDocumento& doc, long numreg_cg, TViswin* viswin, bool can_write, TAnal_mov& mov);
|
||||||
|
|
||||||
TContabilizzazione_analitica();
|
TContabilizzazione_analitica();
|
||||||
TContabilizzazione_analitica(const TRectype& rec);
|
TContabilizzazione_analitica(const TRectype& rec);
|
||||||
|
@ -3504,7 +3504,8 @@ error_type TContabilizzazione::write_anal(TDocumento& doc, const TMovimentoPN& m
|
|||||||
{
|
{
|
||||||
TContabilizzazione_analitica canal;
|
TContabilizzazione_analitica canal;
|
||||||
const long numreg_cg = movimento.curr().get_long(MOV_NUMREG);
|
const long numreg_cg = movimento.curr().get_long(MOV_NUMREG);
|
||||||
canal.elabora(doc, numreg_cg, _viswin, _can_write);
|
TAnal_mov mov;
|
||||||
|
canal.elabora(doc, numreg_cg, _viswin, _can_write, mov);
|
||||||
}
|
}
|
||||||
|
|
||||||
return _error;
|
return _error;
|
||||||
|
@ -254,11 +254,21 @@ bool TContabilizzazione_analitica::find_conti(const TRiga_documento& riga, TStri
|
|||||||
|
|
||||||
const char tipocf = riga.doc().get_char(DOC_TIPOCF);
|
const char tipocf = riga.doc().get_char(DOC_TIPOCF);
|
||||||
TString80 contanal;
|
TString80 contanal;
|
||||||
|
|
||||||
|
TBill bill; // Cerco il conto contabile
|
||||||
|
if (!search_costo_ricavo(riga, bill))
|
||||||
|
return true;
|
||||||
|
if (!bill.is_analitico())
|
||||||
|
return true;
|
||||||
|
|
||||||
if (riga.is_articolo())
|
if (riga.is_articolo())
|
||||||
{
|
{
|
||||||
const TRectype& anamag = cache().get(LF_ANAMAG, riga.get(RDOC_CODARTMAG));
|
const TRectype& anamag = cache().get(LF_ANAMAG, riga.get(RDOC_CODARTMAG));
|
||||||
bArcticleFound = !anamag.empty();
|
bArcticleFound = !anamag.empty();
|
||||||
contanal = anamag.get(tipocf == 'F' ? ANAMAG_CONTOINDA : ANAMAG_CONTOINDV);
|
if (_usepdcc)
|
||||||
|
contanal.format("%03d%03d%06ld", bill.gruppo(), bill.conto(), bill.sottoconto());
|
||||||
|
else
|
||||||
|
contanal = anamag.get(tipocf == 'F' ? ANAMAG_CONTOINDA : ANAMAG_CONTOINDV);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -275,17 +285,20 @@ bool TContabilizzazione_analitica::find_conti(const TRiga_documento& riga, TStri
|
|||||||
{
|
{
|
||||||
const TRectype& spp = cache().get(tabanal, riga.get(RDOC_CODART));
|
const TRectype& spp = cache().get(tabanal, riga.get(RDOC_CODART));
|
||||||
bArcticleFound = !spp.empty();
|
bArcticleFound = !spp.empty();
|
||||||
contanal = spp.get(tipocf == 'F' ? "S2" : "S1");
|
if (_usepdcc)
|
||||||
|
contanal.format("%03d%03d%06ld", bill.gruppo(), bill.conto(), bill.sottoconto());
|
||||||
|
else
|
||||||
|
contanal = spp.get(tipocf == 'F' ? "S2" : "S1");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!bArcticleFound) // Se l'anagrtafica non esiste va bene cosi'
|
if (!bArcticleFound) // Se l'anagrtafica non esiste va bene cosi'
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
TBill bill; // Cerco il conto contabile
|
/* TBill bill; // Cerco il conto contabile
|
||||||
if (!search_costo_ricavo(riga, bill))
|
if (!search_costo_ricavo(riga, bill))
|
||||||
return true;
|
return true;
|
||||||
if (!bill.is_analitico())
|
if (!bill.is_analitico())
|
||||||
return true;
|
return true;*/
|
||||||
|
|
||||||
const TString80 riga_cos = riga.codice_costo();
|
const TString80 riga_cos = riga.codice_costo();
|
||||||
const TString80 riga_cms = riga.codice_commessa();
|
const TString80 riga_cms = riga.codice_commessa();
|
||||||
@ -345,9 +358,9 @@ void TContabilizzazione_analitica::init_distrib(TString_array& conti, TGeneric_d
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TContabilizzazione_analitica::elabora(TDocumento& doc, long numreg_cg, TViswin* viswin, bool can_write)
|
bool TContabilizzazione_analitica::elabora(TDocumento& doc, long numreg_cg, TViswin* viswin, bool can_write, TAnal_mov& mov)
|
||||||
{
|
{
|
||||||
TDate datareg, datacomp;
|
TDate datareg, datacomp, datadoc;
|
||||||
int annoes = 0;
|
int annoes = 0;
|
||||||
TString descr, msg, codcaus;
|
TString descr, msg, codcaus;
|
||||||
bool dare = false;
|
bool dare = false;
|
||||||
@ -364,7 +377,7 @@ bool TContabilizzazione_analitica::elabora(TDocumento& doc, long numreg_cg, TVis
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
const TDate datadoc(doc.get(DOC_DATADOC));
|
datadoc = doc.get(DOC_DATADOC);
|
||||||
datareg = datacomp = datadoc;
|
datareg = datacomp = datadoc;
|
||||||
annoes = datareg.year();
|
annoes = datareg.year();
|
||||||
doc.riferimento(descr);
|
doc.riferimento(descr);
|
||||||
@ -394,7 +407,6 @@ bool TContabilizzazione_analitica::elabora(TDocumento& doc, long numreg_cg, TVis
|
|||||||
const char sezione = dare ? 'D' : 'A';
|
const char sezione = dare ? 'D' : 'A';
|
||||||
const int decimals = TCurrency::get_firm_dec();
|
const int decimals = TCurrency::get_firm_dec();
|
||||||
|
|
||||||
TAnal_mov mov;
|
|
||||||
long numreg_ca = doc.get_long(DOC_NUMREGCA);
|
long numreg_ca = doc.get_long(DOC_NUMREGCA);
|
||||||
if (numreg_ca > 0)
|
if (numreg_ca > 0)
|
||||||
{
|
{
|
||||||
@ -413,6 +425,7 @@ bool TContabilizzazione_analitica::elabora(TDocumento& doc, long numreg_cg, TVis
|
|||||||
}
|
}
|
||||||
mov.put(MOVANA_DATAREG, datareg);
|
mov.put(MOVANA_DATAREG, datareg);
|
||||||
mov.put(MOVANA_DATACOMP, datacomp);
|
mov.put(MOVANA_DATACOMP, datacomp);
|
||||||
|
mov.put(MOVANA_DATADOC, datadoc);
|
||||||
mov.put(MOVANA_ANNOES, annoes);
|
mov.put(MOVANA_ANNOES, annoes);
|
||||||
mov.put(MOVANA_DESCR, descr);
|
mov.put(MOVANA_DESCR, descr);
|
||||||
mov.put(MOVANA_NUMREGCG, numreg_cg); // Movimento contabile associato
|
mov.put(MOVANA_NUMREGCG, numreg_cg); // Movimento contabile associato
|
||||||
@ -529,7 +542,8 @@ bool TContabilizzazione_analitica::elabora(TLista_documenti& doc_in, TLista_docu
|
|||||||
v.open_modal();
|
v.open_modal();
|
||||||
for (int i = 0; i < doc_in.items(); i++)
|
for (int i = 0; i < doc_in.items(); i++)
|
||||||
{
|
{
|
||||||
if (elabora(doc_in[i], 0, &v, true))
|
TAnal_mov mov;
|
||||||
|
if (elabora(doc_in[i], 0, &v, true, mov))
|
||||||
doc_in[i].stato(get_char("S4"));
|
doc_in[i].stato(get_char("S4"));
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
@ -542,14 +556,22 @@ bool TContabilizzazione_analitica::elabora(TLista_documenti& doc_in, TLista_docu
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TContabilizzazione_analitica::init()
|
||||||
|
{
|
||||||
|
TConfig_anal cfg;
|
||||||
|
_usepdcc = cfg.get_bool("UsePdcc");
|
||||||
|
}
|
||||||
|
|
||||||
TContabilizzazione_analitica::TContabilizzazione_analitica()
|
TContabilizzazione_analitica::TContabilizzazione_analitica()
|
||||||
: TElaborazione(NULL), _error(no_error)
|
: TElaborazione(NULL), _error(no_error)
|
||||||
{
|
{
|
||||||
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
TContabilizzazione_analitica::TContabilizzazione_analitica(const TRectype& rec)
|
TContabilizzazione_analitica::TContabilizzazione_analitica(const TRectype& rec)
|
||||||
: TElaborazione(rec), _error(no_error)
|
: TElaborazione(rec), _error(no_error)
|
||||||
{
|
{
|
||||||
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
TContabilizzazione_analitica::~TContabilizzazione_analitica()
|
TContabilizzazione_analitica::~TContabilizzazione_analitica()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user