File "FOR-S-CCI-38.js"
Full Path: C:/wamp64/www/CALIDADWEB/CALIDADWEB/FRONTED/CONTROLTABLAS.JS/FOR-S-CCI-38.js
File size: 8.2 KB
MIME-type: text/plain
Charset: utf-8
$(document).ready(function () {
$(".btnDefectosCanal").click(function (e) {
e.preventDefault();
swal.fire({
title: "Cargando datos...",
allowOutsideClick: false,
didOpen: () => { swal.showLoading(); }
});
if ($.fn.DataTable.isDataTable('#tblDefectosCanal')) {
$('#tblDefectosCanal').DataTable().destroy();
}
let tablalimpieza = $("#tblDefectosCanal").DataTable({
"ajax": {
"url": "../../BACKEND/controltablas/FOR-S-CCI-38.php",
"type": "POST",
"data": { opcion: 41 },
dataSrc: function (data) {
let newData = [];
data.forEach(function (item) {
try {
let defectos = Object.entries(JSON.parse(item.defectos_granjas));
let deficiencias = Object.entries(JSON.parse(item.deficiencia_proceso));
let maxLength = Math.max(defectos.length, deficiencias.length);
for (let i = 0; i < maxLength; i++) {
newData.push({
...item,
defecto: defectos[i] ? defectos[i][0] : "",
cantidad_defecto: defectos[i] ? defectos[i][1] : "",
deficiencia: deficiencias[i] ? deficiencias[i][0] : "",
cantidad_deficiencia: deficiencias[i] ? deficiencias[i][1] : "",
});
}
} catch (e) {
console.error("Error al procesar los datos:", e);
newData.push({
...item,
defecto: "",
cantidad_defecto: "",
deficiencia: "",
cantidad_deficiencia: "",
});
}
});
return newData;
},
},
"columns": [
{ data: "ID" }, // Unificado
{ data: "fecha" },
{ data: "granjas" },
{ data: "viaje" },
{ data: "tipo_ave" },
{ data: "defecto", title: "Defecto Granja" },
{ data: "cantidad_defecto", title: "Cantidad" },
{ data: "porcentaje_granja" },
{ data: "deficiencia", title: "Deficiencia Proceso" },
{ data: "cantidad_deficiencia", title: "Cantidad" },
{ data: "porcentaje_proceso" },
{ data: "porcentaje_global" },
{ data: "verificado" },
{ data: "aprobo" },
{
"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>";
}
},
{
"data": null,
"orderable": false,
"width": "80px",
"className": "text-center",
"render": function (data, type, row) {
// Cambiado data-id a row.ID
return "<button class='btn btn-primary btn-sm btnEditar' data-id='" + row.ID + "'><i class='fas fa-edit'></i></button>";
}
}
],
"language": {
"url": "//cdn.datatables.net/plug-ins/1.10.20/i18n/Spanish.json"
},
"scrollX": true,
"scrollCollapse": true,
"autoWidth": false,
"dom": "Bfrtip",
"buttons": [
{
extend: "pageLength",
className: "btn btn-warning"
},
{
extend: "excelHtml5",
autoFilter: true,
sheetName: "CONTROL DEFECTOS CANAL SALIDA CHILLER",
title: "CONTROL DEFECTOS CANAL SALIDA CHILLER",
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]
}
}
],
"initComplete": function () {
swal.close();
}
});
// --- ELIMINAR ---
$('#tblDefectosCanal tbody').off('click', '.btnBorrar').on('click', '.btnBorrar', function (e) {
e.preventDefault();
let data = tablalimpieza.row($(this).parents('tr')).data();
swal.fire({
title: "¿Eliminar registro?",
text: "ID: " + data.ID, // Unificado
icon: "warning",
showCancelButton: true,
confirmButtonColor: "#d33",
confirmButtonText: "Sí, borrar"
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: "../../BACKEND/controltablas/FOR-S-CCI-38.php",
type: "POST",
data: { opcion: 42, id: data.ID }, // Enviamos data.ID
success: function () {
tablalimpieza.ajax.reload(null, false);
swal.fire("¡Éxito!", "Registro eliminado", "success");
}
});
}
});
});
// --- EDITAR ---
$('#tblDefectosCanal tbody').off('click', '.btnEditar').on('click', '.btnEditar', function (e) {
e.preventDefault();
let $row = $(this).closest('tr');
$row.find('td').each(function (index) {
// Editamos columnas de la 1 a la 13 (evitando ID y botones)
if (index > 0 && index < 14) {
let valorActual = $(this).text();
let nombreColumna = tablalimpieza.settings().init().columns[index].data;
$(this).html(`<input type="text" class="form-control form-control-sm" value="${valorActual}" 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>');
});
// --- GUARDAR ---
$('#tblDefectosCanal tbody').off('click', '.btnGuardar').on('click', '.btnGuardar', function (e) {
e.preventDefault();
let $row = $(this).closest('tr');
let dataRow = tablalimpieza.row($row).data();
let datosActualizados = { opcion: 43, id: dataRow.ID }; // Unificado a ID
$row.find('input').each(function () {
let campo = $(this).data('campo');
let valor = $(this).val();
if (campo) datosActualizados[campo] = valor;
});
$.ajax({
url: "../../BACKEND/controltablas/FOR-S-CCI-38.php",
type: "POST",
data: datosActualizados,
success: function () {
tablalimpieza.ajax.reload(null, false);
swal.fire("¡Éxito!", "Registro actualizado", "success");
}
});
});
// --- CANCELAR ---
$('#tblDefectosCanal tbody').off('click', '.btnCancelar').on('click', '.btnCancelar', function (e) {
e.preventDefault();
tablalimpieza.ajax.reload(null, false);
});
});
});