Corretta gestione riferimenti da rata a riga partita

git-svn-id: svn://10.65.10.50/trunk@1897 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1995-09-26 15:07:16 +00:00
parent 6addcbeceb
commit a887382158
3 changed files with 26 additions and 7 deletions

View File

@ -1141,14 +1141,13 @@ else
oldiva = imposta;
oldposiva = newposiva;
if (r == 0) // Se cambio la prima riga ...
app().add_cgs_tot(app().curr_mask()); // ... ricalcola conti
TMask& m = app().curr_mask();
if (r == 0) // Se cambio la prima riga ...
app().add_cgs_tot(m); // ... ricalcola conti
TMask& m = app().curr_mask();
if (app().is_saldaconto() && m.page_enabled(2))
app().set_scadenze(m);
}
return TRUE;
}

View File

@ -25,7 +25,6 @@ TTree_rectype::TTree_rectype(const TTree_rectype& t)
{
}
TObject* TTree_rectype::dup() const
{
TTree_rectype* r = new TTree_rectype(*this);
@ -217,6 +216,12 @@ TRiga_scadenze::TRiga_scadenze(const TRiga_scadenze& s)
: TTree_rectype(s), _riga(s._riga)
{}
TObject* TRiga_scadenze::dup() const
{
TRiga_scadenze* r = new TRiga_scadenze(*this);
return r;
}
TPartita& TRiga_scadenze::partita() const
{
return riga().partita();
@ -457,7 +462,18 @@ TRiga_partite::TRiga_partite(TPartita* game)
TRiga_partite::TRiga_partite(const TRiga_partite& r)
: TTree_rectype(r), _partita(r._partita)
{}
{
update_rigaptr();
}
void TRiga_partite::update_rigaptr()
{
for (int i = rate(); i >= 0; i--)
{
TRiga_scadenze& scad = i == 0 ? (TRiga_scadenze&)rows_array().key() : rata(i);
scad._riga = this;
}
}
TRiga_scadenze& TRiga_partite::new_row(int r)
{
@ -491,6 +507,7 @@ int TRiga_partite::read(TBaseisamfile& f, word op)
{
TRiga_scadenze* s = new TRiga_scadenze(this);
err = rows_array().read(s); // Deve esistere almento una scadenza
update_rigaptr();
}
else
rows_array().destroy_rows();

View File

@ -122,7 +122,7 @@ protected:
bool elimina_pagamento(int p);
protected: // TRecord_tree
virtual TObject* dup() const { return new TRiga_scadenze(*this); }
virtual TObject* dup() const;
public:
bool chiusa(bool update = FALSE) const;
@ -147,6 +147,9 @@ class TRiga_partite : public TTree_rectype
friend class TRiga_scadenze;
TPartita* _partita;
protected:
void update_rigaptr();
public: // TTree_rectype
virtual TObject* dup() const { return new TRiga_partite(*this); }
virtual int read(TBaseisamfile& f, word op);