Correzioni relative ai metodi di lettura (per agente o per singolo
documento), spostato il tipo pagamento sulla rata. git-svn-id: svn://10.65.10.50/trunk@5432 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
4d8473d254
commit
df9fd5a87e
10
pr/prlib.h
10
pr/prlib.h
@ -16,13 +16,14 @@ class TRata : public TSortable
|
||||
TDate _datascad;
|
||||
real _imprata, _impprovv, _pagato, _provvpag, _pagmat, _provvmat;
|
||||
bool _saldata;
|
||||
int _nrata,_tipopagpr;
|
||||
int _nrata,_tipopagpr,_tipopag;
|
||||
char _generata;
|
||||
|
||||
public:
|
||||
virtual TObject* dup() const { return new TRata(*this); }
|
||||
virtual int compare(const TSortable& s) const;
|
||||
const int rata() const { return _nrata;}
|
||||
const int tipopag() const { return _tipopag;}
|
||||
const TDate datascad() const { return _datascad; }
|
||||
const real imprata() const { return _imprata;}
|
||||
const real impprovv() const { return _impprovv;}
|
||||
@ -34,15 +35,16 @@ public:
|
||||
const char generata() const { return _generata;}
|
||||
const int tipopagpr()const { return _tipopagpr;}
|
||||
void set_rata(int n) { _nrata = n; }
|
||||
void set_tipopag(int t) { _tipopag = t; }
|
||||
void set_datascad(TDate& d) { _datascad = d; }
|
||||
void set_imprata(real& r) { _imprata = r; }
|
||||
void set_impprovv(real& r) { _impprovv = r; }
|
||||
void set_saldata(bool b = TRUE) { _saldata = b; }
|
||||
void set_generata(char g = ' ') { _generata = g; }
|
||||
void set_generata(const bool g = TRUE) { _generata = g ? 'D' : ' '; }
|
||||
void set(TRectype& rec);
|
||||
void set(TToken_string& t);
|
||||
TRata(TRectype& rec);
|
||||
TRata() {}
|
||||
TRata() { _generata = ' ';}
|
||||
~TRata() {}
|
||||
};
|
||||
|
||||
@ -54,7 +56,6 @@ class TRate_doc : public TObject
|
||||
long _ndoc,_codcf;
|
||||
TDate _datadoc,_datacambio;
|
||||
real _impdoc,_impprdoc,_impnetdoc,_cambio;
|
||||
char _tipopag;
|
||||
TArray _rows; // Rate del documento. La rata 0 corrisponde alla provvigione all'atto della fatturazione
|
||||
// Array di TRata
|
||||
public:
|
||||
@ -66,7 +67,6 @@ public:
|
||||
const long codcf() const { return _codcf; }
|
||||
const TDate datadoc() const { return _datadoc; }
|
||||
const TDate datacam() const { return _datacambio;}
|
||||
const char tipo() const { return _tipopag;}
|
||||
const real impdoc() const { return _impdoc;}
|
||||
const real impprdoc() const { return _impprdoc;}
|
||||
const real cambio() const { return _cambio;}
|
||||
|
@ -9,14 +9,14 @@ TProvvigioni_agente::TProvvigioni_agente() : TRectype(LF_AGENTI)
|
||||
{
|
||||
// _rows = new TRecord_array(LF_PROVV,PROV_NRIGA);
|
||||
_provv_rel = new TRelation(LF_PROVV);
|
||||
_provv_cur = new TCursor(_provv_rel);
|
||||
_provv_cur = new TCursor(_provv_rel, "", 2);
|
||||
}
|
||||
|
||||
TProvvigioni_agente::TProvvigioni_agente(const char* agente) : TRectype(LF_AGENTI)
|
||||
{
|
||||
//_rows = new TRecord_array(LF_PROVV,PROV_NRIGA);
|
||||
_provv_rel = new TRelation(LF_PROVV);
|
||||
_provv_cur = new TCursor(_provv_rel);
|
||||
_provv_cur = new TCursor(_provv_rel, "", 2);
|
||||
read(agente);
|
||||
}
|
||||
|
||||
@ -37,7 +37,8 @@ int TProvvigioni_agente::read(const char* agente, const int anno, const char* co
|
||||
err = TRectype::read(age); // Carica i dati dell'agente
|
||||
if (err != NOERR)
|
||||
return err;
|
||||
|
||||
|
||||
// Legge tramite chiave 2 del file (per documento)
|
||||
_agente = agente;
|
||||
|
||||
TRectype rec_from(LF_PROVV);
|
||||
@ -88,26 +89,32 @@ int TProvvigioni_agente::rate2rows(int action)
|
||||
{
|
||||
// Scorre gli elementi di _rate (TDoc_rate) uno ad uno
|
||||
// per settare le righe provvigionali
|
||||
// Scrive tramite chiave 1: utilizzando un solo record array (CODAGE+NROW)
|
||||
TRecord_array* rows = new TRecord_array(LF_PROVV,PROV_NROW);
|
||||
TRectype* k = new TRectype(LF_PROVV);
|
||||
k->put(PROV_CODAGE, _agente);
|
||||
rows->set_key(k);
|
||||
TString_array kl;
|
||||
int nrow = 1; // Numero riga per agente e per documento
|
||||
const int items = documenti(kl); // Prende l'elenco dei documenti
|
||||
kl.sort(); // ordina per documento
|
||||
int err = NOERR;
|
||||
for (int i = 0; i < items && err == NOERR; i++)
|
||||
{
|
||||
TRate_doc& rd = (TRate_doc&)_rate[kl.row(i)];
|
||||
const int anno = rd.anno();
|
||||
const int anno = rd.anno();
|
||||
const long ndoc = rd.ndoc();
|
||||
TString codnum(rd.codnum());
|
||||
TRecord_array* rows = new TRecord_array(LF_PROVV,PROV_NRIGA);
|
||||
TDate datadoc(rd.datadoc());
|
||||
real impdoc = rd.impdoc();
|
||||
real impprdoc = rd.impprdoc();
|
||||
real impnet = rd.impnet();
|
||||
const long codcf = rd.codcf();
|
||||
TString codval(rd.codval());
|
||||
TDate datacam(rd.datacam());
|
||||
real cambio = rd.cambio();
|
||||
// Chiave del TRecord_array
|
||||
TRectype* k = new TRectype(LF_PROVV);
|
||||
k->put(PROV_CODAGE, _agente);
|
||||
k->put(PROV_ANNO,anno);
|
||||
k->put(PROV_CODNUM,codnum);
|
||||
k->put(PROV_NDOC,ndoc);
|
||||
rows->set_key(k);
|
||||
const int ritems = rd.items(); // Ciclo per rate di questo documento
|
||||
int nrow = 1;
|
||||
for (int j = 0; j < ritems; j++)
|
||||
{
|
||||
TRata& rt = rd[j];
|
||||
@ -116,22 +123,23 @@ int TProvvigioni_agente::rate2rows(int action)
|
||||
record->put(PROV_ANNO,anno);
|
||||
record->put(PROV_CODNUM,codnum);
|
||||
record->put(PROV_NDOC,ndoc);
|
||||
record->put(PROV_NRIGA,nrow++);
|
||||
record->put(PROV_NROW,nrow++);
|
||||
record->put(PROV_NRIGA,j+1);
|
||||
record->put(PROV_NRATA,rt.rata());
|
||||
record->put(PROV_GENERATA,rt.generata());
|
||||
record->put(PROV_SALDATA,rt.saldata());
|
||||
record->put(PROV_TIPOPAGPR,rt.tipopagpr());
|
||||
record->put(PROV_DATADOC,rd.datadoc());
|
||||
record->put(PROV_IMPDOC,rd.impdoc());
|
||||
record->put(PROV_IMPPRDOC,rd.impprdoc());
|
||||
record->put(PROV_IMPNETDOC,rd.impnet());
|
||||
record->put(PROV_CODCLI,rd.codcf());
|
||||
record->put(PROV_TIPOPAG,rd.tipo());
|
||||
record->put(PROV_CODVAL,rd.codval());
|
||||
record->put(PROV_DATACAMBIO,rd.datacam());
|
||||
record->put(PROV_CAMBIO,rd.cambio());
|
||||
record->put(PROV_DATADOC,datadoc);
|
||||
record->put(PROV_IMPDOC,impdoc);
|
||||
record->put(PROV_IMPPRDOC,impprdoc);
|
||||
record->put(PROV_IMPNETDOC,impnet);
|
||||
record->put(PROV_CODCLI,codcf);
|
||||
record->put(PROV_CODVAL,codval);
|
||||
record->put(PROV_DATACAMBIO,datacam);
|
||||
record->put(PROV_CAMBIO,cambio);
|
||||
record->put(PROV_DATASCAD,rt.datascad());
|
||||
record->put(PROV_IMPRATA,rt.imprata());
|
||||
record->put(PROV_TIPOPAG,rt.tipopag());
|
||||
record->put(PROV_IMPPROVV,rt.impprovv());
|
||||
record->put(PROV_PAGATO,rt.pagato());
|
||||
record->put(PROV_PROVVPAG,rt.provvpag());
|
||||
@ -153,8 +161,8 @@ int TProvvigioni_agente::rate2rows(int action)
|
||||
default: // remove
|
||||
break;
|
||||
}
|
||||
delete rows;
|
||||
}
|
||||
delete rows;
|
||||
return err;
|
||||
}
|
||||
|
||||
@ -240,7 +248,6 @@ void TRate_doc::set(TRectype& rec)
|
||||
_codcf = rec.get_long(PROV_CODCLI);
|
||||
_datadoc = rec.get_date(PROV_DATADOC);
|
||||
_datacambio = rec.get_date(PROV_DATACAMBIO);
|
||||
_tipopag = rec.get_char(PROV_TIPOPAG);
|
||||
_impdoc = rec.get_real(PROV_IMPDOC);
|
||||
_impprdoc = rec.get_real(PROV_IMPPRDOC);
|
||||
_impnetdoc = rec.get_real(PROV_IMPNETDOC);
|
||||
@ -249,7 +256,7 @@ void TRate_doc::set(TRectype& rec)
|
||||
|
||||
void TRate_doc::set(TToken_string& t)
|
||||
{
|
||||
CHECK(t.items() >= 12, "Numero di items non valido");
|
||||
CHECK(t.items() >= 11, "Numero di items non valido");
|
||||
_anno = t.get_int(0);
|
||||
_codnum = t.get(1);
|
||||
_ndoc = t.get_long(2);
|
||||
@ -258,10 +265,9 @@ void TRate_doc::set(TToken_string& t)
|
||||
_impprdoc = t.get(5);
|
||||
_impnetdoc = t.get(6);
|
||||
_codcf = t.get_long(7);
|
||||
_tipopag = t.get_char(8);
|
||||
_codval = t.get(9);
|
||||
_cambio = t.get(10);
|
||||
_datacambio = t.get(11);
|
||||
_codval = t.get(8);
|
||||
_cambio = t.get(9);
|
||||
_datacambio = t.get(10);
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
@ -282,23 +288,25 @@ int TRata::compare(const TSortable& s) const
|
||||
|
||||
void TRata::set(TToken_string& t)
|
||||
{
|
||||
CHECK(t.items() == 10, "Troppi pochi elementi nella token string");
|
||||
CHECK(t.items() == 11, "Troppi pochi elementi nella token string");
|
||||
_nrata = t.get_int(0);
|
||||
_datascad = t.get(1);
|
||||
_imprata = t.get(2);
|
||||
_impprovv = t.get(3);
|
||||
_pagmat = t.get(4);
|
||||
_provvmat = t.get(5);
|
||||
_pagato = t.get(6);
|
||||
_provvpag = t.get(7);
|
||||
_saldata = t.get(8)[0] == 'X' ? TRUE : FALSE;
|
||||
_tipopagpr = t.get_int(9);
|
||||
_tipopag = t.get_int(2);
|
||||
_imprata = t.get(3);
|
||||
_impprovv = t.get(4);
|
||||
_pagmat = t.get(5);
|
||||
_provvmat = t.get(6);
|
||||
_pagato = t.get(7);
|
||||
_provvpag = t.get(8);
|
||||
_saldata = t.get(9)[0] == 'X' ? TRUE : FALSE;
|
||||
_tipopagpr = t.get_int(10);
|
||||
}
|
||||
|
||||
void TRata::set(TRectype& rec)
|
||||
{
|
||||
CHECK(rec.num() == LF_PROVV,"Il record non ha il tracciato di LF_PROVV");
|
||||
_datascad = rec.get_date(PROV_DATASCAD);
|
||||
_tipopag = rec.get_int(PROV_TIPOPAG);
|
||||
_imprata = rec.get_real(PROV_IMPRATA);
|
||||
_impprovv = rec.get_real(PROV_IMPPROVV);
|
||||
_pagato = rec.get_real(PROV_PAGATO);
|
||||
|
Loading…
x
Reference in New Issue
Block a user