Patch level : 4.0 448
Files correlati : ve0 ve6 Ricompilazione Demo : [ ] Commento : Migliorata la contabilizzazione analitica (forse) Corretta copy_data in modo da azzerare i movimenti collegati alla testata del documento git-svn-id: svn://10.65.10.50/trunk@14141 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
16ee7506d4
commit
84f60d00da
@ -1,7 +1,6 @@
|
|||||||
#include <applicat.h>
|
#include <applicat.h>
|
||||||
#include "vereplib.h"
|
#include "vereplib.h"
|
||||||
|
|
||||||
#include "../ba/ba8400.h"
|
|
||||||
#include "../ba/ba8500.h"
|
#include "../ba/ba8500.h"
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
@ -193,10 +193,9 @@ public:
|
|||||||
|
|
||||||
class TTipo_documento : public TRectype // velib03
|
class TTipo_documento : public TRectype // velib03
|
||||||
{
|
{
|
||||||
|
|
||||||
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
|
||||||
TString_array _defaults; // Defaults per i campi della maschera
|
TString_array _defaults; // Defaults per i campi della maschera
|
||||||
TString_array _sheet_columns; // Colonne dello spreadsheet
|
TString_array _sheet_columns; // Colonne dello spreadsheet
|
||||||
TString_array _handlers; // Handlers
|
TString_array _handlers; // Handlers
|
||||||
@ -293,7 +292,7 @@ public:
|
|||||||
bool is_ricavo() const ;
|
bool is_ricavo() const ;
|
||||||
|
|
||||||
TFormula_documento* first_formula() { return succ_formula(true); }
|
TFormula_documento* first_formula() { return succ_formula(true); }
|
||||||
TFormula_documento* succ_formula(bool restart = FALSE);
|
TFormula_documento* succ_formula(bool restart = false);
|
||||||
|
|
||||||
const int ncopie() const { return get_int("I0"); }
|
const int ncopie() const { return get_int("I0"); }
|
||||||
const int additional_ncopie() const { return get_int("I2"); }
|
const int additional_ncopie() const { return get_int("I2"); }
|
||||||
@ -302,7 +301,7 @@ public:
|
|||||||
bool add_conai() const { return get_bool("B6"); }
|
bool add_conai() const { return get_bool("B6"); }
|
||||||
bool calcolo_lordo() const { return get_bool("B8"); }
|
bool calcolo_lordo() const { return get_bool("B8"); }
|
||||||
bool fattura_commerciale() const { return get_bool("B9"); }
|
bool fattura_commerciale() const { return get_bool("B9"); }
|
||||||
bool allega_documenti() const { return get_bool("B10"); }
|
bool allega_documenti() const { return get_bool("B10"); }
|
||||||
|
|
||||||
const TString& stringa_descrizione_documento() const { return _str_desc_doc; }
|
const TString& stringa_descrizione_documento() const { return _str_desc_doc; }
|
||||||
const TString& stringa_descrizione_riga() const { return _str_desc_rdoc; }
|
const TString& stringa_descrizione_riga() const { return _str_desc_rdoc; }
|
||||||
@ -343,7 +342,7 @@ public:
|
|||||||
const bool dont_test_datadoc() const { return get_bool("B2"); }
|
const bool dont_test_datadoc() const { return get_bool("B2"); }
|
||||||
const bool fattura_emettere_ricevere() const { return get_bool("B3"); }
|
const bool fattura_emettere_ricevere() const { return get_bool("B3"); }
|
||||||
const bool save_and_new() const { return get_bool("B4"); }
|
const bool save_and_new() const { return get_bool("B4"); }
|
||||||
const bool test_eser() const { return ! get_bool("B5"); }
|
const bool test_eser() const { return !get_bool("B5"); }
|
||||||
|
|
||||||
const TString& tipo_doc(int i) const;
|
const TString& tipo_doc(int i) const;
|
||||||
int ntipi_doc() const;
|
int ntipi_doc() const;
|
||||||
|
@ -298,7 +298,7 @@ real TDocumento::spese_incasso(int ndec, TTipo_importo t) const
|
|||||||
{
|
{
|
||||||
if (pag.importo_rata(i) >= impmineff) // Se la rata supera il minimo contrattuale
|
if (pag.importo_rata(i) >= impmineff) // Se la rata supera il minimo contrattuale
|
||||||
{
|
{
|
||||||
const TTipo_pag tp = pag.tipo_rata(i);
|
const TTipo_pag tp = (TTipo_pag)pag.tipo_rata(i);
|
||||||
imp_spese += (const real&)spese_inc[tp];
|
imp_spese += (const real&)spese_inc[tp];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -589,19 +589,21 @@ void TDocumento::set_key(TRectype& rec, char provv, int anno, const char* codnum
|
|||||||
// Funzione statica utile a tutti gli utenti di LF_DOC e LF_RIGHEDOC
|
// Funzione statica utile a tutti gli utenti di LF_DOC e LF_RIGHEDOC
|
||||||
void TDocumento::copy_data(TRectype& dst, const TRectype& src)
|
void TDocumento::copy_data(TRectype& dst, const TRectype& src)
|
||||||
{
|
{
|
||||||
|
const bool is_riga = dst.num() == LF_RIGHEDOC;
|
||||||
|
|
||||||
// Memorizza tutti i campi chiave
|
// Memorizza tutti i campi chiave
|
||||||
const char provv = dst.get_char(RDOC_PROVV);
|
const char provv = dst.get_char(RDOC_PROVV);
|
||||||
const int anno = dst.get_int(RDOC_ANNO);
|
const int anno = dst.get_int(RDOC_ANNO);
|
||||||
const TString4 codnum = dst.get(RDOC_CODNUM);
|
const TString4 codnum = dst.get(RDOC_CODNUM);
|
||||||
const long numdoc = dst.get_long(RDOC_NDOC);
|
const long numdoc = dst.get_long(RDOC_NDOC);
|
||||||
const int nriga = dst.num() == LF_RIGHEDOC ? dst.get_int(RDOC_NRIGA) : 0;
|
const int nriga = is_riga ? dst.get_int(RDOC_NRIGA) : 0;
|
||||||
const long idriga = dst.num() == LF_RIGHEDOC ? dst.get_long(RDOC_IDRIGA) : 0;
|
const long idriga = is_riga ? dst.get_long(RDOC_IDRIGA) : 0;
|
||||||
// Copia tutto il record
|
// Copia tutto il record
|
||||||
dst = src;
|
dst = src;
|
||||||
// Ripristina tutti i campi chiave
|
// Ripristina tutti i campi chiave
|
||||||
set_key(dst, provv, anno, codnum, numdoc);
|
set_key(dst, provv, anno, codnum, numdoc);
|
||||||
dst.init_memo(RECORD_NON_FISICO);
|
dst.init_memo(RECORD_NON_FISICO);
|
||||||
if (nriga > 0)
|
if (is_riga)
|
||||||
{
|
{
|
||||||
dst.put(RDOC_NRIGA, nriga);
|
dst.put(RDOC_NRIGA, nriga);
|
||||||
dst.put(RDOC_IDRIGA, idriga);
|
dst.put(RDOC_IDRIGA, idriga);
|
||||||
@ -610,7 +612,11 @@ void TDocumento::copy_data(TRectype& dst, const TRectype& src)
|
|||||||
dst.put(RDOC_DESCEST, memo);
|
dst.put(RDOC_DESCEST, memo);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
dst.zero(DOC_MOVMAG);
|
{
|
||||||
|
dst.zero(DOC_MOVMAG);
|
||||||
|
dst.zero(DOC_NUMREG);
|
||||||
|
dst.zero(DOC_NUMREGCA);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Funzione statica utile a tutti gli utenti di LF_RIGHEDOC
|
// Funzione statica utile a tutti gli utenti di LF_RIGHEDOC
|
||||||
@ -859,7 +865,7 @@ int TDocumento::write_rewrite(TBaseisamfile & f, bool re) const
|
|||||||
{
|
{
|
||||||
TString16 name("CODSP0");
|
TString16 name("CODSP0");
|
||||||
TString_array spese;
|
TString_array spese;
|
||||||
TRectype & ven_rec = clifor().vendite();
|
const TRectype & ven_rec = clifor().vendite();
|
||||||
for (int i = 1; i <= 4; i++)
|
for (int i = 1; i <= 4; i++)
|
||||||
{
|
{
|
||||||
name.rtrim(1); name << i;
|
name.rtrim(1); name << i;
|
||||||
@ -951,7 +957,7 @@ int TDocumento::write_rewrite(TBaseisamfile & f, bool re) const
|
|||||||
mov.put(MOVMAG_CODCONT, get("CODCONT"));
|
mov.put(MOVMAG_CODCONT, get("CODCONT"));
|
||||||
mov.put(MOVMAG_CODCAMP, get("CODCAMP"));
|
mov.put(MOVMAG_CODCAMP, get("CODCAMP"));
|
||||||
mov.put(MOVMAG_CODCAUS, get("CAUSMAG"));
|
mov.put(MOVMAG_CODCAUS, get("CAUSMAG"));
|
||||||
TString8 codnum(numerazione());
|
const TString4 codnum(numerazione());
|
||||||
mov.put(MOVMAG_DESCR, format("%s %s n. %ld del %s", (const char *) tipo().get("S1"),(const char *)codnum, numdoc, (const char *) d.string()));
|
mov.put(MOVMAG_DESCR, format("%s %s n. %ld del %s", (const char *) tipo().get("S1"),(const char *)codnum, numdoc, (const char *) d.string()));
|
||||||
mov.put(MOVMAG_TIPOCF, get("TIPOCF"));
|
mov.put(MOVMAG_TIPOCF, get("TIPOCF"));
|
||||||
mov.put(MOVMAG_CODCF, get("CODCF"));
|
mov.put(MOVMAG_CODCF, get("CODCF"));
|
||||||
|
@ -475,8 +475,16 @@ public:
|
|||||||
virtual ~TConsuntivazione_produzione() { }
|
virtual ~TConsuntivazione_produzione() { }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class TCache_causali; // Internal use only
|
||||||
|
|
||||||
class TContabilizzazione_analitica : public TElaborazione // velib04f
|
class TContabilizzazione_analitica : public TElaborazione // velib04f
|
||||||
{
|
{
|
||||||
|
TCache_ripartizioni _rip;
|
||||||
|
|
||||||
|
TToken_string _search_seq;
|
||||||
|
TBill _sco_perc_bill_an, _sco_imp_bill_an;
|
||||||
|
TCache_causali* _caus;
|
||||||
|
|
||||||
error_type _error; // Errore rilevato durante l'elaborazione
|
error_type _error; // Errore rilevato durante l'elaborazione
|
||||||
bool _usepdcc;
|
bool _usepdcc;
|
||||||
|
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
#include <automask.h>
|
|
||||||
|
|
||||||
#include "velib04.h"
|
#include "velib04.h"
|
||||||
#include "velib04d.h"
|
#include "velib04d.h"
|
||||||
|
|
||||||
|
#include <automask.h>
|
||||||
#include <doc.h>
|
#include <doc.h>
|
||||||
#include <rdoc.h>
|
#include <rdoc.h>
|
||||||
|
|
||||||
|
107
ve/velib04f.cpp
107
ve/velib04f.cpp
@ -10,7 +10,9 @@
|
|||||||
#include "../cg/cg2103.h"
|
#include "../cg/cg2103.h"
|
||||||
#include "../mg/anamag.h"
|
#include "../mg/anamag.h"
|
||||||
|
|
||||||
TBill _sco_perc_bill_an, _sco_imp_bill_an;
|
///////////////////////////////////////////////////////////
|
||||||
|
// TCache_causali
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
class TCache_causali : public TCache
|
class TCache_causali : public TCache
|
||||||
{
|
{
|
||||||
@ -34,14 +36,10 @@ const TCausale& TCache_causali::causale(const TDocumento& doc)
|
|||||||
// 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;
|
||||||
|
|
||||||
TToken_string key;
|
TString16 key;
|
||||||
key.add(doc.get(DOC_TIPOCF));
|
key.format("%c|%ld", doc.get_char(DOC_TIPOCF), doc.get_long(DOC_CODCF));
|
||||||
key.add(doc.get(DOC_CODCF));
|
TString4 codcaus = cache().get(LF_CFVEN, key, fld);
|
||||||
const TRectype& cfven = cache().get(LF_CFVEN, key);
|
if (codcaus.blank()) // Se non lo trova guarda sul tipo documento
|
||||||
TString16 codcaus = cfven.get(fld);
|
|
||||||
|
|
||||||
// Se non lo trova guarda sul tipo documento
|
|
||||||
if (codcaus.empty())
|
|
||||||
{
|
{
|
||||||
const TTipo_documento& tipo = doc.tipo();
|
const TTipo_documento& tipo = doc.tipo();
|
||||||
codcaus = tipo.causale();
|
codcaus = tipo.causale();
|
||||||
@ -49,24 +47,19 @@ const TCausale& TCache_causali::causale(const TDocumento& doc)
|
|||||||
|
|
||||||
//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();
|
||||||
TString16 chiave;
|
key.format("%4s|%4d", (const char*)codcaus, year);
|
||||||
chiave.format("%s|%4d", (const char *) codcaus, year);
|
|
||||||
// Trasforma il codice in causale vera e propria
|
// Trasforma il codice in causale vera e propria
|
||||||
return (const TCausale&)*objptr(chiave);
|
return (const TCausale&)*objptr(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// TContabilizzazione_analitica
|
// TContabilizzazione_analitica
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
static TCache_ripartizioni _rip;
|
|
||||||
static TToken_string _search_seq;
|
|
||||||
|
|
||||||
const TCausale& TContabilizzazione_analitica::doc2caus(const TDocumento& doc)
|
const TCausale& TContabilizzazione_analitica::doc2caus(const TDocumento& doc)
|
||||||
{
|
{
|
||||||
static TCache_causali _caus;
|
CHECK(_caus, "Cache nulla");
|
||||||
return _caus.causale(doc);
|
return _caus->causale(doc);
|
||||||
}
|
}
|
||||||
|
|
||||||
const TCausale& TContabilizzazione_analitica::rdoc2caus(const TRiga_documento& rdoc)
|
const TCausale& TContabilizzazione_analitica::rdoc2caus(const TRiga_documento& rdoc)
|
||||||
@ -77,13 +70,6 @@ const TCausale& TContabilizzazione_analitica::rdoc2caus(const TRiga_documento& r
|
|||||||
// Copiata dalla contabilizzazione ed eliminati riferimenti a tutte le variabili globali del cazzo
|
// Copiata dalla contabilizzazione ed eliminati riferimenti a tutte le variabili globali del cazzo
|
||||||
bool TContabilizzazione_analitica::search_costo_ricavo(const TRiga_documento& r, TBill& conto)
|
bool TContabilizzazione_analitica::search_costo_ricavo(const TRiga_documento& r, TBill& conto)
|
||||||
{
|
{
|
||||||
if (_search_seq.blank())
|
|
||||||
{
|
|
||||||
TConfig conf(CONFIG_DITTA, "ve");
|
|
||||||
_search_seq = conf.get("RICERCACR");
|
|
||||||
}
|
|
||||||
const int items = _search_seq.items();
|
|
||||||
|
|
||||||
TString16 clifo_key;
|
TString16 clifo_key;
|
||||||
clifo_key.format("%c|%ld", r.doc().get_char(DOC_TIPOCF), r.doc().get_long(DOC_CODCF));
|
clifo_key.format("%c|%ld", r.doc().get_char(DOC_TIPOCF), r.doc().get_long(DOC_CODCF));
|
||||||
|
|
||||||
@ -108,6 +94,7 @@ bool TContabilizzazione_analitica::search_costo_ricavo(const TRiga_documento& r,
|
|||||||
|
|
||||||
TString4 tok;
|
TString4 tok;
|
||||||
// Scorre la stringa di ricerca
|
// Scorre la stringa di ricerca
|
||||||
|
const int items = _search_seq.items();
|
||||||
for (int i=0; i < items;i++)
|
for (int i=0; i < items;i++)
|
||||||
{
|
{
|
||||||
_search_seq.get(i, tok);
|
_search_seq.get(i, tok);
|
||||||
@ -224,6 +211,7 @@ bool TContabilizzazione_analitica::search_costo_ricavo(const TRiga_documento& r,
|
|||||||
{
|
{
|
||||||
TString4 tok;
|
TString4 tok;
|
||||||
// Scorre la stringa di ricerca ma solo per causale o CLI/FO
|
// Scorre la stringa di ricerca ma solo per causale o CLI/FO
|
||||||
|
const int items = _search_seq.items();
|
||||||
for (int i=0; i<items;i++)
|
for (int i=0; i<items;i++)
|
||||||
{
|
{
|
||||||
_search_seq.get(i, tok);
|
_search_seq.get(i, tok);
|
||||||
@ -237,14 +225,13 @@ bool TContabilizzazione_analitica::search_costo_ricavo(const TRiga_documento& r,
|
|||||||
conto.set(gr,co,so);
|
conto.set(gr,co,so);
|
||||||
if (conto.ok())
|
if (conto.ok())
|
||||||
break;
|
break;
|
||||||
|
} else
|
||||||
|
if (tok == "CA")
|
||||||
|
{
|
||||||
|
const TCausale& caus = rdoc2caus(r);
|
||||||
|
if (caus.IVA2bill(codiva,conto))
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
if (tok == "CA")
|
|
||||||
{
|
|
||||||
const TCausale& caus = rdoc2caus(r);
|
|
||||||
if (caus.IVA2bill(codiva,conto))
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -284,13 +271,12 @@ bool TContabilizzazione_analitica::find_conti_iva_indetraibile(const TRiga_docum
|
|||||||
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();
|
||||||
const TString16 riga_fsc = riga.fase_commessa();
|
const TString16 riga_fsc = riga.fase_commessa();
|
||||||
const bool riga_any = riga_cos.not_empty() || riga_cms.not_empty() || riga_fsc.not_empty();
|
const bool riga_any = riga_cos.full() || riga_cms.full() || riga_fsc.full();
|
||||||
|
|
||||||
if (_usepdcc)
|
TToken_string conto;
|
||||||
|
if (_usepdcc)
|
||||||
{
|
{
|
||||||
TToken_string conto;
|
conto = bill.string(0x8); // format("%03d%03d%06ld", bill.gruppo(), bill.conto(), bill.sottoconto());
|
||||||
|
|
||||||
conto.format("%03d%03d%06ld", bill.gruppo(), bill.conto(), bill.sottoconto());
|
|
||||||
if (riga_any)
|
if (riga_any)
|
||||||
{
|
{
|
||||||
conto.add(riga_cos, 1);
|
conto.add(riga_cos, 1);
|
||||||
@ -304,7 +290,6 @@ bool TContabilizzazione_analitica::find_conti_iva_indetraibile(const TRiga_docum
|
|||||||
{
|
{
|
||||||
// Cerca la ripartizione del conto
|
// Cerca la ripartizione del conto
|
||||||
const TRecord_array& rip = _rip.righe(bill);
|
const TRecord_array& rip = _rip.righe(bill);
|
||||||
TToken_string conto;
|
|
||||||
for (int i = 1; i <= rip.rows(); i++)
|
for (int i = 1; i <= rip.rows(); i++)
|
||||||
{
|
{
|
||||||
const TRectype& rigarip = rip.row(i);
|
const TRectype& rigarip = rip.row(i);
|
||||||
@ -325,8 +310,6 @@ bool TContabilizzazione_analitica::find_conti_iva_indetraibile(const TRiga_docum
|
|||||||
conti.add(conto);
|
conti.add(conto);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return !conti.empty();
|
return !conti.empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -340,20 +323,6 @@ bool TContabilizzazione_analitica::find_conti(const TRiga_documento& riga, TStri
|
|||||||
|
|
||||||
if (riga.is_sconto())
|
if (riga.is_sconto())
|
||||||
{
|
{
|
||||||
if (!_sco_perc_bill_an.ok())
|
|
||||||
{
|
|
||||||
TConfig conf(CONFIG_DITTA, "ve");
|
|
||||||
int gr = conf.get_int("SCOPRCODCON","ve",1);
|
|
||||||
int co = conf.get_int("SCOPRCODCON","ve",2);
|
|
||||||
long so = conf.get_long("SCOPRCODCON","ve",3);
|
|
||||||
|
|
||||||
_sco_perc_bill_an.set(gr,co,so);
|
|
||||||
|
|
||||||
gr = conf.get_int("SCOIMCODCON","ve",1);
|
|
||||||
co = conf.get_int("SCOIMCODCON","ve",2);
|
|
||||||
so = conf.get_long("SCOIMCODCON","ve",3);
|
|
||||||
_sco_imp_bill_an.set(gr,co,so);
|
|
||||||
}
|
|
||||||
if (riga.is_sconto_perc())
|
if (riga.is_sconto_perc())
|
||||||
bill = _sco_perc_bill_an;
|
bill = _sco_perc_bill_an;
|
||||||
else
|
else
|
||||||
@ -361,7 +330,7 @@ bool TContabilizzazione_analitica::find_conti(const TRiga_documento& riga, TStri
|
|||||||
if (!bill.is_analitico())
|
if (!bill.is_analitico())
|
||||||
return true;
|
return true;
|
||||||
if (_usepdcc)
|
if (_usepdcc)
|
||||||
contanal.format("%03d%03d%06ld", bill.gruppo(), bill.conto(), bill.sottoconto());
|
contanal = bill.string(0x8); // format("%03d%03d%06ld", bill.gruppo(), bill.conto(), bill.sottoconto());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -375,7 +344,7 @@ bool TContabilizzazione_analitica::find_conti(const TRiga_documento& riga, TStri
|
|||||||
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();
|
||||||
if (_usepdcc)
|
if (_usepdcc)
|
||||||
contanal.format("%03d%03d%06ld", bill.gruppo(), bill.conto(), bill.sottoconto());
|
contanal = bill.string(0x8); // format("%03d%03d%06ld", bill.gruppo(), bill.conto(), bill.sottoconto());
|
||||||
else
|
else
|
||||||
contanal = anamag.get(tipocf == 'F' ? ANAMAG_CONTOINDA : ANAMAG_CONTOINDV);
|
contanal = anamag.get(tipocf == 'F' ? ANAMAG_CONTOINDA : ANAMAG_CONTOINDV);
|
||||||
}
|
}
|
||||||
@ -552,7 +521,7 @@ bool TContabilizzazione_analitica::elabora(TDocumento& doc, long numreg_cg, TVis
|
|||||||
const real qta = riga.get(RDOC_QTA);
|
const real qta = riga.get(RDOC_QTA);
|
||||||
// const real valore = riga.valore(true, decimals);
|
// const real valore = riga.valore(true, decimals);
|
||||||
real valore = riga.importo(true, false);
|
real valore = riga.importo(true, false);
|
||||||
|
|
||||||
if (valore.is_zero())
|
if (valore.is_zero())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@ -717,19 +686,37 @@ void TContabilizzazione_analitica::init()
|
|||||||
{
|
{
|
||||||
TConfig& cfg = ca_config();
|
TConfig& cfg = ca_config();
|
||||||
_usepdcc = cfg.get_bool("UsePdcc");
|
_usepdcc = cfg.get_bool("UsePdcc");
|
||||||
|
|
||||||
|
TConfig conf(CONFIG_DITTA, "ve");
|
||||||
|
_search_seq = conf.get("RICERCACR");
|
||||||
|
|
||||||
|
int gr = conf.get_int("SCOPRCODCON","ve",1);
|
||||||
|
int co = conf.get_int("SCOPRCODCON","ve",2);
|
||||||
|
long so = conf.get_long("SCOPRCODCON","ve",3);
|
||||||
|
_sco_perc_bill_an.set(gr,co,so);
|
||||||
|
|
||||||
|
gr = conf.get_int("SCOIMCODCON","ve",1);
|
||||||
|
co = conf.get_int("SCOIMCODCON","ve",2);
|
||||||
|
so = conf.get_long("SCOIMCODCON","ve",3);
|
||||||
|
_sco_imp_bill_an.set(gr,co,so);
|
||||||
|
|
||||||
|
_caus = new TCache_causali;
|
||||||
}
|
}
|
||||||
|
|
||||||
TContabilizzazione_analitica::TContabilizzazione_analitica()
|
TContabilizzazione_analitica::TContabilizzazione_analitica()
|
||||||
: TElaborazione(NULL), _error(no_error)
|
: TElaborazione(NULL), _error(no_error), _caus(NULL)
|
||||||
{
|
{
|
||||||
init();
|
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), _caus(NULL)
|
||||||
{
|
{
|
||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
TContabilizzazione_analitica::~TContabilizzazione_analitica()
|
TContabilizzazione_analitica::~TContabilizzazione_analitica()
|
||||||
{ }
|
{
|
||||||
|
if (_caus != NULL)
|
||||||
|
delete _caus;
|
||||||
|
}
|
||||||
|
@ -916,7 +916,7 @@ void TDocumento_mask::spese2mask()
|
|||||||
|
|
||||||
TString16 name("CODSP0");
|
TString16 name("CODSP0");
|
||||||
TString_array spese;
|
TString_array spese;
|
||||||
TRectype & ven_rec = c.vendite();
|
const TRectype & ven_rec = c.vendite();
|
||||||
for (int i = 1; i <= 4; i++)
|
for (int i = 1; i <= 4; i++)
|
||||||
{
|
{
|
||||||
name.rtrim(1); name << i;
|
name.rtrim(1); name << i;
|
||||||
@ -1321,7 +1321,7 @@ bool TDocumento_mask::ss_notify( TSheet_field& ss, int r, KEY key )
|
|||||||
if (key == K_CTRL + K_INS)
|
if (key == K_CTRL + K_INS)
|
||||||
{
|
{
|
||||||
TRiga_documento & riga = doc[r + 1];
|
TRiga_documento & riga = doc[r + 1];
|
||||||
TRectype & ven_rec = doc.clifor().vendite();
|
const TRectype & ven_rec = doc.clifor().vendite();
|
||||||
TString16 s(ven_rec.get(CFV_CODMAG));
|
TString16 s(ven_rec.get(CFV_CODMAG));
|
||||||
const TTipo_riga_documento & t = riga.tipo();
|
const TTipo_riga_documento & t = riga.tipo();
|
||||||
|
|
||||||
@ -2380,14 +2380,14 @@ bool TElabora_mask::elabora()
|
|||||||
{
|
{
|
||||||
const char provv = get(F_PROVV_ELAB)[0];
|
const char provv = get(F_PROVV_ELAB)[0];
|
||||||
const int anno = get_int(F_ANNO_ELAB);
|
const int anno = get_int(F_ANNO_ELAB);
|
||||||
const TString16 codnum(get(F_CODNUM_ELAB));
|
const TString& codnum = get(F_CODNUM_ELAB);
|
||||||
const TString16 tipo(get(F_TIPODOC_ELAB));
|
const TString& tipo = get(F_TIPODOC_ELAB);
|
||||||
const TString16 stato(get(F_STATODOC_ELAB));
|
const TString& stato = get(F_STATODOC_ELAB);
|
||||||
|
|
||||||
if (anno == 0 || codnum.empty() || tipo.empty() || stato.empty())
|
if (anno <= 0 || codnum.blank() || tipo.blank() || stato.blank())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
TDocumento* newdoc = new TDocumento(provv, anno , codnum, numdoc);
|
TDocumento* newdoc = new TDocumento(provv, anno, codnum, numdoc);
|
||||||
TDocumento& d = *newdoc;
|
TDocumento& d = *newdoc;
|
||||||
|
|
||||||
if (numdoc <= 0)
|
if (numdoc <= 0)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user