// sistema la data di competenza di tutti i movimenti

#include <isam.h>
#include <progind.h>

#include "cg1300.h"
#include "cg1306.h"

#include <mov.h>

inline TAgg_datacomp& app() { return (TAgg_datacomp&) main_app(); }

void TAgg_datacomp::main_loop()
{
  if (set_firm())
    aggiorna_datacomp();
}  

void TAgg_datacomp::aggiorna_datacomp()
{
  TLocalisamfile mov(LF_MOV);
  long nrecs = (long) mov.eod();
  long modified_recs = 0L;
  TDate datacomp;
  TDate datareg;
  int err = NOERR;
  TProgind p(nrecs, TR("Aggiornamento in corso..."), TRUE, TRUE, 100);

  for (mov.first(); !mov.eof() && err == NOERR; mov.next())
  { 
    p.addstatus(1);
    datacomp = mov.get_date(MOV_DATACOMP);
    datareg = mov.get_date(MOV_DATAREG);
    if (datacomp > datareg)
    {
      mov.put(MOV_DATACOMP,datareg);
      mov.rewrite();
      modified_recs++;
    }
  }
  
  if (err != NOERR) 
    warning_box(FR("Aggiornamento codice esercizio interrotta. Rilevato errore %d in riscrittura"),err);
  else
    message_box(FR("Aggiornamento data competenza completata. Modificati %ld movimenti."),modified_recs);
}