<?php

class covensol_cfg_c_configuracion {

	function covensol_cfg_c_configuracion($propiedades=array()){		
		/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		// Function: Formulación
		// Access: public (covensol_fop_c_formulacion)
		// Description: Constructor de la Clase
		// Creado Por: Lic. Edgar A. Quintero
		// Fecha Creación: 31/10/2012 								
		// Fecha Última Modificación : 
		/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		global $ruta;
		if($ruta==''){$ruta="../";}		
		if(!$propiedades['habilitar_json']){$propiedades['habilitar_json']='si';}
		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.php");
		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.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"];		
		if($propiedades['habilitar_json']=='si'){
			require_once($ruta.'shared/class_folder/JSON.php');
			$this->json = new JSON();
		}
		$this->postgres_ilike = '';
		if($_SESSION["ls_gestor"] == 'POSTGRES'){$this->postgres_ilike = 'I';}
		
				
		if($propiedades['RepExcel']){
			require_once($ruta.'shared/PHPExcel/Classes/PHPExcelCovensol.php');
			$this->PHPExcel = new PHPExcelCovensol();
			$this->objWriter = PHPExcel_IOFactory::createWriter($this->PHPExcel, 'Excel5');
		}
		
		require_once($ruta."shared/class_folder/grid_covensol.php");
		$this->Grid = new GridCovensol();
		
	}
	
	function GenerarArchivoExcel($nomarch){
		header('Content-Type: application/vnd.ms-excel');
		header('Content-Disposition: attachment;filename="'.$nomarch.'.xls"');
		header('Cache-Control: max-age=0');
		$this->objWriter->save('php://output');
		exit();
	}
	
	function EncabezadoRepExcel($titulo){
			$this->PHPExcel->CeldaTitulo('A','FECHA Y HORA:',false,10,'right','FFFFFFFF',true);
			$this->PHPExcel->CeldaTitulo('B',date('d/m/Y').' - '.date('H:i'),false,10,'left','FFFFFFFF',false);
			$this->PHPExcel->nroFila++;
			$this->PHPExcel->CeldaTitulo('A','USUARIO:',false,10,'right','FFFFFFFF',true);
			$this->PHPExcel->CeldaTitulo('B',$_SESSION["la_logusr"],false,10,'left','FFFFFFFF',false);
			$this->PHPExcel->nroFila++;
			$this->PHPExcel->CeldaTitulo('A','REPORTE:',false,10,'right','FFFFFFFF',true);
			$this->PHPExcel->CeldaTitulo('B',$titulo,false,10,'left','FFFFFFFF',false);
			$this->PHPExcel->nroFila++;
			$this->PHPExcel->nroFila++;	
	}
	
	function ValidarSesion($opciones = array()){
	//==========================================================================================================================
	//	Function:      ValidarSesion
	//  Elaborado por: Lic. Edgar A. Quintero U.
	//	Returns:	   
	//	Description:   Ejecuta la acción en caso de no haber obtenido las credenciales necesarias.
	//==========================================================================================================================
		if(!$_SESSION["la_logusr"]){
			echo '<script type="text/javascript">';			
			echo "if(window.opener!=null){opener.location.href='".$ruta."covensol_login.php'; window.close();}";
			echo "else{location.href='".$ruta."covensol_login.php';}";		
			echo '</script>';		
			return false;
		}
		return true;	
	}
	
	function ValidarAdministrador($opciones = array()){
	//==========================================================================================================================
	//	Function:      ValidarSesion
	//  Elaborado por: Lic. Edgar A. Quintero U.
	//	Returns:	   
	//	Description:   Ejecuta la acción en caso de no haber obtenido las credenciales necesarias.
	//==========================================================================================================================
		if(!$_SESSION["la_logusr"]=='ADMINISTRADOR'){return false;}
		//echo "Es Administrador !<br>"; 
		return true;	
	}
	
   function cargar_seguridad($as_sistema,$as_ventanas)
   {
		$ls_empresa=$_SESSION["la_empresa"]["codemp"];
		$ls_logusr=$_SESSION["la_logusr"];
		$this->seguridad["empresa"]=$ls_empresa;
		$this->seguridad["logusr"]=$ls_logusr;
		$this->seguridad["sistema"]=$as_sistema;
		$this->seguridad["ventanas"]=$as_ventanas;
		$this->permisos="";
		$this->la_permisos = array();
		$this->la_permisos["leer"]="";
		$this->la_permisos["incluir"]="";
		$this->la_permisos["cambiar"]="";
		$this->la_permisos["eliminar"]="";
		$this->la_permisos["imprimir"]="";
		$this->la_permisos["anular"]="";
		$this->la_permisos["ejecutar"]="";
		if (array_key_exists("permisos",$_POST)||($ls_logusr=="PSEGIS"))
		{	
			if($ls_logusr=="PSEGIS")
			{
				$this->permisos="1";
				$this->la_permisos=$this->io_seguridad->uf_sss_load_permisossigesp();
			}
			else
			{
				$this->permisos=$_POST["permisos"];
				$this->la_permisos["leer"]=$_POST["leer"];
				$this->la_permisos["incluir"]=$_POST["incluir"];
				$this->la_permisos["cambiar"]=$_POST["cambiar"];
				$this->la_permisos["eliminar"]=$_POST["eliminar"];
				$this->la_permisos["imprimir"]=$_POST["imprimir"];
				$this->la_permisos["anular"]=$_POST["anular"];
				$this->la_permisos["ejecutar"]=$_POST["ejecutar"];
			}
		}
		else
		{
			$this->permisos=$this->io_seguridad->uf_sss_load_permisos($ls_empresa,$ls_logusr,$as_sistema,$as_ventanas,$this->la_permisos);
		}
		
   }// end function cargar_seguridad
   
   function guardar_seguridad($param=array()){
	   $resp = $this->io_seguridad->uf_sss_insert_eventos_ventana( $this->seguridad["empresa"],
																   $this->seguridad["sistema"],
																   $this->seguridad['evento'],
																   $this->seguridad["logusr"],
																   $this->seguridad["ventanas"],
	   															   $this->seguridad['descripcion']);
	   return true;
	   
   }
   
   function imprimir_permisos($as_permisos,$aa_permisos,$as_logusr,$as_accion)
   {
		if (($as_permisos)||($as_logusr=="PSEGIS"))
		{
			print("<input type=hidden name=permisos id=permisos value='$as_permisos'>");
			print("<input type=hidden name=leer id=leer value='$aa_permisos[leer]'>");
			print("<input type=hidden name=incluir id=incluir value='$aa_permisos[incluir]'>");
			print("<input type=hidden name=cambiar id=cambiar value='$aa_permisos[cambiar]'>");
			print("<input type=hidden name=eliminar id=eliminar value='$aa_permisos[eliminar]'>");
			print("<input type=hidden name=imprimir id=imprimir value='$aa_permisos[imprimir]'>");
			print("<input type=hidden name=anular id=anular value='$aa_permisos[anular]'>");
			print("<input type=hidden name=ejecutar id=ejecutar value='$aa_permisos[ejecutar]'>");
		}
		else
		{
			print("<script language=JavaScript>");
			print("".$as_accion."");
			print("</script>");
		}
   }// end function uf_print_permisos
   
   function obtCfg($param,$prop=array())
	{
		
		
		$prop['criterio'] = (!$prop['criterio'])?'param':$prop['criterio'];
		$this->cfg_type = $this->cfg_type?$this->cfg_type:'C';

  
		switch($prop['criterio']){					
				
				case 'param':					
					$ls_sql="SELECT value
							  FROM sigesp_config 
							 WHERE codemp='".$this->ls_codemp."' 
							   AND codsis='".$this->cfg_codsis."' 
							   AND seccion='".$this->cfg_seccion."' 
							   AND type='".$this->cfg_type."'
							   AND entry='".$param."' ";
					break;
		
		}
				
		$this->RsFopConf=$this->io_sql->select($ls_sql);
				
		if($this->RsFopConf===false)
		{
			$metodo = 'obtCfg';
			$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR->:</b><br>'.$this->io_sql->message;					
			$this->io_mensajes->message($mensaje);
			return;					
		}
			
		return $this->RsFopConf->fields["value"];
	}
	
	function obtSegEstructuras($prop=array())
	{
					
		if(!$this->codintper){				
			$mensaje = '<b>VALIDACIÓN DE DATOS:</b><br> Faltan datos para poder validar la seguridad de estructura. 				           			    
						<br><br><b>METODO:</b> obtSegEstructuras ';
			$this->io_conexiones->mensajes_ajax($mensaje);																	
			return false;
		}	
		
		$ls_sql="SELECT codintper, enabled
				  FROM sss_permisos_internos 
				 WHERE codemp='".$this->ls_codemp."' 
				   AND codusu='".$_SESSION["la_logusr"]."' 
				   AND codsis='".$this->cfg_codsis."'
				   AND codintper='".$this->codintper."' ";
						
		$this->RsFopSeg=$this->io_sql->select($ls_sql);
				
		if($this->RsFopSeg===false)
		{
			$metodo = 'obtSegEstructuras';
			$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR->:</b><br>'.$this->io_sql->message;					
			$this->io_mensajes->message($mensaje);
			return;					
		}
		
		$this->FopSegEnable = $this->RsFopSeg->RecordCount()?1:0;
		
		return $this->FopSegEnable;
	}
	
	
 
   function formato_numerico_us($numero){
	
			$busca = array(".", ",");
			$sustituye   = array("", ".");
			number_format(str_replace($busca,$sustituye,$numero),2,'.','');
			return number_format(str_replace($busca,$sustituye,$numero),2,'.','');
	
	}

		
   function FormatLonCodEstPro($datos=array()){
	            
				$ls_incio=25-$_SESSION["la_empresa"]['loncodestpro1'];
				$datos['codestpro1']=substr($datos['codestpro1'],$ls_incio,$_SESSION["la_empresa"]['loncodestpro1']);
				
				$ls_incio=25-$_SESSION["la_empresa"]['loncodestpro2'];
				$datos['codestpro2']=substr($datos['codestpro2'],$ls_incio,$_SESSION["la_empresa"]['loncodestpro2']);
				
				$ls_incio=25-$_SESSION["la_empresa"]['loncodestpro3'];
				$datos['codestpro3']=substr($datos['codestpro3'],$ls_incio,$_SESSION["la_empresa"]['loncodestpro3']);
				
				$ls_incio=25-$_SESSION["la_empresa"]['loncodestpro4'];
				$datos['codestpro4']=substr($datos['codestpro4'],$ls_incio,$_SESSION["la_empresa"]['loncodestpro4']);
				
				$ls_incio=25-$_SESSION["la_empresa"]['loncodestpro5'];
				$datos['codestpro5']=substr($datos['codestpro5'],$ls_incio,$_SESSION["la_empresa"]['loncodestpro5']);
				
				return $datos;
   }
   
  
	function cargar_config($opciones=array()){	
		
		$metodo = 'cargar_config';
		
		$this->codsis = $this->codsis?$this->codsis:$param['codsis'];
		
		if(!$this->codsis){			
			$mensaje = "Falta el código del sistema !";	
			$this->io_conexiones->mensajes_ajax($mensaje);	
			return false;
		}
		 
		 $query_rs ="SELECT *  FROM sigesp_config  
					 WHERE codemp='".$this->ls_codemp."' 
					 AND codsis='".$this->codsis."' ";
				 
		$rs=$this->io_sql->select($query_rs);
				
		if($rs===false){
			$metodo = 'cargar_config';
			$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR->:</b><br>'.$this->io_sql->message;					
			$this->io_mensajes->message($mensaje);	
			return false;					
		}		
					
		return $rs;
	}
	
	function actualizar_config($param=array()){
		
		$this->codsis = $this->codsis?$this->codsis:$param['codsis'];
		
		if(!$this->codsis){			
			$mensaje = "Falta el código del sistema !";	
			$this->io_conexiones->mensajes_ajax($mensaje);	
			return false;
		}
		
		$param['codsis'] = $this->codsis;
		$param['seccion'] = 'CONFIG';
		$config = $this->select_config($param);
		if($config===false){return false;}
		//echo $param['entry'].'--->'.$this->rsConf->RecordCount().': '.$config.'<br>';
		if(!$this->rsConf->RecordCount()){
					$resul = $this->insertar_configuracion($param);
					if($resul===false){return false;}
					return true;
						
		}
		else{
					$resul = $this->modificar_configuracion($param);
					if($resul===false){return false;}
					return true;
		}		
	}
	
	function insertar_configuracion($param=array())
	{
				
		$this->codsis = $this->codsis?$this->codsis:$param['codsis'];
		
		if(!$this->codsis){			
			$mensaje = "Falta el código del sistema !";	
			$this->io_conexiones->mensajes_ajax($mensaje);	
			return false;
		}
		
		$ls_sql='INSERT INTO sigesp_config(codemp, codsis, seccion, entry, "type", "value")
				 VALUES'." ('".$this->ls_codemp."', '".$this->codsis."', '".$param['seccion']."', '".$param['entry']."', 'C', '".$param['value']."');";
				
		$this->rs_data=$this->io_sql->select($ls_sql);
				
		if($this->rs_data===false)
		{
			$metodo = 'insertar_configuracion';
			$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR-></b><br>'.$this->io_sql->message;					
			$this->io_mensajes->message($mensaje);
			$this->io_conexiones->mensajes_ajax($mensaje,'error');
			//echo $mensaje;	
			return false;					
		}
			
		return true;
	}// end function select_config($param)
	
	function modificar_configuracion($param=array())
	{
				
		$this->codsis = $this->codsis?$this->codsis:$param['codsis'];
		
		if(!$this->codsis){			
			$mensaje = "Falta el código del sistema !";	
			$this->io_conexiones->mensajes_ajax($mensaje);	
			return false;
		}
		
		$ls_sql='UPDATE sigesp_config
				   SET  "value"'."='".$param['value']."' 
				 WHERE codemp='".$this->ls_codemp."' 
				 AND codsis='".$this->codsis."' 
				 AND seccion='".$param['seccion']."' 
				 AND entry='".$param['entry']."' 
				 AND ".'"type"'."='C'";
						
		$this->rs_data=$this->io_sql->select($ls_sql);
				
		if($this->rs_data===false)
		{
			$metodo = 'modificar_configuracion';
			$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR:</b><br>'.$this->io_sql->message;					
			$this->io_mensajes->message($mensaje);
			$this->io_conexiones->mensajes_ajax($mensaje,'error');	
			return false;					
		}
		
		return true;
	}// end function select_config($param)
	
	function select_config($param=array())
	{
		
		$this->codsis = $this->codsis?$this->codsis:$param['codsis'];
		
		if(!$this->codsis){			
			$mensaje = "Falta el código del sistema !";	
			$this->io_conexiones->mensajes_ajax($mensaje);	
			return false;
		}
		
		$ls_sql="SELECT value ".
				"  FROM sigesp_config ".
				" WHERE codemp='".$this->ls_codemp."' ".
				"   AND codsis='".$this->codsis."' ".
				"   AND seccion='".$param['seccion']."' ".
				"   AND entry='".$param['entry']."' ";
				
		$this->rsConf=$this->io_sql->select($ls_sql);
		//echo $ls_sql.'<br>';		
		if($this->rsConf===false)
		{
			$metodo = 'select_config';
			$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR:</b><br>'.$this->io_sql->message;					
			$this->io_mensajes->message($mensaje);
			$this->io_conexiones->mensajes_ajax($mensaje,'error');	
			return false;					
		}
			
		return $this->rsConf->fields["value"];
	}// end function select_config($param)
	
	
	
}//////////////////////////////////////////////////////////////******* FIN CLASE FORMULACIÓN *******/////////////////////////////////////////////////////////


?>
