Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $('body').on('click', '.editarAlumno', function () { // Boton editar Datatable
- $('#rut').attr('readOnly',"readOnly"); //desactivo el input RUT
- $('#curso-row').removeAttr('hidden'); // muestro el row completo de select curso
- var id_alumno = $(this).data('id');
- $.get("{{ route('alumno.index') }}" +'/' + id_alumno +'/edit', function (data) {
- $('#header-modal-alumno').html("Editar alumno");
- $('#btnSiguiente').html("Horario practico");
- $('#modal-alumno').modal('show');
- $('#id_alumno').val(data.id_alumno);
- $('#rut').val(data.rut);
- $('#nombre').val(data.nombre);
- $('#apellidos').val(data.apellidos);
- $('#correo').val(data.correo);
- $('#telefono').val(data.telefono);
- $('#licencias').attr('disabled', 'disabled');
- $('#cursos').attr('disabled', 'disabled');
- $('#licencia-editar').val(data.id_licencia);
- var licencias = data.licencias;
- licencias.forEach(function(element) { // recorro el array "licencias" que estaba adjunto al json que tiene los datos del alumno
- var id = element.id;
- var clase = element.clase;
- var licencia_selected = new Option(clase, id, false, false);
- $('#licencias').append(licencia_selected).trigger('change'); // asigno las variables al select
- });
- var cursos = data.cursos;
- cursos.forEach(function(element) { // recorro el array "cursos" que estaba adjunto al json que tiene los datos del alumno
- var id = element.id;
- var clase = element.cod_curso;
- var curso_selected = new Option(clase, id, false, false);
- $('#cursos').append(curso_selected).trigger('change'); // asigno las variables al select
- });
- });
- });
- var table2 = $('#tablaAgregados').DataTable({ // Propiedades de la Datatable Horario
- 'paging' : false,
- 'lengthChange': true,
- 'searching' : false,
- 'ordering' : true,
- 'processing' : true,
- 'info' : true,
- 'autoWidth' : true,
- 'language' : lenguaje_es_horario,
- 'responsive' : true,
- 'order' : [[ 0, "desc" ]]
- });
- $('#add_button').click(function(){ // Boton para añadir clases al DataTable horario
- // // capturo los datos guardado en los inputs
- var clase = $("#clase").val();
- var fecha_clase = $("#fecha_clase").val();
- var hora_clase = $("#hora_clase_input").val();
- var duracion_clase_val = $("#duracion_clase").val();
- var duracion_clase_text = $("#duracion_clase").find('option[value=' + duracion_clase_val + ']').text();
- var profesor_val = $("#profesor").val();
- var profesor_text = $("#profesor").find('option[value=' + profesor_val + ']').text();
- var vehiculo_val = $('#vehiculo').val();
- var vehiculo_text = $("#vehiculo").find('option[value=' + vehiculo_val + ']').text();
- var id_horario_val = $('#id_horario').val();
- var id_curso_val = $('#cursos').val()
- var contador = parseFloat(table2.rows().count()) + 1;
- var btnEliminar = '<button type="button" class="btn btn-outline-danger elevation-1 btn_eliminar">Quitar</button>';
- // ---- validacion de formulario -----
- if (fecha_clase.length <= 0) {
- Toast.fire({
- type: 'error',
- title: 'El campo fecha esta vacío'
- });
- $("#fecha_clase").focus();
- }else if (hora_clase <= 0) {
- Toast.fire({
- type: 'error',
- title: 'El campo hora esta vacío'
- });
- $("#hora_clase_input").focus();
- }else if (duracion_clase_val <= 0) {
- Toast.fire({
- type: 'error',
- title: 'El campo duración esta vacío'
- });
- $("#duracion_clase").select2("open");
- }else if (profesor_val == null) {
- Toast.fire({
- type: 'error',
- title: 'No ha seleccionado un profesor'
- });
- $("#profesor").select2("open");
- }else if (vehiculo_val == null) {
- Toast.fire({
- type: 'error',
- title: 'No ha seleccionado un vehiculo'
- });
- $("#vehiculo").select2("open");
- }else{ // si todo esta validado agrega la clase
- table2.row.add( [
- contador,
- fecha_clase,
- hora_clase,
- duracion_clase_text.replace('\n', '').trim(duracion_clase_text), // Muestro el texto de la opcion seleccionada
- profesor_text.replace('\n', '').trim(profesor_text), // Muestro el texto de la opcion seleccionada
- vehiculo_text.replace('\n', '').trim(vehiculo_text), // Muestro el texto de la opcion seleccionada
- btnEliminar,
- profesor_val, // Adjunto el id de profesor al array
- vehiculo_val, // Adjunto el id de vehiculo al array
- id_horario_val,
- id_curso_val
- ] ).draw();
- table2.columns.adjust();// muestro modal horario con timing
- $('#adicionados').html(contador);
- // SECCION HORAS TOTALES
- var cells = []; // creo un arreglo
- var rows = $("#tablaAgregados").dataTable().fnGetNodes(); // obtengo los rows
- for(var i=0;i<rows.length;i++){ // verifico si existe un row
- cells.push($(rows[i]).find("td:eq(3)").html()); // eligo la columna (en este caso la 3) y se agrega al arreglo
- }
- for (var i = 0; i < cells.length; i++) { // verifico si existe un row
- cells[i] = cells[i].replace(" minutos", ''); // remplazo el " minutos" por ""
- }
- var minutosTotales = eval(cells.join('+')); // sumo los minutos
- var hours = Math.floor( minutosTotales / 60); // |
- var minutes = minutosTotales % 60; // |---> transformo los minutos en horas y asigno los minutos restantes a una variable
- if (minutes == 0) { // |---> si los minutos son 0 los transformo a '00' para que quede asi EJ: 2:00 --> 2 horas
- minutes = '00'
- }
- if (hours > 0) {
- if (minutes > 0) {
- if (hours == 1) {
- $('#horas_agregadas').html(hours+' hora y '+minutes+' minutos ');
- }else{
- $('#horas_agregadas').html(hours+' horas y '+minutes+' minutos ');
- }
- }else{
- if (hours == 1) {
- $('#horas_agregadas').html(hours+' hora ');
- }else{
- $('#horas_agregadas').html(hours+' horas ');
- }
- }
- }else{
- $('#horas_agregadas').html(minutes+' minutos ');
- }
- // SECCION HORAS TOTALES
- }
- // ---- validacion de formulario -----
- });
- $('body').on('click','#btnCrear', function(){ // BOTON CREAR ALUMNO Y HORARIO
- var p = $("#tablaAgregados").dataTable().fnGetData();
- if (p == '') {
- Toast.fire({
- type: 'info',
- title: 'Debe tener clases practicas agregadas'
- });
- }else{
- // SECCION HORAS TOTALES
- var cells = []; // creo un arreglo
- var rows = $("#tablaAgregados").dataTable().fnGetNodes(); // obtengo los rows
- for(var i=0;i<rows.length;i++){ // verifico si existe un row
- cells.push($(rows[i]).find("td:eq(3)").html()); // eligo la columna (en este caso la 3) y se agrega al arreglo
- }
- for (var i = 0; i < cells.length; i++) { // verifico si existe un row
- cells[i] = cells[i].replace(" minutos", ''); // remplazo el " minutos" por ""
- }
- var minutosTotales = eval(cells.join('+')); // sumo los minutos
- var hours = Math.floor( minutosTotales / 60); // |
- var minutes = minutosTotales % 60; // |---> transformo los minutos en horas y asigno los minutos restantes a una variable
- if (minutes == 0) { // |---> si los minutos son 0 los transformo a '00' para que quede asi EJ: 2:00 --> 2 horas
- minutes = '00'
- }
- // SECCION HORAS TOTALES
- // ---------------------------- Horas practicas de la licencia seleccionada ---------------------------------
- var id_licencia = $('#licencias').val();
- var view_html='';
- var url = "{{ url('getHoras_practicas') }}/"+id_licencia;
- if (id_licencia == null) {
- Toast.fire({
- type: 'info',
- title: 'Debe seleccionar una licencia en la seccion de alumno'
- });
- }else{
- $.get(url, function (r) {
- var data = $.parseJSON(r);
- if(data.id_licencia>0){
- if (hours == data.horas_practicas) {
- if (minutes == '00') {
- Swal.fire({
- title: 'Confirmacion!',
- text: "Se creara el alumno y se le asignara al curso seleccionado",
- showCancelButton: true,
- confirmButtonColor: '#28A645',
- cancelButtonColor: '#d33',
- confirmButtonText: 'Si, registrar alumno',
- cancelButtonText: 'No, volver'
- }).then((result) => {
- if (result.value) {
- // crea un array con los datos del formulario
- let form = document.forms["alumno-frm"];
- let fd = new FormData(form);
- let alumno = {};
- for (let [key, prop] of fd) {
- alumno[key] = prop;
- }
- // crea un array con los datos de la tabla
- let horarios = $("#tablaAgregados").dataTable().fnGetData();
- // agrega ambos a la data que envías con ajax, convirtiédolos a json
- $.ajax({
- url:"{{ route('alumno.store') }}",
- type: 'POST',
- data: JSON.stringify({
- alumno: alumno,
- horarios: horarios
- }),
- contentType: 'application/json; charset=utf-8',
- success : function(response){
- $('#modal-horario-practico').removeAttr('data-backdrop');
- $('#modal-horario-practico').modal('hide');
- $('#modal-horario-practico').attr('data-backdrop', 'static');
- $('#licencias').val(null).trigger("change");
- $('#licencias').empty();
- $('#profesor').val(null).trigger("change");
- $('#profesor').empty();
- $('#duracion_clase').val(null).trigger("change");
- $('#duracion_clase').empty();
- $('#vehiculo').val(null).trigger("change");
- $('#vehiculo').empty();
- $('#cursos').val(null).trigger("change");
- $('#cursos').empty();
- $("#tablaAgregados").DataTable().clear().draw();
- $('#alumno_dt').DataTable().ajax.reload();
- Toast.fire({
- type: 'success',
- title: 'El alumno ha sido registrado con éxito'
- });
- },
- error: function(response){
- console.log(response)
- }
- });
- }
- });
- }else if (minutes > '00') {
- Toast.fire({
- type: 'warning',
- title: 'Ha excedido el total de '+ data.horas_practicas +' horas en '+ minutes + ' minutos'
- });
- }
- }else if (hours > data.horas_practicas) {
- Toast.fire({
- type: 'warning',
- title: 'Ha excedido el total de horas necesarias en '+ (hours-data.horas_practicas)+ ' horas'
- });
- }else if (hours < data.horas_practicas) {
- if (minutes == '00') {
- Toast.fire({
- type: 'info',
- title: 'Faltan '+ (data.horas_practicas - hours) + ' horas para el total de '+data.horas_practicas+' horas necesarias'
- });
- }else if (minutes > '00') {
- if (minutes < 60) {
- if (((data.horas_practicas - hours)-1) == 0) {
- Toast.fire({
- type: 'info',
- title: 'Faltan '+ (60-minutes) + ' minutos para el total de '+data.horas_practicas+' horas necesarias'
- });
- }else{
- Toast.fire({
- type: 'info',
- title: 'Faltan '+ ((data.horas_practicas - hours)-1) + ' horas y '+ (60-minutes) + ' minutos para el total de '+data.horas_practicas+' horas necesarias'
- });
- }
- }
- }
- }
- }
- });
- }
- // ---------------------------- Horas practicas de la licencia seleccionada ---------------------------------
- }
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement