diff --git a/src/cg/cgsaldac.cpp b/src/cg/cgsaldac.cpp index 73451ac9a..ab286d628 100755 --- a/src/cg/cgsaldac.cpp +++ b/src/cg/cgsaldac.cpp @@ -1385,12 +1385,12 @@ char TPartita::_cli_align = ' '; char TPartita::_for_align = ' '; bool TPartita::_diffcam_always = false; -TPartita::TPartita(const TBill& clifo, int anno, const char* num) - : _unassigned(LF_PAGSCA, PAGSCA_NRIGP), _align(' ') +TPartita::TPartita(const TBill& clifo, int anno, const char* num) + : _unassigned(LF_PAGSCA, PAGSCA_NRIGP), _align(' '), _patched(false) { read(clifo, anno, num); } TPartita::TPartita(const TRectype& r) - : _unassigned(LF_PAGSCA, PAGSCA_NRIGP), _align(' ') + : _unassigned(LF_PAGSCA, PAGSCA_NRIGP), _align(' '), _patched(false) { TBill clifo; clifo.get(r); if (clifo.gruppo() == 0 && r.num() == LF_PARTITE) @@ -1640,6 +1640,7 @@ bool TPartita::read(const TBill& clifo, int year, const char* num) _conto = clifo; _anno = year; _num = num; + _patched = false; if (allineamento_corrente() > ' ') { @@ -1684,7 +1685,6 @@ bool TPartita::read(const TBill& clifo, int year, const char* num) TAssoc_array regs; int firstrow =first(); - bool changed = false; for (int r = last(); r >= firstrow; r = pred(r)) { @@ -1703,7 +1703,7 @@ bool TPartita::read(const TBill& clifo, int year, const char* num) { ((TRiga_partite &)_part.row(r)).zero(PART_NREG); ((TRiga_partite &)_part.row(r)).zero(PART_NUMRIG); - changed = true; + _patched = true; } else regs.add(key); @@ -1725,7 +1725,7 @@ bool TPartita::read(const TBill& clifo, int year, const char* num) { ((TRiga_partite &)_part.row(r)).zero(PART_NREG); ((TRiga_partite &)_part.row(r)).zero(PART_NUMRIG); - changed = true; + _patched = true; } } } @@ -1750,7 +1750,7 @@ bool TPartita::read(const TBill& clifo, int year, const char* num) if (!esiste(rigap)) { recover_rpart(pag, rigap); - changed = true; + _patched = true; } } } @@ -1792,10 +1792,10 @@ bool TPartita::read(const TBill& clifo, int year, const char* num) if (!esiste(rigap)) { recover_rpart(pag, rigap, f); - changed = true; + _patched = true; } } - if (changed) + if (_patched) rewrite(); return ok(); } diff --git a/src/cg/cgsaldac.h b/src/cg/cgsaldac.h index 25f88d7a5..8b0d3c30d 100755 --- a/src/cg/cgsaldac.h +++ b/src/cg/cgsaldac.h @@ -235,6 +235,7 @@ class TPartita : public TSortable TRiga_partite_array _part; TRecord_array _unassigned; char _align; // current _num alignment + bool _patched; static char _cli_align, _for_align; // default _num alignment static bool _diffcam_always; @@ -279,6 +280,7 @@ public: bool reread(); bool read(const TBill& clifo, int anno, const char* num); + bool patched() const { return _patched; } bool write(bool re = false) const; bool rewrite() const { return write(true); } bool remove() const;