diff --git a/src/main/java/mx/gob/jumapacelaya/views/PgoTomasView.java b/src/main/java/mx/gob/jumapacelaya/views/PgoTomasView.java index d1945e4..2c60c7a 100644 --- a/src/main/java/mx/gob/jumapacelaya/views/PgoTomasView.java +++ b/src/main/java/mx/gob/jumapacelaya/views/PgoTomasView.java @@ -7,6 +7,7 @@ import com.vaadin.flow.component.html.H1; import com.vaadin.flow.component.html.H2; import com.vaadin.flow.component.html.H3; import com.vaadin.flow.component.html.Span; +import com.vaadin.flow.component.notification.Notification; import com.vaadin.flow.component.orderedlayout.HorizontalLayout; import com.vaadin.flow.component.orderedlayout.VerticalLayout; import com.vaadin.flow.component.textfield.NumberField; @@ -15,17 +16,22 @@ import com.vaadin.flow.router.BeforeEnterEvent; import com.vaadin.flow.router.BeforeEnterObserver; import com.vaadin.flow.router.PageTitle; import com.vaadin.flow.router.Route; +import mx.gob.jumapacelaya.Services.PredioService; +import mx.gob.jumapacelaya.models.Predio; import java.time.LocalDate; import java.time.format.DateTimeFormatter; +import java.util.List; @PageTitle("PGO y Tomas Indep") @Route(value = "pgotomasindep", layout = MainLayout.class) public class PgoTomasView extends VerticalLayout implements BeforeEnterObserver { private H3 label; + private final PredioService predioService; - public PgoTomasView() { + public PgoTomasView(PredioService predioService) { + this.predioService = predioService; cabezera(); titulo(); @@ -84,10 +90,12 @@ public class PgoTomasView extends VerticalLayout implements BeforeEnterObserver - NumberField predio = new NumberField("Predio:"); + NumberField predioTxt = new NumberField("Predio:"); + predioTxt.setRequired(true); TextField solicitante = new TextField("Solicitante:"); solicitante.setWidth("30em"); + solicitante.setRequired(true); HorizontalLayout identificacionLayout = new HorizontalLayout(); @@ -99,9 +107,44 @@ public class PgoTomasView extends VerticalLayout implements BeforeEnterObserver btnVerSolicitud.addThemeVariants(ButtonVariant.LUMO_PRIMARY); btnVerSolicitud.addThemeVariants(ButtonVariant.LUMO_LARGE); + btnVerSolicitud.addClickListener(event -> { + String nombreSolicitante = solicitante.getValue(); + + if (predioTxt.getValue() != null) { + int predioId = predioTxt.getValue().intValue(); + List predios = predioService.getInfoPredio(predioId); + + if (!predios.isEmpty()) { + Predio resultado = predios.get(0); + UI.getCurrent().getSession().setAttribute("predio", resultado); + + + System.out.println(resultado.getPredioid()); + System.out.println(resultado.getNomcliente()); + System.out.println(resultado.getDireccorta()); + System.out.println(resultado.getTelefono()); + System.out.println(resultado.getUso()); + System.out.println(resultado.getActividad()); + System.out.println(resultado.getContrato()); + + if (nombreSolicitante != null && !nombreSolicitante.isEmpty()) { + UI.getCurrent().navigate("pgotoma?solicitante=" + nombreSolicitante); + + } else { + Notification.show("Por favor, ingresa el nombre del solicitante.", 3000, Notification.Position.MIDDLE); + } + + } else { + Notification.show("No se encontró información del predio: " + predioTxt.getValue(), 3000, Notification.Position.MIDDLE); + } + } else { + Notification.show("Por favor, ingresa un numero de predio.", 3000, Notification.Position.MIDDLE); + } + }); + formularioLayout.add(label, labelTexto, - predio, + predioTxt, solicitante, identificacionLayout); formularioLayout.setSpacing(false); diff --git a/src/main/java/mx/gob/jumapacelaya/views/ReciboDgtalView.java b/src/main/java/mx/gob/jumapacelaya/views/ReciboDgtalView.java index dc2017e..347e7ff 100644 --- a/src/main/java/mx/gob/jumapacelaya/views/ReciboDgtalView.java +++ b/src/main/java/mx/gob/jumapacelaya/views/ReciboDgtalView.java @@ -9,6 +9,7 @@ import com.vaadin.flow.component.html.H1; import com.vaadin.flow.component.html.H2; import com.vaadin.flow.component.html.H3; import com.vaadin.flow.component.html.Span; +import com.vaadin.flow.component.notification.Notification; import com.vaadin.flow.component.orderedlayout.HorizontalLayout; import com.vaadin.flow.component.orderedlayout.VerticalLayout; import com.vaadin.flow.component.textfield.NumberField; @@ -17,17 +18,22 @@ import com.vaadin.flow.router.BeforeEnterEvent; import com.vaadin.flow.router.BeforeEnterObserver; import com.vaadin.flow.router.PageTitle; import com.vaadin.flow.router.Route; +import mx.gob.jumapacelaya.Services.PredioService; +import mx.gob.jumapacelaya.models.Predio; import java.time.LocalDate; import java.time.format.DateTimeFormatter; +import java.util.List; @PageTitle("Solicitud de Recibo Digital") @Route(value = "recibodigital", layout = MainLayout.class) public class ReciboDgtalView extends VerticalLayout implements BeforeEnterObserver { private H3 label; + private final PredioService predioService; - public ReciboDgtalView() { + public ReciboDgtalView(PredioService predioService) { + this.predioService = predioService; cabezera(); titulo(); @@ -86,7 +92,7 @@ public class ReciboDgtalView extends VerticalLayout implements BeforeEnterObserv - NumberField predio = new NumberField("Predio:"); + NumberField predioTxt = new NumberField("Predio:"); TextField solicitante = new TextField("Solicitante:"); solicitante.setWidth("30em"); @@ -111,9 +117,41 @@ public class ReciboDgtalView extends VerticalLayout implements BeforeEnterObserv btnVerSolicitud.addThemeVariants(ButtonVariant.LUMO_PRIMARY); btnVerSolicitud.addThemeVariants(ButtonVariant.LUMO_LARGE); + btnVerSolicitud.addClickListener(event -> { + String nombreSolicitante = solicitante.getValue(); + + if (predioTxt.getValue() != null) { + int predioId = predioTxt.getValue().intValue(); + List predios = predioService.getInfoPredio(predioId); + + if (!predios.isEmpty()) { + Predio resultado = predios.get(0); + + UI.getCurrent().getSession().setAttribute("predio", resultado); + + System.out.println(resultado.getPredioid()); + System.out.println(resultado.getNomcliente()); + System.out.println(resultado.getDireccorta()); + System.out.println(resultado.getTelefono()); + System.out.println(resultado.getUso()); + System.out.println(resultado.getActividad()); + System.out.println(resultado.getContrato()); + + } else { + Notification.show("No se encontro informacion del predio", 3000, Notification.Position.MIDDLE); + } + } else { + Notification.show("Ingresa un numero de predio", 3000, Notification.Position.MIDDLE); + } + + if (nombreSolicitante != null) { + UI.getCurrent().navigate("verifirma?solicitante=" + nombreSolicitante); + } + }); + identificacionLayout.add(cmbTipoIdentificacion, numIdentificacion); - formularioLayout.add(label, labelTexto, predio, + formularioLayout.add(label, labelTexto, predioTxt, solicitante, identificacionTexto, identificacionLayout, txtParentesco); formularioLayout.setSpacing(false); diff --git a/src/main/java/mx/gob/jumapacelaya/views/VerificacionView.java b/src/main/java/mx/gob/jumapacelaya/views/VerificacionView.java index f4086d3..44ccd58 100644 --- a/src/main/java/mx/gob/jumapacelaya/views/VerificacionView.java +++ b/src/main/java/mx/gob/jumapacelaya/views/VerificacionView.java @@ -6,6 +6,7 @@ import com.vaadin.flow.component.button.ButtonVariant; import com.vaadin.flow.component.html.H2; import com.vaadin.flow.component.html.H3; import com.vaadin.flow.component.html.Span; +import com.vaadin.flow.component.notification.Notification; import com.vaadin.flow.component.orderedlayout.HorizontalLayout; import com.vaadin.flow.component.orderedlayout.VerticalLayout; import com.vaadin.flow.component.textfield.NumberField; @@ -14,17 +15,23 @@ import com.vaadin.flow.router.BeforeEnterEvent; import com.vaadin.flow.router.BeforeEnterObserver; import com.vaadin.flow.router.PageTitle; import com.vaadin.flow.router.Route; +import mx.gob.jumapacelaya.Services.PredioService; +import mx.gob.jumapacelaya.models.Predio; +import org.aspectj.weaver.ast.Not; import java.time.LocalDate; import java.time.format.DateTimeFormatter; +import java.util.List; @PageTitle("Verificacion") @Route(value = "verificacion", layout = MainLayout.class) public class VerificacionView extends VerticalLayout implements BeforeEnterObserver { private H3 label; + private final PredioService predioService; - public VerificacionView() { + public VerificacionView(PredioService predioService) { + this.predioService = predioService; cabezera(); titulo(); @@ -81,10 +88,12 @@ public class VerificacionView extends VerticalLayout implements BeforeEnterObser Span labelTexto = new Span("Prepara la solicitud:"); - NumberField predio = new NumberField("Predio:"); + NumberField predioTxT = new NumberField("Predio:"); + predioTxT.setRequired(true); TextField solicitante = new TextField("Solicitante:"); solicitante.setWidth("30em"); + solicitante.setRequired(true); HorizontalLayout identificacionLayout = new HorizontalLayout(); @@ -96,9 +105,44 @@ public class VerificacionView extends VerticalLayout implements BeforeEnterObser btnVerSolicitud.addThemeVariants(ButtonVariant.LUMO_PRIMARY); btnVerSolicitud.addThemeVariants(ButtonVariant.LUMO_LARGE); + btnVerSolicitud.addClickListener(event -> { + String nombreSolicitante = solicitante.getValue(); + + if (predioTxT.getValue() != null) { + int predioId = predioTxT.getValue().intValue(); + List predios = predioService.getInfoPredio(predioId); + + if (!predios.isEmpty()) { + Predio resultado = predios.get(0); + UI.getCurrent().getSession().setAttribute("predio", resultado); + + + System.out.println(resultado.getPredioid()); + System.out.println(resultado.getNomcliente()); + System.out.println(resultado.getDireccorta()); + System.out.println(resultado.getTelefono()); + System.out.println(resultado.getUso()); + System.out.println(resultado.getActividad()); + System.out.println(resultado.getContrato()); + + if (nombreSolicitante != null && !nombreSolicitante.isEmpty()) { + UI.getCurrent().navigate("verifirma?solicitante=" + nombreSolicitante); + + } else { + Notification.show("Por favor, ingresa el nombre del solicitante.", 3000, Notification.Position.MIDDLE); + } + + } else { + Notification.show("No se encontró información del predio: " + predioTxT.getValue(), 3000, Notification.Position.MIDDLE); + } + } else { + Notification.show("Por favor, ingresa un numero de predio.", 3000, Notification.Position.MIDDLE); + } + }); + formularioLayout.add(label, labelTexto, - predio, + predioTxT, solicitante, identificacionLayout); formularioLayout.setSpacing(false); diff --git a/src/main/java/mx/gob/jumapacelaya/views/tiposSolicitud/AjusteFacView.java b/src/main/java/mx/gob/jumapacelaya/views/tiposSolicitud/AjusteFacView.java index 9f2aaeb..bfd897b 100644 --- a/src/main/java/mx/gob/jumapacelaya/views/tiposSolicitud/AjusteFacView.java +++ b/src/main/java/mx/gob/jumapacelaya/views/tiposSolicitud/AjusteFacView.java @@ -5,6 +5,8 @@ import com.vaadin.flow.component.html.*; import com.vaadin.flow.component.notification.Notification; import com.vaadin.flow.component.orderedlayout.HorizontalLayout; import com.vaadin.flow.component.orderedlayout.VerticalLayout; +import com.vaadin.flow.router.BeforeEnterEvent; +import com.vaadin.flow.router.BeforeEnterObserver; import com.vaadin.flow.router.PageTitle; import com.vaadin.flow.router.Route; import de.f0rce.signaturepad.SignaturePad; @@ -18,10 +20,11 @@ import java.time.format.DateTimeFormatter; @PageTitle("Ajuste de Facturas") @Route(value = "ajustefacturas", layout = MainLayout.class) -public class AjusteFacView extends VerticalLayout { +public class AjusteFacView extends VerticalLayout implements BeforeEnterObserver { private final PredioService predioService; private Predio predio; + Span nombreCliente = new Span(); @Autowired public AjusteFacView(PredioService predioService) { @@ -111,7 +114,6 @@ public class AjusteFacView extends VerticalLayout { userPad.getElement().getStyle().set("border", "1px solid black"); - Span nombreCliente = new Span("Nombre del Solicitante: " + predio.getNomcliente()); Span predioCliente = new Span("Predio: " + predio.getPredioid()); Span contratoCliente = new Span("Contrato: " + predio.getContrato()); @@ -122,4 +124,18 @@ public class AjusteFacView extends VerticalLayout { this.setSpacing(false); this.add(signLayout); } + + @Override + public void beforeEnter(BeforeEnterEvent event) { + String solicitante = event.getLocation().getQueryParameters().getParameters().get("solicitante") != null + ? event.getLocation().getQueryParameters().getParameters().get("solicitante").stream().findFirst().orElse(null) + : null; + + if (solicitante != null && !solicitante.isEmpty()) { + nombreCliente.setText("Nombre del Solicitante: " + solicitante); + + } else { + nombreCliente.setText("Sin solicitante"); + } + } } diff --git a/src/main/java/mx/gob/jumapacelaya/views/tiposSolicitud/DescEspView.java b/src/main/java/mx/gob/jumapacelaya/views/tiposSolicitud/DescEspView.java index bcf06a9..d87afe0 100644 --- a/src/main/java/mx/gob/jumapacelaya/views/tiposSolicitud/DescEspView.java +++ b/src/main/java/mx/gob/jumapacelaya/views/tiposSolicitud/DescEspView.java @@ -5,6 +5,8 @@ import com.vaadin.flow.component.html.*; import com.vaadin.flow.component.notification.Notification; import com.vaadin.flow.component.orderedlayout.HorizontalLayout; import com.vaadin.flow.component.orderedlayout.VerticalLayout; +import com.vaadin.flow.router.BeforeEnterEvent; +import com.vaadin.flow.router.BeforeEnterObserver; import com.vaadin.flow.router.PageTitle; import com.vaadin.flow.router.Route; import de.f0rce.signaturepad.SignaturePad; @@ -17,10 +19,11 @@ import java.time.format.DateTimeFormatter; @PageTitle("Descuento Especial") @Route(value = "descesp", layout = MainLayout.class) -public class DescEspView extends VerticalLayout { +public class DescEspView extends VerticalLayout implements BeforeEnterObserver { private final PredioService predioService; private Predio predio; + Span nombreCliente = new Span(); public DescEspView(PredioService predioService) { this.predioService = predioService; @@ -109,12 +112,6 @@ public class DescEspView extends VerticalLayout { "de su respuesta." ); - SignaturePad userPad = new SignaturePad(); - userPad.setBackgroundColor("#FFFFFF"); - userPad.setHeight("200px"); - userPad.setPenColor("#000000"); - userPad.getElement().getStyle().set("border", "1px solid black"); - bodyLayout.add(lblPresente, parrafo1, parrafo2, parrafo3, lblAtt); this.add(bodyLayout); @@ -130,7 +127,6 @@ public class DescEspView extends VerticalLayout { userPad.getElement().getStyle().set("border", "1px solid black"); - Span nombreCliente = new Span("Nombre del Solicitante: " + predio.getNomcliente()); Span predioCliente = new Span("Predio: " + predio.getPredioid()); Span contratoCliente = new Span("Contrato: " + predio.getContrato()); @@ -141,4 +137,18 @@ public class DescEspView extends VerticalLayout { this.setSpacing(false); this.add(signLayout); } + + @Override + public void beforeEnter(BeforeEnterEvent event) { + String solicitante = event.getLocation().getQueryParameters().getParameters().get("solicitante") != null + ? event.getLocation().getQueryParameters().getParameters().get("solicitante").stream().findFirst().orElse(null) + : null; + + if (solicitante != null && !solicitante.isEmpty()) { + nombreCliente.setText("Nombre del Solicitante: " + solicitante); + + } else { + nombreCliente.setText("Sin solicitante"); + } + } } diff --git a/src/main/java/mx/gob/jumapacelaya/views/tiposSolicitud/InfraccionesView.java b/src/main/java/mx/gob/jumapacelaya/views/tiposSolicitud/InfraccionesView.java index 3513e37..68163cb 100644 --- a/src/main/java/mx/gob/jumapacelaya/views/tiposSolicitud/InfraccionesView.java +++ b/src/main/java/mx/gob/jumapacelaya/views/tiposSolicitud/InfraccionesView.java @@ -5,6 +5,8 @@ import com.vaadin.flow.component.html.*; import com.vaadin.flow.component.notification.Notification; import com.vaadin.flow.component.orderedlayout.HorizontalLayout; import com.vaadin.flow.component.orderedlayout.VerticalLayout; +import com.vaadin.flow.router.BeforeEnterEvent; +import com.vaadin.flow.router.BeforeEnterObserver; import com.vaadin.flow.router.PageTitle; import com.vaadin.flow.router.Route; import de.f0rce.signaturepad.SignaturePad; @@ -18,10 +20,11 @@ import java.time.format.DateTimeFormatter; @PageTitle("Infracciones") @Route(value = "infracciones", layout = MainLayout.class) -public class InfraccionesView extends VerticalLayout { +public class InfraccionesView extends VerticalLayout implements BeforeEnterObserver { private final PredioService predioService; private Predio predio; + Span nombreCliente = new Span(); @Autowired public InfraccionesView(PredioService predioService) { @@ -111,7 +114,6 @@ public class InfraccionesView extends VerticalLayout { userPad.getElement().getStyle().set("border", "1px solid black"); - Span nombreCliente = new Span("Nombre del Solicitante: " + predio.getNomcliente()); Span predioCliente = new Span("Predio: " + predio.getPredioid()); Span contratoCliente = new Span("Contrato: " + predio.getContrato()); @@ -122,4 +124,18 @@ public class InfraccionesView extends VerticalLayout { this.setSpacing(false); this.add(signLayout); } + + @Override + public void beforeEnter(BeforeEnterEvent event) { + String solicitante = event.getLocation().getQueryParameters().getParameters().get("solicitante") != null + ? event.getLocation().getQueryParameters().getParameters().get("solicitante").stream().findFirst().orElse(null) + : null; + + if (solicitante != null && !solicitante.isEmpty()) { + nombreCliente.setText("Nombre del Solicitante: " + solicitante); + + } else { + nombreCliente.setText("Sin solicitante"); + } + } } diff --git a/src/main/java/mx/gob/jumapacelaya/views/verificacionfirma/PgoTomaIndepen.java b/src/main/java/mx/gob/jumapacelaya/views/verificacionfirma/PgoTomaIndepen.java new file mode 100644 index 0000000..8ef7477 --- /dev/null +++ b/src/main/java/mx/gob/jumapacelaya/views/verificacionfirma/PgoTomaIndepen.java @@ -0,0 +1,161 @@ +package mx.gob.jumapacelaya.views.verificacionfirma; + +import com.vaadin.flow.component.HtmlComponent; +import com.vaadin.flow.component.UI; +import com.vaadin.flow.component.html.H2; +import com.vaadin.flow.component.html.H4; +import com.vaadin.flow.component.html.Paragraph; +import com.vaadin.flow.component.html.Span; +import com.vaadin.flow.component.notification.Notification; +import com.vaadin.flow.component.orderedlayout.HorizontalLayout; +import com.vaadin.flow.component.orderedlayout.VerticalLayout; +import com.vaadin.flow.router.BeforeEnterEvent; +import com.vaadin.flow.router.BeforeEnterObserver; +import com.vaadin.flow.router.PageTitle; +import com.vaadin.flow.router.Route; +import de.f0rce.signaturepad.SignaturePad; +import mx.gob.jumapacelaya.Services.PredioService; +import mx.gob.jumapacelaya.models.Predio; +import mx.gob.jumapacelaya.views.MainLayout; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; + +@PageTitle("Solicitud de Verificación PGO-Toma Independiente") +@Route(value = "pgotoma", layout = MainLayout.class) +public class PgoTomaIndepen extends VerticalLayout implements BeforeEnterObserver { + + private final PredioService predioService; + private Predio predio; + Span nombreCliente = new Span(); + + public PgoTomaIndepen(PredioService predioService) { + this.predioService = predioService; + this.predio = (Predio) UI.getCurrent().getSession().getAttribute("predio"); + + if (predio == null) { + Notification.show("No se ha proporcionado un predio válido.", 3000, Notification.Position.MIDDLE); + UI.getCurrent().navigate("verificacion"); + } + + cabezera(); + titulo(); + body(); + sign(); + } + + + private void cabezera() { + + HorizontalLayout encabezadoLayout = new HorizontalLayout(); + encabezadoLayout.setWidthFull(); + encabezadoLayout.setPadding(true); + + // Obtener la fecha actual del sistema + LocalDate fechaSistema = LocalDate.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEEE d 'de' MMMM 'del' yyyy"); + String fechaFormateada = fechaSistema.format(formatter); + + Span fecha = new Span(); + fecha.setText("Celaya, Guanajuato a " + fechaFormateada); + + H2 presolicitud = new H2(); + presolicitud.setText("Firma Solicitud"); + + encabezadoLayout.add(fecha); + encabezadoLayout.addAndExpand(new HorizontalLayout()); + encabezadoLayout.add(presolicitud); + this.add(encabezadoLayout); + } + + + private void titulo() { + + VerticalLayout tituloLayout = new VerticalLayout(); + + H2 lblTitulo = new H2(); + lblTitulo.setText("JUNTA MUNICIPAL DE AGUA POTABLE Y ALCANTARILLADO DE CELAYA, GTO"); + + + + tituloLayout.add(lblTitulo); + + this.add(tituloLayout); + } + + + private void body() { + VerticalLayout bodyLayout = new VerticalLayout(); + + H4 lblPresente = new H4(); + lblPresente.setText("Firma la Solicitud:"); + + H4 lblAtt = new H4(); + lblAtt.setText("ATENTAMENTE:"); + + Paragraph parrafo1 = new Paragraph(); + parrafo1.getElement().setProperty("innerHTML", + "Con Base al Art. 171 del Reglamento, el Organismo Operador del Servicio le pueden apoyar con personal técnico adecuado " + + "para llevar a cabo la revisión la cual tendrá como objetivo primordial corroborar el correcto funcionamiento " + + "de las instalaciones hidráulicas.
Por lo que deberá de cumplir con lo siguiente: " + + "
" + + "
    " + + "
  1. Evidencia fotográfica de que ya cancelo la toma compartida de acuerdo al diagrama que se le entrego.
  2. " + + "
  3. Evidencia de que ya cuenta con instalaciones internas independientes.
  4. " + + "
  5. La persona que atenderá en el domicilio debe ser mayor de edad.
  6. " + + "
" + ); + + + Paragraph parrafo2 = new Paragraph(); + parrafo2.getElement().setProperty("innerHTML", + "En caso de que no garantice que cuenta con lo anterior o que acudan al domicilio y nadie atienda al verificador, " + + "ya no será posible reprogramar la orden de trabajo y tendrá que contratar al personal técnico para que revise " + + "sus instalaciones internas, haciéndose responsable de cualquier anomalía en su consumo. Agradecemos su comprensión." + ); + + HtmlComponent parrafo3 = new HtmlComponent("p"); + parrafo3.getElement().setProperty("innerHTML", + "Predio, " + predio.getPredioid() + " ubicado en " + predio.getDirecmostrar() + ", a nombre de " + predio.getNomcliente() + "." + ); + + + bodyLayout.add(lblPresente, parrafo1, parrafo2, parrafo3, lblAtt); + this.add(bodyLayout); + } + + + private void sign() { + VerticalLayout signLayout = new VerticalLayout(); + SignaturePad userPad = new SignaturePad(); + userPad.setBackgroundColor("#FFFFFF"); + userPad.setHeight("200px"); + userPad.setPenColor("#000000"); + userPad.getElement().getStyle().set("border", "1px solid black"); + + + Span predioCliente = new Span("Predio: " + predio.getPredioid()); + Span contratoCliente = new Span("Contrato: " + predio.getContrato()); + + + signLayout.add(userPad, nombreCliente, predioCliente, contratoCliente); + signLayout.setSpacing(false); + signLayout.setAlignItems(Alignment.CENTER); + this.setSpacing(false); + this.add(signLayout); + } + + @Override + public void beforeEnter(BeforeEnterEvent event) { + String solicitante = event.getLocation().getQueryParameters().getParameters().get("solicitante") != null + ? event.getLocation().getQueryParameters().getParameters().get("solicitante").stream().findFirst().orElse(null) + : null; + + if (solicitante != null && !solicitante.isEmpty()) { + nombreCliente.setText("Nombre del Solicitante: " + solicitante); + + } else { + nombreCliente.setText("Sin solicitante"); + } + } +} diff --git a/src/main/java/mx/gob/jumapacelaya/views/verificacionfirma/VerifirmaView.java b/src/main/java/mx/gob/jumapacelaya/views/verificacionfirma/VerifirmaView.java new file mode 100644 index 0000000..2fe45c4 --- /dev/null +++ b/src/main/java/mx/gob/jumapacelaya/views/verificacionfirma/VerifirmaView.java @@ -0,0 +1,158 @@ +package mx.gob.jumapacelaya.views.verificacionfirma; + +import com.vaadin.flow.component.HtmlComponent; +import com.vaadin.flow.component.UI; +import com.vaadin.flow.component.html.*; +import com.vaadin.flow.component.notification.Notification; +import com.vaadin.flow.component.orderedlayout.HorizontalLayout; +import com.vaadin.flow.component.orderedlayout.VerticalLayout; +import com.vaadin.flow.router.BeforeEnterEvent; +import com.vaadin.flow.router.BeforeEnterObserver; +import com.vaadin.flow.router.PageTitle; +import com.vaadin.flow.router.Route; +import de.f0rce.signaturepad.SignaturePad; +import mx.gob.jumapacelaya.Services.PredioService; +import mx.gob.jumapacelaya.models.Predio; +import mx.gob.jumapacelaya.views.MainLayout; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; + +@PageTitle("Solicitud de Verificación PGO- Toma Independiente") +@Route(value = "verifirma", layout = MainLayout.class) +public class VerifirmaView extends VerticalLayout implements BeforeEnterObserver { + + private final PredioService predioService; + private Predio predio; + Span nombreCliente = new Span(); + + public VerifirmaView(PredioService predioService) { + this.predioService = predioService; + this.predio = (Predio) UI.getCurrent().getSession().getAttribute("predio"); + + if (predio == null) { + Notification.show("No se ha proporcionado un predio válido.", 3000, Notification.Position.MIDDLE); + UI.getCurrent().navigate("verificacion"); + } + + cabezera(); + titulo(); + body(); + sign(); + } + + + private void cabezera() { + + HorizontalLayout encabezadoLayout = new HorizontalLayout(); + encabezadoLayout.setWidthFull(); + encabezadoLayout.setPadding(true); + + // Obtener la fecha actual del sistema + LocalDate fechaSistema = LocalDate.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEEE d 'de' MMMM 'del' yyyy"); + String fechaFormateada = fechaSistema.format(formatter); + + Span fecha = new Span(); + fecha.setText("Celaya, Guanajuato a " + fechaFormateada); + + H2 presolicitud = new H2(); + presolicitud.setText("Firma Solicitud"); + + encabezadoLayout.add(fecha); + encabezadoLayout.addAndExpand(new HorizontalLayout()); + encabezadoLayout.add(presolicitud); + this.add(encabezadoLayout); + } + + + private void titulo() { + + VerticalLayout tituloLayout = new VerticalLayout(); + + H2 lblTitulo = new H2(); + lblTitulo.setText("JUNTA MUNICIPAL DE AGUA POTABLE Y ALCANTARILLADO DE CELAYA, GTO"); + + + + tituloLayout.add(lblTitulo); + + this.add(tituloLayout); + } + + + private void body() { + VerticalLayout bodyLayout = new VerticalLayout(); + + H4 lblPresente = new H4(); + lblPresente.setText("Firma la Solicitud:"); + + H4 lblAtt = new H4(); + lblAtt.setText("ATENTAMENTE:"); + + Paragraph parrafo1 = new Paragraph(); + parrafo1.getElement().setProperty("innerHTML", + "Con Base al Art. 171 del Reglamento, el Organismo Operador del Servicio le pueden apoyar con personal técnico adecuado " + + "para llevar a cabo la revisión la cual tendrá como objetivo primordial corroborar el correcto funcionamiento " + + "de las instalaciones hidráulicas.
Por lo que deberá de cumplir con lo siguiente: " + + "
" + + "
    " + + "
  1. Contar con escalera.
  2. " + + "
  3. Aljibe disponible.
  4. " + + "
  5. La persona que atenderá en el domicilio debe ser mayor de edad.
  6. " + + "
" + ); + + + Paragraph parrafo2 = new Paragraph(); + parrafo2.getElement().setProperty("innerHTML", + "En caso de que no garantice que cuenta con lo anterior o que acudan al domicilio y nadie atienda al verificador, " + + "ya no será posible reprogramar la orden de trabajo y tendrá que contratar al personal técnico para que revise " + + "sus instalaciones internas, haciéndose responsable de cualquier anomalía en su consumo. Agradecemos su comprension." + ); + + HtmlComponent parrafo3 = new HtmlComponent("p"); + parrafo3.getElement().setProperty("innerHTML", + "Predio, " + predio.getPredioid() + " ubicado en " + predio.getDirecmostrar() + ", a nombre de " + predio.getNomcliente() + "." + ); + + + bodyLayout.add(lblPresente, parrafo1, parrafo2, parrafo3, lblAtt); + this.add(bodyLayout); + } + + + private void sign() { + VerticalLayout signLayout = new VerticalLayout(); + SignaturePad userPad = new SignaturePad(); + userPad.setBackgroundColor("#FFFFFF"); + userPad.setHeight("200px"); + userPad.setPenColor("#000000"); + userPad.getElement().getStyle().set("border", "1px solid black"); + + + Span predioCliente = new Span("Predio: " + predio.getPredioid()); + Span contratoCliente = new Span("Contrato: " + predio.getContrato()); + + + signLayout.add(userPad, nombreCliente, predioCliente, contratoCliente); + signLayout.setSpacing(false); + signLayout.setAlignItems(Alignment.CENTER); + this.setSpacing(false); + this.add(signLayout); + } + + @Override + public void beforeEnter(BeforeEnterEvent event) { + String solicitante = event.getLocation().getQueryParameters().getParameters().get("solicitante") != null + ? event.getLocation().getQueryParameters().getParameters().get("solicitante").stream().findFirst().orElse(null) + : null; + + if (solicitante != null && !solicitante.isEmpty()) { + nombreCliente.setText("Nombre del Solicitante: " + solicitante); + + } else { + nombreCliente.setText("Sin solicitante"); + } + } +}