




<?php
require_once('config/app/Query.php');

class usuariosModel extends Query {
    private $usuario, $nombre, $clave, $id_caja, $estado, $id, $id_rol;
    public function __construct() {
        parent::__construct();
    }

   public function getUsuario(string $usuario, string $clave) {
    $usuario = addslashes($usuario);
    $clave = addslashes($clave);

    $sql = "SELECT * FROM usuario WHERE usuario = '$usuario' AND clave ='$clave' AND estado = 1";
    $data = $this->select($sql);
    return $data;
}

    public function getCajas() {
        $sql = "SELECT * FROM `caja` WHERE estado = 1";
        $data = $this->selectAll($sql);
        return $data;} 

     public function getUsuarios() {
        $sql = "SELECT u.*, c.id as id_caja, c.caja FROM usuario u INNER JOIN caja c ON u.`id_caja` = c.id LIMIT 0, 25;";
        $data = $this->selectAll($sql);
        return $data;
       

    }


    public function usuarioencaja() {
        $sql = "SELECT MAX(id) as id_user FROM usuario WHERE estado = 1";
        $data = $this->select($sql);
        return $data;
    }
    
    public function registrarencaja(int $id_usuario, string $fecha) {
        $sql = "INSERT INTO sistemas_de_arqueo (id_usuario, fecha_apertura, estado, est_button) VALUES (?,?,?,?)";
        $datos = array($id_usuario, $fecha, 0, 1);
        $data = $this->save($sql, $datos);
        return $data;
    }
    
    

     public function registrarUsuario(string $usuario, string $nombre, string $clave, int $id_caja, int $rol){
        $this->usuario = $usuario;
        $this->nombre = $nombre;
        $this->clave = $clave;
        $this->id_caja = $id_caja;
        $this->id = $rol;
        $verificar ="SELECT * FROM usuario WHERE usuario = '$this->usuario'";
        $existe = $this->select($verificar);
        if (empty($existe)) {
         $sql = "INSERT INTO usuario (usuario, nombre, clave, id_caja, id_rol) VALUES (?,?,?,?,?)";

        $datos = array($this->usuario, $this->nombre, $this->clave, $this->id_caja,$this->id);
        $data = $this->save($sql, $datos);
        if ($data == 1) {
            $res = "ok";
        } else {
            $res = "error";   
        }
       
        }else {
            $res ="existe";
        }
        return $res;
    }

    public function modificarUsuario(string $usuario, string $nombre, int $id_caja, int $id, int $rol ){
        $this->usuario = $usuario;
        $this->nombre = $nombre;
        $this->id = $id;
        $this->id_caja = $id_caja;
        $this->id_rol = $rol;
        $sql = "UPDATE usuario SET usuario = ?, nombre= ?, id_caja = ?, id_rol = ? WHERE id = ?";

        $datos = array($this->usuario, $this->nombre, $this->id_caja,$this->id_rol, $this->id,);
        $data = $this->save($sql, $datos);
        if ($data == 1) {
            $res = "modificado";
        } else {
            $res = "error";   
        }
        return $res;
    }

    public function editarUser(int $id)
    {
        $sql = "SELECT*FROM usuario WHERE id=$id";
        $data = $this->select($sql);
        return $data;
    }

    
    public function getpass(string $clave, int $id)
{
    $sql = "SELECT * FROM usuario WHERE clave = '$clave' AND id = $id";
    $data = $this->select($sql);
    return $data;
}

    

    function accionUser(int $estado, int $id){
        $this->id = $id;
        $this->estado = $estado;
        $sql = "UPDATE usuario SET estado = ? WHERE id = ?";

        $datos = array($this->estado, $this->id);
        $data = $this->save($sql, $datos);
        return $data;

    }

    public function  modificarPass(string $clave, int $id){
        $sql = "UPDATE usuario SET clave = ? WHERE id = ?";

        $datos = array($clave, $id);
        $data = $this->save($sql, $datos);
        return $data;
    }
    public function getPermisos() {
        $sql = "SELECT * FROM permisos";
        $data = $this->selectAll($sql);
        return $data;} 


        public function registrarPermisos(int $id_user, int $id_permiso){
            $sql = "INSERT INTO detalle_permisos (id_usuario, id_permiso) VALUES (?,?)";

            $datos = array($id_user, $id_permiso);
            $data = $this->save($sql, $datos);
            if ($data == 1) {
                $res = 'ok';
             }else {
                 $res ='error';
             }
             return $res;
 
            
        }
        
        public function eliminarPermisos(int $id_user){
            $sql = "DELETE FROM detalle_permisos WHERE id_usuario = ?";

            $datos = array($id_user);
            $data = $this->save($sql, $datos);
            if ($data == 1) {
               $res = 'ok';
            }else {
                $res ='error';
            }
            return $res;

            
        }

        public function getDetallePermisos(int $id_user){
              $sql = "SELECT * FROM detalle_permisos WHERE id_usuario = $id_user";
                $data = $this->selectAll($sql);
                return $data;} 
                

              //  public function verificarPermiso(int $id_user, string $nombre) {
             //       $sql = "SELECT p.id, p.permiso, d.id, d.id_usuario, d.id_permiso FROM permisos p INNER JOIN detalle_permisos d ON p.id = d.id_permiso WHERE d.id_usuario = $id_user AND p.permiso = '$nombre'";
            //       $data = $this->selectAll($sql);
            //       return $data;
                    
             //    }
                
            public function cerrarSusVentas($id){
                $sql = "UPDATE ventas SET estado_final = ? WHERE id_usuario = $id";
                $datos = array(0);
                $data = $this->save($sql, $datos);
                return $data ;
                
            }
          


        
        
            public function mostrarElusuario($id_user){
                $sql = "SELECT nombre FROM usuario where id = $id_user";
                $data = $this->selectAll($sql);
                return $data;
                
                
            }

            public function roles(){
                $sql = "SELECT * FROM rol";
                $data = $this->selectAll($sql);
                return $data;
                
            }

            
   
   }







?>
