<?php
require_once('./config/app/views.php');
require_once('./config/app/controller.php');
require_once('./models/usuariosmodel.php');

class usuarios extends controller
{       //INICIO DE SSECIO
    public function __construct()
    {
        SESSION_START();
       
        //INICIO DE SSECION 

         parent::__construct();
        $this->model = new usuariosModel();
    }

    public function index()
    {
        if (empty($_SESSION ['activo'])) {
            header("location:" . base_url);
         }
         $id_user = (int)$_SESSION['id_usuario'];
        $verificar = 1;
        if (!empty($verificar) || $id_user == 1 ) { 
    
        $this->views->getviews($this, "index");
            
        } else {
            header('Location: ' . base_url );

        }
       
    }



    
            public function FunctionName(){
            $id_user = (int)$_SESSION['id_usuario'];
            $data = $this->model->mostrarElusuario($id_user); 
            echo json_encode($data, JSON_UNESCAPED_UNICODE);
            }






    public function listar()
    {
        $data = $this->model->getUsuarios();

        for ($i = 0; $i < count($data); $i++) {
            if ($data[$i]['estado'] == 1) {
                $data[$i]['estado'] = '<span class="badge badge-success">activo</span>';
                if ($data[$i]['id']==1) {
                $data[$i]['acciones'] = '<div>
              
                <span class="badge badge-primary">ADMINISTRADOR</span>
                </div>';
            }else {
              
                $data[$i]['acciones'] = '<div>
                <a class="btn btn-danger" href="'.base_url.'usuarios/permisos/'.$data[$i]['id'] .'"><i class="fa-solid fa-toggle-on fa-lg" style="color: #ffffff;"></i></a>
                <button class="btn btn-primary" type="button" onclick="btnEditarUser(' . $data[$i]['id'] . ');"><i class="fas fa-edit"></i></button>
                <button class="btn btn-danger" type="button" onclick="btnEliminarUser(' . $data[$i]['id'] . ');"><i class="fas fa-trash-alt"></i></button> </div>';
            }
            } else {
                $data[$i]['estado'] = '<span class="badge badge-danger">suspendido</span>';
                 $data[$i]['acciones'] = '<div>
              
                <button class="btn btn-success" type="button" onclick="btnReningresarUser(' . $data[$i]['id'] . ');">Activar</button>
                </div>';}
            
        }
        echo json_encode($data, JSON_UNESCAPED_UNICODE);
        die();
    }

    public function validar()
{
    
   if (empty($_POST['usuario']) || empty($_POST['clave'])) {
       $smg = "Los campos están vacíos";
   } else {
    if(isset($_POST['usuario']) && isset($_POST['clave'])) {
       $usuario = $_POST['usuario'];
       $clave = $_POST['clave'];
       $data = $this->model->getUsuario($usuario, $clave);
       
       if ($data) {
           $_SESSION['id_usuario'] = $data['id'];
           $_SESSION['usuario'] = $data['usuario'];
           $_SESSION['nombre'] = $data['nombre'];
           $_SESSION['activo'] = true;
           $smg = 'ok';
       } else {
           $smg = 'Usuario o contraseña incorrectos';
       }
      }  }
   
   echo json_encode($smg, JSON_UNESCAPED_UNICODE);
   die();
}


    public function registrar()
    {
       
        $usuario = $_POST['usuario'];
        $nombre = $_POST['nombre'];
        $clave = $_POST['clave'];
        $confirmar = $_POST['confirmar'];
        $caja = $_POST['caja'];
        $cajas = intval($caja);
        $rol = $_POST['rol'];
        $id = $_POST['id'];
        $smg = "";
        $fecha = date('Y-m-d');
        if (empty($usuario) || empty($nombre) || empty($rol)) {
            $smg = "todos los campos son obligatorios";
        } else {
            if ($id == "") {
                if ($clave != $confirmar) {
                    $smg = "las contraseñas no coinciden";
                } else {
                    $data = $this->model->registrarUsuario($usuario, $nombre, $clave, $caja, $rol);
                    if ($data == "ok") {
                        $consultar_id = $this->model->usuarioencaja();
                        $ultimo_id = $consultar_id['id_user'];
                        $insertar_sistemas_arqueo = $this->model->registrarencaja($ultimo_id, $fecha);
                        if ($insertar_sistemas_arqueo == 1) {
                            $smg = "si";
                            echo json_encode($smg, JSON_UNESCAPED_UNICODE);
                            exit;
                        }
                      
                    } elseif ($data == "existe") {
                        $smg = "el usuario ya existe";
                    } else {
                        $smg = "error al registrar el usuario";
                    }
                }
            } else {
                $data = $this->model->modificarUsuario($usuario, $nombre, $cajas, $id, $rol);
                if ($data == "modificado") {
                    $smg = "modificado";
                } else {
                    $smg = "error al modificado el usuario";
                }
            }
        }
        echo json_encode($smg, JSON_UNESCAPED_UNICODE);
        die();
    }

 
    public function editar(int $id)
    {
        $data = $this->model->editarUser($id);
        echo json_encode($data, JSON_UNESCAPED_UNICODE);
        die();
    }

    public function eliminar(int $id)
    {
        $data = $this->model->accionUser(0, $id);
        if ($data == 1) {
            $this->model->cerrarSusVentas($id);
            $smg = "ok";
        } else {
            $smg = "error al eliminar el usuario";
        }
        echo json_encode($smg, JSON_UNESCAPED_UNICODE);
        die();
    }

    public function reingresar(int $id)
    {
        $data = $this->model->accionUser(1, $id);
        if ($data == 1) {
            $smg = "ok";
        } else {
            $smg = "error al reingresar el usuario";
        }
        echo json_encode($smg, JSON_UNESCAPED_UNICODE);
        die();
    }

    public function cambiarPass(){
        $actual = $_POST['clave_actual'];
        $nueva = $_POST['clave_nueva'];
        $confirmar = $_POST['confirmar_clave'];
        $mensaje = array();
    
        if (empty($actual) || empty($nueva) || empty($confirmar)) {
            $mensaje = array('msg' => 'HAY CAMPOS VACIOS', 'icono' => 'warning');
        } else {
            if ($nueva != $confirmar) {
                $mensaje = array('msg' => 'LAS CONTRASEÑAS NO COINCIDEN', 'icono' => 'warning');
            } else {
                $id_usuario = $_SESSION['id_usuario'];
                $data = $this->model->getpass($actual, (int)$id_usuario); // Convierte $id_usuario a entero
    
                if (!empty($data)) {
                    $verificar = $this->model->modificarPass($nueva, (int)$id_usuario); // Convierte $id_usuario a entero
                    if ($verificar == 1) {
                        $mensaje = 'si';

                    } else {
                        $mensaje = array('msg' => 'ERROR AL MODIFICAR', 'icono' => 'error');
                    }
                } else {
                    $mensaje = array('msg' => 'CONTRASEÑA INCORRECTA', 'icono' => 'warning');
                }
            }
        }
        echo json_encode($mensaje, JSON_UNESCAPED_UNICODE);
        die();
    }
    
    
    public function permisos($id)
{
    if (empty($_SESSION['activo'])) {
        header("location:" . base_url);
    }


    $id = intval($id);

    $data['datos'] = $this->model->getPermisos();
    $permisos = $this->model->getDetallePermisos($id);
    $data['asignados'] = array();
    foreach ($permisos as $permiso) {
        $data['asignados'][$permiso['id_permiso']] = true;
    }
    $data['id_usuario'] = $id;
    $this->views->getviews($this, "permisos", $data);
}


  public function registrarPermisos() {
    $msg = '';
    if (isset($_POST['permisos']) && !empty($_POST['permisos'])) {
        $id_user = $_POST['id_usuario']; 
        $eliminar = $this->model->eliminarPermisos($id_user);
        if ($eliminar == 'ok') {
            foreach ($_POST['permisos'] as $id_permiso) {
                $msg = $this->model->registrarPermisos($id_user, $id_permiso);
            }
            if ($msg == 'ok') {
                $msg = array('msg' => 'Permisos asignados', 'icono' => 'success');
            } else {
                $msg = array('msg' => 'Error al asignar el permiso', 'icono' => 'error');
            }
        } else {
            $msg = array('msg' => 'Error al eliminar permisos previos', 'icono' => 'error');
        }
    } else {
        $msg = array('msg' => 'No se han seleccionado permisos', 'icono' => 'error');
    }
    
    echo json_encode($msg, JSON_UNESCAPED_UNICODE);
}




    public function salir(){
        session_destroy();
        header("Location: " . base_url);

        
    }





















}
?>
