<?
// утилита удаляет дубликаты сообщений, возникшие в результате присуствия скрытых мероприятий (невидимых для админа, без group_id)
include(_DIR_TO_MODULES.'/engine/i_backgroup_process.php') ;
class c_services_aspmo_setting_conv_log_pers extends i_backgroup_process_exec
{
	function exec()
    { include_once(_DIR_TO_MODULES.'/engine/i_setup.php') ;
      $GLOBALS['log_sql_update']=1 ;

		$usl_select='obj_name="Измение данных сотрудника" or obj_name="Измение ФЛ"' ;
		$cnt=execSQL_value('select count(pkey) from obj_site_mo_log where '.$usl_select) ;
		echo 'Будет перенесено <strong>'.$cnt.'</strong> записей журанала событий<br>' ;
		$limit=10000 ; $i=0 ;
		while($i<$cnt)
		{ $recs=execSQL('select * from obj_site_mo_log where '.$usl_select.' limit '.$i.','.$limit) ;
		$i+=$limit ; $arr_ids=array() ;
		if (_sizeof($recs)) foreach($recs as $rec) if ($rec['data'])
		{ $info=unserialize($rec['data']) ;
		 if (_sizeof($info)) foreach($info as $fname=>$change)
		 { if (stripos($change,'=>')!==false) list($old_value,$new_value)=explode('=>',$change) ;
		   else
		   { $old_value='' ;
		     $new_value=$change ;
		   }
		   if (stripos($rec['comment'],'сброшен')!==false)
		   { list($tt,$pass_num)=explode('пропуск',$rec['comment']) ;
		     $old_value='' ;
		     $new_value=$pass_num ;
		   }

		   $data=array(  'clss'=>277,
		                'c_data'=>$rec['c_data'],
		                'r_data'=>$rec['r_data'],
		                'obj_name'=>'upd',
		                'account_id'=>$rec['account_id'],
		                'personal_id'=>$rec['personal_id'],
		                'fname'=>$fname,
		                'old_value'=>trim($old_value),
		                'new_value'=>trim($new_value)
		            ) ;
		   multiSQL_insert('log_personal_changes')->append($data);
		 }
		 $arr_ids[]=$rec['pkey'] ;
		}
		if (_sizeof($arr_ids)) execSQL_update('delete from obj_site_mo_log where pkey in ('.implode(',',$arr_ids).')',array('log_sql'=>1)) ;
		}
		multiSQL_insert('log_personal_changes')->flush();
		//execSQL_update('delete from obj_site_mo_log where '.$usl_select) ;


	   FILE_LOG()->append('END') ;
	  $GLOBALS['log_sql_update']=0 ;
    }

}

?>
