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

//Comprobar is está sistema de incidencias activo
if(!SISTEMA_INCIDENCIAS){
    crear_notificacion("error", "No tienes acceso a esta página");
    exit;
}

//Cogemos la copia
$copia = consulta("SELECT * FROM `copia_cierre_mes`;", [], true);
if (empty($copia)) crear_notificacion('advertencia', 'No hay copia del mes pasado');
$entrado = false;

//Restauramos las horas acumuladas a los empleados
for ($i = 0; $i < count($copia); $i++) {
    if (!consulta(
        "UPDATE `empleados` SET `horas_acu`=? WHERE id=?;",
        [
            $copia[$i]["horas_acu"],
            $copia[$i]["id_empleado"]
        ],
        false
    )) {
        crear_log('error', 'Error al restaurar mes de un empleado', $pag, 'No se ha podido restaurar las horas acumuladas del mes anterior debido a un error en la consulta, con estos datos [' . $copia[$i]["horas_acu"] . ',' . $copia[$i]["id_empleado"] . ']');
    } else {
        crear_log('correcto', 'Mes restaurado empleado', $pag, 'Se ha restaurado correctamente las horas acumuladas del mes anterior, con estos datos [' . $copia[$i]["horas_acu"] . ',' . $copia[$i]["id_empleado"] . ']');
        $entrado = true;
    }
}

//Establecemos el cierre del mes en el anterior
if (!consulta(
    "INSERT INTO meses_cerrados (fecha_inicio, fecha_fin)
    SELECT fecha_inicio, fecha_fin
    FROM meses_cerrados
    WHERE id = ?;",
    [$copia[0]["id_cierre"]],
    false
)) {
    crear_log('error', 'Error al restaurar mes', $pag, 'No se ha podido restaurar la fecha anterior debido a un error en la consulta, con estos datos [' . $copia[0]["id_cierre"] . ']');
    $entrado = true;
}

if (!$entrado)
    crear_notificacion('error', 'Error al restaurar mes');
else
    crear_notificacion('correcto', 'Mes restaurado correctamente');
