<?php 
class covensol_sss_c_usuarios_cxc_cajas
{
	var $obj="";
	var $io_sql;
	var $siginc;
	var $con;

	function covensol_sss_c_usuarios_cxc_cajas()
	{
		require_once("../shared/class_folder/class_sql.php");
		require_once("../shared/class_folder/sigesp_include.php");
		require_once("../shared/class_folder/class_mensajes.php");
		require_once("../shared/class_folder/sigesp_c_seguridad.php");
		require_once("../shared/class_folder/class_funciones.php");
		$in=new sigesp_include();
		$this->con=$in->uf_conectar();
		$this->io_sql=new class_sql($this->con);
		$this->seguridad= new sigesp_c_seguridad;
		$this->io_msg=new class_mensajes();
		$this->io_funcion = new class_funciones();
		$this->codemp=$_SESSION["la_empresa"]["codemp"];
	}
	
	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  uf_sss_select_usuario_cxc($as_codemp,$as_codintper,$as_codusu)
	{
		$lb_valido=false;
		
		
		if($as_codintper!=""){
			$datoscaja = explode(' - ',$as_codintper);
			$datos["codsuc"] = $datoscaja[0];
			$datos["codcaj"] = $datoscaja[1];	
			$codintper=$datos["codsuc"].' - '.$datos["codcaj"];
		}
		
		
		$ls_sql = "SELECT codusu FROM sss_permisos_internos".
				  " WHERE codemp = '".$as_codemp."'".
				  "   AND codintper ='".$codintper."'".
				  "   AND codusu ='".$as_codusu."'".
				  "   AND codsis ='CXC'" ;
		$rs_data=$this->io_sql->select($ls_sql);
		//echo $ls_sql."<br>";
		if($rs_data===false)
		{
			$this->io_msg->message("CLASE->covensol_sss_c_usuarios_cxc_cajas MÉTODO->uf_sss_select_usuario_caja ERROR->".$this->io_funcion->uf_convertirmsg($this->io_sql->message));
		}
		else
		{
			if($row=$this->io_sql->fetch_row($rs_data))
			{
				$lb_valido=true;
			}
			$this->io_sql->free_result($rs_data);
		}
		return $lb_valido;
	}  // end  function  uf_sss_select_usuario_caja
	//---------------------------------------------------------------------------------------------------------------------------
	
	//---------------------------------------------------------------------------------------------------------------------------
	function  uf_sss_load_usuarios($as_codemp,&$aa_usuarios,$sucursal)
	{
		/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		//	     Function: uf_sss_load_usuarios
		//         Access: public  
		//      Argumento: $as_codemp      //codigo de empresa
		//                 $aa_usuarios    //arreglo de usuarios
		//	      Returns: Retorna un Booleano
		//    Description: Función que carga los datos de los usuarios
		//	   Creado Por: Ing. Luis Anibal Lang
		// Fecha Creación: 01/11/2005								Fecha Última Modificación : 01/11/2005 
		/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		$lb_valido=false;
		$ls_sql="SELECT DISTINCT ON (u.codusu) u.*
		         FROM sss_usuarios u
		         INNER JOIN sss_permisos_internos p ON u.codusu = p.codusu
				".
				" WHERE u.codemp ='".$as_codemp."' 
				    AND p.codsis ='CXC'
					AND p.codintper ='".$sucursal."'
				 ORDER BY u.codusu ";
		$rs_data=$this->io_sql->select($ls_sql);
		
		if($rs_data===false)
		{
			$this->io_msg->message("CLASE->covensol_sss_c_usuarios_cxc_cajas MÉTODO->uf_sss_load_usuarios ERROR->".$this->io_funcion->uf_convertirmsg($this->io_sql->message));
		}
		else
		{
			$li_pos=0;
			while($row=$this->io_sql->fetch_row($rs_data))
			{
				$lb_valido=true;
				$aa_usuarios[$li_pos]["nomusu"]=$row["nomusu"];  
				$aa_usuarios[$li_pos]["apeusu"]=$row["apeusu"];  
				$aa_usuarios[$li_pos]["codusu"]=$row["codusu"];  
				$li_pos=$li_pos+1;
			}
			$this->io_sql->free_result($rs_data);
		}
		return $lb_valido;
	}  // end  function  uf_sss_load_usuarios
	//---------------------------------------------------------------------------------------------------------------------------
	
	function  uf_sss_load_suc($as_codemp)
	{
		$lb_valido=false;
		$ls_sql="SELECT DISTINCT ON (cxc_cajas.codsuc) cxc_cajas.codsuc,cxc_sucursales.nomsuc 
		          FROM cxc_cajas 
		          LEFT JOIN cxc_sucursales ON cxc_cajas.codemp = cxc_sucursales.codemp
				                          AND cxc_cajas.codsuc = cxc_sucursales.codsuc
				 WHERE  cxc_cajas.codemp ='".$as_codemp."' ".
				" ORDER BY cxc_cajas.codsuc";
		$rs_data=$this->io_sql->select($ls_sql);
		if($rs_data===false)
		{
			$this->io_msg->message("CLASE->covensol_sss_c_usuarios_cxc_cajas MÉTODO->uf_sss_load_suc ERROR->".$this->io_funcion->uf_convertirmsg($this->io_sql->message));
			return false;
		}
		
		return $rs_data;
	}  // end  function  uf_sss_load_usuarios
	//---------------------------------------------------------------------------------------------------------------------------

	
	
	//---------------------------------------------------------------------------------------------------------------------------
	function  uf_sss_load_cajadisponibles($as_codemp,$as_codusu,&$aa_disponibles)
	{
		$lb_valido=false;
		
		
		if(!$this->codsuc){$this->io_msg->message("Debe Seleccionar la sucursal!"); return false;}
		
		$ls_sql= "  SELECT codsuc,codcaj,nomcaj 
		              FROM cxc_cajas ".
				 "   WHERE codemp='".$as_codemp."'
					   AND codsuc='".$this->codsuc."'      ".
				 "     AND codsuc||' - '||codcaj NOT IN".
				 " (SELECT codintper FROM sss_permisos_internos".
				 "   WHERE codemp ='".$as_codemp."'".
				 "     AND codusu ='".$as_codusu."'".
				 "     AND codsis= 'CXC'".
				 "     AND codintper IN (SELECT codsuc||' - '||codcaj ".
				 "						   FROM cxc_cajas ".
				 "						  WHERE codemp='".$as_codemp."'))";
		$rs_data=$this->io_sql->select($ls_sql);
		//echo $ls_sql."<br><br>";
		if($rs_data===false)
		{
			$this->io_msg->message("CLASE->covensol_sss_c_usuarios_cxc_cajas MÉTODO->uf_sss_load_cajadisponibles ERROR->".$this->io_funcion->uf_convertirmsg($this->io_sql->message));
		}
		else
		{
			$li_pos=0;
			while($row=$this->io_sql->fetch_row($rs_data))
			{
				$lb_valido=true;
				$aa_disponibles["codsuc"][$li_pos]=$row["codsuc"]; 
				$aa_disponibles["codcaj"][$li_pos]=$row["codcaj"]; 
				$aa_disponibles["nomcaj"][$li_pos]=$row["nomcaj"]; 
				
				$aa_disponibles["codintper"][$li_pos] = $row["codsuc"].' - '.$row["codcaj"];
				
				$li_pos=$li_pos+1;
			}
			$this->io_sql->free_result($rs_data);
		}
		
		return $lb_valido;
	}  // end  function  uf_sss_load_cajasdisponibles
	//---------------------------------------------------------------------------------------------------------------------------

	//---------------------------------------------------------------------------------------------------------------------------
	function  uf_sss_load_cajaasig($as_codemp,$as_codusu,&$aa_asignados)
	{
		$lb_valido=false;
		if(!$this->codsuc){$this->io_msg->message("Debe Seleccionar la sucursal!"); return false;}
		$ls_sql= "SELECT codintper,".
				 " (SELECT nomcaj FROM cxc_cajas ".
				 "   WHERE cxc_cajas.codemp=sss_permisos_internos.codemp".
				 "     AND cxc_cajas.codsuc||' - '||cxc_cajas.codcaj = sss_permisos_internos.codintper )as nomcaj".
				 " FROM sss_permisos_internos".
				 " WHERE codemp= '".$as_codemp."'".
				 "   AND codusu= '".$as_codusu."'".
				 "   AND codsis= 'CXC'".
				 "   AND codintper IN (SELECT codsuc||' - '||codcaj ".
				 "						 FROM cxc_cajas ".
				 "						WHERE codemp='".$as_codemp."' 
					                      AND codsuc='".$this->codsuc."'   )".
				  "   AND codintper <> ''";
		$rs_data=$this->io_sql->select($ls_sql);
		//echo $ls_sql."<br><br>";
		if($rs_data===false)
		{
			$this->io_msg->message("CLASE->covensol_sss_c_usuarios_cxc_cajas MÉTODO->uf_sss_load_cajasasignadas ERROR->".$this->io_funcion->uf_convertirmsg($this->io_sql->message));
		}
		else
		{
			$li_pos=0;
			while($row=$this->io_sql->fetch_row($rs_data))
			{
				$lb_valido=true;
				$datoscaja = explode(' - ',$row["codintper"]);
				$datos["codsuc"] = $datoscaja[0];
				$datos["codcaj"] = $datoscaja[1];
				//echo $row["codintper"].'****'.$datos["codsuc"].'****'.$datos["codcaj"]."<br><br>";
				$aa_asignados["codintper"][$li_pos]=$datos["codsuc"].' - '.$datos["codcaj"];  
				$aa_asignados["nomcaj"][$li_pos]=$row["nomcaj"];
				$aa_asignados["codcaj"][$li_pos]=$datos["codcaj"];  
				$li_pos=$li_pos+1;
			}
			$this->io_sql->free_result($rs_data);
		}
		return $lb_valido;
	}  // end  function  uf_sss_load_cajasasignadas
	//---------------------------------------------------------------------------------------------------------------------------

	//---------------------------------------------------------------------------------------------------------------------------
	function  uf_sss_insert_usuario_cxc_caja($as_codemp,$as_codintper,$as_codusu,$aa_seguridad)
	{
		$lb_valido=false;
		if($as_codintper==""){return true;}
		if($as_codintper!=""){
			$datoscaja = explode(' - ',$as_codintper);
			$datos["codsuc"] = $datoscaja[0];
			$datos["codcaj"] = $datoscaja[1];	
			$codintper=$datos["codsuc"].' - '.$datos["codcaj"];
		}
		
		
		$ls_sql = "SELECT * FROM sss_permisos_internos 
		            WHERE codemp='".$this->codemp."'
					  AND codsis='CXC'
					  AND codintper='".$datos["codsuc"]."'
					  AND codusu='".$as_codusu."'
				" ;
		$resp=$this->io_sql->execute($ls_sql);
		//echo $ls_sql."<br><br>";
		if($resp===false){
			$this->io_msg->message("CLASE->covensol_sss_c_usuarios_cxc_cajas MÉTODO->uf_sss_insert_usuario_cxc_caja ERROR->".$this->io_funcion->uf_convertirmsg($this->io_sql->message));
		}
		if(!$resp->RecordCount()){
			$this->io_msg->message("El Usuario no tiene permisos para esta Sucursal");
			return false;
		}
		
		$ls_sql = "INSERT INTO sss_permisos_internos (codemp, codsis, codusu, codintper) ".
				  "     VALUES('".$as_codemp."','CXC','".$as_codusu."','".$codintper."')" ;
		$li_row=$this->io_sql->execute($ls_sql);
		//echo $ls_sql."<br><br>";
		if($li_row===false)
		{
			$this->io_msg->message("CLASE->covensol_sss_c_usuarios_cxc_cajas MÉTODO->uf_sss_insert_usuario_cxc_caja ERROR->".$this->io_funcion->uf_convertirmsg($this->io_sql->message));
		}
		else
		{
			$lb_valido=true;
			/////////////////////////////////         SEGURIDAD               /////////////////////////////		
			$ls_evento="INSERT";
			$ls_descripcion ="Relacionó el Proyecto/Acción ".$as_codintper." al usuario ".$as_codusu." Asociado a la empresa ".$as_codemp;
			$lb_variable= $this->seguridad->uf_sss_insert_eventos_ventana($aa_seguridad["empresa"],
											$aa_seguridad["sistema"],$ls_evento,$aa_seguridad["logusr"],
											$aa_seguridad["ventanas"],$ls_descripcion);
			/////////////////////////////////         SEGURIDAD               /////////////////////////////		
		}
		return $lb_valido;
	} // end  function  uf_sss_insert_usuario_caja
	//---------------------------------------------------------------------------------------------------------------------------

	//---------------------------------------------------------------------------------------------------------------------------
	function uf_sss_delete_usuario_cxc_caja($as_codemp,$as_codintper,$as_codusu,$aa_seguridad)
	{
		$lb_valido=false;
		
		
		if($as_codintper!=""){
			$datoscaja = explode(' - ',$as_codintper);
			$datos["codsuc"] = $datoscaja[0];
			$datos["codcaj"] = $datoscaja[1];	
			$codintper=$datos["codsuc"].' - '.$datos["codcaj"];
		}
		
		$ls_sql= " DELETE FROM sss_derechos_usuarios".
				 " WHERE codemp= '".$as_codemp. "'".
				 "   AND codintper= '".$codintper. "'".
				 "   AND codusu= '".$as_codusu."'".
				 "   AND codsis='CXC'";
		$li_row=$this->io_sql->execute($ls_sql);
		//echo $ls_sql."<br><br>";
		if($li_row===false)
		{
			$this->io_msg->message("CLASE->covensol_sss_c_usuarios_cxc_caja MÉTODO->uf_sss_delete_usuario_cxc_cajas ERROR->".$this->io_funcion->uf_convertirmsg($this->io_sql->message));
		}
		else
		{ 
		 $ls_sql= " DELETE FROM sss_permisos_internos".
				 " WHERE codemp= '".$as_codemp. "'".
				 "   AND codintper= '".$codintper. "'".
				 "   AND codusu= '".$as_codusu."'".
				 "   AND codsis='CXC'"; 
		 $li_row=$this->io_sql->execute($ls_sql);
		 //echo $ls_sql."<br><br>";
		 if($li_row===false)
		 {
			$this->io_msg->message("CLASE->covensol_sss_c_usuarios_cxc_caja MÉTODO->uf_sss_delete_usuario_cxc_cajas ERROR->".$this->io_funcion->uf_convertirmsg($this->io_sql->message));
		 }
		 else
		 {
			/////////////////////////////////         SEGURIDAD               /////////////////////////////
			$ls_evento="DELETE";
			$ls_descripcion ="Eliminó el Proyecto  ".$as_codintper." al usuario ".$as_codusu." Asociado a la empresa ".$as_codemp;
			$lb_variable= $this->seguridad->uf_sss_insert_eventos_ventana($aa_seguridad["empresa"],
											$aa_seguridad["sistema"],$ls_evento,$aa_seguridad["logusr"],
											$aa_seguridad["ventanas"],$ls_descripcion);
			/////////////////////////////////         SEGURIDAD               /////////////////////////////			
			$lb_valido=true;
		 }
		} 
		return $lb_valido;
	}  // end  function uf_sss_delete_usuario_caja
	//---------------------------------------------------------------------------------------------------------------------------

	//---------------------------------------------------------------------------------------------------------------------------
	function  uf_sss_load_permisos($as_codemp,$as_codintper,$as_codusu,$aa_seguridad)
	{
		$lb_valido=true;
		$ls_sql="  SELECT nomven,visible,enabled,leer,incluir,cambiar,eliminar,imprimir,administrativo,anular,ejecutar".
				"    FROM sss_derechos_usuarios".
				"   WHERE codemp= '".$as_codemp."'".
				"     AND codusu= '".$as_codusu."'".
				"     AND codsis='CXC' ".
				"GROUP BY nomven,visible,enabled,leer,incluir,cambiar,eliminar,imprimir,administrativo,anular,ejecutar";
		$rs_data=$this->io_sql->select($ls_sql);
		//echo $ls_sql."<br><br>";
		if($rs_data===false)
		{
			$this->io_msg->message("CLASE->covensol_sss_c_usuarios_cxc_cajas MÉTODO->uf_sss_load_permisos ERROR->".$this->io_funcion->uf_convertirmsg($this->io_sql->message));
		}
		else
		{
			$li_pos=0;
			while($row=$this->io_sql->fetch_row($rs_data))
			{
				$lb_valido=true;
				$ls_nomven=$row["nomven"];  
				$li_visible=$row["visible"];  
				$li_enabled=$row["enabled"];  
				$li_leer=$row["leer"];  
				$li_incluir=$row["incluir"];  
				$li_cambiar=$row["cambiar"];  
				$li_eliminar=$row["eliminar"];  
				$li_imprimir=$row["imprimir"];  
				$li_administrador=$row["administrativo"];  
				$li_anular=$row["anular"];  
				$li_ejecutar=$row["ejecutar"];  
				$lb_valido=$this->uf_sss_insert_derecho_usuario($as_codemp,$as_codusu,'CXC',$ls_nomven,$li_visible,$li_enabled,
									   					 		$li_leer,$li_incluir,$li_cambiar,$li_eliminar,$li_imprimir,
														 		$li_administrador,$li_anular,$li_ejecutar,$as_codintper);
				if(!$lb_valido)
				{break;}
				$li_pos=$li_pos+1;
			}
			if(($li_pos>0)&&($lb_valido))
			{
				/////////////////////////////////         SEGURIDAD               /////////////////////////////		
				$ls_evento="INSERT";
				$ls_descripcion="Actualizó el perfil de seguridad en el proyecto/acción ".$as_codintper." al usuario ".$as_codusu.
								 " Asociado a la empresa ".$as_codemp;
				$lb_variable= $this->seguridad->uf_sss_insert_eventos_ventana($aa_seguridad["empresa"],
												$aa_seguridad["sistema"],$ls_evento,$aa_seguridad["logusr"],
												$aa_seguridad["ventanas"],$ls_descripcion);
				/////////////////////////////////         SEGURIDAD               /////////////////////////////		
			}
			$this->io_sql->free_result($rs_data);
		}
		return $lb_valido;
	}  // end  function  uf_sss_load_permisos
	//---------------------------------------------------------------------------------------------------------------------------

	//---------------------------------------------------------------------------------------------------------------------------
	function  uf_sss_insert_derecho_usuario($as_codemp,$as_codusu,$as_codsis,$as_nomven,$ai_visible,$ai_enabled,$ai_leer,
											$ai_incluir,$ai_cambiar,$ai_eliminar,$ai_imprimir,$ai_administrador,$ai_anular,
											$ai_ejecutar,$as_codintper)
	{
		$lb_valido=false;
		
		if($as_codintper==""){return true;}
		
		if($as_codintper!=""){
			$datoscaja = explode(' - ',$as_codintper);
			$datos["codsuc"] = $datoscaja[0];
			$datos["codcaj"] = $datoscaja[1];	
			$codintper=$datos["codsuc"].' - '.$datos["codcaj"];
		}
		
		$ls_sql = "INSERT INTO sss_derechos_usuarios (codemp,codusu,codsis,nomven,visible,enabled,leer,incluir,cambiar,". 
				  "									  eliminar,imprimir,administrativo,anular,ejecutar,codintper) ".
				  "     VALUES('".$as_codemp."','".$as_codusu."','".$as_codsis."','".$as_nomven."',".$ai_visible.",".
				  " 	        ".$ai_enabled.",".$ai_leer.",".$ai_incluir.",".$ai_cambiar.",".$ai_eliminar.",".$ai_imprimir.",".
				  "             ".$ai_administrador.",".$ai_anular.",".$ai_ejecutar.",'".$codintper."')" ;
		$li_row=$this->io_sql->execute($ls_sql);
		//echo $ls_sql."<br><br>";
		if($li_row===false)
		{
			$this->io_msg->message("CLASE->covensol_sss_c_usuarios_cxc_cajas MÉTODO->uf_sss_insert_derecho_usuario ERROR->".$this->io_funcion->uf_convertirmsg($this->io_sql->message));
		}
		else
		{
			$lb_valido=true;
		}
		return $lb_valido;
	}  // end  function  uf_sss_insert_derecho_usuario
	//---------------------------------------------------------------------------------------------------------------------------

	//---------------------------------------------------------------------------------------------------------------------------
	function  uf_sss_delete_permisos($as_codemp,$as_codintper,$as_codusu,$aa_seguridad)
	{
		$lb_valido=false;
		
		if($as_codintper!=""){
			$datoscaja = explode(' - ',$as_codintper);
			$datos["codsuc"] = $datoscaja[0];
			$datos["codcaj"] = $datoscaja[1];	
			$codintper=$datos["codsuc"].' - '.$datos["codcaj"];
		}
		
		$ls_sql="DELETE FROM sss_derechos_usuarios".
			    " WHERE codemp='" .$as_codemp ."'".
			    "   AND codusu='" .$as_codusu ."'".
			    "   AND codsis='CXC'".
			    "   AND codintper='" .$codintper ."'";
		$rs_data=$this->io_sql->select($ls_sql);
		//echo $ls_sql."<br><br>";
		if($rs_data===false)
		{
			$this->io_msg->message("CLASE->covensol_sss_c_usuarios_cxc_cajas MÉTODO->uf_sss_delete_permisos ERROR->".$this->io_funcion->uf_convertirmsg($this->io_sql->message));
		}
		else
		{
			/////////////////////////////////         SEGURIDAD               /////////////////////////////		
			$ls_evento="DELETE";
			$ls_descripcion="Eliminó el perfil de seguridad en Proyecto/Acción ".$as_codintper." al usuario ".$as_codusu.
							 " Asociado a la empresa ".$as_codemp;
			$lb_variable= $this->seguridad->uf_sss_insert_eventos_ventana($aa_seguridad["empresa"],
											$aa_seguridad["sistema"],$ls_evento,$aa_seguridad["logusr"],
											$aa_seguridad["ventanas"],$ls_descripcion);
			/////////////////////////////////         SEGURIDAD               /////////////////////////////		
			$lb_valido=true;
		}
		return $lb_valido;
	}  // end  function  uf_sss_delete_permisos
	//---------------------------------------------------------------------------------------------------------------------------
	
}//  end  class sigesp_sss_c_usuarios_grupos

?>
