$(document).ready(function () { $(".btnControlCloro").click(function (e) { e.preventDefault(); swal.fire({ title: "Cargando datos...", allowOutsideClick: false, didOpen: () => { swal.showLoading(); } }); if ($.fn.DataTable.isDataTable('#tblControlCloro')) { $('#tblControlCloro').DataTable().destroy(); } let tabla333 = $("#tblControlCloro").DataTable({ "ajax": { "url": "../../BACKEND/controltablas/FOR-S-CCI-21.php", "type": "POST", "data": { opcion: 36 }, "dataSrc": "" }, "columns": [ { data: "id" }, { data: "fecha" }, { data: "hora" }, { data: "muestra" }, { data: "cloro" }, // { "data": "ph" }, { data: "correctivo" }, { data: "verifica" }, { 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) { 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: "CONTROL DE CLORO RESIDUAL", title: "CONTROL DE CLORO RESIDUAL", 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 --- $('#tblControlCloro tbody').off('click', '.btnBorrar').on('click', '.btnBorrar', function (e) { e.preventDefault(); e.stopPropagation(); let data = tabla333.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-21.php", type: "POST", data: { opcion: 1, id: data.id }, success: function (response) { tabla333.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 --- $('#tblControlCloro tbody').off('click', '.btnEditar').on('click', '.btnEditar', function (e) { e.preventDefault(); e.stopPropagation(); let $row = $(this).closest('tr'); let data = tabla333.row($row).data(); $row.find('td').each(function (index) { // Obtenemos la configuración de la columna para esa celda let colConfig = tabla333.settings().init().columns[index]; // Solo editamos si tiene la propiedad "data" definida y no es el ID ni botones if (index > 0 && index < 8) { let valorActual = $(this).text(); let nombreColumna = colConfig.data; // Agregamos un estilo inline "width: 100%" y un contenedor pequeño $(this).html(` <input type="text" class="form-control form-control-sm" style="min-width: 70px; width: 100%; padding: 2px;" 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>'); return false; }); // --- GUARDAR --- $('#tblControlCloro tbody').off('click', '.btnGuardar').on('click', '.btnGuardar', function (e) { e.preventDefault(); e.stopPropagation(); let $row = $(this).closest('tr'); let id = tabla333.row($row).data().id; let datosActualizados = { opcion: 2, 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-21.php", type: "POST", data: datosActualizados, success: function (response) { tabla333.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 }); tabla333.ajax.reload(null, false); } }); return false; }); // --- CANCELAR --- $('#tblControlCloro tbody').off('click', '.btnCancelar').on('click', '.btnCancelar', function (e) { e.preventDefault(); e.stopPropagation(); tabla333.ajax.reload(null, false); return false; }); }); });