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

if (session_status() !== PHP_SESSION_ACTIVE) session_start();
if (!isset($_SESSION['tipo_usuario']) || $_SESSION['tipo_usuario'] !== 'admin') {
    crear_notificacion("error", "No tienes permisos para realizar esta acción");
    exit;
}

$id = filter_input(INPUT_POST, 'id', FILTER_SANITIZE_NUMBER_INT);

if (SISTEMA_INCIDENCIAS) {
    //Obtener datos de los días inhábiles
    $datos = consulta(
        'SELECT * FROM dias_inhabiles WHERE id=?;',
        [$id],
        true
    );

    //comprobar si es grupo o empleado y eliminarlo de incidencias
    $correcto_incidencias = false;

    if (!is_null($datos[0]["id_grupo"])) { //grupo
        if (!consulta(
            'DELETE i
        FROM incidencias i
        INNER JOIN empleados t ON i.id_empleado = t.id
        INNER JOIN grupos g ON t.id_grupo = g.id
        WHERE g.id = ? AND i.fecha=?;',
            [$datos[0]['id_grupo'], $datos[0]['fecha_entrada']],
            false
        )) {
            crear_log(
                'error',
                'Error al borrar incidencias por grupo',
                $pag,
                'No se han podido eliminar las incidencias por grupo, porque ha ocurrido un error en la consulta'
            );
        } else {
            crear_log(
                'info',
                'Incidencias eliminadas por grupo',
                $pag,
                'Se ha eliminado correctamente las incidendias por grupo con estos datos [' . $datos[0]['id_grupo'] . ', ' . $datos[0]['fecha_entrada'] . ']'
            );
            $correcto_incidencias = true;
        }
    } else { //empleado
        if (!consulta(
            'DELETE i
        FROM incidencias i
        INNER JOIN empleados t ON i.id_empleado = t.id
        WHERE t.id = ? AND i.fecha=?;',
            [$datos[0]['id_empleado'], $datos[0]['fecha_entrada']],
            false
        )) {
            crear_log(
                'error',
                'Error al borrar incidencias por empleado',
                $pag,
                'No se han podido eliminar las incidencias por empleado, porque ha ocurrido un error en la consulta'
            );
        } else {
            crear_log(
                'info',
                'Incidencias eliminadas por empleado',
                $pag,
                'Se ha eliminado correctamente las incidendias por empleado con estos datos [' . $datos[0]['id_empleado'] . ', ' . $datos[0]['fecha_entrada'] . ']'
            );
            $correcto_incidencias = true;
        }
    }

    $correcto_dias = false;
}

if (!consulta('DELETE FROM dias_inhabiles WHERE id=?;', [$id], false)) {
    crear_log(
        'error',
        'Error al eliminar día inhábil',
        $pag,
        'No se ha podido eliminar el día inhábil porque ha fallado la consulta'
    );
} else {
    crear_log(
        'info',
        'Día inhábil eliminado',
        $pag,
        'Se ha eliminado el día inhábil correctamente con estos datos [' . $id . ']'
    );
    $correcto_dias = true;
}
if (SISTEMA_INCIDENCIAS) {
    if (!$correcto_dias && !$correcto_incidencias) {
        crear_notificacion("error", "No se ha podido eliminar el día inhábil ni las incidencias afectadas");
    } elseif (!$correcto_dias) {
        crear_notificacion("error", "No se ha podido eliminar el día inhábil, pero sí se han eliminado las incidencias afectadas");
    } elseif (!$correcto_incidencias) {
        crear_notificacion("error", "Se ha eliminado el día inhábil, pero no se han eliminado las incidencias afectadas");
    } else {
        crear_notificacion("correcto", "Se ha eliminado el día inhábil y las incidencias afectadas correctamente");
    }
} else {
    if (!$correcto_dias) {
        crear_notificacion("error", "No se ha podido eliminar el festivo");
    } else {
        crear_notificacion("correcto", "Se ha eliminado el festivo correctamente");
    }
}
