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:
luca 2005-07-25 13:30:03 +00:00
parent 0e84bac04b
commit a2691965e6
4 changed files with 40 additions and 15 deletions

View File

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

View File

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

View File

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

View File

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