Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- FUNCION STORE CONTROLLER
- public function store(Request $request){ // STORE
- $data = json_decode($request->getContent());
- $alumno = $data['0']; // declaramos array 0 ya que este contiene el alumno
- $id_alumno = $alumno['0'];
- $rut = $alumno['1'];
- $nombre = $alumno['2'];
- $apellidos = $alumno['3'];
- $correo = $alumno['4'];
- $clave = $alumno['5'];
- $telefono = $alumno['6'];
- $licencia = $alumno['7'];
- $curso = $alumno['8'];
- $id_alumno_registrado = alumnoModel::updateOrCreate(
- ['id_alumno' => $id_alumno?: NULL],
- [
- 'rut' => $rut,
- 'nombre' => $nombre,
- 'apellidos' => $apellidos,
- 'correo' => $correo,
- 'clave' => $clave,
- 'telefono' => $telefono,
- 'id_licencia' => $licencia,
- 'id_curso' => $curso
- ]
- );
- $horario = $data['1']; // declaramos array 0 ya que este contiene el horario (este contiene mas arrays dentro, es un array multidimensional)
- foreach($horario as $array_data) {
- $dato2 = $array_data['0']; // elegimos el array correspondiente al dato que necesitemos enviar por la tabla
- $dato3 = $array_data['1'];
- $dato4 = $array_data['2'];
- $dato5 = 'practica'; //se pueden asignar valores personalizados
- $dato6 = $array_data['3'];
- $dato7 = $array_data['7'];
- $dato8 = $array_data['8'];
- $dato9 = $array_data['9'];
- $dato10 = $array_data['10'];
- horarioModel::updateOrCreate(
- ['id_horario' => $dato9?: NULL],
- [
- 'clase' => $dato2,
- 'fecha' => $dato3,
- 'hora' => $dato4,
- 'tipo' => $dato5,
- 'minutos_bloque' => $dato6,
- 'id_profesor' => $dato7,
- 'id_vehiculo' => $dato8,
- 'id_curso' => $dato10,
- 'id_alumno' => $id_alumno_registrado->id_alumno
- ]
- );
- }
- return response()->json();
- }
- BTN CREAR (GUARDAR)
- <script type="text/javascript">
- $('body').on('click','#btnCrear', function(){ // BOTON CREAR ALUMNO Y HORARIO
- //Capturo valor de los input de mi formulario (en mi caso input's y select)
- var id_alumno_input = $('#id_alumno').val();
- var rut_input = $('#rut').val();
- var nombre_input = $('#nombre').val();
- var apellidos_input = $('#apellidos').val();
- var correo_input = $('#correo').val();
- var clave_input = $('#clave').val();
- var telefono_input = $('#telefono').val();
- var licencias_select = $('#licencias').val();
- var cursos_select = $('#cursos').val();
- //obtengo los datos de la datatable con fnGetData
- var p = $("#tablaAgregados").dataTable().fnGetData();
- //creo un array con los valores de los input mencionados arriba
- var alumno = [id_alumno_input,rut_input,nombre_input,apellidos_input,correo_input,clave_input,telefono_input,licencias_select,cursos_select];
- //unimos los 2 array (formulario + fnGetData)
- var alumno_array = [alumno, p];
- if (p == '') { //verifico si esta vacia o no la datatable
- 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) {
- $.ajax({
- url:"{{ route('alumno.store') }}",
- type: 'POST',
- dataType:'json',
- contentType: 'json',
- data: JSON.stringify(alumno_array),
- contentType: 'application/json; charset=utf-8',
- success : function(){
- $('#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(){
- Toast.fire({
- type: 'error',
- title: 'Ha ocurrido un problema con el registro de horario práctico'
- });
- }
- });
- }
- })
- }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 ---------------------------------
- }
- });
- </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement