diff --git a/pom.xml b/pom.xml index 6d3e13a..e130f53 100644 --- a/pom.xml +++ b/pom.xml @@ -101,6 +101,12 @@ com.oracle.database.jdbc ojdbc8 + + + de.f0rce.signaturepad + signature-widget + 3.1.0 + diff --git a/src/main/java/mx/gob/jumapacelaya/views/DescEspView.java b/src/main/java/mx/gob/jumapacelaya/views/DescEspView.java index 26b93c8..4ad7d35 100644 --- a/src/main/java/mx/gob/jumapacelaya/views/DescEspView.java +++ b/src/main/java/mx/gob/jumapacelaya/views/DescEspView.java @@ -1,10 +1,14 @@ package mx.gob.jumapacelaya.views; -import com.vaadin.flow.component.html.H1; +import com.vaadin.flow.component.html.*; import com.vaadin.flow.component.orderedlayout.HorizontalLayout; import com.vaadin.flow.component.orderedlayout.VerticalLayout; import com.vaadin.flow.router.PageTitle; import com.vaadin.flow.router.Route; +import de.f0rce.signaturepad.SignaturePad; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; @PageTitle("Descuento Especial") @Route(value = "descesp", layout = MainLayout.class) @@ -12,9 +16,113 @@ public class DescEspView extends VerticalLayout { public DescEspView() { + cabezera(); + titulo(); + body(); + sign(); + } + + private void cabezera() { + HorizontalLayout encabezadoLayout = new HorizontalLayout(); - encabezadoLayout.getStyle().set("background-color", "red"); + 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("PreSolicitud"); + + 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"); + + H3 lblSubtitulo = new H3(); + lblSubtitulo.setText("A QUIEN CORRESPONDA"); + + + tituloLayout.add(lblTitulo, lblSubtitulo); + + this.add(tituloLayout); + } + + + private void body() { + VerticalLayout bodyLayout = new VerticalLayout(); + + H4 lblPresente = new H4(); + lblPresente.setText("PRESENTE:"); + + H4 lblAtt = new H4(); + lblAtt.setText("ATENTAMENTE:"); + + Paragraph parrafo1 = new Paragraph(); + parrafo1.setText( + "Sirva este medio para solicitar de la manera más atenta se me valore mi condición socioeconómica, " + + "ya que por el momento no cuento con la solvencia económica suficiente para pagar la tarifa del " + + "presente año que corresponde al domicilio que habito ubicado en: " + ); + + + Paragraph parrafo2 = new Paragraph(); + parrafo2.setText( + "Lo anterior para que se me pueda otorgar un descuento en mi tarifa, comprometiéndome con ello, " + + " a mantener mi cuenta regularizada con este Organismo Operador y que no rebasaré un consumo máximo de 15 m3 mensuales; " + + "aceptando que no podré solicitar un beneficio o descuento adicional a mi tarifa." + ); + + Paragraph parrafo3 = new Paragraph(); + parrafo3.setText( + "Sin más por el momento y agradeciendo de antemano sus atenciones, quedo al pendiente " + + "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); + } + + + 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 nombreCliente = new Span("Nombre del Solicitante"); + Span predioCliente = new Span("Predio: "); + Span contratoCliente = new Span("Contrato: "); + + + signLayout.add(userPad, nombreCliente, predioCliente, contratoCliente); + signLayout.setSpacing(false); + signLayout.setAlignItems(Alignment.CENTER); + this.setSpacing(false); + this.add(signLayout); + } } diff --git a/src/main/java/mx/gob/jumapacelaya/views/MainLayout.java b/src/main/java/mx/gob/jumapacelaya/views/MainLayout.java index 60b8c7e..6466beb 100644 --- a/src/main/java/mx/gob/jumapacelaya/views/MainLayout.java +++ b/src/main/java/mx/gob/jumapacelaya/views/MainLayout.java @@ -58,7 +58,7 @@ public class MainLayout extends AppLayout { nav.addItem(new SideNavItem("Solicitud De Descuento", SolicitudDescView.class, LineAwesomeIcon.COINS_SOLID.create())); nav.addItem(new SideNavItem("Recibo Digital", ReciboDgtalView.class, LineAwesomeIcon.FILE_ALT.create())); nav.addItem(new SideNavItem("Verificacion", VerificacionView.class, LineAwesomeIcon.CHECK_CIRCLE_SOLID.create())); - nav.addItem(new SideNavItem("PGO y Tomas independientes", PgoTomasView.class, LineAwesomeIcon.MONEY_BILL_ALT.create())); + nav.addItem(new SideNavItem("PGO y Tomas independientes", PgoTomasView.class, LineAwesomeIcon.TINT_SOLID.create())); nav.addItem(new SideNavItem("Descuento Especial", DescEspView.class, LineAwesomeIcon.MONEY_BILL_ALT.create())); return nav; diff --git a/src/main/java/mx/gob/jumapacelaya/views/PgoTomasView.java b/src/main/java/mx/gob/jumapacelaya/views/PgoTomasView.java index 6ac3a6a..e511587 100644 --- a/src/main/java/mx/gob/jumapacelaya/views/PgoTomasView.java +++ b/src/main/java/mx/gob/jumapacelaya/views/PgoTomasView.java @@ -1,18 +1,106 @@ package mx.gob.jumapacelaya.views; +import com.vaadin.flow.component.button.Button; +import com.vaadin.flow.component.button.ButtonVariant; 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.orderedlayout.HorizontalLayout; import com.vaadin.flow.component.orderedlayout.VerticalLayout; +import com.vaadin.flow.component.textfield.NumberField; +import com.vaadin.flow.component.textfield.TextField; import com.vaadin.flow.router.PageTitle; import com.vaadin.flow.router.Route; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; + @PageTitle("PGO y Tomas Indep") @Route(value = "pgotomasindep", layout = MainLayout.class) public class PgoTomasView extends VerticalLayout { public PgoTomasView() { - VerticalLayout layout = new VerticalLayout(); - H1 titulo = new H1("Solicitud Desc"); - add(titulo); + cabezera(); + titulo(); + formulario(); + } + + + 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("PreSolicitud"); + + encabezadoLayout.add(fecha); + encabezadoLayout.addAndExpand(new HorizontalLayout()); + encabezadoLayout.add(presolicitud); + this.add(encabezadoLayout); + } + + + private void titulo() { + + HorizontalLayout tituloLayout = new HorizontalLayout(); + + H2 lblTitulo = new H2(); + lblTitulo.setText("JUNTA MUNICIPAL DE AGUA POTABLE Y ALCANTARILLADO DE CELAYA, GTO"); + + + tituloLayout.add(lblTitulo); + + this.add(tituloLayout); + } + + + private void formulario() { + VerticalLayout formularioLayout = new VerticalLayout(); + //formularioLayout.getStyle().set("background-color", "green"); + formularioLayout.setSpacing(true); + formularioLayout.setPadding(true); + + H3 label = new H3(); + label.setText("Solicitud de Verificación PGO-Toma independiente [USUARIO]"); + + Span labelTexto = new Span(); + labelTexto.setText("Prepara la solicitud:"); + + + + NumberField predio = new NumberField("Predio:"); + + TextField solicitante = new TextField("Solicitante:"); + solicitante.setWidth("30em"); + + + HorizontalLayout identificacionLayout = new HorizontalLayout(); + identificacionLayout.setWidthFull(); + + + + Button btnVerSolicitud = new Button("Ver Solic. Verificación"); + btnVerSolicitud.addThemeVariants(ButtonVariant.LUMO_PRIMARY); + btnVerSolicitud.addThemeVariants(ButtonVariant.LUMO_LARGE); + + + formularioLayout.add(label, labelTexto, + predio, + solicitante, + identificacionLayout); + formularioLayout.setSpacing(false); + this.add(formularioLayout, btnVerSolicitud); } } diff --git a/src/main/java/mx/gob/jumapacelaya/views/ReciboDgtalView.java b/src/main/java/mx/gob/jumapacelaya/views/ReciboDgtalView.java index 56ee6e4..ad5a3f9 100644 --- a/src/main/java/mx/gob/jumapacelaya/views/ReciboDgtalView.java +++ b/src/main/java/mx/gob/jumapacelaya/views/ReciboDgtalView.java @@ -1,19 +1,122 @@ package mx.gob.jumapacelaya.views; +import com.vaadin.flow.component.button.Button; +import com.vaadin.flow.component.button.ButtonVariant; +import com.vaadin.flow.component.checkbox.CheckboxGroup; +import com.vaadin.flow.component.combobox.ComboBox; 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.orderedlayout.HorizontalLayout; import com.vaadin.flow.component.orderedlayout.VerticalLayout; +import com.vaadin.flow.component.textfield.NumberField; +import com.vaadin.flow.component.textfield.TextField; import com.vaadin.flow.router.PageTitle; import com.vaadin.flow.router.Route; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; + @PageTitle("Solicitud de Recibo Digital") @Route(value = "recibodigital", layout = MainLayout.class) public class ReciboDgtalView extends VerticalLayout { public ReciboDgtalView() { - VerticalLayout layout = new VerticalLayout(); - H1 titulo = new H1("Solicitud Desc"); + cabezera(); + titulo(); + formulario(); + } + + + 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("PreSolicitud"); + + encabezadoLayout.add(fecha); + encabezadoLayout.addAndExpand(new HorizontalLayout()); + encabezadoLayout.add(presolicitud); + this.add(encabezadoLayout); + } + + + private void titulo() { + + HorizontalLayout tituloLayout = new HorizontalLayout(); + + H2 lblTitulo = new H2(); + lblTitulo.setText("JUNTA MUNICIPAL DE AGUA POTABLE Y ALCANTARILLADO DE CELAYA, GTO"); + + + tituloLayout.add(lblTitulo); + + this.add(tituloLayout); + } + + + private void formulario() { + VerticalLayout formularioLayout = new VerticalLayout(); + //formularioLayout.getStyle().set("background-color", "green"); + formularioLayout.setSpacing(true); + formularioLayout.setPadding(true); + + H3 label = new H3(); + label.setText("Solicitud de Recibo Digital [USUARIO]"); + + Span labelTexto = new Span(); + labelTexto.setText("Prepara la solicitud:"); + + + CheckboxGroup tipoSolicitudGroup = new CheckboxGroup<>("Elige el tipo de Solicitud:"); + tipoSolicitudGroup.setItems("Recargos", "Infracciones", "Ajuste de Facturas"); + + + NumberField predio = new NumberField("Predio:"); + + TextField solicitante = new TextField("Solicitante:"); + solicitante.setWidth("30em"); + + TextField txtParentesco = new TextField("Parentesco:"); + + HorizontalLayout identificacionLayout = new HorizontalLayout(); + identificacionLayout.setWidthFull(); + + Span identificacionTexto = new Span(); + identificacionTexto.setText("Se identifica con:"); + + ComboBox cmbTipoIdentificacion = new ComboBox<>(); + cmbTipoIdentificacion.setPlaceholder("Selecciona una opcion"); + cmbTipoIdentificacion.setItems("INE/IFE", "Lic. de conducir", "Pasaporte", "Cedula prof.", "Visa", "Otro..."); + + TextField numIdentificacion = new TextField(); + numIdentificacion.setPlaceholder("No. identificacion"); + numIdentificacion.setWidthFull(); + + Button btnVerSolicitud = new Button("Ver Solicitud"); + btnVerSolicitud.addThemeVariants(ButtonVariant.LUMO_PRIMARY); + btnVerSolicitud.addThemeVariants(ButtonVariant.LUMO_LARGE); + - add(titulo); + identificacionLayout.add(cmbTipoIdentificacion, numIdentificacion); + formularioLayout.add(label, labelTexto, + tipoSolicitudGroup, predio, + solicitante, identificacionTexto, + identificacionLayout, txtParentesco); + formularioLayout.setSpacing(false); + this.add(formularioLayout, btnVerSolicitud); } } diff --git a/src/main/java/mx/gob/jumapacelaya/views/SolicitudDescView.java b/src/main/java/mx/gob/jumapacelaya/views/SolicitudDescView.java index 0e4d0df..e6850e9 100644 --- a/src/main/java/mx/gob/jumapacelaya/views/SolicitudDescView.java +++ b/src/main/java/mx/gob/jumapacelaya/views/SolicitudDescView.java @@ -10,6 +10,7 @@ import com.vaadin.flow.component.html.H3; import com.vaadin.flow.component.html.Span; import com.vaadin.flow.component.orderedlayout.HorizontalLayout; import com.vaadin.flow.component.orderedlayout.VerticalLayout; +import com.vaadin.flow.component.radiobutton.RadioButtonGroup; import com.vaadin.flow.component.textfield.NumberField; import com.vaadin.flow.component.textfield.TextField; import com.vaadin.flow.router.BeforeEnterEvent; @@ -88,8 +89,8 @@ public class SolicitudDescView extends VerticalLayout { labelTexto.setText("Prepara la solicitud:"); - CheckboxGroup tipoSolicitudGroup = new CheckboxGroup<>("Elige el tipo de Solicitud:"); - tipoSolicitudGroup.setItems("Recargos", "Infracciones", "Ajuste de Facturas"); + RadioButtonGroup tipoSolicitudGroup = new RadioButtonGroup<>("Elige el tipo de Solicitud:"); + tipoSolicitudGroup.setItems("Recargos", "Infracciones", "Ajuste de Facturas", "Descuento Especial Pago Anual"); NumberField predio = new NumberField("Predio:"); @@ -122,8 +123,8 @@ public class SolicitudDescView extends VerticalLayout { formularioLayout.add(label, labelTexto, tipoSolicitudGroup, predio, solicitante, identificacionTexto, - identificacionLayout, txtParentesco, - btnVerSolicitud); - this.add(formularioLayout); + identificacionLayout, txtParentesco); + formularioLayout.setSpacing(false); + this.add(formularioLayout, btnVerSolicitud); } } diff --git a/src/main/java/mx/gob/jumapacelaya/views/VerificacionView.java b/src/main/java/mx/gob/jumapacelaya/views/VerificacionView.java index eb50f30..20b8f4b 100644 --- a/src/main/java/mx/gob/jumapacelaya/views/VerificacionView.java +++ b/src/main/java/mx/gob/jumapacelaya/views/VerificacionView.java @@ -1,18 +1,108 @@ package mx.gob.jumapacelaya.views; +import com.vaadin.flow.component.button.Button; +import com.vaadin.flow.component.button.ButtonVariant; +import com.vaadin.flow.component.checkbox.CheckboxGroup; +import com.vaadin.flow.component.combobox.ComboBox; 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.orderedlayout.HorizontalLayout; import com.vaadin.flow.component.orderedlayout.VerticalLayout; +import com.vaadin.flow.component.textfield.NumberField; +import com.vaadin.flow.component.textfield.TextField; import com.vaadin.flow.router.PageTitle; import com.vaadin.flow.router.Route; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; + @PageTitle("Verificacion") @Route(value = "verificacion", layout = MainLayout.class) public class VerificacionView extends VerticalLayout { public VerificacionView() { - VerticalLayout layout = new VerticalLayout(); - H1 titulo = new H1("Solicitud Desc"); - add(titulo); + cabezera(); + titulo(); + formulario(); + } + + + 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("PreSolicitud"); + + encabezadoLayout.add(fecha); + encabezadoLayout.addAndExpand(new HorizontalLayout()); + encabezadoLayout.add(presolicitud); + this.add(encabezadoLayout); + } + + + private void titulo() { + + HorizontalLayout tituloLayout = new HorizontalLayout(); + + H2 lblTitulo = new H2(); + lblTitulo.setText("JUNTA MUNICIPAL DE AGUA POTABLE Y ALCANTARILLADO DE CELAYA, GTO"); + + + tituloLayout.add(lblTitulo); + + this.add(tituloLayout); + } + + + private void formulario() { + VerticalLayout formularioLayout = new VerticalLayout(); + //formularioLayout.getStyle().set("background-color", "green"); + formularioLayout.setSpacing(true); + formularioLayout.setPadding(true); + + H3 label = new H3(); + label.setText("Solicitud de Verificación [USUARIO]"); + + Span labelTexto = new Span(); + labelTexto.setText("Prepara la solicitud:"); + + + + NumberField predio = new NumberField("Predio:"); + + TextField solicitante = new TextField("Solicitante:"); + solicitante.setWidth("30em"); + + + HorizontalLayout identificacionLayout = new HorizontalLayout(); + identificacionLayout.setWidthFull(); + + + + Button btnVerSolicitud = new Button("Ver Solic. Verificación"); + btnVerSolicitud.addThemeVariants(ButtonVariant.LUMO_PRIMARY); + btnVerSolicitud.addThemeVariants(ButtonVariant.LUMO_LARGE); + + + formularioLayout.add(label, labelTexto, + predio, + solicitante, + identificacionLayout); + formularioLayout.setSpacing(false); + this.add(formularioLayout, btnVerSolicitud); } }