git-svn-id: svn://10.65.10.50/branches/R_10_00@23043 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			80 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
#include <applicat.h>
 | 
						|
 | 
						|
#include "mg1200.h"
 | 
						|
#include "mglib.h"
 | 
						|
#include "../cg/cglib01.h"
 | 
						|
 | 
						|
class TMask_buildmov: public TMask 
 | 
						|
{
 | 
						|
  TEsercizi_contabili _esercizi;
 | 
						|
  static bool handle_annoes(TMask_field &, KEY); // handler del numero di registrazione
 | 
						|
public:
 | 
						|
  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.empty())
 | 
						|
  {
 | 
						|
    // DEFAULT
 | 
						|
    const TDate d = mask.get_date(F_DATA);
 | 
						|
    const int codes = mask._esercizi.date2esc(d);
 | 
						|
    if (codes > 0)
 | 
						|
      fld.set(codes);
 | 
						|
  } 
 | 
						|
  if (fld.to_check(k) || k == K_ENTER) 
 | 
						|
  {
 | 
						|
    const int codes = mask.get_int(F_ANNOES);
 | 
						|
    if (codes > 0 && mask._esercizi.exist(codes))
 | 
						|
    {
 | 
						|
      const TEsercizio& e = mask._esercizi.esercizio(codes);
 | 
						|
      if (e.chiusura_mag().ok())
 | 
						|
        return fld.error_box(TR("Il magazzino dell'esercizio indicato risulta chiuso\n"
 | 
						|
                                "Impossibile effettuare la ricostruzione saldi"));
 | 
						|
    } 
 | 
						|
  }
 | 
						|
  return true;
 | 
						|
}
 | 
						|
 | 
						|
class TApp_rebuildbalances : public TSkeleton_application 
 | 
						|
{
 | 
						|
  TRelation* _rel;   // relazione 
 | 
						|
  TCursor* _cur;     // cursore
 | 
						|
 | 
						|
protected:
 | 
						|
  virtual bool create();
 | 
						|
  virtual void main_loop();
 | 
						|
};
 | 
						|
 | 
						|
bool TApp_rebuildbalances::create()
 | 
						|
{
 | 
						|
  open_files(LF_CLIFO, LF_UMART, LF_MAG, LF_MOVMAG, LF_RMOVMAG, 
 | 
						|
             LF_TAB, LF_TABCOM, LF_STOMAG, LF_DESLIN, LF_CODCORR, 
 | 
						|
             LF_ANAMAG, LF_CLIFOGIAC, 0);
 | 
						|
  return TSkeleton_application::create();
 | 
						|
}
 | 
						|
 | 
						|
void TApp_rebuildbalances::main_loop()
 | 
						|
{
 | 
						|
  TMask_buildmov m;
 | 
						|
  while (m.run()==K_ENTER)
 | 
						|
  {
 | 
						|
	  if (!rebuild_balances(m.get_int(F_ANNOES)))
 | 
						|
      warning_box(TR("A causa degli errori riscontrati, i saldi di magazzino potrebbero non essere aggiornati.\n"
 | 
						|
                     "Si consiglia di procedere ad una nuova operazione di \"Ricostruzione saldi\""));
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
int mg1200(int argc, char* argv[])
 | 
						|
{
 | 
						|
  TApp_rebuildbalances a;
 | 
						|
  a.run(argc, argv, TR("Ricostruzione saldi"));
 | 
						|
  return 0;
 | 
						|
}
 |