<?php
    include "./conexion.php";

    /*$anio= $_POST['anio'];
    $periodo = $_POST['periodo'];
    $ubicacion = $_POST['ubicacion'];
    $supervisor = $_POST['supervisor'];
    $lugar = $_POST['lugar'];
    $lugarz= $_POST['lugarz'];*/
    $anio = isset($_POST['anio']) && !empty($_POST['anio']) ? mysqli_real_escape_string($connection, $_POST['anio']) : null;
    $periodo = isset($_POST['periodo']) && !empty($_POST['periodo']) ? mysqli_real_escape_string($connection, $_POST['periodo']) : null;
    $ubicacion = isset($_POST['ubicacion']) && !empty($_POST['ubicacion']) ? mysqli_real_escape_string($connection, $_POST['ubicacion']) : null;
    $supervisor = isset($_POST['supervisor']) && !empty($_POST['supervisor']) ? mysqli_real_escape_string($connection, $_POST['supervisor']) : null;
    $lugar = isset($_POST['lugar']) && !empty($_POST['lugar']) ? mysqli_real_escape_string($connection, $_POST['lugar']) : null;
    $lugarz = isset($_POST['lugarz']) && !empty($_POST['lugarz']) ? mysqli_real_escape_string($connection, $_POST['lugarz']) : null;
    $status=null;
    $inicio=null;
    $final=null;
    $hrs=null;
    $json_faltas=array();
    $url="./faltas/";
    $archivo="faltas_".date('Ymd')."_".date('His').".csv";
    $archivox=$url."faltas_".date('Ymd')."_".date('His').".csv";
    $error=null;
     
    $consulta=null;
    //$status.="**".$supervisor." * ".$lugar." * ".$lugarz."**";

    

    if($lugar=="0"){
        $consulta="SELECT * FROM movs WHERE anio='" . $anio . "' AND sem='" . $periodo . "' AND ubicacion='" . $ubicacion . "' AND supervisor='" . $supervisor . "'";
    } else if($lugar=="x"){
        $consulta="SELECT * FROM movs WHERE anio='" . $anio . "' AND sem='" . $periodo . "' and lugTrab like '%".$lugarz."%'";
    } else{
        $consulta="SELECT * FROM movs WHERE anio='" . $anio . "' AND sem='" . $periodo . "' AND ubicacion='" . $ubicacion . "' AND supervisor='" . $supervisor . "' AND lugTrab='" . $lugar . "'";
    }

    //$status.='['.$anio.'-'.$periodo.'-'.$ubicacion.'-'.$supervisor.'-'.$lugar.']';
// Definir el número de registros por página
    $registros_por_pagina = 20;

    // Obtener la página actual de la solicitud POST
$pagina_actual = isset($_POST['pagina']) ? (int)$_POST['pagina'] : 1;
$inicio_registro = ($pagina_actual - 1) * $registros_por_pagina;

    $sql_semana= "select * from periodos where semana='".$periodo."'";
    $sqls = mysqli_query($connection, $sql_semana);
    $resultx=mysqli_num_rows($sqls);
    if($resultx>0){
        while($data=mysqli_fetch_array($sqls)){
            $inicio=$data['fechaInicial'];
            $final=$data['fechaFinal'];
        }
    }

    function convierte($dia){
        $diax=null;

        switch($dia){
            case 'V': $diax='0'; break;
            case 'S': $diax='1'; break;
            case 'D': $diax='2'; break;
            case 'L': $diax='3'; break;
            case 'M': $diax='4'; break;
            case 'Mi': $diax='5'; break;
            case 'J': $diax='6'; break;
            default: $diax='9'; break;
        }
        
        return $diax;
    }

    function checadas($iniciox,$conection,$empleado,$d1,$d2,$d3,$d4,$archivox){
        $campos=null;
        $fecha= new DateTime($iniciox);        
        $hrx='00:00:00';
        $hrs=null;
        for($i=0;$i<7;$i++){

            if($i==0){
                /*$campos.=''.*/valores($iniciox,$conection,$empleado,$d1,$d2,$d3,$d4,$i,$archivox).'';
            }else{
                $fecha->modify('+1 day');
                $fecha2=$fecha->format('Y-m-d');
                /*$campos.=''.*/valores($fecha2,$conection,$empleado,$d1,$d2,$d3,$d4,$i,$archivox).'';
                
            }

            
        }
        //$campos.='<td></td>';
        //$campos.='</tr>';
        $hrx='00:00:00';

        return $campos;
    }

    function valores($inicio, $conection, $empleado, $d1, $d2, $d3, $d4, $d,$archivox) {
        $valor = '';
    
        // Consulta para obtener los registros de checadas
        $sql = "SELECT * FROM datos_checadas WHERE fecha = '$inicio' AND empleado = '$empleado'";
        $sqlx = mysqli_query($conection, $sql);
    
        // Verificar si la consulta fue exitosa
        if ($sqlx) {
            $resultx = mysqli_num_rows($sqlx);
    
            // Si hay registros, se procesan las checadas
            if ($resultx > 0) {
                //$valor.='<td class="checada-ok">';
                while ($data = mysqli_fetch_array($sqlx)) {
                    $entrada = $data['horaEntrada'];
                    $salida = $data['horaSalida'];
    
                    // Si no hay hora de salida, solo mostrar la entrada
                    if ($salida === null) {
                        //$valor .= $entrada . '<br>';
                    } else {
                        // Mostrar la hora de entrada y salida
                        //$valor .= $entrada . " a " . $salida . '<br>';
                    }
                }
                $valor.='</td>';
            } else {
                // Si no hay registros, verificar los días de descanso
                $diasDescanso = [convierte($d1), convierte($d2), convierte($d3), convierte($d4)];
    
                // Comprobar si el día es de descanso
                if (in_array($d, $diasDescanso)) {
                    //$valor.= '<td class="descanso">Descanso</td>';
                } else {
                    //$valor.= '<td class="sin-checada">No Checada</td>'; // Sin checada

                    
                    // Verifica si el archivo existe
                    if (!file_exists($archivox)) {
                        // Si no existe, crea el archivo y agrega las columnas
                        $file = fopen($archivox, 'w');
                        
                        // Agrega la cabecera al CSV
                        $cabecera = ['Empleado', 'Fecha', 'Tipo'];
                        fputcsv($file, $cabecera);
                        
                        fclose($file);
                    }

                    // Abre el archivo para añadir datos (modo 'a' de append)
                    $file = fopen($archivox, 'a');

                    // Inserta los datos en las columnas
                    $fecha = date('Ymd', strtotime($inicio));
                    $tipo = 7;

                    // Inserta los datos del empleado
                    $datos = [$empleado, $fecha, $tipo];
                    fputcsv($file, $datos);

                    // Cierra el archivo
                    fclose($file);


                    /*$json_faltas['empleado']=$empleado;
                    $json_faltas['Fecha']=date('Ymd',strtotime($inicio));
                    $json_faltas['Tipo']='7';
                    $file_path = 'data'.date('YmdHis').'.json';
                    // Leer el archivo JSON existente si ya tiene datos
                    
                    if (file_exists($file_path)) {
                        // Leer y decodificar el contenido existente
                        $json_data = file_get_contents($file_path);
                        $faltas_array = json_decode($json_data, true);

                        // Si el archivo está vacío o no tiene formato válido, inicializa como array
                        if (!is_array($faltas_array)) {
                            $faltas_array = array();
                        }
                    } else {
                        // Si no existe el archivo, crea un array vacío
                        $faltas_array = array();
                    }

                    // Agregar el nuevo dato al array
                    $faltas_array[] = $json_faltas;

                    // Convertir el array actualizado a JSON y guardarlo en el archivo
                    $json_faltasx = json_encode($faltas_array, JSON_PRETTY_PRINT);
                    file_put_contents($file_path, $json_faltasx);*/
                }
                
            }
        } else {
            // Error en la consulta SQL
            $valor.= 'Error en la consulta';
        }
    
        return $valor;
    }
    




    // Si lugar no está seleccionado, mostrar todos los empleados del supervisor
    //$sql_supervisor = "SELECT * FROM movs WHERE anio='" . $anio . "' AND sem='" . $periodo . "' AND ubicacion='" . $ubicacion . "' AND supervisor='" . $supervisor . "'";
    
    // Contar el total de registros para paginación
    $total_resultados = mysqli_query($connection, $consulta);
    $total_registros = mysqli_num_rows($total_resultados);

    // Modificar la consulta para obtener solo los registros necesarios
    $consulta .= " LIMIT $inicio_registro, $registros_por_pagina";
    
    $sqls = mysqli_query($connection, $consulta);
    $resultx = mysqli_num_rows($sqls);
    if ($resultx > 0) {
        // Estructura de la tabla
        
        
        while ($data = mysqli_fetch_array($sqls)) {
            
            checadas($inicio, $connection, $data['nemp'], $data['D1'], $data['D2'], $data['D3'], $data['D4'],$archivox);
        }
        

        
        
    }




        // Mensaje de respuesta
        $mensaje = array(
            'respuesta' => $archivo
        );        




echo json_encode($mensaje);