File "FOR-S-CCI-65.js"

Full Path: C:/wamp64/www/CALIDADWEB/CALIDADWEB/FRONTED/CONTROLTABLAS.JS/FOR-S-CCI-65.js
File size: 23.86 KB
MIME-type: text/plain
Charset: utf-8

$(document).ready(function () {
  $(".btnInspeccionOperativa").click(function (e) {
      e.preventDefault();

      swal.fire({
          title: "Cargando datos...",
          allowOutsideClick: false,
          didOpen: () => { swal.showLoading(); }
      });

      if ($.fn.DataTable.isDataTable('#tblInspeccionOperativa')) {
          $('#tblInspeccionOperativa').DataTable().destroy();
      }

      let tablaInspeccion = $("#tblInspeccionOperativa").DataTable({
          "ajax": {
              "url": "../../BACKEND/controltablas/FOR-S-CCI-65.php",
              "type": "POST",
              "data": { opcion: 39 },
              "dataSrc": "data"
          },
          "columns": [
              { data: "id" },
              { data: "hora" },
              { data: "fecha" },
              { data: "area" },
              { data: "porcentaje" },
              { data: "observaciones" },
              { data: "responsableInspeccion" },
              { 
                  data: "firma",
                  render: function (data, type, row) {
                      if (data === "Sin firma") {
                          return "Sin firma";
                      } else {
                          return '<img src="' + data + '" width="100"/>';
                      }
                  }
              },
              { data: "asentador" },
              { data: "baldesRecoleccionVisceras" },
              { data: "bandaCangilones" },
              { data: "bandaConos" },
              { data: "bandaEmpaque" },
              { data: "bandaPinchos" },
              { data: "bandaEscurridorSalidaChiller" },
              { data: "bandaTransportadoraPresas" },
              { data: "bandaTransportadoraPavo" },
              { data: "bandejaIngresoCanalPrechiller" },
              { data: "bandejaToleranciaCero" },
              { data: "campanasProtectorasAntebrazo" },
              { data: "cajonesEmpaqueProducto" },
              { data: "canaletaEvisceracion" },
              { data: "conosMetalicos" },
              { data: "cortadoraCabeza" },
              { data: "cuchillosChairas" },
              { data: "delantales" },
              { data: "descolgadorPollo" },
              { data: "deshuesador" },
              { data: "desinfeccionSuperficiesAmbientes" },
              { data: "despresadoraAutomatica" },
              { data: "despresadoraManual" },
              { data: "embudos" },
              { data: "espatulas" },
              { data: "evisceradora" },
              { data: "escurridorTambor" },
              { data: "extractoraCloaca" },
              { data: "extractoraPulmones" },
              { data: "extractoraTraqueaBuche" },
              { data: "formadoraHamburguesas" },
              { data: "grameras" },
              { data: "guantesMetalicos" },
              { data: "maquinaQuiebreCortacuello" },
              { data: "marinadoraPresa" },
              { data: "mesaColgado" },
              { data: "mesaEmpaque" },
              { data: "mesaFileteo" },
              { data: "mesaInspeccion" },
              { data: "mesaRecuperacion" },
              { data: "mesas" },
              { data: "mesasCorte" },
              { data: "mesasEmbandejado" },
              { data: "mesasRecepcion" },
              { data: "mesasReciboCanal" },
              { data: "mesasDespresado" },
              { data: "molinoBaader" },
              { data: "palaHielo" },
              { data: "peladoraMollejas" },
              { data: "pistolaDestronconadora" },
              { data: "pistolaExtractoraCloaca" },
              { data: "pistolaSuccionPulmones" },
              { data: "quebrantadorCitalsa" },
              { data: "quebrantadorLima" },
              { data: "recipientes" },
              { data: "rejillaCaidaViscera" },
              { data: "seleccionadora" },
              { data: "sierra" },
              { data: "soporteGrameras" },
              { data: "tablasTeflon" },
              { data: "termometroPunzon" },
              { data: "tijeras" },
              { data: "tumbler" },
              { data: "aprobo" },
              { data: "filtroPlanta" },
              { data: "pisos" },
              { data: "arcoDesinfeccionCanastas" },
              { data: "areaVestieres" },
              { data: "aspersoresDesinfeccion" },
              { data: "aspiradoresOExtractores" },
              { data: "banos" },
              { data: "bascula" },
              { data: "cajonComputador" },
              { data: "cajonAceroInoxidable" },
              { data: "canastillasMulticolor" },
              { data: "canecasResiduos" },
              { data: "carrosBaseCanasta" },
              { data: "carrosAlmacenamientoPt" },
              { data: "compuertaSalidaCanastas" },
              { data: "cortinas" },
              { data: "cuartoAlmacenamientoEmpaques" },
              { data: "cuartoMateriaPrimaCongelada" },
              { data: "cuartoMateriaPrimaRefrigerada" },
              { data: "cuartoFrioProductoEnProceso" },
              { data: "cuartoLyd" },
              { data: "cuartosProductoTerminado" },
              { data: "desaguesRejillas" },
              { data: "difusores" },
              { data: "dilutores" },
              { data: "dispensadoresGelYJabon" },
              { data: "dispensadoresToallaDePapel" },
              { data: "doorway" },
              { data: "escalas" },
              { data: "escalerasAuxiliares" },
              { data: "estanteriaAlmacenamiento" },
              { data: "estanteriaColorantes" },
              { data: "esterilizadoresCuchillos" },
              { data: "esterilizadoresVarillas" },
              { data: "estibas" },
              { data: "extractores" },
              { data: "gabinetesPlasticos" },
              { data: "horno" },
              { data: "lamparas" },
              { data: "lavabotas" },
              { data: "lavadorDelantales" },
              { data: "lavamanos" },
              { data: "lockers" },
              { data: "loteadoraSalchichon" },
              { data: "mangueras" },
              { data: "maquinaLavadoraCanastas" },
              { data: "paredesYPuertas" },
              { data: "pediluvios" },
              { data: "pesajeCondimentos" },
              { data: "selladora" },
              { data: "shutBasuras" },
              { data: "soporteMangueras" },
              { data: "soportePeliculasEmpaque" },
              { data: "tanqueDesinfeccionCanastas" },
              { data: "techos" },
              { data: "utensiliosAseo" },
              { data: "varillasArrastre" },
              { data: "vestieresEmpaque" },
              { data: "vestieresProduccion" },
              { data: "videoJet" },
              // Botón Eliminar
              {
                  data: null,
                  orderable: false,
                  width: "80px",
                  className: "text-center",
                  render: function () {
                      return "<button class='btn btn-danger btn-sm btnBorrar'><i class='fas fa-trash-alt'></i></button>";
                  }
              },
              // Botón Editar
              {
                  data: null,
                  orderable: false,
                  width: "80px",
                  className: "text-center",
                  render: function (data, type, row) {
                      return "<button class='btn btn-primary btn-sm btnEditar' data-id='" + row.id + "'><i class='fas fa-edit'></i></button>";
                  }
              }
          ],
          "language": {
              "decimal": "",
              "emptyTable": "No hay información",
              "info": "Mostrando _START_ a _END_ de _TOTAL_ registros",
              "infoEmpty": "Mostrando 0 a 0 de 0 registros",
              "infoFiltered": "(Filtrado de _MAX_ total registros)",
              "thousands": ",",
              "lengthMenu": "Mostrar _MENU_ registros",
              "loadingRecords": "Cargando...",
              "processing": "Procesando...",
              "search": "Buscar:",
              "zeroRecords": "Sin resultados encontrados",
              "paginate": {
                  "first": "Primero",
                  "last": "Último",
                  "next": "Siguiente",
                  "previous": "Anterior"
              }
          },
          "scrollX": true,
          "scrollCollapse": true,
          "autoWidth": false,
          "dom": "Bfrtip",
          "buttons": [
              {
                  extend: "pageLength",
                  className: "btn btn-warning"
              },
              {
                  extend: "excelHtml5",
                  autoFilter: true,
                  sheetName: "VERIFICACION DE LOCKERS",
                  title: "VERIFICACION DE LOCKERS",
                  text: '<i class="fa-lg fa-solid fa-file-excel"></i> GENERAR EXCEL',
                  className: "btn btn-success",
                  exportOptions: {
                      columns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
                          44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
                          109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132
                      ]
                  }
              }
          ],
          "initComplete": function () {
              swal.close();
          }
      });

      // --- ELIMINAR ---
      $('#tblInspeccionOperativa tbody').off('click', '.btnBorrar').on('click', '.btnBorrar', function (e) {
          e.preventDefault();
          e.stopPropagation();

          let data = tablaInspeccion.row($(this).parents('tr')).data();

          swal.fire({
              title: "¿Eliminar registro?",
              text: "ID: " + data.id,
              icon: "warning",
              showCancelButton: true,
              confirmButtonColor: "#d33",
              cancelButtonColor: "#3085d6",
              cancelButtonText: "Cancelar",
              confirmButtonText: "Sí, borrar"
          }).then((result) => {
              if (result.isConfirmed) {
                  $.ajax({
                      url: "../../BACKEND/controltablas/FOR-S-CCI-65.php",
                      type: "POST",
                      data: { opcion: 45, id: data.id },
                      success: function (response) {
                          tablaInspeccion.ajax.reload(null, false);
                          swal.fire({
                              icon: "success",
                              title: "¡Éxito!",
                              text: "Registro eliminado correctamente",
                              showConfirmButton: false,
                              timer: 1500
                          });
                      },
                      error: function () {
                          swal.fire({
                              icon: "error",
                              title: "Error",
                              text: "No se pudo eliminar el registro",
                              showConfirmButton: false,
                              timer: 1500
                          });
                      }
                  });
              }
          });

          return false;
      });

      // --- EDITAR ---
      $('#tblInspeccionOperativa tbody').off('click', '.btnEditar').on('click', '.btnEditar', function (e) {
          e.preventDefault();
          e.stopPropagation();

          let $row = $(this).closest('tr');
          let data = tablaInspeccion.row($row).data();

          $row.find('td').each(function (index) {
              // No editar las columnas de botones (las dos últimas) ni la firma (índice 7) si quieres evitar problemas
              // Aquí se editan todas las columnas excepto las dos últimas (botones)
              if (index < tablaInspeccion.columns().count() - 2) {
                  let valorActual = $(this).text();
                  let nombreColumna = tablaInspeccion.settings().init().columns[index].data;
                  if (nombreColumna) {
                      $(this).html(`
                          <input type="text" 
                              class="form-control form-control-sm" 
                              style="min-width: 70px; width: 100%; padding: 2px;" 
                              value="${valorActual.replace(/"/g, '&quot;')}" 
                              data-campo="${nombreColumna}">
                      `);
                  }
              }
          });

          $(this).removeClass('btn-primary btnEditar')
              .addClass('btn-success btnGuardar')
              .html('<i class="fas fa-save"></i>');

          $row.find('.btnBorrar').removeClass('btn-danger btnBorrar')
              .addClass('btn-secondary btnCancelar')
              .html('<i class="fas fa-times"></i>');

          return false;
      });

      // --- GUARDAR ---
      $('#tblInspeccionOperativa tbody').off('click', '.btnGuardar').on('click', '.btnGuardar', function (e) {
          e.preventDefault();
          e.stopPropagation();

          let $row = $(this).closest('tr');
          let id = tablaInspeccion.row($row).data().id;
          let datosActualizados = { opcion: 46, id: id };

          $row.find('input').each(function () {
              let campo = $(this).data('campo');
              let valor = $(this).val();
              datosActualizados[campo] = valor;
          });

          $.ajax({
              url: "../../BACKEND/controltablas/FOR-S-CCI-65.php",
              type: "POST",
              data: datosActualizados,
              success: function (response) {
                  tablaInspeccion.ajax.reload(null, false);
                  swal.fire({
                      icon: "success",
                      title: "¡Éxito!",
                      text: "Registro actualizado correctamente",
                      showConfirmButton: false,
                      timer: 1500
                  });
              },
              error: function () {
                  swal.fire({
                      icon: "error",
                      title: "Error",
                      text: "No se pudo actualizar el registro",
                      showConfirmButton: false,
                      timer: 1500
                  });
                  tablaInspeccion.ajax.reload(null, false);
              }
          });

          return false;
      });

      // --- CANCELAR ---
      $('#tblInspeccionOperativa tbody').off('click', '.btnCancelar').on('click', '.btnCancelar', function (e) {
          e.preventDefault();
          e.stopPropagation();

          tablaInspeccion.ajax.reload(null, false);

          return false;
      });
  });
});

/* DOS */
$(document).ready(function () {
  $(".btnDesinfeccion").click(function (e) {
      e.preventDefault();

      swal.fire({
          title: "Cargando datos...",
          allowOutsideClick: false,
          didOpen: () => { swal.showLoading(); }
      });

      if ($.fn.DataTable.isDataTable('#tblDesinfeccion')) {
          $('#tblDesinfeccion').DataTable().destroy();
      }

      let tablaDesinfeccion = $("#tblDesinfeccion").DataTable({
          "ajax": {
              "url": "../../BACKEND/controltablas/FOR-S-CCI-65.php",
              "type": "POST",
              "data": { opcion: 40 },
              "dataSrc": "data"   // ← CAMBIO CLAVE
          },
          "columns": [
              { data: "id" },
              { data: "fecha_Desinfeccion" },
              { data: "Areas" },
              { data: "Desinfectante" }, 
              { data: "Observaciones" },
              { data: "Concentracion" },
              { data: "responsable_Desinfeccion" },
              { data: "aprobo" },
              // Botón Eliminar
              {
                  "data": null,
                  "orderable": false,
                  "width": "80px",
                  "className": "text-center",
                  "render": function () {
                      return "<button class='btn btn-danger btn-sm btnBorrar'><i class='fas fa-trash-alt'></i></button>";
                  }
              },
              // Botón Editar
              {
                  "data": null,
                  "orderable": false,
                  "width": "80px",
                  "className": "text-center",
                  "render": function (data, type, row) {
                      return "<button class='btn btn-primary btn-sm btnEditar' data-id='" + row.id + "'><i class='fas fa-edit'></i></button>";
                  }
              }
          ],
          "language": {
              "decimal": "",
              "emptyTable": "No hay información",
              "info": "Mostrando _START_ a _END_ de _TOTAL_ registros",
              "infoEmpty": "Mostrando 0 a 0 de 0 registros",
              "infoFiltered": "(Filtrado de _MAX_ total registros)",
              "thousands": ",",
              "lengthMenu": "Mostrar _MENU_ registros",
              "loadingRecords": "Cargando...",
              "processing": "Procesando...",
              "search": "Buscar:",
              "zeroRecords": "Sin resultados encontrados",
              "paginate": {
                  "first": "Primero",
                  "last": "Último",
                  "next": "Siguiente",
                  "previous": "Anterior"
              }
          },
          "scrollX": true,
          "scrollCollapse": true,
          "autoWidth": false,
          "dom": "Bfrtip",
          "buttons": [
              {
                  extend: "pageLength",
                  className: "btn btn-warning"
              },
               {
                  extend: "excelHtml5",
                  autoFilter: true,
                  sheetName: "VERIFICACION DE LOCKERS",
                  title: "VERIFICACION DE LOCKERS",
                  text: '<i class="fa-lg fa-solid fa-file-excel"></i> GENERAR EXCEL',
                  className: "btn btn-success",
                  exportOptions: {
                      columns: [0, 1, 2, 3, 4, 5, 6, 7, 8]
                  }
              }
          ],
          "initComplete": function () {
              swal.close();
          }
      });

      // --- ELIMINAR ---
      $('#tblDesinfeccion tbody').off('click', '.btnBorrar').on('click', '.btnBorrar', function (e) {
          e.preventDefault();
          e.stopPropagation();

          let data = tablaDesinfeccion.row($(this).parents('tr')).data();

          swal.fire({
              title: "¿Eliminar registro?",
              text: "ID: " + data.id,
              icon: "warning",
              showCancelButton: true,
              confirmButtonColor: "#d33",
              cancelButtonColor: "#3085d6",
              cancelButtonText: "Cancelar",
              confirmButtonText: "Sí, borrar"
          }).then((result) => {
              if (result.isConfirmed) {
                  $.ajax({
                      url: "../../BACKEND/controltablas/FOR-S-CCI-65.php",
                      type: "POST",
                      data: { opcion: 41, id: data.id },
                      success: function (response) {
                          tablaDesinfeccion.ajax.reload(null, false);
                          swal.fire({
                              icon: "success",
                              title: "¡Éxito!",
                              text: "Registro eliminado correctamente",
                              showConfirmButton: false,
                              timer: 1500
                          });
                      },
                      error: function () {
                          swal.fire({
                              icon: "error",
                              title: "Error",
                              text: "No se pudo eliminar el registro",
                              showConfirmButton: false,
                              timer: 1500
                          });
                      }
                  });
              }
          });

          return false;
      });

      // --- EDITAR ---
      $('#tblDesinfeccion tbody').off('click', '.btnEditar').on('click', '.btnEditar', function (e) {
          e.preventDefault();
          e.stopPropagation();

          let $row = $(this).closest('tr');
          let data = tablaDesinfeccion.row($row).data();

          // Convertir celdas de datos (índices 0 a 7) en inputs, excepto la columna id (índice 0)
          $row.find('td').each(function (index) {
              if (index > 0 && index < 8) { // Edita desde fecha hasta aprobo
                  let valorActual = $(this).text();
                  let nombreColumna = tablaDesinfeccion.settings().init().columns[index].data;
                  if (nombreColumna) {
                      $(this).html(`
                          <input type="text" 
                              class="form-control form-control-sm" 
                              style="min-width: 70px; width: 100%; padding: 2px;" 
                              value="${valorActual.replace(/"/g, '&quot;')}" 
                              data-campo="${nombreColumna}">
                      `);
                  }
              }
          });

          $(this).removeClass('btn-primary btnEditar')
              .addClass('btn-success btnGuardar')
              .html('<i class="fas fa-save"></i>');

          $row.find('.btnBorrar').removeClass('btn-danger btnBorrar')
              .addClass('btn-secondary btnCancelar')
              .html('<i class="fas fa-times"></i>');

          return false;
      });

      // --- GUARDAR ---
      $('#tblDesinfeccion tbody').off('click', '.btnGuardar').on('click', '.btnGuardar', function (e) {
          e.preventDefault();
          e.stopPropagation();

          let $row = $(this).closest('tr');
          let id = tablaDesinfeccion.row($row).data().id;
          let datosActualizados = { opcion: 42, id: id };

          $row.find('input').each(function () {
              let campo = $(this).data('campo');
              let valor = $(this).val();
              datosActualizados[campo] = valor;
          });

          $.ajax({
              url: "../../BACKEND/controltablas/FOR-S-CCI-65.php",
              type: "POST",
              data: datosActualizados,
              success: function (response) {
                  tablaDesinfeccion.ajax.reload(null, false);
                  swal.fire({
                      icon: "success",
                      title: "¡Éxito!",
                      text: "Registro actualizado correctamente",
                      showConfirmButton: false,
                      timer: 1500
                  });
              },
              error: function () {
                  swal.fire({
                      icon: "error",
                      title: "Error",
                      text: "No se pudo actualizar el registro",
                      showConfirmButton: false,
                      timer: 1500
                  });
                  tablaDesinfeccion.ajax.reload(null, false);
              }
          });

          return false;
      });

      // --- CANCELAR ---
      $('#tblDesinfeccion tbody').off('click', '.btnCancelar').on('click', '.btnCancelar', function (e) {
          e.preventDefault();
          e.stopPropagation();

          tablaDesinfeccion.ajax.reload(null, false);

          return false;
      });
  });
});