Browse Source

Ya se muestran las firmas como imagenes, falta poder hacer una nueva firma en modo edicion

master
mramirezg 2 months ago
parent
commit
7b5a395ad6
1 changed files with 86 additions and 2 deletions
  1. +86
    -2
      src/main/java/mx/gob/jumapacelaya/ui/DetallesMantView.java

+ 86
- 2
src/main/java/mx/gob/jumapacelaya/ui/DetallesMantView.java View File

@ -17,6 +17,7 @@ import com.vaadin.flow.component.grid.Grid;
import com.vaadin.flow.component.grid.GridVariant;
import com.vaadin.flow.component.gridpro.GridPro;
import com.vaadin.flow.component.html.H3;
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;
@ -32,6 +33,7 @@ import com.vaadin.flow.router.BeforeEnterObserver;
import com.vaadin.flow.router.PageTitle;
import com.vaadin.flow.router.Route;
import de.f0rce.signaturepad.SignaturePad;
import jakarta.annotation.security.PermitAll;
import mx.gob.jumapacelaya.models.ActualizacioneSeguridadModel;
import mx.gob.jumapacelaya.models.DepartamentosModel;
@ -40,6 +42,8 @@ import mx.gob.jumapacelaya.models.HardwareDetalle;
import mx.gob.jumapacelaya.models.TiposMantenimiento;
import mx.gob.jumapacelaya.models.Usuario;
import mx.gob.jumapacelaya.services.DatabaseService;
import mx.gob.jumapacelaya.services.SecurityService;
import oracle.net.aso.f;
@PageTitle("Detalles del mantenimiento")
@Route(value = "detalles", layout = MainLayout.class)
@ -70,10 +74,22 @@ public class DetallesMantView extends VerticalLayout implements BeforeEnterObser
private int planAnualIdActual;
private int mantenimientoIdActual;
private Dialog confirmDialog;
private SignaturePad userSignPad;
private SignaturePad smtSignPad;
private SignaturePad gciaSignPad;
private final HorizontalLayout firmasLAyout = new HorizontalLayout();
// Agrega estos atributos:
private VerticalLayout userSignLayout;
private VerticalLayout smtSignLayout;
private VerticalLayout gciaSignLayout;
private final SecurityService securityService;
DatabaseService service = new DatabaseService();
public DetallesMantView() {
public DetallesMantView(SecurityService securityService) {
this.securityService = securityService;
setPadding(true);
mainLayout = new VerticalLayout();
@ -284,7 +300,8 @@ public class DetallesMantView extends VerticalLayout implements BeforeEnterObser
confirmDialog.getFooter().add(dialogButtons);
mainLayout.add(headerLayout,layout2,fechasLayout,layout3,gridHardware,gridActualizaciones,botonesLayout);
addSignatureSection();
mainLayout.add(headerLayout,layout2,fechasLayout,layout3,gridHardware,gridActualizaciones,firmasLAyout,botonesLayout);
add(mainLayout);
}
@ -345,6 +362,37 @@ public class DetallesMantView extends VerticalLayout implements BeforeEnterObser
}
private void addSignatureSection() {
// Usa los atributos de clase, no variables locales
userSignLayout = new VerticalLayout();
userSignLayout.setWidthFull();
userSignLayout.setAlignItems(Alignment.CENTER);
userSignPad = new SignaturePad();
userSignPad.setHeight("200px");
userSignLayout.add(userSignPad, new Span("Usuario Interno"));
smtSignLayout = new VerticalLayout();
smtSignLayout.setWidthFull();
smtSignLayout.setAlignItems(Alignment.CENTER);
smtSignPad = new SignaturePad();
smtSignPad.setHeight("200px");
smtSignLayout.add(smtSignPad, new Span("Responsable de Soporte"));
gciaSignLayout = new VerticalLayout();
gciaSignLayout.setWidthFull();
gciaSignLayout.setAlignItems(Alignment.CENTER);
gciaSignPad = new SignaturePad();
gciaSignPad.setHeight("200px");
gciaSignLayout.add(gciaSignPad, new Span("Gcia. de T.I"));
firmasLAyout.removeAll();
firmasLAyout.setWidthFull();
firmasLAyout.setSpacing(false);
firmasLAyout.setJustifyContentMode(JustifyContentMode.CENTER);
firmasLAyout.add(userSignLayout, smtSignLayout, gciaSignLayout);
}
@Override
public void beforeEnter(BeforeEnterEvent event) {
String idParam = event.getLocation().getQueryParameters().getParameters().get("id") != null
@ -392,6 +440,42 @@ public class DetallesMantView extends VerticalLayout implements BeforeEnterObser
List<ActualizacioneSeguridadModel> listaActualizaciones = service.getActualizacionesSeg(mantId);
gridActualizaciones.setItems(listaActualizaciones);
gridActualizaciones.setVisible(!listaActualizaciones.isEmpty());
// --- Mostrar firmas como imagen si existen ---
// Firma usuario
if (detalle.getFirmaUser() != null && !detalle.getFirmaUser().isEmpty()) {
String firmaUser = detalle.getFirmaUser();
if (!firmaUser.startsWith("data:image")) {
firmaUser = "data:image/png;base64," + firmaUser;
}
Image firmaUsuarioImg = new Image(firmaUser, "Firma del usuario");
firmaUsuarioImg.setHeight("200px");
firmaUsuarioImg.setWidthFull();
userSignLayout.replace(userSignPad, firmaUsuarioImg);
}
// Firma soporte
if (detalle.getFirmaSmt() != null && !detalle.getFirmaSmt().isEmpty()) {
String firmaSmt = detalle.getFirmaSmt();
if (!firmaSmt.startsWith("data:image")) {
firmaSmt = "data:image/png;base64," + firmaSmt;
}
Image firmaSmtImg = new Image(firmaSmt, "Firma del usuario de soporte");
firmaSmtImg.setHeight("200px");
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;
}
Image firmaGciaImg = new Image(firmaGcia, "Firma del gerente");
firmaGciaImg.setHeight("200px");
firmaGciaImg.setWidthFull();
gciaSignLayout.replace(gciaSignPad, firmaGciaImg);
}
} else {
id.setText("No se encontro informacion para el Plan ID: " + planId);
}


Loading…
Cancel
Save