Aggiunti metodi set, operatori = e costruttori di copia a TRata e TRate_doc
Correto metodo di lettura rate git-svn-id: svn://10.65.10.50/trunk@5704 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
84c3f53143
commit
72a110b90a
24
pr/prlib.h
24
pr/prlib.h
@ -41,11 +41,14 @@ public:
|
||||
void set_impprovv(real& r) { _impprovv = r; }
|
||||
void set_saldata(bool b = TRUE) { _saldata = b; }
|
||||
void set_generata(const bool g = TRUE) { _generata = g ? 'D' : ' '; }
|
||||
void set(TRectype& rec);
|
||||
void set(const TRectype& rec);
|
||||
void set(const TRata& r);
|
||||
void set(TToken_string& t);
|
||||
TRata(TRectype& rec);
|
||||
const TRata& operator = (const TRata & r) { set(r);return *this;}
|
||||
TRata(const TRectype& rec);
|
||||
TRata(const TRata & r) { set(r);}
|
||||
TRata() { _generata = ' ';}
|
||||
~TRata() {}
|
||||
virtual ~TRata() {}
|
||||
};
|
||||
|
||||
class TRate_doc : public TObject
|
||||
@ -61,8 +64,8 @@ class TRate_doc : public TObject
|
||||
public:
|
||||
virtual TObject* dup() const { return new TRate_doc(*this); }
|
||||
const int anno() const { return _anno; }
|
||||
const TString16& codnum() const { return _codnum; }
|
||||
const TString16& codval() const { return _codval; }
|
||||
const TString& codnum() const { return _codnum; }
|
||||
const TString& codval() const { return _codval; }
|
||||
const long ndoc() const { return _ndoc; }
|
||||
const long codcf() const { return _codcf; }
|
||||
const TDate datadoc() const { return _datadoc; }
|
||||
@ -80,10 +83,13 @@ public:
|
||||
void sort_rate() {_rows.sort();}
|
||||
// Controlla che la somma delle provvigioni delle singole rate sia <= della provvigione del documento
|
||||
bool ok_provvigione();
|
||||
void set(TRectype& rec);
|
||||
void set(const TRectype& rec);
|
||||
void set(const TRate_doc & r);
|
||||
void set(TToken_string& t);
|
||||
TRate_doc(TRectype& rec);
|
||||
~TRate_doc() {}
|
||||
const TRate_doc & operator =(const TRate_doc& r) { set(r); return *this;}
|
||||
TRate_doc(const TRectype& rec);
|
||||
TRate_doc(const TRate_doc& r) { set(r);}
|
||||
virtual ~TRate_doc() {}
|
||||
};
|
||||
|
||||
class TProvvigioni_agente : public TRectype
|
||||
@ -121,7 +127,7 @@ public:
|
||||
void destroy() { _rate.destroy(); }
|
||||
TProvvigioni_agente(const char* agente);
|
||||
TProvvigioni_agente() ;
|
||||
~TProvvigioni_agente();
|
||||
virtual ~TProvvigioni_agente();
|
||||
};
|
||||
|
||||
class TAgente : public TRectype
|
||||
|
@ -70,12 +70,18 @@ int TProvvigioni_agente::read(const char* agente, const int anno, const char* co
|
||||
key.format("%4d%4s%7ld",anno1,(const char*)codnum1,ndoc1); // Compone la chiave
|
||||
|
||||
const bool exist = _rate.is_key(key); // Guarda se esiste gia' questo documento
|
||||
TRate_doc com_rata(r);
|
||||
TRate_doc& rd = exist ? (TRate_doc&) _rate[key] : com_rata;
|
||||
|
||||
if (!exist)
|
||||
_rate.add(key,(TRate_doc*)new TRate_doc(r), exist);
|
||||
|
||||
TRate_doc& rd = (TRate_doc&)_rate[key];
|
||||
|
||||
//TRate_doc com_rata(r);
|
||||
//TRate_doc& rd = exist ? (TRate_doc&) _rate[key] : com_rata;
|
||||
TRata* rt = new TRata(r);
|
||||
rd.add_rata(rt);
|
||||
|
||||
_rate.add(key,rd,exist); // Sostituisce/aggiunge l'elemento
|
||||
//_rate.add(key,rd,exist); // Sostituisce/aggiunge l'elemento
|
||||
}
|
||||
|
||||
// Dopo aver letto le righe, ordina le rate per ogni documento
|
||||
@ -219,7 +225,7 @@ void TProvvigioni_agente::remove_rate(const char* key)
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// TRate_doc
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
TRate_doc::TRate_doc(TRectype& rec)
|
||||
TRate_doc::TRate_doc(const TRectype& rec)
|
||||
{
|
||||
set(rec); // bleah!
|
||||
}
|
||||
@ -242,7 +248,7 @@ bool TRate_doc::ok_provvigione()
|
||||
return totprov <= _impprdoc; // controlla che tale somma e' compresa nel totale provvigione del documento
|
||||
}
|
||||
|
||||
void TRate_doc::set(TRectype& rec)
|
||||
void TRate_doc::set(const TRectype& rec)
|
||||
{
|
||||
CHECK(rec.num() == LF_PROVV,"Il record non ha il tracciato di LF_PROVV");
|
||||
_anno = rec.get_int(PROV_ANNO);
|
||||
@ -258,6 +264,21 @@ void TRate_doc::set(TRectype& rec)
|
||||
_cambio = rec.get_real(PROV_CAMBIO);
|
||||
}
|
||||
|
||||
void TRate_doc::set(const TRate_doc& r)
|
||||
{
|
||||
_anno = r._anno;
|
||||
_codnum = r._codnum;
|
||||
_codval = r._codval;
|
||||
_ndoc = r._ndoc;
|
||||
_codcf = r._codcf;
|
||||
_datadoc = r._datadoc;
|
||||
_datacambio = r._datacambio;
|
||||
_impdoc = r._impdoc;
|
||||
_impprdoc = r._impprdoc;
|
||||
_impnetdoc = r._impnetdoc;
|
||||
_cambio = r._cambio;
|
||||
}
|
||||
|
||||
void TRate_doc::set(TToken_string& t)
|
||||
{
|
||||
CHECK(t.items() >= 11, "Numero di items non valido");
|
||||
@ -306,7 +327,7 @@ void TRata::set(TToken_string& t)
|
||||
_tipopagpr = t.get_int(10);
|
||||
}
|
||||
|
||||
void TRata::set(TRectype& rec)
|
||||
void TRata::set(const TRectype& rec)
|
||||
{
|
||||
CHECK(rec.num() == LF_PROVV,"Il record non ha il tracciato di LF_PROVV");
|
||||
_datascad = rec.get_date(PROV_DATASCAD);
|
||||
@ -323,11 +344,27 @@ void TRata::set(TRectype& rec)
|
||||
_tipopagpr = rec.get_int(PROV_TIPOPAGPR);
|
||||
}
|
||||
|
||||
TRata::TRata(TRectype& rec)
|
||||
TRata::TRata(const TRectype& rec)
|
||||
{
|
||||
set(rec);
|
||||
}
|
||||
|
||||
void TRata::set(const TRata& r)
|
||||
{
|
||||
_datascad = r._datascad;
|
||||
_tipopag = r._tipopag;
|
||||
_imprata = r._imprata;
|
||||
_impprovv = r._impprovv;
|
||||
_pagato = r._pagato;
|
||||
_provvpag = r._provvpag;
|
||||
_pagmat = r._pagmat;
|
||||
_provvmat = r._provvmat;
|
||||
_saldata = r._saldata;
|
||||
_nrata = r._nrata;
|
||||
_generata = r._generata;
|
||||
_tipopagpr = r._tipopagpr;
|
||||
}
|
||||
|
||||
int TAgente::read(const char * codice)
|
||||
{
|
||||
TLocalisamfile f(LF_AGENTI);
|
||||
|
Loading…
x
Reference in New Issue
Block a user