Browse Source

Se agrego un boton especifico para editar las firmas y modificacion al query que guarda la informacion del mantenimiento con firmas

master
mramirezg 1 month ago
parent
commit
95b4a457ea
3 changed files with 52 additions and 6 deletions
  1. BIN
      src/main/bundles/prod.bundle
  2. +13
    -3
      src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java
  3. +39
    -3
      src/main/java/mx/gob/jumapacelaya/ui/DetallesMantView.java

BIN
src/main/bundles/prod.bundle View File


+ 13
- 3
src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java View File

@ -618,8 +618,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 sql = "UPDATE MANTENIMIENTOS SET TIPOMANTID=?, DEPARTAMENTOID=?, EMPLEADOID=?, FECHA=?, NOMBREEQUIPO=?, FIRMAUSUARIO=?, FIRMASMT=? WHERE MANTENIMIENTOID=?";
try (Connection conn = getMysqlConnection();
PreparedStatement stmt = conn.prepareStatement(sql)) {
stmt.setInt(1, tipoId); // tipoId es int
@ -627,7 +627,17 @@ 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);
}
stmt.setInt(8, mantenimientoId);
return stmt.executeUpdate() > 0;
} catch (SQLException e) {
e.printStackTrace();


+ 39
- 3
src/main/java/mx/gob/jumapacelaya/ui/DetallesMantView.java View File

@ -69,6 +69,7 @@ public class DetallesMantView extends VerticalLayout implements BeforeEnterObser
private GridPro<HardwareDetalle> gridHardware;
private GridPro<ActualizacioneSeguridadModel> gridActualizaciones;
private Button btnEditar;
private Button btnEditarFirmas;
private Button btnImprimirRepo;
private Button btnCancelar;
private Button btnGuardar;
@ -199,9 +200,10 @@ public class DetallesMantView extends VerticalLayout implements BeforeEnterObser
botonesLayout.setJustifyContentMode(JustifyContentMode.CENTER);
btnEditar = new Button("Editar", new Icon(VaadinIcon.EDIT));
btnImprimirRepo = new Button("Imprimir Reporte", new Icon(VaadinIcon.PRINT));
btnEditarFirmas = new Button("Editar firmas", LineAwesomeIcon.SIGNATURE_SOLID.create());
btnGuardar = new Button("Guardar", LineAwesomeIcon.SAVE_SOLID.create());
btnCancelar = new Button("Cancelar", new Icon(VaadinIcon.CLOSE_CIRCLE_O));
botonesLayout.add(btnEditar,btnImprimirRepo,btnGuardar,btnCancelar);
botonesLayout.add(btnEditar,btnEditarFirmas,btnImprimirRepo,btnGuardar,btnCancelar);
btnGuardar.setVisible(false);
btnGuardar.getStyle().set("background-color", "#008000");
@ -221,10 +223,25 @@ public class DetallesMantView extends VerticalLayout implements BeforeEnterObser
btnEditar.setVisible(false);
btnGuardar.setVisible(true);
btnCancelar.setVisible(true);
btnEditarFirmas.setVisible(false);
gridHardware.setEditOnClick(true);
gridActualizaciones.setEditOnClick(true);
});
btnEditarFirmas.addClickListener(e -> {
btnCancelar.setVisible(true);
btnGuardar.setVisible(true);
btnEditar.setVisible(false);
btnImprimirRepo.setVisible(false);
btnEditarFirmas.setVisible(false);
if (firmaUsuarioImg != null && firmaUsuarioImg.getParent().isPresent()) {
userSignLayout.replace(firmaUsuarioImg, userSignPad);
}
if (firmaSmtImg != null && firmaSmtImg.getParent().isPresent()) {
smtSignLayout.replace(firmaSmtImg, smtSignPad);
}
});
btnCancelar.addClickListener(e -> {
txtEquipo.setReadOnly(true);
cbTipo.setReadOnly(true);
@ -236,6 +253,7 @@ public class DetallesMantView extends VerticalLayout implements BeforeEnterObser
btnEditar.setVisible(true);
btnGuardar.setVisible(false);
btnCancelar.setVisible(false);
btnEditarFirmas.setVisible(true);
gridHardware.setEditOnClick(false);
gridHardware.getEditor().cancel();
gridActualizaciones.setEditOnClick(false);
@ -341,7 +359,22 @@ 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();
String userSignatureBase64 = (userSignatureBytes != null) ? Base64.getEncoder().encodeToString(userSignatureBytes) : null;
String smtSignatureBase64 = (smtSignatureBytes != null) ? Base64.getEncoder().encodeToString(smtSignatureBytes) : null;
// Si la firma está vacía, conserva la anterior
if (userSignatureBase64 == null || esFirmaVacia(userSignatureBase64)) {
userSignatureBase64 = service.getDetalleMantenimientoPorPlanAnualId(planAnualIdActual).getFirmaUser();
}
if (smtSignatureBase64 == null || esFirmaVacia(smtSignatureBase64)) {
smtSignatureBase64 = service.getDetalleMantenimientoPorPlanAnualId(planAnualIdActual).getFirmaSmt();
}
// ACTUALIZA PLANANUAL (nombre del equipo y fecha programada)
if (!service.actualizarPlanAnual(planAnualIdActual, txtEquipo.getValue(), fechaProg)) {
@ -354,7 +387,9 @@ public class DetallesMantView extends VerticalLayout implements BeforeEnterObser
departamentoId,
empleadoId,
fechaRealizado,
txtEquipo.getValue()
txtEquipo.getValue(),
userSignatureBase64,
smtSignatureBase64
)) {
exito = false;
}
@ -389,6 +424,7 @@ public class DetallesMantView extends VerticalLayout implements BeforeEnterObser
cbDepartamento.setReadOnly(true);
btnImprimirRepo.setVisible(true);
btnEditar.setVisible(true);
btnEditarFirmas.setVisible(true);
btnGuardar.setVisible(false);
btnCancelar.setVisible(false);
gridHardware.setEditOnClick(false);


Loading…
Cancel
Save