Files correlati : ve6.exe Ricompilazione Demo : [ ] Commento : Riportata la versione 3.1 patch 979 git-svn-id: svn://10.65.10.50/trunk@15623 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			101 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			101 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
// sistema il codice esercizio di tutti i movimenti
 | 
						|
#include "cg1305.h"
 | 
						|
#include "cglib01.h"
 | 
						|
 | 
						|
#include <mask.h>
 | 
						|
#include <progind.h>
 | 
						|
#include <recarray.h>
 | 
						|
#include <relation.h>
 | 
						|
#include <recset.h>
 | 
						|
 | 
						|
#include <mov.h>
 | 
						|
#include <rmov.h>
 | 
						|
#include <rmoviva.h>
 | 
						|
 | 
						|
static bool aggiorna_righe(TRecord_array& righe, int annoes)
 | 
						|
{
 | 
						|
  bool qualcuno_sbagliato = false;
 | 
						|
  for (int i = righe.last_row(); i > 0; i = righe.pred_row(i))
 | 
						|
  {
 | 
						|
    const TRectype& riga = righe.row(i);
 | 
						|
    const int anno = riga.get_int(RMV_ANNOES);
 | 
						|
    if (anno != annoes)
 | 
						|
    {
 | 
						|
      qualcuno_sbagliato = true;
 | 
						|
      break;
 | 
						|
    }
 | 
						|
  }
 | 
						|
  if (qualcuno_sbagliato)
 | 
						|
  {
 | 
						|
    // Serve per righe iva non zerofilled
 | 
						|
    TString4 sanno; sanno.format("%04d", annoes);  
 | 
						|
    righe.renum_key(RMV_ANNOES, sanno);
 | 
						|
    righe.rewrite();
 | 
						|
  }
 | 
						|
  return qualcuno_sbagliato;
 | 
						|
}
 | 
						|
 | 
						|
void TAgg_codes::main_loop()
 | 
						|
{
 | 
						|
	open_files(LF_MOV, LF_RMOV, LF_RMOVIVA, LF_TAB, 0);
 | 
						|
 | 
						|
  TMask msk("cg1300d");
 | 
						|
  if (msk.run() == K_ENTER)
 | 
						|
  {
 | 
						|
    long modified_recs=0L;
 | 
						|
    int err = NOERR;
 | 
						|
 | 
						|
    TISAM_recordset mov("USE MOV");
 | 
						|
    const TRecnotype nrec = mov.items();
 | 
						|
 | 
						|
    if (nrec > 0) // Dummy test for progind destruction
 | 
						|
    {
 | 
						|
      TEsercizi_contabili esercizi;
 | 
						|
      TProgind pi(nrec, TR("Aggiornamento in corso..."), true, true);
 | 
						|
      TRecord_array righe(LF_RMOV, RMV_NUMRIG);
 | 
						|
      TRecord_array righeiva(LF_RMOVIVA, RMI_NUMRIG);
 | 
						|
      TRectype riga(LF_RMOV);
 | 
						|
      TRectype rigaiva(LF_RMOVIVA);
 | 
						|
 | 
						|
      for (bool ok = mov.move_first(); ok && err == NOERR; ok = mov.move_next())
 | 
						|
      { 
 | 
						|
        if (!pi.addstatus(1))
 | 
						|
          break;
 | 
						|
    
 | 
						|
        const TDate data = mov.get(MOV_DATACOMP).as_date();
 | 
						|
        const int oldcodes = mov.get(MOV_ANNOES).as_int();
 | 
						|
        const int newcodes = esercizi.date2esc(data);
 | 
						|
        bool cambiato = false;
 | 
						|
  
 | 
						|
        if (oldcodes != newcodes)
 | 
						|
        {
 | 
						|
          TRectype& curr = mov.cursor()->curr();
 | 
						|
          curr.put(MOV_ANNOES, newcodes);
 | 
						|
          err = curr.rewrite(mov.cursor()->file());
 | 
						|
          cambiato = err == NOERR;
 | 
						|
        }
 | 
						|
 | 
						|
        if (err == NOERR)
 | 
						|
        {
 | 
						|
          const long numreg = mov.get(MOV_NUMREG).as_int();
 | 
						|
          riga.put(RMV_NUMREG, numreg);
 | 
						|
          righe.read(riga);
 | 
						|
          cambiato |= aggiorna_righe(righe, newcodes);
 | 
						|
 | 
						|
          rigaiva.put(RMI_NUMREG, numreg);
 | 
						|
          righeiva.read(rigaiva);
 | 
						|
          cambiato |= aggiorna_righe(righeiva, newcodes);
 | 
						|
        }
 | 
						|
 | 
						|
        if (cambiato)
 | 
						|
          modified_recs++;
 | 
						|
      }
 | 
						|
    }
 | 
						|
 | 
						|
    if (err != NOERR) 
 | 
						|
      warning_box(FR("Aggiornamento codice esercizio interrotta. Rilevato errore %d in riscrittura"),err);
 | 
						|
    else 
 | 
						|
      message_box(FR("Aggiornamento codice esercizio completata. Modificati %ld movimenti.\nE' necessario procedere col ricalcolo saldi"), modified_recs);
 | 
						|
  }
 | 
						|
}
 |