Browse Source

Ya se terminaron las pantallas de Verificacion y PGO-Tomas Independientes y tambien se corrrigieron unos errores de validaciones para el predio y el nombre del solicitante

main
mramirezg 8 months ago
parent
commit
698f3a96cc
8 changed files with 507 additions and 21 deletions
  1. +46
    -3
      src/main/java/mx/gob/jumapacelaya/views/PgoTomasView.java
  2. +41
    -3
      src/main/java/mx/gob/jumapacelaya/views/ReciboDgtalView.java
  3. +47
    -3
      src/main/java/mx/gob/jumapacelaya/views/VerificacionView.java
  4. +18
    -2
      src/main/java/mx/gob/jumapacelaya/views/tiposSolicitud/AjusteFacView.java
  5. +18
    -8
      src/main/java/mx/gob/jumapacelaya/views/tiposSolicitud/DescEspView.java
  6. +18
    -2
      src/main/java/mx/gob/jumapacelaya/views/tiposSolicitud/InfraccionesView.java
  7. +161
    -0
      src/main/java/mx/gob/jumapacelaya/views/verificacionfirma/PgoTomaIndepen.java
  8. +158
    -0
      src/main/java/mx/gob/jumapacelaya/views/verificacionfirma/VerifirmaView.java

+ 46
- 3
src/main/java/mx/gob/jumapacelaya/views/PgoTomasView.java View File

@ -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<Predio> 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);


+ 41
- 3
src/main/java/mx/gob/jumapacelaya/views/ReciboDgtalView.java View File

@ -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<Predio> 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);


+ 47
- 3
src/main/java/mx/gob/jumapacelaya/views/VerificacionView.java View File

@ -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<Predio> 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);


+ 18
- 2
src/main/java/mx/gob/jumapacelaya/views/tiposSolicitud/AjusteFacView.java View File

@ -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");
}
}
}

+ 18
- 8
src/main/java/mx/gob/jumapacelaya/views/tiposSolicitud/DescEspView.java View File

@ -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");
}
}
}

+ 18
- 2
src/main/java/mx/gob/jumapacelaya/views/tiposSolicitud/InfraccionesView.java View File

@ -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");
}
}
}

+ 161
- 0
src/main/java/mx/gob/jumapacelaya/views/verificacionfirma/PgoTomaIndepen.java View File

@ -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.<br/>Por lo que deberá de cumplir con lo siguiente: " +
"<br/>" +
"<ol>" +
"<li>Evidencia fotográfica de que ya cancelo la toma compartida de acuerdo al diagrama que se le entrego.</li>" +
"<li>Evidencia de que ya cuenta con instalaciones internas independientes.</li>" +
"<li>La persona que atenderá en el domicilio debe ser mayor de edad.</li>" +
"</ol>"
);
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");
}
}
}

+ 158
- 0
src/main/java/mx/gob/jumapacelaya/views/verificacionfirma/VerifirmaView.java View File

@ -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.<br/>Por lo que deberá de cumplir con lo siguiente: " +
"<br/>" +
"<ol>" +
"<li>Contar con escalera.</li>" +
"<li>Aljibe disponible.</li>" +
"<li>La persona que atenderá en el domicilio debe ser mayor de edad.</li>" +
"</ol>"
);
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");
}
}
}

Loading…
Cancel
Save