diff --git a/src/main/bundles/prod.bundle b/src/main/bundles/prod.bundle index cf82500..f0672d3 100644 Binary files a/src/main/bundles/prod.bundle and b/src/main/bundles/prod.bundle differ diff --git a/src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java b/src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java index 09b0659..388959a 100644 --- a/src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java +++ b/src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java @@ -624,8 +624,8 @@ public class DatabaseService { } } - public boolean actualizarMantenimiento(int mantenimientoId, int tipoId, String departamentoId, int empleadoId, LocalDate fechaRealizado, String nombreEquipo) { - String sql = "UPDATE MANTENIMIENTOS SET TIPOMANTID=?, DEPARTAMENTOID=?, EMPLEADOID=?, FECHA=?, NOMBREEQUIPO=? WHERE MANTENIMIENTOID=?"; + public boolean actualizarMantenimiento(int mantenimientoId, int tipoId, String departamentoId, int empleadoId, LocalDate fechaRealizado, String nombreEquipo, String firmausuario, String firmasmt, String firmagcia) { + String sql = "UPDATE MANTENIMIENTOS SET TIPOMANTID=?, DEPARTAMENTOID=?, EMPLEADOID=?, FECHA=?, NOMBREEQUIPO=?, FIRMAUSUARIO=?, FIRMASMT=?, FIRMAGCIA=? WHERE MANTENIMIENTOID=?"; try (Connection conn = getMysqlConnection(); PreparedStatement stmt = conn.prepareStatement(sql)) { stmt.setInt(1, tipoId); // tipoId es int @@ -633,7 +633,22 @@ public class DatabaseService { stmt.setInt(3, empleadoId); // empleadoId es int stmt.setDate(4, fechaRealizado != null ? Date.valueOf(fechaRealizado) : null); stmt.setString(5, nombreEquipo); - stmt.setInt(6, mantenimientoId); + if (firmausuario != null) { + stmt.setString(6, firmausuario); + } else { + stmt.setNull(6, Types.VARCHAR); + } + if (firmasmt != null) { + stmt.setString(7, firmasmt); + } else { + stmt.setNull(7, Types.VARCHAR); + } + if (firmagcia != null) { + stmt.setString(8, firmagcia); + } else { + stmt.setNull(8, Types.VARCHAR); + } + stmt.setInt(9, mantenimientoId); return stmt.executeUpdate() > 0; } catch (SQLException e) { e.printStackTrace(); diff --git a/src/main/java/mx/gob/jumapacelaya/ui/DetallesMantView.java b/src/main/java/mx/gob/jumapacelaya/ui/DetallesMantView.java index a3c91ca..5ed7a2b 100644 --- a/src/main/java/mx/gob/jumapacelaya/ui/DetallesMantView.java +++ b/src/main/java/mx/gob/jumapacelaya/ui/DetallesMantView.java @@ -2,6 +2,7 @@ package mx.gob.jumapacelaya.ui; import java.time.LocalDate; import java.time.format.DateTimeFormatter; +import java.util.Base64; import java.util.List; import org.springframework.security.core.Authentication; import org.springframework.cglib.core.Local; @@ -348,12 +349,47 @@ public class DetallesMantView extends VerticalLayout implements BeforeEnterObser LocalDate fechaProg = !txtFechaRealizacion.getValue().isEmpty() ? LocalDate.parse(txtFechaRealizacion.getValue(), formatter) : null; LocalDate fechaRealizado = !txtFecha.getValue().isEmpty() ? LocalDate.parse(txtFecha.getValue(), formatter) : null; + + // Obtener las firmas como en MantenimientoView + byte[] userSignatureBytes = userSignPad.getImageBase64(); + byte[] smtSignatureBytes = smtSignPad.getImageBase64(); + byte[] gciaSignatureBytes = gciaSignPad.getImageBase64(); + + String userSignatureBase64 = (userSignatureBytes != null) + ? Base64.getEncoder().encodeToString(userSignatureBytes) + : null; + String smtSignatureBase64 = (smtSignatureBytes != null) + ? Base64.getEncoder().encodeToString(smtSignatureBytes) + : null; + String gciaSignatureBase64 = (gciaSignatureBytes != null) + ? Base64.getEncoder().encodeToString(gciaSignatureBytes) + : null; + + // Si la firma es vacía, asigna null + if (userSignatureBase64 != null && esFirmaVacia(userSignatureBase64)) + userSignatureBase64 = null; + if (smtSignatureBase64 != null && esFirmaVacia(smtSignatureBase64)) + smtSignatureBase64 = null; + if (gciaSignatureBase64 != null && esFirmaVacia(gciaSignatureBase64)) + gciaSignatureBase64 = null; + + // ACTUALIZA PLANANUAL (nombre del equipo y fecha programada) if (!service.actualizarPlanAnual(planAnualIdActual, txtEquipo.getValue(), fechaProg)) { exito = false; } // ACTUALIZA MANTENIMIENTOS (tipo, departamento, usuario, fecha realizado) - if (!service.actualizarMantenimiento(mantenimientoIdActual, tipoId, departamentoId, empleadoId, fechaRealizado, txtEquipo.getValue())) { + if (!service.actualizarMantenimiento( + mantenimientoIdActual, + tipoId, + departamentoId, + empleadoId, + fechaRealizado, + txtEquipo.getValue(), + userSignatureBase64, + smtSignatureBase64, + gciaSignatureBase64 + )) { exito = false; } @@ -400,6 +436,15 @@ public class DetallesMantView extends VerticalLayout implements BeforeEnterObser } + // Metodo para verificar si la firma corresponde a una cadena de firma vacia + private boolean esFirmaVacia(String firmaBase64) { + + String firmaVacia = "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"; + return firmaBase64.equals(firmaVacia); + + } + + private void addSignatureSection() { // Usa los atributos de clase, no variables locales userSignLayout = new VerticalLayout(); diff --git a/src/main/java/mx/gob/jumapacelaya/ui/MantenimientoView.java b/src/main/java/mx/gob/jumapacelaya/ui/MantenimientoView.java index 2197534..6045140 100644 --- a/src/main/java/mx/gob/jumapacelaya/ui/MantenimientoView.java +++ b/src/main/java/mx/gob/jumapacelaya/ui/MantenimientoView.java @@ -482,7 +482,7 @@ public class MantenimientoView extends VerticalLayout implements BeforeEnterObse // Metodo para verificar si la firma corresponde a una cadena de firma vacia private boolean esFirmaVacia(String firmaBase64) { - String firmaVacia = "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"; + String firmaVacia = "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"; return firmaBase64.equals(firmaVacia); } @@ -532,11 +532,9 @@ public class MantenimientoView extends VerticalLayout implements BeforeEnterObse String smtSignatureBase64 = Base64.getEncoder().encodeToString(smtSignatureBytes); String gciaSignatureBase64 = Base64.getEncoder().encodeToString(gciaSignatureBytes); - if (esFirmaVacia(userSignatureBase64) || esFirmaVacia(smtSignatureBase64) || esFirmaVacia(gciaSignatureBase64)) { - Notification.show("Por favor, completa todas las firmas antes de guardar.", 4000, Notification.Position.MIDDLE) - .addThemeVariants(NotificationVariant.LUMO_WARNING); - return; - } + if (esFirmaVacia(userSignatureBase64)) userSignatureBase64 = null; + if (esFirmaVacia(smtSignatureBase64)) smtSignatureBase64 = null; + if (esFirmaVacia(gciaSignatureBase64)) gciaSignatureBase64 = null; // Validación de campos de hardware diff --git a/src/main/java/mx/gob/jumapacelaya/ui/PlanAnualView.java b/src/main/java/mx/gob/jumapacelaya/ui/PlanAnualView.java index e17870a..b9f260f 100644 --- a/src/main/java/mx/gob/jumapacelaya/ui/PlanAnualView.java +++ b/src/main/java/mx/gob/jumapacelaya/ui/PlanAnualView.java @@ -263,6 +263,7 @@ public class PlanAnualView extends VerticalLayout { .setHeader("Departamento").setAutoWidth(true).setKey("departamentoColumnKey"); planAnualGrid.addThemeVariants(GridVariant.LUMO_WRAP_CELL_CONTENT); + planAnualGrid.addThemeVariants(GridVariant.LUMO_ROW_STRIPES); // Fechas formateadas planAnualGrid.addColumn(planAnual -> {