<?php
require_once("../../functions.php");
if (comprobar_override(str_replace($_SERVER['DOCUMENT_ROOT'], '', __FILE__)))
    exit;

$pag = basename($_SERVER['PHP_SELF']);
comprobar_postget("post", ["id"], $pag, true, "/views/tables/fichajes");
gen_plantilla(true, $pag, false, false, '', false, false);

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

$registro = consulta('SELECT * FROM registros WHERE id=?;', [$id], true)[0];
$id_empleado = $registro['id_empleado'];
$horas_originales = [$registro['hora1'], $registro['hora2'], $registro['hora3'], $registro['hora4'], $registro['hora5'], $registro['hora6'], $registro['hora7'], $registro['hora8'], $registro['hora9'], $registro['hora10']];

if (!isset($_POST['inspector'])) {
    if (!consulta('UPDATE registros SET activo=0 WHERE id=?;', [$id], false)) {
        crear_log(
            "error",
            "Error al cambiar estado registro",
            $pag,
            "Error al cambiar el estado del registro a no activo con id: $id."
        );
        crear_notificacion("error", "No se pudo eliminar el registro");
    } else {
        crear_log(
            "advertencia",
            "Registro cambiado de estado",
            $pag,
            "Se ha cambiado el estado del registro a no activo con id: $id."
        );

        if (!isset($_POST['no_mostrar_aprobaciones'])) {
            //Guardar modificación de registro para aprobación del empleado
            if (
                !consulta(
                    'INSERT INTO `aprobaciones_modificaciones_registros`(`id_registro`,
        `h1_original`, `h2_original`, `h3_original`, `h4_original`, `h5_original`, `h6_original`,
        `h7_original`, `h8_original`, `h9_original`, `h10_original`,
        `tipo`,`id_empleado`)
        VALUES (?,
        ?,?,?,?,?,?,
        ?,?,?,?,
        "eliminar",?);',
                    [$id, ...$horas_originales, $id_empleado],
                    false
                )
            ) {
                crear_log(
                    "error",
                    "Error al guardarlo en aprobaciones",
                    $pag,
                    "No se ha podido guardar la aprobación con los siguientes datos [" . json_encode([$id, ...$horas_originales, $id_empleado], JSON_UNESCAPED_UNICODE) . "]."
                );
                crear_notificacion("correcto", "Registro eliminado, pero no se ha podido guardar en aprobaciones");
            } else {
                crear_log(
                    "info",
                    "Aprobación guardada",
                    $pag,
                    "Se ha guardado la aprobación con los siguientes datos [" . json_encode([$id, ...$horas_originales, $id_empleado], JSON_UNESCAPED_UNICODE) . "]."
                );
                crear_notificacion("correcto", "Registro eliminado correctamente");
            }
        } else
            crear_notificacion("correcto", "Registro eliminado correctamente");
    }
} else {
    if (!consulta('UPDATE registros_inspector SET activo=0 WHERE id=?;', [$id], false)) {
        crear_log(
            "error",
            "Error al cambiar estado registro",
            $pag,
            "Error al cambiar el estado del registro i a no activo con id: $id."
        );
        crear_notificacion("error", "No se pudo eliminar el registro");
    } else {
        crear_log(
            "advertencia",
            "Registro cambiado de estado",
            $pag,
            "Se ha cambiado el estado del registro i a no activo con id: $id."
        );
        crear_notificacion("correcto", "Registro eliminado correctamente");
    }
}
