108 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			108 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
#include <relapp.h>                                                                           
 | 
						|
#include <utility.h>
 | 
						|
#include <tabutil.h>
 | 
						|
#include <msksheet.h>
 | 
						|
#include <recarray.h>
 | 
						|
#include <assoc.h>
 | 
						|
#include <checks.h>
 | 
						|
#include <defmask.h>
 | 
						|
#include "mg1200.h"
 | 
						|
#include "mglib.h"
 | 
						|
 | 
						|
 | 
						|
class TMask_buildmov: public TMask {
 | 
						|
	TEsercizi_contabili esercizi;
 | 
						|
	static bool handle_annoes(TMask_field &, KEY); // handler del numero di registrazione
 | 
						|
public:
 | 
						|
	TMask_buildmov();
 | 
						|
	virtual ~TMask_buildmov()
 | 
						|
	{};
 | 
						|
};
 | 
						|
 | 
						|
TMask_buildmov::TMask_buildmov() 
 | 
						|
	: TMask("mg1200")
 | 
						|
{
 | 
						|
  set_handler(F_ANNOES, handle_annoes);
 | 
						|
}
 | 
						|
 | 
						|
bool TMask_buildmov::handle_annoes(TMask_field &fld, KEY k)
 | 
						|
{
 | 
						|
	TMask_buildmov &mask=(TMask_buildmov &)fld.mask();
 | 
						|
	if (fld.get().empty())
 | 
						|
	{
 | 
						|
		// DEFAULT		
 | 
						|
		fld.set(mask.esercizi.date2esc(mask.get_date(F_DATA)));
 | 
						|
	}	
 | 
						|
	if (k == K_TAB && fld.focusdirty()) 
 | 
						|
	{
 | 
						|
		if (mask.esercizi.exist(mask.get_int(F_ANNOES)))
 | 
						|
		{
 | 
						|
			const TEsercizio & e=mask.esercizi.esercizio(mask.get_int(F_ANNOES));
 | 
						|
			if (mask.esercizi.esercizio(mask.get_int(F_ANNOES)).chiusura_mag()!=TDate(NULLDATE))
 | 
						|
			{
 | 
						|
				fld.error_box("Il magazzino dell'esercizio indicato risulta chiuso \nImpossibile effettuare la ricostruzione saldi")	;
 | 
						|
				return FALSE;	
 | 
						|
			}
 | 
						|
		} 
 | 
						|
	}
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
class TApp_rebuildbalances: public TApplication {
 | 
						|
	TArray * used_files;
 | 
						|
	TRelation * _rel;		// relazione 
 | 
						|
	TCursor * _cur;		// cursore
 | 
						|
	TString16 _annoes;
 | 
						|
	bool _reset_giac  ;
 | 
						|
 | 
						|
	virtual bool create();
 | 
						|
  virtual bool destroy();                        
 | 
						|
public:
 | 
						|
  TApp_rebuildbalances() {};
 | 
						|
  virtual ~TApp_rebuildbalances() {};
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
//inline TApp_rebuildbalances& app() { return (TApp_rebuildbalances&) main_app(); }
 | 
						|
 | 
						|
bool TApp_rebuildbalances::create()
 | 
						|
{
 | 
						|
	used_files= new TArray;
 | 
						|
	used_files->add(new TLocalisamfile(LF_ANAMAG));
 | 
						|
	used_files->add(new TLocalisamfile(LF_UMART));
 | 
						|
	used_files->add(new TLocalisamfile(LF_MAG));
 | 
						|
	used_files->add(new TLocalisamfile(LF_MOVMAG));
 | 
						|
	used_files->add(new TLocalisamfile(LF_RMOVMAG));
 | 
						|
	TApplication::create();
 | 
						|
	/*if (argc()>2)
 | 
						|
		_annoes=argv(2);
 | 
						|
	else
 | 
						|
		fatal_box("Manca l'indicazione dell'esercizio da ricostruire");		
 | 
						|
	if (argc()>3)
 | 
						|
		_reset_giac=(TString(argv(3)).upper()=="RESET");*/
 | 
						|
 | 
						|
	TMask_buildmov m;
 | 
						|
	while (m.run()==K_ENTER)
 | 
						|
	{
 | 
						|
		if (!rebuild_balances(m.get(F_ANNOES), TRUE))
 | 
						|
			error_box("Ricostruzione saldi incompleta o errata. Ripetere");
 | 
						|
	}
 | 
						|
  return FALSE;
 | 
						|
}
 | 
						|
 | 
						|
bool TApp_rebuildbalances::destroy()
 | 
						|
{
 | 
						|
	delete used_files;  
 | 
						|
	TApplication::destroy();
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
int mg1200(int argc, char* argv[])
 | 
						|
{
 | 
						|
  TApp_rebuildbalances a;
 | 
						|
  
 | 
						|
  a.run(argc, argv, "Ricostruzione saldi");
 | 
						|
  return 0;
 | 
						|
} |