
<?php

include './conexion.php';



if(isset($_FILES["file"])) {
    $file = $_FILES["file"];

    // Verificar si se subió correctamente el archivo
    if ($file["error"] === UPLOAD_ERR_OK) {
        $filename = $file["tmp_name"];

        // Leer el contenido del archivo
        $fileContent = file_get_contents($filename);

        // Aquí puedes procesar el contenido del archivo según tus necesidades
        // Por ejemplo, puedes realizar una operación de base de datos o cualquier otra operación.

        // Enviar una respuesta al cliente
       // echo "Archivo cargado y procesado correctamente.";


function mes($mes){
  $mesx=null;
    
    switch(strtoupper($mes)){
        case 'ENERO': $mesx='1';break;
        case 'FEBRERO': $mesx='2'; break;
        case 'MARZO': $mesx='3'; break;
        case 'ABRIL': $mesx='4'; break;
        case 'MAYO': $mesx='5'; break;
        case 'JUNIO': $mesx='6'; break;
        case 'JULIO': $mesx='7'; break;
        case 'AGOSTO': $mesx='8'; break;
        case 'SEPTIEMBRE': $mesx='9'; break;
        case 'OCTUBRE': $mesx='10'; break;
        case 'NOVIEMBRE': $mesx='11'; break;
        case 'DICIEMBRE': $mesx='12'; break;
    }
    
    return $mesx;

  
}

function fecha($valor){
    $fecha=null;
    if (is_numeric($valor)) {
        // Convierte el número de Excel a timestamp Unix
        $fechaInicio = new DateTime("1899-12-30"); // Excel cuenta desde 1900, pero tiene un desfase de 2 días
        $fechaInicio->modify("+{$valor} days");    // Suma los días del valor obtenido
        $fecha = $fechaInicio->format('Y-m-d');
    } else {
        // Si no es numérico, trata como cadena de texto
        $fecha = $valor;
    }
    return $fecha;
}

function anio($valor){
    $fecha=null;
    if (is_numeric($valor)) {
        // Convierte el número de Excel a timestamp Unix
        $fechaInicio = new DateTime("1899-12-30"); // Excel cuenta desde 1900, pero tiene un desfase de 2 días
        $fechaInicio->modify("+{$valor} days");    // Suma los días del valor obtenido
        $fecha = $fechaInicio->format('Y');
    } else {
        // Si no es numérico, trata como cadena de texto
        $fecha = $valor;
    }
    return $fecha;
}
    }
?>
        <style>
.scrollable-div {
            width: calc(100% - 20px); /* Set your desired width */
            height: 650px; /* Set your desired height */
            overflow-y: scroll; /* Enable vertical scrolling */
            border: 1px solid #ccc; /* Optional: Add border for visualization */
            /*padding: 10px; /* Optional: Add padding for content */
        }


</style>

<!-- Agregar el modal de carga -->
<div class="modal" id="cargandoModal" tabindex="-1" role="dialog">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-body">
        <!--<p style="text-align:center;"><img src="./img/loading2.gif" alt="Cargando"><img> Cargando información, favor de esperar..</p>-->
      </div>
    </div>
  </div>
</div>

        <div class="panel panel-primary">
          <div class="panel-heading">
            <h3 class="panel-title">Resultados de archivo de Excel.</h3>
          </div>
          <div class="panel-body">
          <div class="scrollable-div">
    
    <?php
    require_once './Classes/PHPExcel.php';
    //$archivo = "Lista.xlsx";
    $archivo = $filename;
    $inputFileType = PHPExcel_IOFactory::identify($archivo);
    $objReader = PHPExcel_IOFactory::createReader($inputFileType);
    $objPHPExcel = $objReader->load($archivo);
    $sheet = $objPHPExcel->getSheet(0); 
    $highestRow = $sheet->getHighestRow(); 
    $highestColumn = $sheet->getHighestColumn();
    $in = 0;
    
    // Array para almacenar los datos
    $dataArray = [];
for ($row = 2; $row <= $highestRow; $row++) {
  $dataArray[] = [
        'semana' => $sheet->getCell("A".$row)->getValue(),
        'periodo' => $sheet->getCell("B".$row)->getValue(),
        'inicial' => $sheet->getCell("C".$row)->getValue(),
        'final' => $sheet->getCell("D".$row)->getValue(),
        'mes' => mes($sheet->getCell("G".$row)->getValue()),
        'anio'=>anio($sheet->getCell("D".$row)->getValue())
        

    ];
}




?>
    
    <p class="statusMsgx"></p>  
    <table class="table table-bordered">
        <thead>
            <tr>
                <th></th>
                <th>Periodo</th>
                <th>Fecha Inicial</th>
                <th>Fecha Final</th>
                <th>Mes</th>
                <th>Año</th>
                <th>Semana</th>
                <th></th>
            </tr>
        </thead>
        <tbody>
            <?php
            $num = 0;
            $valores=null;
            $sql=null;
            // Imprimir filas ordenadas
            foreach ($dataArray as $data) {
                $num++;
                echo "<tr>";
                echo "<th scope='row'>" . $num . "</th>";
                echo "<td> <input disabled name='periodo' type='text' size='16' value='".$data['periodo']."'/></td>";
                echo "<td> <input disabled name='inicial' type='text' size='8' value='" . fecha($data['inicial']). "'/></td>";
                echo "<td> <input disabled name='final' type='text' size='8' value='" . fecha($data['final']) . "'/></td>";
                echo "<td> <input disabled name='mes' type='text' size='3' style='text-align:right;' value='" . $data['mes'] . "'/></td>";
                echo "<td> <input disabled name='anio' type='text' size='4' value='" . $data['anio'] . "'/></td>";
                echo "<td> <input disabled name='semana' type='text' size='3' value='" . $data['semana'] . "'/></td>";
                
                $sqlx=mysqli_query($connection,"select * from periodos where semana='".$data['semana']."' and anio='".$data['anio']."'");
                $resultx=mysqli_num_rows($sqlx);
                if($resultx>0){
                    while($datax=mysqli_fetch_array($sqlx)){
                        echo '<td> <input disabled type="text" size="8" style="color:red;" value="Ya existe"></td>';
                    }
                }else{
                    $in++;
                        echo '<td> <input disabled type="text" size="8" style="color:green;" value="Se guardará"></td>';
                        $sql = $sql."('".$data['periodo']."', '".fecha($data['inicial'])."', '".fecha($data['final'])."', '".$data['mes']."', '".$data['anio']."', '".$data['semana']."'),";
                                          
                }
              
            }
            ?>
        </tbody>
    </table>
    
    </div>
    
        <?php //echo $sql.substr($valores, 0, -1).";";?>
        <table>
        <tr>
                <?php
                //$x=$sql.substr($valores, 0, -1);
                $x=substr($sql, 0, -1);
                ?>
                <td>
                <button type="button" class="btn btn-default" style="width: 120px;color:white;background-color: rgb(120, 160, 248);border-color:rgb(120, 160, 248);" onclick="javascript:window.location.reload()">Cancelar</button>
                <!--<button type="button" class="btn btn-default" onclick="javascript:window.location.href='./cargaGasolina.php'">Cancelar</button>-->
                <?php
                if($in==0){
                    ?>
                    <button disabled type="button" id="btnEnviar" class="btn btn-primary" >Enviar</button>
                    <?php                    
                } else {
                    ?>
                    <button type="button" id="btnEnviar" class="btn btn-primary" onclick="guardar()">Enviar</button>
                    <?php
                }
                ?>
                
                </td>
                
            </tr> 
            </table>
      </div>	
    
    </body>


        
        <?php
    } else {
        // Si hay un error al subir el archivo, enviar un mensaje de error
        echo "Error uploading file.";
    }

?>

<script>
function guardar() {
    // Obtenemos los valores de las filas de la tabla
    var dataToSend = "<?php echo $x;?>";
    alert(dataToSend);

    // Realizamos la solicitud AJAX
    $.ajax({
        type: "POST",
        url: "guardaPeriodos.php", // Aquí debes poner la URL de tu script PHP para guardar los datos
        data: { data: dataToSend },
        success: function(msg) {
          var response = JSON.parse(msg);      
            if (response.respuesta === 'ok') {
                $('.statusMsgx').html('<span style="color:green;">Datos guardados.</span>');
                $('#btnEnviar').prop("disabled", true);
                alert("Datos guardados");
                $('#cargandoModal').modal('hide');
            } else if (response.respuesta === 'err1') {
                $('.statusMsgx').html('<span style="color:red;">Ocurrió un problema, intente de nuevo.</span>');
            } else if (response.respuesta === 'errx') {
                $('.statusMsgx').html('<span style="color:red;">No hay datos que guardar.</span>');
            } else {
                $('.statusMsgx').html('*' + response.respuesta + '*');
            }
        },
        error: function(xhr, status, error) {
            console.error(xhr.responseText);
            $('.statusMsgx').html('<span style="color:red;">Error en la solicitud AJAX.</span>');
        },
        complete: function() {
            $('.submitBtn').removeAttr("disabled");
            $('.modal-body').css('opacity', '');
        }
    });
}

function guardarx() {
    // Obtenemos los valores de las filas de la tabla
    var dataToSend = [];
    $('table tbody tr').each(function() {
        var row = {};
        $(this).find('input[type="text"], input[type="number"]').each(function() {
            row[$(this).attr('name')] = $(this).val();
        });
        dataToSend.push(row);
    });

    // Realizamos la solicitud AJAX
    $.ajax({
        type: "POST",
        url: "guardaPeriodos.php", // Aquí debes poner la URL de tu script PHP para guardar los datos
        data: { data: dataToSend },
        success: function(msg) {
          var response = JSON.parse(msg);      
            if (response.respuesta === 'ok') {
                $('.statusMsgx').html('<span style="color:green;">Datos guardados.</span>');
                $('#btnEnviar').prop("disabled", true);
                alert("Datos guardados");
                $('#cargandoModal').modal('hide');
            } else if (response.respuesta === 'err1') {
                $('.statusMsgx').html('<span style="color:red;">Ocurrió un problema, intente de nuevo.</span>');
            } else if (response.respuesta === 'errx') {
                $('.statusMsgx').html('<span style="color:red;">No hay datos que guardar.</span>');
            } else {
                $('.statusMsgx').html('*' + response.respuesta + '*');
            }
        },
        error: function(xhr, status, error) {
            console.error(xhr.responseText);
            $('.statusMsgx').html('<span style="color:red;">Error en la solicitud AJAX.</span>');
        },
        complete: function() {
            $('.submitBtn').removeAttr("disabled");
            $('.modal-body').css('opacity', '');
        }
    });
}


</script>


