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
|
||||
{
|
||||
enum { _altro, _bolla, _fattura, _ordine};
|
||||
|
||||
{
|
||||
static TAssoc_array _formule_documento;
|
||||
TToken_string _formule;
|
||||
TString_array _keys_descrs; // Tipi riga per listbox
|
||||
@ -232,6 +230,8 @@ protected:
|
||||
public:
|
||||
TObject* dup() const { return new TTipo_documento(codice()); }
|
||||
|
||||
enum { _altro, _bolla, _fattura, _ordine};
|
||||
|
||||
public:
|
||||
// const TString& profile_name() const { return get("S4"); }
|
||||
const TFilename& profile_name(TFilename& name) const;
|
||||
|
@ -469,10 +469,12 @@ public:
|
||||
class TContabilizzazione_analitica : public TElaborazione // velib04f
|
||||
{
|
||||
error_type _error; // Errore rilevato durante l'elaborazione
|
||||
bool _usepdcc;
|
||||
|
||||
protected:
|
||||
bool search_costo_ricavo(const TRiga_documento& riga, TBill& conto);
|
||||
bool find_conti(const TRiga_documento& riga, TString_array& conti);
|
||||
void init();
|
||||
|
||||
const TCausale& doc2caus(const TDocumento& doc);
|
||||
const TCausale& rdoc2caus(const TRiga_documento& rdoc);
|
||||
@ -482,7 +484,7 @@ protected:
|
||||
public:
|
||||
virtual bool elabora(TLista_documenti& doc_in, TLista_documenti& doc_out,
|
||||
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(const TRectype& rec);
|
||||
|
@ -3504,7 +3504,8 @@ error_type TContabilizzazione::write_anal(TDocumento& doc, const TMovimentoPN& m
|
||||
{
|
||||
TContabilizzazione_analitica canal;
|
||||
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;
|
||||
|
@ -254,11 +254,21 @@ bool TContabilizzazione_analitica::find_conti(const TRiga_documento& riga, TStri
|
||||
|
||||
const char tipocf = riga.doc().get_char(DOC_TIPOCF);
|
||||
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())
|
||||
{
|
||||
const TRectype& anamag = cache().get(LF_ANAMAG, riga.get(RDOC_CODARTMAG));
|
||||
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
|
||||
{
|
||||
@ -275,17 +285,20 @@ bool TContabilizzazione_analitica::find_conti(const TRiga_documento& riga, TStri
|
||||
{
|
||||
const TRectype& spp = cache().get(tabanal, riga.get(RDOC_CODART));
|
||||
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'
|
||||
return true;
|
||||
|
||||
TBill bill; // Cerco il conto contabile
|
||||
/* TBill bill; // Cerco il conto contabile
|
||||
if (!search_costo_ricavo(riga, bill))
|
||||
return true;
|
||||
if (!bill.is_analitico())
|
||||
return true;
|
||||
return true;*/
|
||||
|
||||
const TString80 riga_cos = riga.codice_costo();
|
||||
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;
|
||||
TString descr, msg, codcaus;
|
||||
bool dare = false;
|
||||
@ -364,7 +377,7 @@ bool TContabilizzazione_analitica::elabora(TDocumento& doc, long numreg_cg, TVis
|
||||
}
|
||||
else
|
||||
{
|
||||
const TDate datadoc(doc.get(DOC_DATADOC));
|
||||
datadoc = doc.get(DOC_DATADOC);
|
||||
datareg = datacomp = datadoc;
|
||||
annoes = datareg.year();
|
||||
doc.riferimento(descr);
|
||||
@ -394,7 +407,6 @@ bool TContabilizzazione_analitica::elabora(TDocumento& doc, long numreg_cg, TVis
|
||||
const char sezione = dare ? 'D' : 'A';
|
||||
const int decimals = TCurrency::get_firm_dec();
|
||||
|
||||
TAnal_mov mov;
|
||||
long numreg_ca = doc.get_long(DOC_NUMREGCA);
|
||||
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_DATACOMP, datacomp);
|
||||
mov.put(MOVANA_DATADOC, datadoc);
|
||||
mov.put(MOVANA_ANNOES, annoes);
|
||||
mov.put(MOVANA_DESCR, descr);
|
||||
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();
|
||||
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"));
|
||||
else
|
||||
break;
|
||||
@ -542,14 +556,22 @@ bool TContabilizzazione_analitica::elabora(TLista_documenti& doc_in, TLista_docu
|
||||
return true;
|
||||
}
|
||||
|
||||
void TContabilizzazione_analitica::init()
|
||||
{
|
||||
TConfig_anal cfg;
|
||||
_usepdcc = cfg.get_bool("UsePdcc");
|
||||
}
|
||||
|
||||
TContabilizzazione_analitica::TContabilizzazione_analitica()
|
||||
: TElaborazione(NULL), _error(no_error)
|
||||
{
|
||||
{
|
||||
init();
|
||||
}
|
||||
|
||||
TContabilizzazione_analitica::TContabilizzazione_analitica(const TRectype& rec)
|
||||
: TElaborazione(rec), _error(no_error)
|
||||
{
|
||||
init();
|
||||
}
|
||||
|
||||
TContabilizzazione_analitica::~TContabilizzazione_analitica()
|
||||
|
Loading…
x
Reference in New Issue
Block a user