111 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
#include <confapp.h>
 | 
						|
#include <lffiles.h>
 | 
						|
#include <files.h>
 | 
						|
#include <isam.h>
 | 
						|
#include "cg5100a.h"
 | 
						|
 | 
						|
class CG51_App : public TConfig_application
 | 
						|
{
 | 
						|
  bool _change_pcon;
 | 
						|
  TString16 _val;
 | 
						|
  
 | 
						|
  void swap_file(int logicnum, bool tocom);
 | 
						|
public:
 | 
						|
  virtual bool preprocess_config (TMask& mask, TConfig& config);
 | 
						|
  virtual bool postprocess_config (TMask& mask, TConfig& config);
 | 
						|
  virtual bool postprocess_config_changed(const char* par, const char* var, 
 | 
						|
                                          const char* oldv, const char* newv);
 | 
						|
 | 
						|
  virtual bool user_create() { _change_pcon = FALSE; return TRUE;}
 | 
						|
  virtual bool user_destroy();
 | 
						|
  CG51_App() : TConfig_application(CONFIG_DITTA) {}
 | 
						|
  virtual ~CG51_App() {}
 | 
						|
};
 | 
						|
 | 
						|
void CG51_App::swap_file(int logicnum, bool tocom)
 | 
						|
{
 | 
						|
  TDir dir;
 | 
						|
  TString file(16);
 | 
						|
 | 
						|
  dir.get(logicnum, _lock, _nordir, _sysdirop);
 | 
						|
  file = dir.name();
 | 
						|
  file[0] = tocom ? '%' : '$';
 | 
						|
  dir.set(file, dir.eod(), dir.flags(), dir.des(), dir.expr());
 | 
						|
  dir.put(logicnum, _nordir, _sysdirop);
 | 
						|
  dir.get(logicnum, _lock, (tocom ? _comdir :_nordir), _sysdirop);
 | 
						|
  if (tocom)
 | 
						|
  {
 | 
						|
    file = dir.name();
 | 
						|
    file[0] = '%';
 | 
						|
    dir.set(file, dir.eod(), dir.flags(), dir.des(), dir.expr());
 | 
						|
    dir.put(logicnum, _comdir, _sysdirop);
 | 
						|
  }
 | 
						|
  if (dir.eox() == 0L)
 | 
						|
  {
 | 
						|
    TSystemisamfile s(logicnum);
 | 
						|
    s.build(10L);
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
bool CG51_App::user_destroy()
 | 
						|
{
 | 
						|
  if (_change_pcon)
 | 
						|
  {
 | 
						|
    swap_file(LF_PCON, _val[0] == 'X');
 | 
						|
    swap_file(LF_CAUSALI, _val[0] == 'X');
 | 
						|
    swap_file(LF_RCAUSALI, _val[0] == 'X');
 | 
						|
  }
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
bool CG51_App::preprocess_config (TMask& mask, TConfig& config)
 | 
						|
{ 
 | 
						|
  // these are disabled in normal applications
 | 
						|
  TLocalisamfile mov(LF_MOV); 
 | 
						|
  const bool movempty = mov.empty();
 | 
						|
  mask.enable(CHK_ANCFCM, movempty);
 | 
						|
  mask.enable(CHK_PCTCCM, movempty);
 | 
						|
  disable_menu_item(M_FILE_NEW);
 | 
						|
  disable_menu_item(M_FILE_REVERT);
 | 
						|
  return TRUE; 
 | 
						|
}
 | 
						|
 | 
						|
bool CG51_App::postprocess_config(TMask& mask, TConfig& config)
 | 
						|
{
 | 
						|
  enable_menu_item(M_FILE_NEW);
 | 
						|
  enable_menu_item(M_FILE_REVERT);
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
bool CG51_App::postprocess_config_changed(const char* par, const char* var, 
 | 
						|
                                          const char* oldv, const char* newv)
 | 
						|
{
 | 
						|
  TString v(var);
 | 
						|
 | 
						|
  if (v == "AnCfCm")
 | 
						|
  {
 | 
						|
    if (yesno_box("Confermi il cambiamento dell'anagrafica clienti/fornitori"))
 | 
						|
      swap_file(LF_CLIFO, *newv == 'X');
 | 
						|
    else
 | 
						|
      return FALSE;
 | 
						|
  }
 | 
						|
  else if (v == "PcTcCm")
 | 
						|
  {
 | 
						|
    if (yesno_box("Confermi il cambiamento del piano conti/causali"))
 | 
						|
    {
 | 
						|
      _change_pcon = TRUE;
 | 
						|
      _val = newv;
 | 
						|
    }
 | 
						|
    else
 | 
						|
      return FALSE;
 | 
						|
  }
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
int cg5100 (int argc, char* argv[])
 | 
						|
{
 | 
						|
  CG51_App appc;
 | 
						|
  appc.run(argc, argv, "Parametri Ditta");
 | 
						|
  return 0;
 | 
						|
}
 |