Patch level : 12.0 1174
Files correlati : ba1.exe Commento: Migliorata protezione aggiornamento tracciati sulla base dei dati Team
This commit is contained in:
		
							parent
							
								
									c0c7f2e1f6
								
							
						
					
					
						commit
						1523d76a6c
					
				@ -299,7 +299,7 @@ bool TManutenzione_app::create() // initvar e arrmask
 | 
			
		||||
        modules = atol(argv(5));
 | 
			
		||||
      prefix().set("");
 | 
			
		||||
      load_des();
 | 
			
		||||
			dump_trc(dir, des_too, modules);
 | 
			
		||||
			dump_trc(dir, des_too, modules, true);
 | 
			
		||||
      return false;
 | 
			
		||||
    }
 | 
			
		||||
		else
 | 
			
		||||
@ -326,6 +326,7 @@ bool TManutenzione_app::create() // initvar e arrmask
 | 
			
		||||
			}
 | 
			
		||||
			if (!::dongle().demo() && !set_firm())
 | 
			
		||||
				return false;
 | 
			
		||||
			convert_recdef();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		_firm = atol(prefix().name());
 | 
			
		||||
@ -481,7 +482,7 @@ void TManutenzione_app::close_history()
 | 
			
		||||
  xvt_fsys_remove_file(History_file);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TManutenzione_app::dump_trc(const char * dir, const bool des_too, const long modules)
 | 
			
		||||
void TManutenzione_app::dump_trc(const char * dir, const bool des_too, const long modules, bool verbose)
 | 
			
		||||
{
 | 
			
		||||
  TDir d;
 | 
			
		||||
  d.get(LF_DIR);
 | 
			
		||||
@ -496,11 +497,16 @@ void TManutenzione_app::dump_trc(const char * dir, const bool des_too, const lon
 | 
			
		||||
 | 
			
		||||
  TString s(TR("Scarico dei tracciati standard in "));
 | 
			
		||||
  s << dir;
 | 
			
		||||
  TProgind p(items ? items : 1, s, false, true);
 | 
			
		||||
  p.setstatus(1);
 | 
			
		||||
	TProgind  * p = nullptr;
 | 
			
		||||
	if (verbose)
 | 
			
		||||
	{
 | 
			
		||||
		p = new TProgind(items ? items : 1, s, false, true);
 | 
			
		||||
		p->setstatus(1);
 | 
			
		||||
	}
 | 
			
		||||
	for (int i = 2; i <= items; i++) //Salta il primo (dir.gen)
 | 
			
		||||
  {
 | 
			
		||||
    p.addstatus(1);
 | 
			
		||||
		if (verbose)
 | 
			
		||||
		  p->addstatus(1);
 | 
			
		||||
    TTrec& rc = (TTrec&)_recs[i];
 | 
			
		||||
    TDir&  dr = (TDir&)_dirs[i];
 | 
			
		||||
    const long file_mod = (long)abs((int)dr.flags());
 | 
			
		||||
@ -525,6 +531,7 @@ void TManutenzione_app::dump_trc(const char * dir, const bool des_too, const lon
 | 
			
		||||
    ofstream out_dir(fn);
 | 
			
		||||
    out_dir << dr;
 | 
			
		||||
  }
 | 
			
		||||
	safe_delete(p);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const char* TManutenzione_app::dumpfilename(const FileDes& dep) const
 | 
			
		||||
@ -1106,6 +1113,52 @@ void TManutenzione_app::recover()
 | 
			
		||||
	send_campo_xml(); // Spedisce situazione via ftp
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TManutenzione_app::clean_recdef(const char * dir)
 | 
			
		||||
{
 | 
			
		||||
	TFilename mask = dir;
 | 
			
		||||
 | 
			
		||||
	mask.add("*");
 | 
			
		||||
	mask.ext("dir");
 | 
			
		||||
	remove_files(mask, false);
 | 
			
		||||
	mask.ext("trr");
 | 
			
		||||
	remove_files(mask, false);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TManutenzione_app::convert_recdef(int firm)
 | 
			
		||||
{
 | 
			
		||||
	TString pref = prefix().name();
 | 
			
		||||
	const int curr_firm = prefix().get_codditta();
 | 
			
		||||
	bool all_firms = firm < 0;
 | 
			
		||||
	const int from_firm = all_firms || firm == 0 ? 1 : firm;
 | 
			
		||||
	TString_array ditte;
 | 
			
		||||
	const int to_firm = all_firms ? prefix().firms(ditte) : firm;
 | 
			
		||||
	TFilename dir = firm2dir(0);
 | 
			
		||||
 | 
			
		||||
	if (all_firms || firm == 0)
 | 
			
		||||
	{
 | 
			
		||||
		prefix().set("com");
 | 
			
		||||
		dir.add("recdesc");
 | 
			
		||||
		if (!dexist(dir))
 | 
			
		||||
			make_dir(dir);
 | 
			
		||||
		clean_recdef(dir);
 | 
			
		||||
		dump_trc(dir);
 | 
			
		||||
	}
 | 
			
		||||
	for (int i = from_firm; i <= to_firm; i++)
 | 
			
		||||
	{
 | 
			
		||||
		set_firm(i);
 | 
			
		||||
    dir = firm2dir(i);
 | 
			
		||||
		dir.add("recdesc");
 | 
			
		||||
		if (!dexist(dir))
 | 
			
		||||
			make_dir(dir);
 | 
			
		||||
		clean_recdef(dir);
 | 
			
		||||
		dump_trc(dir);
 | 
			
		||||
	}
 | 
			
		||||
	if (curr_firm > 0)
 | 
			
		||||
		set_firm(curr_firm);
 | 
			
		||||
	else
 | 
			
		||||
		prefix().set(pref);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TManutenzione_app::convert_dir()
 | 
			
		||||
{
 | 
			
		||||
  if (prefix().get_codditta() <= _history_firm)
 | 
			
		||||
@ -1255,6 +1308,10 @@ void TManutenzione_app::convert_dir()
 | 
			
		||||
  d.set_flags(_level);
 | 
			
		||||
  d.put(LF_DIR, _nordir, _sysdirop);
 | 
			
		||||
  put_history(pref);
 | 
			
		||||
 | 
			
		||||
	const int firm = prefix().is_com() ? 0 :  prefix().get_codditta();
 | 
			
		||||
 | 
			
		||||
	convert_recdef(firm);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TManutenzione_app::load_des()
 | 
			
		||||
 | 
			
		||||
@ -134,6 +134,8 @@ protected:
 | 
			
		||||
	bool reset_converting();
 | 
			
		||||
 | 
			
		||||
	bool try_to_recover(TSystemisamfile& f, int err);
 | 
			
		||||
	void clean_recdef(const char * dir);
 | 
			
		||||
	void convert_recdef(int firm = -1);
 | 
			
		||||
	void update();
 | 
			
		||||
	void update_dir();
 | 
			
		||||
	void recover();
 | 
			
		||||
@ -145,7 +147,7 @@ protected:
 | 
			
		||||
	void open_history();
 | 
			
		||||
	void put_history(const char* firm);
 | 
			
		||||
	void close_history();
 | 
			
		||||
	void dump_trc(const char * dir, const bool des_too, const long modules);
 | 
			
		||||
	void dump_trc(const char * dir, const bool des_too = true, const long modules = -1, bool verbose = false);
 | 
			
		||||
	void repair_file(int i);
 | 
			
		||||
	void save_file(const char * file);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user