<?php 
session_start(); 

class covensol_c_proc_menu{
		
		function covensol_c_proc_menu($propiedades=array()){
				
				global $ruta;
				
				if($ruta==''){$ruta="../";}
				$this->ruta=$ruta;
				require_once($ruta."shared/class_folder/sigesp_include_covensol.php");
				$io_include=new sigesp_include_covensol();
				$io_conexion=$io_include->uf_conectar();			
				require_once($ruta."shared/class_folder/class_sql_covensol.php");
				$this->io_sql=new class_sql_covensol($io_conexion);								
				require_once($ruta."shared/class_folder/class_mensajes.php");
				$this->io_mensajes=new class_mensajes();
				require_once($ruta."shared/class_folder/sigesp_conexiones.php");
				$this->io_conexiones=new conexiones();
				require_once($ruta."shared/class_folder/class_funciones_db.php");
				$this->fun = new class_funciones_db($io_conexion,1);				
				require_once($ruta."shared/class_folder/class_funciones.php");
				$this->io_funciones=new class_funciones();		
				require_once($ruta."shared/class_folder/sigesp_c_seguridad.php");
				$this->io_seguridad= new sigesp_c_seguridad();				
				$this->ls_codemp=$_SESSION["la_empresa"]["codemp"];
				$this->codemp=$_SESSION["la_empresa"]["codemp"];
				require_once($ruta."shared/class_folder/class_numero_a_letra.php");
				$this->numalet	  = new class_numero_a_letra();				
				$this->AnoPeriodoAct = substr($_SESSION["la_empresa"]['periodo'],0,4);	
				require_once($ruta."shared/class_folder/class_menu_ext.php");
				$this->menu = new menu;		
				
		}
		
		
		function BuscaMenu($propiedades=array()){
			$rssis = $this->menu->ConsultaSistemas();
		    if($rssis===false){exit();}
			$this->menu->io_sql->begin_transaction();
			foreach($rssis as $DatSis){
					$this->Sistema = strtolower($DatSis['codsis']);		
					$this->RutaArch = $this->ruta.$this->Sistema.'/menu/menu_'.$this->Sistema.'.txt';
					$this->Arch = fopen($this->RutaArch,"r");
					if($this->Arch===false){continue;}
					$this->Lineas = fgets($this->Arch,1024);				
					if($this->Lineas[0]==">"){$validacion=1;}else{$validacion=0; echo "<b>ERROR:</b> Archivo Inválido ! ".$this->RutaArch."<br><br>";}					
					$resp = $this->ProcesaMenu();
					if($resp===false){$this->menu->io_sql->rollback(); return false;}
					echo 'Datos de Menú de Covensol del Módulo '.$this->Sistema.' encontrado.<br>';
					
					//echo $RutaArch.': ----->'.$Arch.'<br>';
			}
			$this->menu->io_sql->commit();
		}
		
		
		function ProcesaMenu($propiedades=array()){
						
						global $nombre_archivo,$mensaje,$id_menu,$sub_bandera,$separador,$icono,$cont,$codigo,$linea_codigo;
						global $contaux,$menu,$posicion_item,$barra_menu,$id_padre,$nivel,$separador,$idx_temp,$linea;
						
						$msj = '';
						$nombre_archivo = $this->RutaArch;
						$mensaje="";
						$validacion=0;
						$i=0;										
						$fp = fopen("$nombre_archivo","r");																																	
										
						while ($linea= fgets($fp,1024))
						{
							  global $id_menu;	  
							  $sub_bandera=0;//lo utilizo para medir si un menu tiene hijo o no: 0: no tiene, 1: si tiene	  
							  $separador=0;
							  $icono="";
							  if($this->menu->limpia_cadena($linea)!=""){
									 if($linea[0]==">"){//sistema al cual pertenece el menu
										$cont[0] = 1;
										$codigo = substr($linea,1,3);
										$linea_codigo = substr($linea,1);																
										$menu = $this->menu->busca_menu_aux($linea_codigo);
										if($menu===false){echo "Error al crear código del menu del módulo: ".$this->Sistema."<br>"; return false;}
										$contaux=$cont[0];
										
									 }else{
						
										 if($linea[0]!="\t"){
																
											$sub_bandera=0;
											$this->menu->extraccion($linea);
											$posicion_item=$cont[0]++;
											$cont[1]=1;
											$barra_menu=1;
											$id_padre=0;
											$nivel=0;
											if($linea[0]=="-"){
												$cont[0]--;
												$separador=1;						
												$resp = $this->menu->update(array('Idx'=>$idx_temp,'sepdor'=>$separador,'criterio'=>'separador'));
												if($resp===false){echo "Error al actualizar item del menu del módulo: ".$this->Sistema."<br>"; return false;}
											}else{
												$resp = $idx_temp[0]=$this->menu->insert();	
												if($resp===false){echo "Error al insertar item del menu del módulo: ".$this->Sistema."<br>"; return false;}			
					
											}
										
										 } //fin if($linea[0]!="\t"){
										 
										 
										$this->menu->crea_item_aux(0); 
										 
										 
									}
										
								}
							
						}
						
						
						if( $msj){
							$this->menu->io_mensajes->message($msj,2,'../../');
						}
						
						return true;
		}
}

$ruta = '../../';
$ObjMenu = new covensol_c_proc_menu();
$ObjMenu->BuscaMenu();

?>
