
<?php

include '../conexion.php';
mysqli_set_charset($connection, "utf8");


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.";



?>
        <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 = 5; $row <= $highestRow; $row++) {
  $dataArray[] = [
        'ubicacion' => strtoupper($sheet->getCell("A".$row)->getValue()),
        'supervisor' => strtoupper($sheet->getCell("B".$row)->getValue()),
        'lugar' => strtoupper($sheet->getCell("E".$row)->getValue()),
        'numero' => $sheet->getCell("D".$row)->getValue(),
        'nombre' => strtoupper($sheet->getCell("F".$row)->getValue())
    ];
}


?>
    
    <p class="statusMsgx"></p>  
    <table class="table table-bordered" style="font-size:7pt">
        
        <tr>
                <th colspan="7" style="text-align:center">DATOS QUE SE AGREGAN Y/O MODIFICAN</th>
            </tr>
            <thead>
            <tr>
                <th style='width:3%'>id</th>
                <th style='width:7%'>Ubicacion</th>
                <th style='width:11%'>Supervisor</th>
                <th style='width:25%'>Lugar de Trabajo</th>
                <th style='width:8%'>Num Emp.</th>
                <th>Nombre</th>
                <th style='width:15%'>Comentario</th>

            </tr>
        </thead>
        <tbody>
            <?php
            $num = 0;
            $valores=null;
            
            // Imprimir filas ordenadas
            foreach ($dataArray as $data) {
              $comentario = '';
              $nombre = str_replace([','], '', strtoupper($data['nombre']));
              $lugar = strtoupper($data['lugar']);
              $ubicacion=strtoupper($data['ubicacion']);
              $supervisor=strtoupper($data['supervisor']);
              $numero=$data['numero'];
              $ubicacionCompleta=$ubicacion." | ".$supervisor." | ".$lugar;
          
              // Uso de consulta preparada
              $stmt = $connection->prepare("SELECT * FROM uni_empleados WHERE nombre = ?");
              $stmt->bind_param("s", $nombre);
              $stmt->execute();
              $result = $stmt->get_result();
              
              if ($result->num_rows > 0) {
                  while ($datax = $result->fetch_assoc()) {
                      $x = 0;
                      $sql_lugar=null;
                      $sql_numEmpleado=null;
                      $sql_supervisor=null;
              
                      if ($datax['lugar_trabajo'] == $lugar) {}
                      else{
                          $sql_lugar.="update uni_empleados set lugar_trabajo='".$lugar."',ubicacionCompleta='".$ubicacionCompleta."' WHERE nombre = '".$nombre."';";
                          $comentario .= 'Actualización de Lugar,';
                          $x++;
                      }
                      if ($datax['num_emp'] == $numero) {}
                      else{
                          $sql_numEmpleado.="update uni_empleados set num_emp='".$numero."' WHERE nombre = '".$nombre."';";
                          $comentario .= 'Actualización de Numero de empleado,';
                          $x++;
                      }
                      if ($datax['supervisor'] == $supervisor) {}
                      else{
                          $sql_supervisor.="update uni_empleados set supervisor='".$supervisor."',ubicacionCompleta='".$ubicacionCompleta."' WHERE nombre = '".$nombre."';";
                          $comentario .= 'Cambio de supervisor.';
                          $x++;
                      }
                      if ($datax['ubicacion'] == $ubicacion) {}
                      else{
                          $sql_supervisor.="update uni_empleados set ubicacion='".$ubicacion."',ubicacionCompleta='".$ubicacionCompleta."' WHERE nombre = '".$nombre."';";
                          $comentario .= 'Cambio de ubicación.';
                          $x++;
                      }
          
                      if ($x > 0) {
                          $num++;
                          echo "<tr>";
                          echo "<th style='width:3%' scope='row'>" . htmlspecialchars($num) . "</th>";
                          echo "<td style='width:7%;text-align:left;'>
                                  <input disabled name='ubicacion' type='hidden' value='" . htmlspecialchars($ubicacion) . "'/>" . htmlspecialchars($ubicacion) . "
                                </td>";
                          echo "<td style='width:11%;text-align:left;'>
                                  <input disabled name='supervisor' type='hidden' value='" . htmlspecialchars($supervisor) . "'/>" . htmlspecialchars($supervisor) . "
                                </td>";
                          echo "<td style='width:25%;text-align:left;'>
                                  <input disabled name='lugar' type='hidden' value='" . htmlspecialchars($data['lugar']) . "'/>" . htmlspecialchars($data['lugar']) . "
                                </td>";
                          echo "<td style='width:8%;text-align:left;'>
                                  <input disabled name='numEmp' type='hidden' style='text-align:right;' value='" . htmlspecialchars($numero) . "'/>" . htmlspecialchars($numero) . "
                                </td>";
                          echo "<td style='text-align:left;'>
                                  <input disabled name='nombre' type='hidden' value='" . htmlspecialchars($data['nombre']) . "'/>" . htmlspecialchars($nombre) . "
                                </td>";
                          echo "<td style='text-align:left;width:15%;'>" . htmlspecialchars($comentario) . "</td>";
                          echo "</tr>";
                      } 

                  }
              } else{
                $sql_nuevo=null;
                $comentario='Nuevo Empleado.';

                $num++;
                          echo "<tr>";
                          echo "<th style='width:3%' scope='row'>" . htmlspecialchars($num) . "</th>";
                          echo "<td style='width:7%;text-align:left;'>
                                  <input disabled name='ubicacion' type='hidden' value='" . htmlspecialchars($ubicacion) . "'/>" . htmlspecialchars($ubicacion) . "
                                </td>";
                          echo "<td style='width:11%;text-align:left;'>
                                  <input disabled name='supervisor' type='hidden' value='" . htmlspecialchars($supervisor) . "'/>" . htmlspecialchars($supervisor) . "
                                </td>";
                          echo "<td style='width:25%;text-align:left;'>
                                  <input disabled name='lugar' type='hidden' value='" . htmlspecialchars($data['lugar']) . "'/>" . htmlspecialchars($data['lugar']) . "
                                </td>";
                          echo "<td style='width:8%;text-align:left;'>
                                  <input disabled name='numEmp' type='hidden' style='text-align:right;' value='" . htmlspecialchars($numero) . "'/>" . htmlspecialchars($numero) . "
                                </td>";
                          echo "<td style='text-align:left;'>
                                  <input disabled name='nombre' type='hidden' value='" . htmlspecialchars($data['nombre']) . "'/>" . htmlspecialchars($nombre) . "
                                </td>";
                          echo "<td style='text-align:left;width:15%;'><strong>" . $comentario. "</strong></td>";
                          echo "</tr>";
                $sql_nuevo.='insert into uni_empleados (ubicacion,supervisor,lugar_trabajo,num_empleado,nombre,ubicacionCompleta) values({$ubicacion},{$supervisor},{$lugar},{$numero},{$nombre},{$ubicacionCompleta});';
              }
              $stmt->close();

                                          
              }
              if($num==0){
                
                  echo "<tr>";
                    echo "<td style='color:red' colspan='7'><strong>NO HAY DATOS QUE ACTUALIZAR Y/O AGREGAR<strong></td>";
                    echo "</tr>";
                
              }
            }
            ?>
        </tbody>
    </table>
    
    </div>
    
        <?php //echo $sql.substr($valores, 0, -1).";";?>
        <table>
        <tr>
                <?php
                //$x=$sql.substr($valores, 0, -1);
                $x=substr($valores, 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 = [];
    $('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: "guarda2.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|1' || response.respuesta === 'ok|2') {
                $('.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(){
    
    var datos="<?php echo $x; ?>";
    $.ajax({
			type:"POST",
			url:"guarda2.php",
			data:"sql="+datos,
			success:function(msg){
        /*var msg2 = msg.substring(2,6);*/
        var msg2 = JSON.parse(msg);      
				if(msg2.respuesta == 'ok|1'){
                    $('.statusMsgx').html('<span style="color:green;">Datos guardados.</p>');
                    $('#btnEnviar').prop("disabled",true);
                    alert("Datos guardados");
                }else if(msg=='err1'){
					$('.statusMsgx').html('<span style="color:red;">Ocurrió un problema, intente de nuevo.</span>');
				}else if(msg2.respuesta=='errx'){
					$('.statusMsgx').html('<span style="color:red;">No hay datos que guardar.</span>');
				}else if(msg2.respuesta == 'ok|2'){
                    $('.statusMsgx').html('<span style="color:green;">Datos guardados.</p>');
                    $('#btnEnviar').prop("disabled",true);
                    alert("Datos guardados");
        }else{
                    //$('.statusMsgx').html('<span style="color:red;">Ocurrió un problema, intente de nuevo.</span>');
					$('.statusMsgx').html('*'+msg+'*');
                }
                $('.submitBtn').removeAttr("disabled");
                $('.modal-body').css('opacity', '');
			}
		});

}



</script>


