diff --git a/src/main/bundles/prod.bundle b/src/main/bundles/prod.bundle index f0672d3..03d1c19 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 388959a..5dc5ddd 100644 --- a/src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java +++ b/src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java @@ -322,10 +322,10 @@ public class DatabaseService { // INSERTAR EN TABLA: MANTENIMINETOS public int insertarMantenimiento(LocalDate fecha, String tipoMantId, String departamentoId, String empleadoId, String formaMant, String equipoId, String userSignatureBase64, - String smtSignatureBase64, String gciaSignatureBase64, String planAnualId) { + String smtSignatureBase64, String planAnualId) { String query = "INSERT INTO MANTENIMIENTOS (fecha, tipoMantId, departamentoId, empleadoId, formaMant, nombreequipo," + - " firmaUsuario, firmaSmt, firmaGcia, planAnualId) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) RETURNING MANTENIMIENTOID INTO ?"; + " firmaUsuario, firmaSmt, planAnualId) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) RETURNING MANTENIMIENTOID INTO ?"; String updateStatusQuery = "UPDATE PLANANUAL SET estado = 'REALIZADO' WHERE planAnualId = ?"; @@ -364,15 +364,9 @@ public class DatabaseService { preparedStatement.setNull(8, Types.VARCHAR); } - if (gciaSignatureBase64 != null) { - preparedStatement.setString(9, gciaSignatureBase64); - } else { - preparedStatement.setNull(9, Types.VARCHAR); - } - - preparedStatement.setLong(10, Long.parseLong(planAnualId)); + preparedStatement.setLong(9, Long.parseLong(planAnualId)); - preparedStatement.registerReturnParameter(11, Types.NUMERIC); + preparedStatement.registerReturnParameter(10, Types.NUMERIC); preparedStatement.executeUpdate(); @@ -624,8 +618,8 @@ public class DatabaseService { } } - 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=?"; + 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=?"; try (Connection conn = getMysqlConnection(); PreparedStatement stmt = conn.prepareStatement(sql)) { stmt.setInt(1, tipoId); // tipoId es int @@ -633,22 +627,7 @@ public class DatabaseService { stmt.setInt(3, empleadoId); // empleadoId es int stmt.setDate(4, fechaRealizado != null ? Date.valueOf(fechaRealizado) : null); stmt.setString(5, nombreEquipo); - 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); + stmt.setInt(6, 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 5ed7a2b..1428455 100644 --- a/src/main/java/mx/gob/jumapacelaya/ui/DetallesMantView.java +++ b/src/main/java/mx/gob/jumapacelaya/ui/DetallesMantView.java @@ -223,15 +223,6 @@ public class DetallesMantView extends VerticalLayout implements BeforeEnterObser btnCancelar.setVisible(true); gridHardware.setEditOnClick(true); gridActualizaciones.setEditOnClick(true); - - if (firmaUsuarioImg != null && firmaUsuarioImg.getParent().isPresent()) { - userSignLayout.replace(firmaUsuarioImg, userSignPad); - userSignPad.clear(); - } - if (firmaSmtImg != null && firmaSmtImg.getParent().isPresent()) { - smtSignLayout.replace(firmaSmtImg, smtSignPad); - smtSignPad.clear(); - } }); btnCancelar.addClickListener(e -> { @@ -350,28 +341,6 @@ public class DetallesMantView extends VerticalLayout implements BeforeEnterObser 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) @@ -385,10 +354,7 @@ public class DetallesMantView extends VerticalLayout implements BeforeEnterObser departamentoId, empleadoId, fechaRealizado, - txtEquipo.getValue(), - userSignatureBase64, - smtSignatureBase64, - gciaSignatureBase64 + txtEquipo.getValue() )) { exito = false; } @@ -551,17 +517,12 @@ public class DetallesMantView extends VerticalLayout implements BeforeEnterObser firmaSmtImg.setWidthFull(); smtSignLayout.replace(smtSignPad, firmaSmtImg); } - // Firma gerente (si aplica) - if (detalle.getFirmaGcia() != null && !detalle.getFirmaGcia().isEmpty()) { - String firmaGcia = detalle.getFirmaGcia(); - if (!firmaGcia.startsWith("data:image")) { - firmaGcia = "data:image/png;base64," + firmaGcia; - } - firmaGciaImg = new Image(firmaGcia, "Firma del gerente"); - firmaGciaImg.setHeight("200px"); - firmaGciaImg.setWidthFull(); - gciaSignLayout.replace(gciaSignPad, firmaGciaImg); - } + + Image firmaGcia = new Image("images/firmaGcia.png", "Firma de la Gcia. de T.I"); + firmaGcia.setHeight("200px"); + firmaGcia.setWidthFull(); + + gciaSignLayout.replace(gciaSignPad, firmaGcia); } else { id.setText("No se encontro informacion para el Plan ID: " + planId); } diff --git a/src/main/java/mx/gob/jumapacelaya/ui/MantenimientoView.java b/src/main/java/mx/gob/jumapacelaya/ui/MantenimientoView.java index 6045140..1ee35e2 100644 --- a/src/main/java/mx/gob/jumapacelaya/ui/MantenimientoView.java +++ b/src/main/java/mx/gob/jumapacelaya/ui/MantenimientoView.java @@ -9,6 +9,7 @@ import com.vaadin.flow.component.datepicker.DatePicker; import com.vaadin.flow.component.dependency.CssImport; import com.vaadin.flow.component.html.H1; import com.vaadin.flow.component.html.H2; +import com.vaadin.flow.component.html.Image; import com.vaadin.flow.component.html.Span; import com.vaadin.flow.component.icon.Icon; import com.vaadin.flow.component.icon.VaadinIcon; @@ -72,7 +73,7 @@ public class MantenimientoView extends VerticalLayout implements BeforeEnterObse private RadioButtonGroup masActualizacionesGroup; private SignaturePad userSignPad; private SignaturePad smtSignPad; - private SignaturePad gciatiSignPad; + //private SignaturePad gciatiSignPad; Span userSignSpan = new Span("Nombre Usuario"); @@ -459,17 +460,15 @@ public class MantenimientoView extends VerticalLayout implements BeforeEnterObse smtSignLayout.add(smtSignPad, smtSignSpan, tituloSMT); VerticalLayout gcialSignLayout = new VerticalLayout(); - gciatiSignPad = new SignaturePad(); - gciatiSignPad.setBackgroundColor("#FFFFFF"); - gciatiSignPad.setHeight("200px"); - gciatiSignPad.setPenColor("#000000"); - gciatiSignPad.getElement().getStyle().set("border", "1px solid black"); - Span gciatiSignSpan = new Span("L.I. David Olivares Ramos"); - Span tituloGerente = new Span("Encargado de Despacho Gcia. T.I"); + Image firmaGcia = new Image("images/firmaGcia.png", "Firma Gerente de Sistemas"); + firmaGcia.setHeight("200px"); + firmaGcia.setWidthFull(); + Span gciatiSignSpan = new Span("Lic. Juan Pablo Torres Alvárez"); + Span tituloGerente = new Span("Gerente de T.I"); gcialSignLayout.setSizeFull(); gcialSignLayout.setSpacing(false); gcialSignLayout.setAlignItems(Alignment.CENTER); - gcialSignLayout.add(gciatiSignPad, gciatiSignSpan, tituloGerente); + gcialSignLayout.add(firmaGcia, gciatiSignSpan, tituloGerente); @@ -526,15 +525,15 @@ public class MantenimientoView extends VerticalLayout implements BeforeEnterObse byte[] userSignatureBytes = userSignPad.getImageBase64(); byte[] smtSignatureBytes = smtSignPad.getImageBase64(); - byte[] gciaSignatureBytes = gciatiSignPad.getImageBase64(); + //byte[] gciaSignatureBytes = gciatiSignPad.getImageBase64(); String userSignatureBase64 = Base64.getEncoder().encodeToString(userSignatureBytes); String smtSignatureBase64 = Base64.getEncoder().encodeToString(smtSignatureBytes); - String gciaSignatureBase64 = Base64.getEncoder().encodeToString(gciaSignatureBytes); + //String gciaSignatureBase64 = Base64.getEncoder().encodeToString(gciaSignatureBytes); if (esFirmaVacia(userSignatureBase64)) userSignatureBase64 = null; if (esFirmaVacia(smtSignatureBase64)) smtSignatureBase64 = null; - if (esFirmaVacia(gciaSignatureBase64)) gciaSignatureBase64 = null; + //if (esFirmaVacia(gciaSignatureBase64)) gciaSignatureBase64 = null; // Validación de campos de hardware @@ -585,7 +584,7 @@ public class MantenimientoView extends VerticalLayout implements BeforeEnterObse // Una vez que validamos todos los campos del formulario, procedemos a insertar en BD try { - int isInserted = databaseService.insertarMantenimiento(fechaSeleccionada, tipoMantId, departamentoId, empleadoId, formaMantt, equipoId, userSignatureBase64, smtSignatureBase64, gciaSignatureBase64, planAnualValue); + int isInserted = databaseService.insertarMantenimiento(fechaSeleccionada, tipoMantId, departamentoId, empleadoId, formaMantt, equipoId, userSignatureBase64, smtSignatureBase64, planAnualValue); if (isInserted <= 0) { Notification.show("Error al guardar el mantenimiento", 4000, Notification.Position.MIDDLE) @@ -654,7 +653,7 @@ public class MantenimientoView extends VerticalLayout implements BeforeEnterObse txtCuales.clear(); userSignPad.clear(); smtSignPad.clear(); - gciatiSignPad.clear(); + //gciatiSignPad.clear(); for (HorizontalLayout layout : hardwareLayouts) { ((ComboBox) layout.getComponentAt(0)).clear(); diff --git a/src/main/resources/META-INF/resources/images/firmaGcia.png b/src/main/resources/META-INF/resources/images/firmaGcia.png new file mode 100644 index 0000000..6567f06 Binary files /dev/null and b/src/main/resources/META-INF/resources/images/firmaGcia.png differ