Patch level : 12.00 1280

Files correlati     : sc0.exe
Commento            :

Programma di controllo e ripristino partite errate.
This commit is contained in:
Alessandro Bonazzi 2023-09-19 14:48:01 +02:00
parent 67282f4129
commit 9a31c00732
2 changed files with 11 additions and 9 deletions

View File

@ -1386,11 +1386,11 @@ char TPartita::_for_align = ' ';
bool TPartita::_diffcam_always = false; bool TPartita::_diffcam_always = false;
TPartita::TPartita(const TBill& clifo, int anno, const char* num) TPartita::TPartita(const TBill& clifo, int anno, const char* num)
: _unassigned(LF_PAGSCA, PAGSCA_NRIGP), _align(' ') : _unassigned(LF_PAGSCA, PAGSCA_NRIGP), _align(' '), _patched(false)
{ read(clifo, anno, num); } { read(clifo, anno, num); }
TPartita::TPartita(const TRectype& r) TPartita::TPartita(const TRectype& r)
: _unassigned(LF_PAGSCA, PAGSCA_NRIGP), _align(' ') : _unassigned(LF_PAGSCA, PAGSCA_NRIGP), _align(' '), _patched(false)
{ {
TBill clifo; clifo.get(r); TBill clifo; clifo.get(r);
if (clifo.gruppo() == 0 && r.num() == LF_PARTITE) 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; _conto = clifo;
_anno = year; _anno = year;
_num = num; _num = num;
_patched = false;
if (allineamento_corrente() > ' ') if (allineamento_corrente() > ' ')
{ {
@ -1684,7 +1685,6 @@ bool TPartita::read(const TBill& clifo, int year, const char* num)
TAssoc_array regs; TAssoc_array regs;
int firstrow =first(); int firstrow =first();
bool changed = false;
for (int r = last(); r >= firstrow; r = pred(r)) 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_NREG);
((TRiga_partite &)_part.row(r)).zero(PART_NUMRIG); ((TRiga_partite &)_part.row(r)).zero(PART_NUMRIG);
changed = true; _patched = true;
} }
else else
regs.add(key); 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_NREG);
((TRiga_partite &)_part.row(r)).zero(PART_NUMRIG); ((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)) if (!esiste(rigap))
{ {
recover_rpart(pag, 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)) if (!esiste(rigap))
{ {
recover_rpart(pag, rigap, f); recover_rpart(pag, rigap, f);
changed = true; _patched = true;
} }
} }
if (changed) if (_patched)
rewrite(); rewrite();
return ok(); return ok();
} }

View File

@ -235,6 +235,7 @@ class TPartita : public TSortable
TRiga_partite_array _part; TRiga_partite_array _part;
TRecord_array _unassigned; TRecord_array _unassigned;
char _align; // current _num alignment char _align; // current _num alignment
bool _patched;
static char _cli_align, _for_align; // default _num alignment static char _cli_align, _for_align; // default _num alignment
static bool _diffcam_always; static bool _diffcam_always;
@ -279,6 +280,7 @@ public:
bool reread(); bool reread();
bool read(const TBill& clifo, int anno, const char* num); bool read(const TBill& clifo, int anno, const char* num);
bool patched() const { return _patched; }
bool write(bool re = false) const; bool write(bool re = false) const;
bool rewrite() const { return write(true); } bool rewrite() const { return write(true); }
bool remove() const; bool remove() const;