<?php
require_once("../../functions.php");
$pag = basename($_SERVER['PHP_SELF']);
gen_plantilla(true, $pag, false, false, '', false, false);

// Solo empleados pueden cancelar sus propias solicitudes
if ($_SESSION['tipo_usuario'] != 'empleado') {
    crear_notificacion('error', 'No tienes permisos para realizar esta acción');
    exit;
}

$id = filter_input(INPUT_POST, 'id', FILTER_SANITIZE_NUMBER_INT);
$id_empleado = $_SESSION['id_empleado'];

if (empty($id)) {
    crear_notificacion('error', 'Faltan parámetros');
    exit;
}

// Verificar que la solicitud pertenece al empleado y está pendiente
$solicitud = consulta(
    "SELECT * FROM solicitudes_vacaciones WHERE id = ? AND id_empleado = ? AND estado = 1;",
    [$id, $id_empleado],
    true
);

if (empty($solicitud)) {
    crear_notificacion('error', 'La solicitud no existe, no te pertenece o ya fue procesada');
    exit;
}

// Eliminar la solicitud (o cambiar estado a cancelada si prefieres mantener historial)
$resultado = consulta(
    "DELETE FROM solicitudes_vacaciones WHERE id = ?;",
    [$id],
    false
);

if ($resultado) {
    crear_log('info', 'Solicitud de vacaciones cancelada', $pag, "El empleado ID:$id_empleado ha cancelado la solicitud ID:$id");
    crear_notificacion('correcto', 'Solicitud cancelada correctamente');
} else {
    crear_log('error', 'Error al cancelar vacaciones', $pag, "No se pudo eliminar la solicitud ID:$id");
    crear_notificacion('error', 'Error al cancelar la solicitud');
}
