<?php 

require_once "conexion.php";

class ModeloEmpleado {

    static public function MdlMostrarEmpleado($tabla, $item, $valor){

        if($item != null){

            $stmt = Conexion:: conectar()->prepare("SELECT * FROM $tabla WHERE $item = :$item");

            $stmt -> bindParam(":".$item, $valor, PDO::PARAM_STR);
            
            $stmt -> execute();

            return $stmt -> fetch();

        }else {

            $stmt = Conexion:: conectar()->prepare("SELECT * FROM $tabla WHERE estado = '1' ");
            
            $stmt -> execute();

            return $stmt -> fetchAll();
        }

        $stmt -> close();

        $stmt = null;
    }
    
    static public function MdlMostrarEmpleadoU($tabla, $item, $valor){


        if($item != null){

            $stmt = Conexion:: conectar()->prepare("SELECT a.*, b.id_empleado as empleado, CASE WHEN b.id_empleado IS null then 0 else 1 end as flag from empleado a left join usuario b on a.id_empleado = b.id_empleado WHERE a.estado = 1");

            $stmt -> execute();

            return $stmt -> fetch();

        }else {

            $stmt = Conexion:: conectar()->prepare("SELECT a.*, b.id_empleado as empleado, CASE WHEN b.id_empleado IS null then 0 else 1 end as flag from empleado a left join usuario b on a.id_empleado = b.id_empleado WHERE a.estado = 1 ");

            $stmt -> execute();

            return $stmt -> fetchAll();
        }

        $stmt -> close();

        $stmt = null;
    }


    static public function mdlIngresarEmpleado($tabla, $datos){
    try {

            $stmt = Conexion:: conectar()->prepare("INSERT INTO $tabla(dni, nombre, direccion, telefono, email, fecha_ingreso, estado) VALUES (:dni, :nombre, :direccion, :telefono, :email, :fecha_ingreso, :estado)");
            
            $stmt -> bindParam(":dni", $datos["dni"], PDO::PARAM_STR);
            $stmt -> bindParam(":nombre", $datos["nombre"], PDO::PARAM_STR);
            $stmt -> bindParam(":direccion", $datos["direccion"], PDO::PARAM_STR);
            $stmt -> bindParam(":telefono", $datos["telefono"], PDO::PARAM_STR);
            $stmt -> bindParam(":email", $datos["email"], PDO::PARAM_STR);
            $stmt -> bindParam(":fecha_ingreso", $datos["fecha_ingreso"], PDO::PARAM_STR);
            $stmt -> bindParam(":estado", $datos["estado"], PDO::PARAM_STR);

            if($stmt -> execute()){
                return "ok";
            }else{
                return "error";
            }
            
        } catch (PDOException $e) {
        // Log para depuración
        error_log("Error en mdlIngresarEmpleado: " . $e->getMessage());
        return "error";
        } finally {
            $stmt = null; // liberar recursos
        }


        
    }

    static public function mdlEditarEmpleado($tabla, $datos){

        try {
            $stmt = Conexion::conectar()->prepare("UPDATE $tabla SET dni = :dni, nombre = :nombre, direccion = :direccion, telefono =:telefono, email =:email, fecha_ingreso =:fecha_ingreso, estado =:estado WHERE id_empleado = :id_empleado");

            $stmt -> bindParam(":id_empleado", $datos["id_empleado"], PDO::PARAM_STR);
            $stmt -> bindParam(":dni", $datos["dni"], PDO::PARAM_STR);
            $stmt -> bindParam(":nombre", $datos["nombre"], PDO::PARAM_STR);
            $stmt -> bindParam(":direccion", $datos["direccion"], PDO::PARAM_STR);
            $stmt -> bindParam(":telefono", $datos["telefono"], PDO::PARAM_STR);
            $stmt -> bindParam(":email", $datos["email"], PDO::PARAM_STR);
            $stmt -> bindParam(":fecha_ingreso", $datos["fecha_ingreso"], PDO::PARAM_STR);
            $stmt -> bindParam(":estado", $datos["estado"], PDO::PARAM_STR);

            if($stmt -> execute()){

                return "ok";
                
            
            }else{

                return "error";	

            }

		} catch (PDOException $e) {
        // Log para depuración
        error_log("Error en mdlEditarEmpleado: " . $e->getMessage());
        return "error";
        } finally {
            $stmt = null; // liberar recursos
        }

    }

     /*=============================================
	BORRAR SUCURSAL
	=============================================*/

	static public function mdlBorrarEmpleado($tabla, $datos){
        try {

            $stmt = Conexion::conectar()->prepare("UPDATE $tabla SET estado ='0' WHERE id_empleado = :id_empleado");

            $stmt -> bindParam(":id_empleado", $datos, PDO::PARAM_INT);

            if($stmt -> execute()){

                return "ok";
            
            }else{

                return "error";	

		}

		} catch (PDOException $e) {
        // Log para depuración
        error_log("Error en mdlBorrarEmpleado: " . $e->getMessage());
        return "error";
        } finally {
            $stmt = null; // liberar recursos
        }



	}

}