<?php
require_once("../functions.php");
if (comprobar_override(str_replace($_SERVER['DOCUMENT_ROOT'], '', __FILE__)))
    exit;
$pag = basename($_SERVER['PHP_SELF']);
gen_plantilla(true, $pag, false, false, '', false, false);
//Comprobar si es admin
if (!isset($_SESSION['tipo_usuario']) || $_SESSION['tipo_usuario'] != 'admin') {
    header("Location: " . SITIO_CARPETA . "/views/tables/fichajes?tipo=error&mensaje=No tienes acceso a esta página");
    exit;
}

$nombre = filter_input(INPUT_POST, "nombre", FILTER_SANITIZE_SPECIAL_CHARS);
$resolucion = filter_input(INPUT_POST, "resolucion", FILTER_SANITIZE_NUMBER_INT);
$modificar_horario = isset($_POST['modificar_horario']) ? 1 : 0;

if (!isset($_POST['id'])) {
    if (
        !consulta(
            "INSERT INTO `motivos`(`nombre`, `resolucion`, `modificar_horario`) VALUES (?,?,?);",
            [$nombre, $resolucion, $modificar_horario],
            false
        )
    ) {
        crear_log(
            "error",
            "Error al crear motivo",
            $pag,
            "No se ha podido crear el motivo, porque ha ocurrido un error en la consulta."
        );
        header("Location: " . SITIO_CARPETA . "/views/tables/motivos?tipo=error&mensaje=No se ha podido crear el motivo");
    } else {
        crear_log(
            "info",
            "Motivo creado",
            $pag,
            "Se ha creado el motivo <b>[$nombre]</b> correctamente."
        );
        header("Location: " . SITIO_CARPETA . "/views/tables/motivos?tipo=correcto&mensaje=Se ha creado el motivo correctamente");
    }
} else {
    $id = filter_input(INPUT_POST, "id", FILTER_SANITIZE_NUMBER_INT);

    if (
        !consulta(
            "UPDATE `motivos` SET `nombre`=?,`resolucion`=?,`modificar_horario`=? WHERE id=?;",
            [$nombre, $resolucion, $modificar_horario, $id],
            false
        )
    ) {
        crear_log(
            "error",
            "Error al actualizar motivo",
            $pag,
            "No se ha podido actualizar el motivo, porque ha ocurrido un error en la consulta."
        );
        header("Location: " . SITIO_CARPETA . "/views/tables/motivos?tipo=error&mensaje=No se ha podido actualizar correctamente");
    } else {
        crear_log(
            "info",
            "Motivo actualizado",
            $pag,
            "Se ha actualizado el motivo <b>[$nombre]</b> correctamente."
        );
        header("Location: " . SITIO_CARPETA . "/views/tables/motivos?tipo=correcto&mensaje=Se ha actualizado el motivo correctamente");
    }
}
