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

//Comprobar is está sistema de incidencias activo
if(!SISTEMA_INCIDENCIAS){
    header("Location: ".SITIO_CARPETA."/views/tables/fichajes?tipo=error&mensaje=No tienes acceso a esta página");
    exit;
}

$fecha_inicio = new DateTime(date('Y-m-d'));
$fecha_inicio->modify('first day of this month');
$fecha_inicio = $fecha_inicio->format('Y-m-d');
?>
<section class="cristal" <?= (!get_config_usuario($_SESSION['id_usuario'], 'reducir_efectos_movimiento')) ? 'style="view-transition-name: cristal;"' : '' ?>>
    <h1 class="resaltado flex row supercentrado"><span class="animacion-izq-drch">🔔</span> Incidencias</h1>
    <section class="flex row gap1">
        <button id="dialog-arreglar" onclick="llamar_dialog_arreglar_incidencias_grupos()" class="btn-p">Arreglar incidencias por grupos</button>
        <button class="enlaces flex row gap05 btn-p" onclick="cargar_comprobar_incidencias()" style="background-color: #fd9522;">
            <svg xmlns="http://www.w3.org/2000/svg" id="ico-compr-incidencia" viewBox="0 0 448 512" style="fill: white;">
                <path d="M224 0c-17.7 0-32 14.3-32 32l0 19.2C119 66 64 130.6 64 208l0 18.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S19.4 416 32 416l384 0c12.6 0 24-7.4 29.2-18.9s3.1-25-5.3-34.4l-7.4-8.3C401.3 319.2 384 273.9 384 226.8l0-18.8c0-77.4-55-142-128-156.8L256 32c0-17.7-14.3-32-32-32zm45.3 493.3c12-12 18.7-28.3 18.7-45.3l-64 0-64 0c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z" />
            </svg>
            Compr. incidencias
        </button>
    </section>
    <section class="flex row gap1">
        <label class="flex column gap05">Fecha inicio
            <input type="date" id="fecha1" max="<?= date('Y-m-d') ?>" value="<?= $fecha_inicio ?>"></label>
        <label class="flex column gap05">Fecha fin
            <input type="date" id="fecha2" max="<?= date('Y-m-d') ?>" value="<?= date('Y-m-d') ?>"></label>
    </section>

    <section id="cargando"></section>
    <section id="incidencias"></section>
</section>
<article id="showdialog"></article>
<aside id="comprobarincidencia"></aside>
<script>
    window.onload = () => {
        window.fecha1.addEventListener('change', cargar_incidencias);
        window.fecha2.addEventListener('change', cargar_incidencias);
        cargar_incidencias();
    };

    //Carga las incidencias activas
    function cargar_incidencias() {
        poner_cargando();
        ajax('tables/table_incidencias_activas', 'incidencias', 'fecha_inicio=' + window.fecha1.value + '&fecha_fin=' + window.fecha2.value, ['quitar_cargando()']);
    }

    //Arreglar incidencias por grupos
    function llamar_dialog_arreglar_incidencias_grupos() {
        ajax(
            'dialogs/dialog_ajustar_incidencias_grupos.php',
            'showdialog',
            'fecha_inicio=' + window.fecha1.value + '&fecha_fin=' + window.fecha2.value,
            [
                'cerrar_dialog()',
                'preparar_mostrar_incidencias_afectadas()',
                'llamar_ajustar_incidencias_grupales()'
            ]
        );
        window.showdialog.style.display = "flex";

    }

    function preparar_mostrar_incidencias_afectadas() {
        mostrar_incidencias_afectadas();
    }

    function mostrar_incidencias_afectadas() {
        ajax(
            'tables/table_incidencias_afectadas.php',
            'IncidenciasAfectadas',
            'fecha_inicio=' + arreglar_fecha1.value +
            '&fecha_fin=' + arreglar_fecha2.value +
            '&id_grupo=' + grupo.value,
            []
        );
    }
    //Ajustar incidencia por grupos
    function llamar_ajustar_incidencias_grupales() {
        ajustar_incidencia.addEventListener('click', () => {
            ajax(
                'forms/ajustar_incidencias_grupos.php',
                'comprobarincidencia',
                'fecha_inicio=' + arreglar_fecha1.value +
                '&fecha_fin=' + arreglar_fecha2.value +
                '&id_grupo=' + grupo.value +
                '&id_motivo=' + selectmotivo.value,
                ['recargar()']
            );
            dialog.remove();
            showdialog.style.display = "none";
        });
    }

    function recargar() {
        setTimeout(() => {
            location.reload();
        }, 5000);
    }

    function aplicar_incidencia(id, id_empleado, fecha, motivo) {
        let motivo1 = document.getElementById(motivo);
        ajax(
            'forms/aplicar_incidencia.php',
            'comprobarincidencia',
            'id=' + id +
            '&id_empleado=' + id_empleado +
            '&fecha=' + fecha +
            '&motivo=' + motivo1.value,
            ['cargar_incidencias()']
        );
    }

    function cargar_comprobar_incidencias() {
        let ico_sincro = document.getElementById("ico-compr-incidencia");
        ico_sincro.classList.add("agitar");
        ajax("comprobar_incidencias", "comprobarincidencia", "", ['quitar_cargando_compr_incidencia()', 'cargar_incidencias()']);
    }

    function quit_cargando_compr_incidencia() {
        let ico_sincro = document.getElementById("ico-compr-incidencia");
        ico_sincro.classList.remove("agitar");
    }

    // Variables globales para guardar id_incidencia
    let current_id_incidencia = null;

    function modificar_registro(id, id_incidencia) {
        current_id_incidencia = id_incidencia;
        ajax('dialogs/dialog_editar_registro', 'showdialog', 'id=' + id, ['cargar_dialog()', 'cargar_modificar()']);
    }

    function cargar_modificar() {
        let modificar = document.getElementById('editar-registro');
        modificar.addEventListener('click', () => {
            mandar_modificar_registro();
        });
    }

    function mandar_modificar_registro() {
        let id = document.getElementById("id").value;
        let hora1 = document.getElementById("hora1").value;
        let hora2 = document.getElementById("hora2").value;
        let hora3 = document.getElementById("hora3").value;
        let hora4 = document.getElementById("hora4").value;
        let hora5 = document.getElementById("hora5").value;
        let hora6 = document.getElementById("hora6").value;
        let hora7 = document.getElementById("hora7").value;
        let hora8 = document.getElementById("hora8").value;
        let hora9 = document.getElementById("hora9").value;
        let hora10 = document.getElementById("hora10").value;
        let id_motivo = document.getElementById("id_motivo").value;
        let data = 'id=' + id + '&hora1=' + hora1 + '&hora2=' + hora2 + '&hora3=' + hora3 + '&hora4=' + hora4 + '&hora5=' + hora5 + '&hora6=' + hora6 + '&hora7=' + hora7 + '&hora8=' + hora8 + '&hora9=' + hora9 + '&hora10=' + hora10 + '&id_motivo=' + id_motivo;
        
        <?php if ($_SESSION['tipo_usuario'] == 'admin' && PERMITIR_OCULTAR_APROBACIONES): ?>
            let ocultar = document.getElementById('no_mostrar_aprobaciones');
            if (ocultar && ocultar.checked) {
                data += '&no_mostrar_aprobaciones=true';
            }
        <?php endif; ?>

        if(current_id_incidencia) {
            data += '&id_incidencia=' + current_id_incidencia;
        }

        ajax('forms/modificar_registro', 'notificaciones', data, ['cargar_incidencias()']);
    }

    function crear_registro(id_empleado, fecha, id_incidencia) {
        current_id_incidencia = id_incidencia;
        ajax('dialogs/dialog_crear_registro', 'showdialog', 'id_empleado=' + id_empleado + '&fecha=' + fecha, ['cargar_dialog()', 'cargar_crear()']);
    }

    function cargar_crear() {
         let crear = document.getElementById('crear-registro');
         crear.addEventListener('click', () => {
             mandar_crear_registro();
         });
    }

    function mandar_crear_registro() {
        let id_empleado = document.getElementById("id_empleado").value;
        let fecha = document.getElementById("fecha").value;
        let hora1 = document.getElementById("hora1").value;
        let hora2 = document.getElementById("hora2").value;
        let hora3 = document.getElementById("hora3").value;
        let hora4 = document.getElementById("hora4").value;
        let hora5 = document.getElementById("hora5").value;
        let hora6 = document.getElementById("hora6").value;
        let hora7 = document.getElementById("hora7").value;
        let hora8 = document.getElementById("hora8").value;
        let hora9 = document.getElementById("hora9").value;
        let hora10 = document.getElementById("hora10").value;
        let id_motivo = document.getElementById("id_motivo").value;

        let data = 'id_empleado=' + id_empleado + '&fecha=' + fecha + '&hora1=' + hora1 + '&hora2=' + hora2 + '&hora3=' + hora3 + '&hora4=' + hora4 + '&hora5=' + hora5 + '&hora6=' + hora6 + '&hora7=' + hora7 + '&hora8=' + hora8 + '&hora9=' + hora9 + '&hora10=' + hora10 + '&id_motivo=' + id_motivo;

        <?php if ($_SESSION['tipo_usuario'] == 'admin' && PERMITIR_OCULTAR_APROBACIONES): ?>
            let ocultar = document.getElementById('no_mostrar_aprobaciones');
            if (ocultar && ocultar.checked) {
                data += '&no_mostrar_aprobaciones=true';
            }
        <?php endif; ?>

        if(current_id_incidencia) {
            data += '&id_incidencia=' + current_id_incidencia;
        }

        ajax('forms/crear_registro', 'notificaciones', data, ['cargar_incidencias()', 'animacion_y_cierre_dialog()']);
    }
</script>
<?php footer(true); ?>