<?php 
session_start();
require_once "../modelos/Usuario.php";

$usuario=new Usuario();

$idusuario=isset($_POST["idusuario"])? limpiarCadena($_POST["idusuario"]):"";
$nombre=isset($_POST["nombre"])? limpiarCadena($_POST["nombre"]):"";
$tipo_documento=isset($_POST["tipo_documento"])? limpiarCadena($_POST["tipo_documento"]):"";
$num_documento=isset($_POST["num_documento"])? limpiarCadena($_POST["num_documento"]):"";
$direccion=isset($_POST["direccion"])? limpiarCadena($_POST["direccion"]):"";
$telefono=isset($_POST["telefono"])? limpiarCadena($_POST["telefono"]):"";
$email=isset($_POST["email"])? limpiarCadena($_POST["email"]):"";
$cargo=isset($_POST["cargo"])? limpiarCadena($_POST["cargo"]):"";
$login=isset($_POST["login"])? limpiarCadena($_POST["login"]):"";
$clave=isset($_POST["clave"])? limpiarCadena($_POST["clave"]):"";
$imagen=isset($_POST["imagen"])? limpiarCadena($_POST["imagen"]):"";

switch ($_GET["op"]) {
	case 'guardaryeditar':

		if (!file_exists($_FILES['imagen']['tmp_name'])|| !is_uploaded_file($_FILES['imagen']['tmp_name'])) {
			$imagen=$_POST["imagenactual"];
		}else{
			$ext=explode(".", $_FILES["imagen"]["name"]);
			if ($_FILES['imagen']['type']=="image/jpg" || $_FILES['imagen']['type']=="image/jpeg" || $_FILES['imagen']['type']=="image/png") {
				$imagen=round(microtime(true)).'.'. end($ext);
				move_uploaded_file($_FILES["imagen"]["tmp_name"], "../files/usuarios/".$imagen);
			}
		}

		if (empty($idusuario)) {
			$clavehash=hash("SHA256", $clave);
			$rspta=$usuario->insertar($nombre,$tipo_documento,$num_documento,$direccion,$telefono,$email,$cargo,$login,$clavehash,$imagen,$_POST['permiso']);
			echo $rspta ? "Datos registrados correctamente" : "No se pudo registrar todos los datos del usuario";
		}else{
			//Verificamos si cambio la clave
			$rsptac=$usuario->verificarclave($idusuario,$clave);
			$fetch=$rsptac->fetch_object();
			if (isset($fetch)) {
				$clavehash=$clave;
			}else{
				//Hash SHA256 para la contraseña
				$clavehash=hash("SHA256", $clave);
			}
			$rspta=$usuario->editar($idusuario,$nombre,$tipo_documento,$num_documento,$direccion,$telefono,$email,$cargo,$login,$clavehash,$imagen,$_POST['permiso']);
			echo $rspta ? "Datos actualizados correctamente" : "No se pudo actualizar los datos";
		}
	break;
	

	case 'desactivar':
	$rspta=$usuario->desactivar($idusuario);
	echo $rspta ? "Datos desactivados correctamente" : "No se pudo desactivar los datos";
	break;

	case 'activar':
	$rspta=$usuario->activar($idusuario);
	echo $rspta ? "Datos activados correctamente" : "No se pudo activar los datos";
	break;
	
	case 'mostrar':
	$rspta=$usuario->mostrar($idusuario);
	echo json_encode($rspta);
	break;

	case 'listar':
		$rspta=$usuario->listar();
		$data=Array();

		while ($reg=$rspta->fetch_object()) {
			$data[]=array(
				"0"=>($reg->condicion)?'<button class="btn btn-warning btn-xs" onclick="mostrar('.$reg->idusuario.')"><i class="fa fa-pencil"></i></button>'.' '.'<button class="btn btn-danger btn-xs" onclick="desactivar('.$reg->idusuario.')"><i class="fas fa-times"></i></button>':'<button class="btn btn-warning btn-xs" onclick="mostrar('.$reg->idusuario.')"><i class="fa fa-pencil"></i></button>'.' '.'<button class="btn btn-primary btn-xs" onclick="activar('.$reg->idusuario.')"><i class="fa fa-check"></i></button>',
				"1"=>$reg->nombre,
				"2"=>$reg->tipo_documento,
				"3"=>$reg->num_documento,
				"4"=>$reg->telefono,
				"5"=>$reg->email,
				"6"=>$reg->login,
				"7"=>"<img src='files/usuarios/".$reg->imagen."' height='50px' width='50px'>",
				"8"=>($reg->condicion)?'<span class="badge bg-green">Activado</span>':'<span class="badge bg-red">Desactivado</span>'
			);
		}

		$results=array(
				"sEcho"=>1,//info para datatables
				"iTotalRecords"=>count($data),//enviamos el total de registros al datatable
				"iTotalDisplayRecords"=>count($data),//enviamos el total de registros a visualizar
				"aaData"=>$data); 
		echo json_encode($results);
	break;

	case 'permisos':
			//obtenemos toodos los permisos de la tabla permisos
		require_once "../modelos/Permiso.php";
		$permiso	=new Permiso();
		$rspta		=$permiso->listar();
		//obtener permisos asigandos
		$id			=$_GET['id'];
		$marcados	=$usuario->listarmarcados($id);
		$valores	=array();

		//almacenar permisos asigandos
		while ($per=$marcados->fetch_object()) {
			array_push($valores, $per->idpermiso);
		}
		//mostramos la lista de permisos
		while ($reg=$rspta->fetch_object()) {
			$sw=in_array($reg->idpermiso,$valores)?'checked':'';
			$blanco=" ";
			echo '<li><input type="checkbox" '.$sw.' name="permiso[]" value="'.$reg->idpermiso.'">'.$blanco.$reg->nombre.'</li>';
		}
	break;

	case 'verificar':
		//validar si el usuario tiene acceso al sistema
		$logina=$_POST['logina'];
		$clavea=$_POST['clavea'];

		//Hash SHA256 en la contraseña
		$clavehash=hash("SHA256", $clavea);
		
		$rspta=$usuario->verificar($logina, $clavehash);
		
		$verificado=0;
		$fetch=$rspta->fetch_object();
		if (isset($fetch)) {
			$verificado=1;

			// Buscamos los datos de la compañia
			require_once "../modelos/Empresa.php";
			$empresa=new Empresa();
			/*
			SELECT a.idempresa,a.nombre,a.tipo_documento,a.num_documento,a.direccion,a.telefono,a.email,a.imagen, 
			b.idempresa_venta,b.nrofactura,b.nrocontrol, t.idempresa_tasacambio, t.tasa_dollar, t.tasa_euro, 
			i.idempresa_impuesto, i.iva, i.aduanero 
			FROM empresa a 
			LEFT OUTER JOIN empresa_venta b ON a.idempresa=b.idempresa 
			LEFT OUTER JOIN empresa_tasacambio t ON a.idempresa=t.idempresa 
			LEFT OUTER JOIN empresa_impuestos i ON a.idempresa=i.idempresa 
			WHERE a.condicion='1'
			*/			
			$rspte=$empresa->buscarempresa();
			$fetche=$rspte->fetch_object();
			if (isset($fetche)) {
				$_SESSION['idempresa_empresa']			=$fetche->idempresa;
				$_SESSION['nombre_empresa']				=$fetche->nombre;
				$_SESSION['tipo_documento_empresa']		=$fetche->tipo_documento;
				$_SESSION['num_documento_empresa']		=$fetche->num_documento;
				$_SESSION['direccion_empresa']			=$fetche->direccion;
				$_SESSION['telefono_empresa']			=$fetche->telefono;
				$_SESSION['email_empresa']				=$fetche->email;
				$_SESSION['imagen_empresa']				=$fetche->imagen;
				$_SESSION['idempresa_venta_empresa']	=$fetche->idempresa_venta;
				$_SESSION['nrofactura_empresa']			=$fetche->nrofactura;
				$_SESSION['nrocontrol_empresa']			=$fetche->nrocontrol;
				$_SESSION['tasa_dollar_empresa']		=$fetche->tasa_dollar;
				$_SESSION['tasa_euro_empresa']			=$fetche->tasa_euro;
				$_SESSION['iva_empresa']				=$fetche->iva;
				$_SESSION['aduanero_empresa']			=$fetche->aduanero;
				$_SESSION['impuestoart18_empresa']		=$fetche->impuestoart18;
				$_SESSION['porcentajeprecio_empresa']	=$fetche->porcentajeprecio;
			}
			
			# Declaramos la variables de sesion
			$_SESSION['idusuario']	=$fetch->idusuario;
			$_SESSION['nombre']		=$fetch->nombre;
			$_SESSION['imagen']		=$fetch->imagen;
			$_SESSION['cargo']		=$fetch->cargo;
			$_SESSION['login']		=$fetch->login;

			//obtenemos los permisos
			$marcados=$usuario->listarmarcados($fetch->idusuario);

			//declaramos el array para almacenar todos los permisos
			$valores=array();

			//almacenamos los permisos marcados en al array
			while ($per = $marcados->fetch_object()) {
				array_push($valores, $per->idpermiso);
			}

			//determinamos lo accesos al usuario
			in_array(1, $valores)?$_SESSION['escritorio']=1:$_SESSION['escritorio']=0;
			in_array(2, $valores)?$_SESSION['almacen']=1:$_SESSION['almacen']=0;
			in_array(3, $valores)?$_SESSION['compras']=1:$_SESSION['compras']=0;
			in_array(4, $valores)?$_SESSION['ventas']=1:$_SESSION['ventas']=0;
			in_array(5, $valores)?$_SESSION['acceso']=1:$_SESSION['acceso']=0;
			in_array(6, $valores)?$_SESSION['reporte']=1:$_SESSION['reporte']=0;
			in_array(7, $valores)?$_SESSION['cxc']=1:$_SESSION['cxc']=0;
			in_array(8, $valores)?$_SESSION['cxpagar']=1:$_SESSION['cxpagar']=0;
			in_array(9, $valores)?$_SESSION['banco']=1:$_SESSION['banco']=0;
		}
		echo $verificado;
	break;

	case 'verificarpermiso':
		//validar si el usuario tiene acceso al sistema
		$logina=$_POST['logina'];
		$clavea=$_POST['clavea'];
		//Hash SHA256 en la contraseña
		$clavehash=hash("SHA256", $clavea);
		$rspta=$usuario->verificarpermiso($logina, $clavehash);
		$verificado=0;
		$fetch=$rspta->fetch_object();
		if (isset($fetch)) {
			$verificado=1;
		}
		echo $verificado;
	break;


	case 'salir':
	   //limpiamos la variables de la secion
		session_unset();
	  	//destruimos la sesion
		session_destroy();
		//redireccionamos al login
		//header("Location: index.php");
		echo 1;
	break;

	


	
}
?>

