<?php 
    include 'datos_sistema.php';
    //QUERY PARA LOS USUARIOS RUT DATALIST.
    $sql_usuarios_rut = "SELECT * FROM alumnos WHERE estado = 'Activo'";
    $queryusuarios_rut = mysqli_query($con, $sql_usuarios_rut);

    $sql_apoderadoslist = "SELECT * FROM apoderados WHERE estado = 'Activo'";
    $queryapoderadoslist = mysqli_query($con, $sql_apoderadoslist);

    //NIVELES
    $sql_niveles = "SELECT * FROM niveles WHERE estado = 'Activo'";
    $queryniveles = mysqli_query($con, $sql_niveles);
?>
<datalist name="list_ruts" id="list_ruts" class="col-12 bg-white list_ruts" hidden>
                                            <?php while ($row_usuario = mysqli_fetch_assoc($queryusuarios_rut)) {
                                                        
                                            ?>
                                                <option value="<?php echo $row_usuario['rut'];?>"></option>
                                            <?php }mysqli_free_result($queryusuarios_rut); ?>
                                            </datalist>

                                            <datalist name="list_apoderados" id="list_apoderados" class="col-12 bg-white list_apoderados" hidden>
                                            <?php while ($row_apoderados = mysqli_fetch_assoc($queryapoderadoslist)) {
                                            ?>
                                                <option value="<?php echo $row_apoderados['rut']." | ".$row_apoderados['nombres']." ".$row_apoderados['apellidos'];?>"></option>
                                            <?php }mysqli_free_result($queryapoderadoslist); ?>
                                            </datalist>
<!-- SUB FORMULARIO PARA REGISTRAR CLIENTE DENTRO DEL FORMULARIO RECEPCION  -->
<div class="modal fade" id="registroAlumno" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div class="modal-dialog modal-dialog-centered modal-lg" role="document"> <!-- Agregamos modal-lg para hacerlo más grande -->
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalLabel">Registrar Nuevo Alumno</h5>
        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body ">
        <!-- Formulario -->
        <form class="user" id="registroForm">
          <!-- Cliente (datos relevantes) -->
            <div class="form-group row div-container">   
                                                <div class="col-sm-3 form-floating form-label-inside input-div">
                                                    <input type="text" class="form-control" id="nombre" name="nombre" placeholder=" ">
                                                    <label for="nombre" class="col-sm-12"><strong style="color: red;">*</strong> Nombres</label>
                                                </div>
                                                <div class="col-sm-4 form-floating form-label-inside input-div">
                                                    <input type="text" class="form-control" id="apellido" name="apellido" placeholder=" ">
                                                    <label for="apellido" class="col-sm-12">Apellidos</label>
                                                </div>
                                                <div class="col-sm-3 form-floating form-label-inside input-div">
                                                    <input type="text" class="form-control" id="rut" oninput="formatCliente(this)" name="rut" placeholder="" maxlength="12">
                                                    <label for="rut" class="col-sm-12"><strong style="color: red;">*</strong>R.U.T. Alumno</label>
                                                </div>
                                                <div class="col-sm-2 form-floating form-label-inside input-div">  
                                                    <input type="text" class="form-control" id="telefono" name="telefono" placeholder="">
                                                    <label for="telefono" class="col-sm-9">Teléfono</label>
                                                </div>         
                                                <div class="col-sm-5 form-floating form-label-inside input-div">
                                                    <input type="text" class="form-control" id="mail" name="mail" placeholder="">
                                                    <label for="mail" class="col-sm-12">Mail</label>
                                                </div>                                                
                                                <div class="col-sm-7 form-floating form-label-inside input-div">
                                                    <input type="text" class="form-control" id="direccion" name="direccion" placeholder="">
                                                    <label for="direccion" class="col-sm-12">Dirección</label>
                                                </div>
                                                <div class="col-sm-5" >
                                                    <select class="form-control" id="nivel_estudio" style="height: 58px;" name="nivel_estudio">
                                                        <option value=""><strong style="color: red;">*</strong>Nivel de Estudio</option>
                                                         <?php while ($row_niveles = mysqli_fetch_assoc($queryniveles)) {
                                                        ?><option value="<?php echo $row_niveles['id_nivel'];?>"><?php echo $row_niveles['nombre_nivel'];?></option>
                                                        <?php }mysqli_free_result($queryniveles); ?>   
                                                    </select>      
                                                </div>
                                                <div class="col-sm-7 form-floating form-label-inside input-div">
                                                    <input type="text" class="form-control" id="apoderado_alumno" name="apoderado_alumno" placeholder=" " list="list_apoderados">
                                                    <label for="apoderado_alumno" class="col-sm-12"><strong style="color: red;">*</strong>Apoderado del Alumno</label>
                                                </div>
            </div>      <br>      
          <!-- Botones para guardar y cerrar el formulario 
            QUITÉ EL ONCLICK, PARA FUNCIONAMIENTO, AGREGAR ONCLICK FUNCTION.-->
          <div class="form-group d-flex justify-content-center align-items-center"><br>
            <button type="button" class="btn btn-primary form-control" id="guardarBtn" style="margin: 5px;" onclick="registrarAlumno()">Registrar Alumno</button>
            <button type="button" class="btn btn-secondary form-control" style="margin: 5px;" data-bs-dismiss="modal">Cerrar</button>
          </div>
        </form>
      </div>
    </div>
  </div>
</div>
<style>
    .input-error {
        border: 2px solid red; /* Borde rojo */
    }
</style>
<script>
    $(document).ready(function() {
        $('#apoderado_alumno').on('input', function() {
            const inputValue = $(this).val();
            const isValid = Array.from(document.querySelector('#list_apoderados').options).some(option => option.value === inputValue);

            if (!isValid) {
                $(this).addClass('input-error');  // Añadir clase de error si no coincide
            } else {
                $(this).removeClass('input-error');  // Remover clase de error si coincide
            }
        });
    });
</script>
<script>
function registrarAlumno() {
    document.getElementById("guardarBtn").disabled = true;
  //var nombre_tecnico = document.getElementById("nombre").value;
  var nombre = $('#nombre').val();
  var apellido = $('#apellido').val();
  var rut = $('#rut').val();
  var telefono = $('#telefono').val();
  var mail = $('#mail').val();
  var direccion = $('#direccion').val();
  var nivel_estudio = $('#nivel_estudio').val();
  var apoderado_alumno = $('#apoderado_alumno').val();
            if (nombre === "") {
                Swal.fire({
                  title: "Error",
                  text: "Por favor ingrese el nombre del Alumno.",
                  icon: "warning",
                  confirmButtonColor: "#2a3042",
                  confirmButtonText: "Aceptar"                  
                });
                document.getElementById("guardarBtn").disabled = false;
                return false; //para cortar o simmplemente detener el recorrido del script.                
            }
            if (rut == "") {
                Swal.fire({
                  title: "Error",
                  text: "Por favor el R.U.T. del Alumno.",
                  icon: "warning",
                  confirmButtonColor: "#2a3042",
                  confirmButtonText: "Aceptar"                  
                });
                return false;
                document.getElementById("guardarBtn").disabled = false;
            }            
  var datalist_ruts = document.getElementById("list_ruts").options; //RUTS DE TODOS LOS USUARIOS REGISTRADOS.
  for (var i = 0; i < datalist_ruts.length; i++) {    
        //arraycodsprods = datalist_ruts[i].value;
        if (datalist_ruts[i].value == rut && datalist_ruts[i].value != "") { 
            Swal.fire({
                  title: "Error",
                  text: "El RUT del alumno ya se encuentra registrado.",
                  icon: "warning",
                  confirmButtonColor: "#2a3042",
                  confirmButtonText: "Aceptar"                  
                });
            document.getElementById("guardarBtn").disabled = false;
            return false; // RUT repetido ya existente
            
        }  
  }
  // Eliminar puntos y guiones
        var rut2 = rut.replace(/[.-]/g, '');
        // Separar el RUT y el dígito verificador
        var rutSinDigito = rut2.slice(0, -1);
        var verificador = rut2.slice(-1).toUpperCase();
        // Invertir el RUT
        var rutInvertido = rutSinDigito.split('').reverse().join('');
        // Inicializar suma
        var suma = 0;
        // Factores de multiplicación
        var multiplicadores = [2, 3, 4, 5, 6, 7, 2, 3];
        // Calcular suma ponderada
        for (var i = 0; i < rutInvertido.length; i++) {
            suma += parseInt(rutInvertido.charAt(i)) * multiplicadores[i];
        }
        // Calcular dígito verificador esperado
        var resto = suma % 11;
        var digitoEsperado = 11 - resto;
        // Manejar casos especiales
        if (digitoEsperado === 10) {
            digitoEsperado = 'K';
        } else if (digitoEsperado === 11) {
            digitoEsperado = '0';
        }
        // Comparar dígito verificador
        if (verificador != digitoEsperado.toString()) { //agregar '&& rut != ""' para que campo rut no sea obligatorio. 
            Swal.fire({
                  title: "Error",
                  text: "El RUT ingresado no es válido.",
                  icon: "warning",
                  confirmButtonColor: "#2a3042",
                  confirmButtonText: "Aceptar"                  
                });
            document.getElementById("guardarBtn").disabled = false;
            return false; // RUT inválido            
        }
        if (nivel_estudio == "") {
            Swal.fire({
                title: "Error",
                text: "Por favor seleccione Nivel de estudio del Alumno.",
                icon: "warning",
                confirmButtonColor: "#2a3042",
                confirmButtonText: "Aceptar"                  
            });
            return false;
            document.getElementById("guardarBtn").disabled = false;
        }    
  $.ajax({
    type: 'POST',
    url: 'registro_alumno.php', // Nombre del archivo PHP para procesar el formulario
    data: {
      nombre: nombre,
      apellido: apellido,
      rut: rut,
      telefono: telefono,
      mail: mail,
      direccion: direccion,
      nivel_estudio: nivel_estudio,
      apoderado_alumno: apoderado_alumno
    },
    success: function(response) {
      // Procesar la respuesta del servidor, por ejemplo, mostrar un mensaje de éxito o error.
      //alert(response);
      var responseData = response.split("success");
      // Obtener el ID del usuario
      //var id_usuario = responseData[0];

      if (responseData.length > 1) {
        // Si la respuesta es "success", el registro fue exitoso
        Swal.fire({
            title: "Registro exitoso",
            text: "El Alumno fue registrado correctamente",
            icon: "success",
            confirmButtonColor: "#2a3042",
            confirmButtonText: "Aceptar"
        }).then((result) => {
            if (result.isConfirmed) {

                $('#registroAlumno').modal('hide');
                $('#nombre').val('');
                $('#apellido').val('');
                $('#rut').val('');
                $('#telefono').val('');
                $('#mail').val('');
                $('#direccion').val('');
                $('#nivel_estudio').val('');
                $('#apoderado_alumno').val('');
                document.getElementById("guardarBtn").disabled = false;
                location.reload();
            }
        });
      } else {
        // Si la respuesta no es "success", el registro falló
        Swal.fire({
            title: "Error",
            text: response,
            icon: "error",
            confirmButtonColor: "#2a3042",
            confirmButtonText: "Aceptar"
        });
        location.reload();
      }
      // Cerrar el modal después de guardar la marca.
      //$('#registroCliente').modal('close');
    }
  });
}
</script>