diff --git a/ve/velib.h b/ve/velib.h index 7e26e9ea2..58b81ff70 100755 --- a/ve/velib.h +++ b/ve/velib.h @@ -668,25 +668,25 @@ protected: virtual TRiepilogo_iva & copy(const TRiepilogo_iva & a); public: - real imponibile(bool spese = TRUE) const { return _imp + (spese ? _imp_spese : ZERO);} // Imponibile - real imposta(bool spese = TRUE) const { return _iva + (spese ? _iva_spese : ZERO);} // Iva - real & imp() { return _imp;}; - real & imp_orig() { return _imp_orig;}; - real & imp_spese() { return _imp_spese;}; - real & imp_spese_row() { return _imp_spese_row;}; - real & iva() { return _iva;}; - real & iva_spese() { return _iva_spese;}; - real & iva_sconto() { return _iva_sconto;}; - const real & iva_sconto() const { return _iva_sconto;}; - real & sconto_perc() { return _sconto_perc; } + real imponibile(bool spese = true) const { return _imp + (spese ? _imp_spese : ZERO); } // Imponibile + real imposta(bool spese = true) const { return _iva + (spese ? _iva_spese : ZERO); } // Iva + real& imp() { return _imp; } + real& imp_orig() { return _imp_orig; } + real& imp_spese() { return _imp_spese; } + real& imp_spese_row() { return _imp_spese_row; } + real& iva() { return _iva; } + real& iva_spese() { return _iva_spese; } + real& iva_sconto() { return _iva_sconto; } + const real & iva_sconto() const { return _iva_sconto; } + real& sconto_perc() { return _sconto_perc; } const real& sconto_perc() const { return _sconto_perc; } - real & sconto_imp () { return _sconto_imp; } - const real & sconto_imp () const { return _sconto_imp; } - const TCodiceIVA & cod_iva() const { return _codiva;} - byte tipo(){ return _tipo;}// Tipo (Vedi opzioni per la selzione di filtro nella validate()) - TRiepilogo_iva& operator = (const TRiepilogo_iva & a) {return copy(a);} + real& sconto_imp () { return _sconto_imp; } + const real& sconto_imp () const { return _sconto_imp; } + const TCodiceIVA & cod_iva() const { return _codiva; } + byte tipo(){ return _tipo; }// Tipo (Vedi opzioni per la selzione di filtro nella validate()) + TRiepilogo_iva& operator = (const TRiepilogo_iva & a) { return copy(a); } TRiepilogo_iva(const TCodiceIVA & codiva); - TRiepilogo_iva(const TRiepilogo_iva & a) {copy(a);} + TRiepilogo_iva(const TRiepilogo_iva & a) { copy(a); } TRiepilogo_iva() : _tipo(0) {} ~TRiepilogo_iva() {}; }; @@ -1085,27 +1085,29 @@ public: //////////////////////// //classe TDoc_key -class TDoc_key: public TToken_string +class TDoc_key : public TToken_string { public: - const char provv(); - const int anno(); - const char* codnum(); - const long ndoc(); + virtual TObject* dup() const { return new TDoc_key(*this); } + + const char provv() const; + const int anno() const; + const char* codnum() const; + const long ndoc() const; void set_provv(const char = 'D'); void set_anno(const int anno); void set_codnum(const char* codnum); void set_ndoc(const long ndoc); - TDoc_key& operator= (const char* key){set(key);} + TDoc_key& operator= (const char* key) {set(key); } TDoc_key(const int anno, const TString& codnum, const long ndoc, const char provv = 'D'); TDoc_key(const TRectype& rec); TDoc_key(const char* key):TToken_string(key){} TDoc_key(const TToken_string& key):TToken_string(key){} TDoc_key(const TDoc_key& key):TToken_string(key){} - TDoc_key():TToken_string(){} + TDoc_key() {} }; ///////////////////////// @@ -1113,21 +1115,23 @@ public: ///////////////////////// //classe TRdoc_key -class TRdoc_key: public TToken_string +class TRdoc_key: public TDoc_key { public: - const char provv(); - const int anno(); - const char* codnum(); - const long ndoc(); - const int nriga(); + virtual TObject* dup() const { return new TRdoc_key(*this); } - TRdoc_key& operator= (const char* key){set(key);} + const int nriga() const; + + TRdoc_key& operator= (const char* key) { set(key); } + TRdoc_key& operator= (const TToken_string& key) { set(key); } + TRdoc_key& operator= (const TRdoc_key& key) { set(key); } TRdoc_key(const int anno, const TString& codnum, const long ndoc, const int nriga, const char provv = 'D'); - TRdoc_key(const char* key):TToken_string(key){} - TRdoc_key(const TToken_string& key):TToken_string(key){} - TRdoc_key(const TRdoc_key& key):TToken_string(key){} + TRdoc_key(const char* key) : TDoc_key(key) {} + TRdoc_key(const TToken_string& key) : TDoc_key(key) {} + TRdoc_key(const TRdoc_key& key) : TDoc_key(key) {} + TRdoc_key(const TRectype& rec); + TRdoc_key() {} }; #endif diff --git a/ve/velib03a.cpp b/ve/velib03a.cpp index db61399da..f17757b0f 100755 --- a/ve/velib03a.cpp +++ b/ve/velib03a.cpp @@ -5,6 +5,7 @@ #include "velib.h" #include "vepriv.h" #include "verig.h" + #include "../db/dblib.h" #include "../mg/mglib.h" @@ -1071,28 +1072,32 @@ int TFormula_documento::read(const char* codice, const char * expr, bool numexpr //// TDOC_KEY //// //////////////////////// -//CODNUM: metodo che restituisce il codnum dalla TToken_string chiave dei documenti -const char TDoc_key::provv() +//CODNUM: metodo che restituisce il provv dalla TToken_string chiave dei documenti +const char TDoc_key::provv() const { - return get(0)[0]; + return (*this)[0]; } //ANNO: metodo che restituisce l'anno dalla TToken_string chiave dei documenti -const int TDoc_key::anno() +const int TDoc_key::anno() const { - return get_int(1); + int anno = 0; get(1, anno); + return anno; } //CODNUM: metodo che restituisce il codnum dalla TToken_string chiave dei documenti -const char* TDoc_key::codnum() +const char* TDoc_key::codnum() const { - return get(2); + TString& codnum = get_tmp_string(); + get(2, codnum); + return codnum; } //NDOC: metodo che restituisce il numero documento dalla TToken_string chiave dei documenti -const long TDoc_key::ndoc() +const long TDoc_key::ndoc() const { - return get_int(3); + long n = 0; get(3, n); + return n; } //SET_PROVV: metodo che setta il campo provv @@ -1130,51 +1135,52 @@ TDoc_key::TDoc_key(const int anno, const TString& codnum, const long ndoc, const TDoc_key::TDoc_key(const TRectype& rec) { - add(rec.get_char(DOC_PROVV)); - add(rec.get_int(DOC_ANNO)); - add(rec.get(DOC_CODNUM)); - add(rec.get_long(DOC_NDOC)); + switch (rec.num()) + { + case LF_MOVMAG: + add(rec.get_char(MOVMAG_DOCPROVV)); + add(rec.get_int(MOVMAG_ANNODOC)); + add(rec.get(MOVMAG_CODNUM)); + add(rec.get_long(MOVMAG_NUMDOC)); + break; + default: + add(rec.get_char(DOC_PROVV)); + add(rec.get_int(DOC_ANNO)); + add(rec.get(DOC_CODNUM)); + add(rec.get_long(DOC_NDOC)); + break; + } } ///////////////////////// //// TRDOC_KEY //// ///////////////////////// -//CODNUM: metodo che restituisce il codnum dalla TToken_string chiave dei documenti -const char TRdoc_key::provv() +const int TRdoc_key::nriga() const { - return get(0)[0]; -} - -//ANNO: metodo che restituisce l'anno dalla TToken_string chiave dei documenti -const int TRdoc_key::anno() -{ - return get_int(1); -} - -//CODNUM: metodo che restituisce il codnum dalla TToken_string chiave dei documenti -const char* TRdoc_key::codnum() -{ - return get(2); -} - -//NDOC: metodo che restituisce il numero documento dalla TToken_string chiave dei documenti -const long TRdoc_key::ndoc() -{ - return get_int(3); -} - -const int TRdoc_key::nriga() -{ - return get_int(4); + int riga = 0; get(4, riga); + return riga; } //metodi costruttori TRdoc_key::TRdoc_key(const int anno, const TString& codnum, const long ndoc, const int nriga, const char provv) + : TDoc_key(anno, codnum, ndoc, provv) { - add(provv); - add(anno); - add(codnum); - add(ndoc); - add(nriga); + add(nriga, 4); } + +TRdoc_key::TRdoc_key(const TRectype& rec) +{ + switch (rec.num()) + { + case LF_RIGHEDOC: + default: + add(rec.get(RDOC_PROVV)); + add(rec.get(RDOC_ANNO)); + add(rec.get(RDOC_CODNUM)); + add(rec.get(RDOC_NDOC)); + add(rec.get(RDOC_NRIGA)); + break; + } +} +