diff --git a/src/main/java/mx/gob/jumapacelaya/models/PlanAnual.java b/src/main/java/mx/gob/jumapacelaya/models/PlanAnual.java index af63523..25f7c11 100644 --- a/src/main/java/mx/gob/jumapacelaya/models/PlanAnual.java +++ b/src/main/java/mx/gob/jumapacelaya/models/PlanAnual.java @@ -1,31 +1,30 @@ package mx.gob.jumapacelaya.models; public class PlanAnual { - private int Numero; + private int numero; private String nomEquipo; private String departamento; - private String monitor; - private String teclado; - private String mouse; - private String regulador; - private String cpu; - private String impresora; - private String miniPrint; - private String laptop; - private String escaner; + private boolean monitor; // Cambiado a boolean + private boolean teclado; // Cambiado a boolean + private boolean mouse; // Cambiado a boolean + private boolean regulador; // Cambiado a boolean + private boolean cpu; // Cambiado a boolean + private boolean impresora; // Cambiado a boolean + private boolean miniPrint; // Cambiado a boolean + private boolean laptop; // Cambiado a boolean + private boolean escaner; // Cambiado a boolean private String fecha; private String smt; private String estado; private String fechaRealizado; - // Constructor completo - public PlanAnual(int Numero, String nomEquipo, String departamento, String monitor, - String teclado, String mouse, String regulador, - String cpu, String impresora, String miniPrint, - String laptop, String escaner, String fecha, + // Constructor + public PlanAnual(int numero, String nomEquipo, String departamento, boolean monitor, + boolean teclado, boolean mouse, boolean regulador, + boolean cpu, boolean impresora, boolean miniPrint, + boolean laptop, boolean escaner, String fecha, String smt, String estado, String fechaRealizado) { - - this.Numero = Numero; + this.numero = numero; this.nomEquipo = nomEquipo; this.departamento = departamento; this.monitor = monitor; @@ -43,132 +42,68 @@ public class PlanAnual { this.fechaRealizado = fechaRealizado; } - // Getters y setters + // Getters public int getNumero() { - return Numero; - } - - public void setNumero(int numero) { - Numero = numero; + return numero; } public String getNomEquipo() { return nomEquipo; } - public void setNomEquipo(String nomEquipo) { - this.nomEquipo = nomEquipo; - } - public String getDepartamento() { return departamento; } - public void setDepartamento(String departamento) { - this.departamento = departamento; - } - - public String getMonitor() { + public boolean isMonitor() { return monitor; } - public void setMonitor(String monitor) { - this.monitor = monitor; - } - - public String getTeclado() { + public boolean isTeclado() { return teclado; } - public void setTeclado(String teclado) { - this.teclado = teclado; - } - - public String getMouse() { + public boolean isMouse() { return mouse; } - public void setMouse(String mouse) { - this.mouse = mouse; - } - - public String getCpu() { - return cpu; - } - - public void setCpu(String cpu) { - this.cpu = cpu; - } - - public String getRegulador() { + public boolean isRegulador() { return regulador; } - public void setRegulador(String regulador) { - this.regulador = regulador; + public boolean isCpu() { + return cpu; } - public String getImpresora() { + public boolean isImpresora() { return impresora; } - public void setImpresora(String impresora) { - this.impresora = impresora; - } - - public String getMiniPrint() { + public boolean isMiniPrint() { return miniPrint; } - public void setMiniPrint(String miniPrint) { - this.miniPrint = miniPrint; - } - - public String getLaptop() { + public boolean isLaptop() { return laptop; } - public void setLaptop(String laptop) { - this.laptop = laptop; - } - - public String getEscaner() { + public boolean isEscaner() { return escaner; } - public void setEscaner(String escaner) { - this.escaner = escaner; - } - public String getFecha() { return fecha; } - public void setFecha(String fecha) { - this.fecha = fecha; - } - public String getSmt() { return smt; } - public void setSmt(String smt) { - this.smt = smt; - } - public String getEstado() { return estado; } - public void setEstado(String estado) { - this.estado = estado; - } - public String getFechaRealizado() { return fechaRealizado; } - - public void setFechaRealizado(String fechaRealizado) { - this.fechaRealizado = fechaRealizado; - } } diff --git a/src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java b/src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java index 7f2b8a0..f6d026f 100644 --- a/src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java +++ b/src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java @@ -1,6 +1,7 @@ package mx.gob.jumapacelaya.services; import com.fasterxml.jackson.databind.jsontype.impl.StdTypeResolverBuilder; +import mx.gob.jumapacelaya.models.PlanAnual; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; @@ -141,8 +142,49 @@ public class DatabaseService { return nombreUsuario; } + /* ----------------Obtener el Plan Anual de Mantenimiento ---------------- */ + public List getPlanAnual() { + List planAnualList = new ArrayList<>(); + String query = "SELECT * FROM MTTOPROGRAMADOS"; - /* -------------- Metodos para insetar en la BD ---------------- */ + try (Connection connection = getConnection(); + Statement statement = connection.createStatement(); + ResultSet resultSet = statement.executeQuery(query)) { + + while (resultSet.next()) { + PlanAnual planAnual = new PlanAnual( + resultSet.getInt("mttoprogramadoid"), + resultSet.getString("nomEquipo"), + resultSet.getString("departamento"), + resultSet.getBoolean("monitor"), + resultSet.getBoolean("teclado"), + resultSet.getBoolean("mouse"), + resultSet.getBoolean("regulador"), + resultSet.getBoolean("cpu"), + resultSet.getBoolean("impresora"), + resultSet.getBoolean("miniPrint"), + resultSet.getBoolean("laptop"), + resultSet.getBoolean("escaner"), + resultSet.getString("fechaprog"), + resultSet.getString("tecnicosmt"), + resultSet.getString("estado"), + resultSet.getString("fechaRealizado") + ); + planAnualList.add(planAnual); + } + } catch (SQLException e) { + e.printStackTrace(); + } + return planAnualList; + } + + + /*-=iii=<() *-=iii=<() *-=iii=<() *-=iii=<() *-=iii=<() *-=iii=<()*/ + /*-=iii=<() *-=iii=<() *-=iii=<() *-=iii=<() *-=iii=<()*/ + /*-=iii=<() *-=iii=<() *-=iii=<() *-=iii=<()*/ + /*-=iii=<() *-=iii=<() *-=iii=<()*/ + /*-=iii=<() *-=iii=<()*/ + /* ( ͡° ͜ʖ ͡°) Metodos para insetar en la BD ( ͡° ͜ʖ ͡°) ( ͡° ͜ʖ ͡°) Metodos para insetar en la BD ( ͡° ͜ʖ ͡°) ( ͡° ͜ʖ ͡°) Metodos para insetar en la BD ( ͡° ͜ʖ ͡°) */ // INSERTAR EN TABLA: MANTENIMINETOS public int insertarMantenimiento(LocalDate fecha, String tipoMantId, String departamentoId, String empleadoId, String formaMant) { String query = "INSERT INTO MANTENIMIENTOS (fecha, tipoMantId, departamentoId, empleadoId, formaMant) VALUES (?, ?, ?, ?, ?)"; @@ -170,6 +212,8 @@ public class DatabaseService { } return nuevoId; } + /*( •_•)>⌐■-■ (⌐■_■)( •_•)>⌐■-■ (⌐■_■)( •_•)>⌐■-■ (⌐■_■)( •_•)>⌐■-■ (⌐■_■)( •_•)>⌐■-■ (⌐■_■)( •_•)>⌐■-■ (⌐■_■) */ + /* ˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀ */ // INSERTAR EN LA TABLA: HARDWAREDET public boolean insertarHardware(String tipoHardwareId, int numSerie, String modelo, int placa, int mantenimientoId) { diff --git a/src/main/java/mx/gob/jumapacelaya/ui/MantenimientoView.java b/src/main/java/mx/gob/jumapacelaya/ui/MantenimientoView.java index 1587caf..de33382 100644 --- a/src/main/java/mx/gob/jumapacelaya/ui/MantenimientoView.java +++ b/src/main/java/mx/gob/jumapacelaya/ui/MantenimientoView.java @@ -90,21 +90,23 @@ public class MantenimientoView extends VerticalLayout implements BeforeEnterObse tipoMantt.addValueChangeListener(event -> { String tipoSeleccionado = event.getValue(); if (tipoSeleccionado != null) { - //Actualizar nomenclatura dependiendo al tipo de mantenimiento + // Actualizar nomenclatura dependiendo del tipo de mantenimiento String nomenclaturaValue = databaseService.getNomenclatura(tipoSeleccionado); nomenclatura.setValue(nomenclaturaValue); - //Si el tipo es preventivo se establecera la fecha automaticamente a la fecha del sistema - if ("PREVENTIVO".equals(tipoSeleccionado)) { + // Si el tipo es preventivo se establecerá la fecha automáticamente a la fecha del sistema + if ("1".equals(tipoSeleccionado)) { // 1 es para PREVENTIVO this.fecha.setValue(LocalDate.now()); etiquetaLayout.setVisible(false); - } else { + } else if ("2".equals(tipoSeleccionado)) { // 2 es para CORRECTIVO this.fecha.clear(); etiquetaLayout.setVisible(true); + correctivoLayout(); } } else { nomenclatura.clear(); this.fecha.clear(); + etiquetaLayout.setVisible(false); } }); fechaLayout.add(this.fecha); @@ -290,48 +292,50 @@ public class MantenimientoView extends VerticalLayout implements BeforeEnterObse } - private void correctivoLayout(){ + /* Formulario para cuando el mnatenimiento es de tipo CORRECTIVO */ + private void correctivoLayout() { Span Titulo = new Span("Reparación Realizada al Equipo: "); - - TextField txtModelo = new TextField(); - txtModelo.setPlaceholder("Modelo"); - txtModelo.setWidth("240px"); - - NumberField txtSerie = new NumberField(); - txtSerie.setPlaceholder("No. Serie"); - txtSerie.setWidth("240px"); - - TextField txtSoft = new TextField(); - txtSoft.setPlaceholder("Instalación de Software"); - txtSoft.setWidth("500px"); - - TextField txtRepHard = new TextField(); - txtRepHard.setPlaceholder("Reparación de Hardware"); - txtRepHard.setWidth("500px"); - - TextField txtCamDisp = new TextField(); - txtCamDisp.setPlaceholder("Cambio de Dispositivo"); - txtCamDisp.setWidth("500px"); - - - - - HorizontalLayout model = new HorizontalLayout(); - model.add(txtModelo, txtSerie, txtSoft); - model.setSizeFull(); - - HorizontalLayout hard = new HorizontalLayout(); - hard.add(txtRepHard, txtCamDisp); - hard.setSizeFull(); - - - etiquetaLayout.setVisible(false); - etiquetaLayout.add(Titulo, model, hard); - + // Verificar el ID del tipo de mantenimiento + String tipoMantId = tipoMantt.getValue(); + if ("2".equals(tipoMantId)) { // Solo si el tipo es CORRECTIVO + TextField txtModelo = new TextField(); + txtModelo.setPlaceholder("Modelo"); + txtModelo.setWidth("240px"); + + NumberField txtSerie = new NumberField(); + txtSerie.setPlaceholder("No. Serie"); + txtSerie.setWidth("240px"); + + TextField txtSoft = new TextField(); + txtSoft.setPlaceholder("Instalación de Software"); + txtSoft.setWidth("500px"); + + TextField txtRepHard = new TextField(); + txtRepHard.setPlaceholder("Reparación de Hardware"); + txtRepHard.setWidth("500px"); + + TextField txtCamDisp = new TextField(); + txtCamDisp.setPlaceholder("Cambio de Dispositivo"); + txtCamDisp.setWidth("500px"); + + HorizontalLayout model = new HorizontalLayout(); + model.add(txtModelo, txtSerie, txtSoft); + model.setSizeFull(); + + HorizontalLayout hard = new HorizontalLayout(); + hard.add(txtRepHard, txtCamDisp); + hard.setSizeFull(); + + etiquetaLayout.add(Titulo, model, hard); + etiquetaLayout.setVisible(true); // Asegúrate de que el layout esté visible + } else { + etiquetaLayout.setVisible(false); // Ocultar si no es correctivo + } } + private void signLayout() { VerticalLayout userSignLayout = new VerticalLayout(); SignaturePad userSignPad = new SignaturePad(); @@ -392,8 +396,7 @@ public class MantenimientoView extends VerticalLayout implements BeforeEnterObse String departamentoId = area.getValue(); String empleadoId = usuario.getValue(); - - // AQUI SE MANEJA LA OPCION SELECIONADA EN LA FORMA DE MANTENIMIENTO (REMOTA o MANUAL) + // AQUI SE MANEJA LA OPCION SELECCIONADA EN LA FORMA DE MANTENIMIENTO (REMOTA o MANUAL) String formaSeleccionada = formaGroup.getValue(); String formaMantt = null; @@ -403,7 +406,6 @@ public class MantenimientoView extends VerticalLayout implements BeforeEnterObse formaMantt = "M"; } - // VALIDACION PARA QUE TODOS LOS CAMPOS OBLIGATORIOS SEAN LLENADOS if (fechaSeleccionada == null || tipoMantId == null || departamentoId == null || empleadoId == null || formaMantt == null) { Notification.show("Por favor, completa todos los campos requeridos", 4000, Notification.Position.MIDDLE); @@ -414,7 +416,6 @@ public class MantenimientoView extends VerticalLayout implements BeforeEnterObse // AQUI SE MANEJA LA INSERCION DE LOS DETALLES DE HARDWARE (TIPO DE HARDWARE, NO. DE SERIE, MODELO, PLACA) if (isInserted > 0) { - int mantenimientoId = databaseService.getUltimoMantenimientoId(); for (HorizontalLayout layout : hardwareLayouts) { @@ -450,7 +451,6 @@ public class MantenimientoView extends VerticalLayout implements BeforeEnterObse } } - // AQUI MANEJO LA INSERCION DE LOS DATOS DE LOS CHECKBOXES DE ACTUALIZACIONES DE SEGURIDAD!!! for (String actualizacionSelecionada : actualizaciones.getSelectedItems()) { boolean isActualizacionInserted = databaseService.insertActualizacionSeg(actualizacionSelecionada, null, mantenimientoId); @@ -474,7 +474,6 @@ public class MantenimientoView extends VerticalLayout implements BeforeEnterObse } } - // NOTIFICACION DE GUARDADO EXITOSO Y LIMPIEZA DE LOS CAMPOS!!! Notification.show("!!Mantenimiento guardado exitosamente!!", 4000, Notification.Position.MIDDLE); fecha.clear(); @@ -490,6 +489,7 @@ public class MantenimientoView extends VerticalLayout implements BeforeEnterObse } }); + buttonsLayout.setSizeFull(); buttonsLayout.add(btnGuardar); botonesLayout.add(buttonsLayout); @@ -515,8 +515,12 @@ public class MantenimientoView extends VerticalLayout implements BeforeEnterObse } } - if ("PREVENTIVO".equalsIgnoreCase(tipoParam)) { - tipoMantt.setValue("PREVENTIVO"); + // Cambiamos el valor por el ID + if ("1".equals(tipoParam)) { // 1 es para PREVENTIVO + tipoMantt.setValue("1"); // Establecemos el ID en el ComboBox + tipoMantt.setReadOnly(true); + } else if ("2".equals(tipoParam)) { // 2 es para CORRECTIVO + tipoMantt.setValue("2"); tipoMantt.setReadOnly(true); } } diff --git a/src/main/java/mx/gob/jumapacelaya/ui/PlanAnualView.java b/src/main/java/mx/gob/jumapacelaya/ui/PlanAnualView.java index e9ec58a..ba6a5b9 100644 --- a/src/main/java/mx/gob/jumapacelaya/ui/PlanAnualView.java +++ b/src/main/java/mx/gob/jumapacelaya/ui/PlanAnualView.java @@ -38,23 +38,8 @@ public class PlanAnualView extends VerticalLayout { DatabaseService databaseService = new DatabaseService(); public PlanAnualView() { - VerticalLayout headerLayout = new VerticalLayout(); - headerLayout.addClassName("plan-anual-header"); - - titulo.addClassName("plan-anual-titulo"); - titulo1.addClassName("plan-anual-titulo1"); - titulo.setText("Plan Anual de Mantenimiento Preventivo de Equipo de Computo"); - titulo1.setText("2024"); - - TextField nomenclaturaTxt = new TextField(); - nomenclaturaTxt.setValue("FR01-PA-7.1.3-02"); - nomenclaturaTxt.setReadOnly(true); - nomenclaturaTxt.addClassName("nomenclatura-txt"); - - header.setAlignSelf(Alignment.CENTER, titulo, titulo1); - - headerLayout.add(titulo, titulo1); - + setupHeader(); + Grid planAnualGrid = setupGrid(); // Componente UPLOAD para subir archivos @@ -74,62 +59,74 @@ public class PlanAnualView extends VerticalLayout { } }); + VerticalLayout gridLayout = new VerticalLayout(); + gridLayout.add(planAnualGrid, upload); - Grid planAnualGrid = new Grid<>(); - planAnualGrid.addColumn(PlanAnual::getNumero).setHeader("No."); - planAnualGrid.addColumn(PlanAnual::getNomEquipo).setHeader("Equipo").setAutoWidth(true); - planAnualGrid.addColumn(PlanAnual::getDepartamento).setHeader("Departamento").setAutoWidth(true); - - planAnualGrid.addComponentColumn(plan -> getIcon(plan.getMonitor())).setHeader("Monitor").setAutoWidth(true); - planAnualGrid.addComponentColumn(plan -> getIcon(plan.getTeclado())).setHeader("Teclado").setAutoWidth(true); - planAnualGrid.addComponentColumn(plan -> getIcon(plan.getMouse())).setHeader("Mouse").setAutoWidth(true); - planAnualGrid.addComponentColumn(plan -> getIcon(plan.getRegulador())).setHeader("Regulador").setAutoWidth(true); - planAnualGrid.addComponentColumn(plan -> getIcon(plan.getCpu())).setHeader("CPU").setAutoWidth(true); - planAnualGrid.addComponentColumn(plan -> getIcon(plan.getImpresora())).setHeader("Impresora").setAutoWidth(true); - planAnualGrid.addComponentColumn(plan -> getIcon(plan.getMiniPrint())).setHeader("MiniPrint").setAutoWidth(true); - planAnualGrid.addComponentColumn(plan -> getIcon(plan.getLaptop())).setHeader("Laptop").setAutoWidth(true); - planAnualGrid.addComponentColumn(plan -> getIcon(plan.getEscaner())).setHeader("Escáner").setAutoWidth(true); - planAnualGrid.addColumn(PlanAnual::getFecha).setHeader("Fecha Programada").setAutoWidth(true); - planAnualGrid.addColumn(PlanAnual::getSmt).setHeader("S.M.T").setAutoWidth(true); - planAnualGrid.addColumn(PlanAnual::getEstado).setHeader("Estado").setAutoWidth(true); - planAnualGrid.addColumn(PlanAnual::getFechaRealizado).setHeader("Fecha Realizado").setAutoWidth(true); - - planAnualGrid.addComponentColumn(plan -> { - Button btnRealizar = new Button("Realizar"); - btnRealizar.addClickListener(event -> { - LocalDate fechaSistem = LocalDate.now(); - String fechaStr = fechaSistem.toString(); - btnRealizar.getUI().ifPresent(ui -> ui.navigate("mantenimiento?fecha=" + fechaStr + "&tipo=PREVENTIVO")); - }); - return btnRealizar; - }).setHeader("Realizar").setAutoWidth(true); - planAnualGrid.setItems(); + this.setPadding(false); + this.setMargin(false); + this.setSpacing(false); + add(header, gridLayout); + } - //Datos de ejemplo - List planes = Arrays.asList( - new PlanAnual(1, "INFORM15","T.I", "No", "Logitech", "Logitech", "APC", "si", "HP", "No", "Dell", "Canon", "01-01-2024", "Hector", "Pendiente", "02-01-2024"), - new PlanAnual(2, "ATENCI01", "Atencion", "si", "Dell", "no", "APC", "AMD", "Brother", "Sí", "HP", "no", "15-01-2024", "JuanPI", "Realizado", "16-01-2024"), - new PlanAnual(3, "MEDCAT08", "T.I", "si", "Dell", "no", "APC", "AMD", "Brother", "Sí", "HP", "no", "15-01-2024", "JuanPI", "Cancelado", "16-01-2024"), - new PlanAnual(4, "CALAGUA03", "T.I", "si", "Dell", "no", "APC", "AMD", "Brother", "Sí", "HP", "no", "15-01-2024", "Hector", "Realizado", "16-01-2024") - ); + private void setupHeader() { + VerticalLayout headerLayout = new VerticalLayout(); + headerLayout.addClassName("plan-anual-header"); - planAnualGrid.setItems(planes); + titulo.addClassName("plan-anual-titulo"); + titulo1.addClassName("plan-anual-titulo1"); + titulo.setText("Plan Anual de Mantenimiento Preventivo de Equipo de Computo"); + titulo1.setText("2024"); + TextField nomenclaturaTxt = new TextField(); + nomenclaturaTxt.setValue("FR01-PA-7.1.3-02"); + nomenclaturaTxt.setReadOnly(true); + nomenclaturaTxt.addClassName("nomenclatura-txt"); - VerticalLayout gridLayout = new VerticalLayout(); - gridLayout.add(planAnualGrid); + header.setAlignSelf(Alignment.CENTER, titulo, titulo1); + headerLayout.add(titulo, titulo1); + add(headerLayout); + } + private Grid setupGrid() { + Grid planAnualGrid = new Grid<>(PlanAnual.class, false); + + planAnualGrid.addColumn(PlanAnual :: getNumero).setHeader("No."); + planAnualGrid.addColumn(PlanAnual :: getNomEquipo).setHeader("Equipo").setAutoWidth(true); + planAnualGrid.addColumn(PlanAnual :: getDepartamento).setHeader("Departamento").setAutoWidth(true); + + // Usando iconos en las columnas booleanas + planAnualGrid.addComponentColumn(planAnual -> getIcon(planAnual.isMonitor())).setHeader("Monitor").setAutoWidth(true); + planAnualGrid.addComponentColumn(planAnual -> getIcon(planAnual.isTeclado())).setHeader("Teclado").setAutoWidth(true); + planAnualGrid.addComponentColumn(planAnual -> getIcon(planAnual.isMouse())).setHeader("Mouse").setAutoWidth(true); + planAnualGrid.addComponentColumn(planAnual -> getIcon(planAnual.isRegulador())).setHeader("Regulador").setAutoWidth(true); + planAnualGrid.addComponentColumn(planAnual -> getIcon(planAnual.isCpu())).setHeader("CPU").setAutoWidth(true); + planAnualGrid.addComponentColumn(planAnual -> getIcon(planAnual.isImpresora())).setHeader("Impresora").setAutoWidth(true); + planAnualGrid.addComponentColumn(planAnual -> getIcon(planAnual.isMiniPrint())).setHeader("MiniPrint").setAutoWidth(true); + planAnualGrid.addComponentColumn(planAnual -> getIcon(planAnual.isLaptop())).setHeader("Laptop").setAutoWidth(true); + planAnualGrid.addComponentColumn(planAnual -> getIcon(planAnual.isEscaner())).setHeader("Escáner").setAutoWidth(true); + + planAnualGrid.addColumn(PlanAnual :: getFecha).setHeader("Fecha Programada").setAutoWidth(true); + planAnualGrid.addColumn(PlanAnual :: getSmt).setHeader("S.M.T").setAutoWidth(true); + planAnualGrid.addColumn(PlanAnual :: getFechaRealizado).setHeader("Fecha Realizado").setAutoWidth(true); + + planAnualGrid.addComponentColumn(planAnual -> { + Button btnRealizar = new Button("Realizar"); + btnRealizar.addClickListener(event -> { + LocalDate fechaSistema = LocalDate.now(); + String fechaStr = fechaSistema.toString(); + btnRealizar.getUI().ifPresent(ui -> ui.navigate("mantenimiento?fecha=" + fechaStr + "&tipo=1")); + }); + return btnRealizar; + }).setHeader("Realizado").setAutoWidth(true); - this.setPadding(false); - this.setMargin(false); - this.setSpacing(false); - add(headerLayout, gridLayout, upload); + planAnualGrid.setItems(databaseService.getPlanAnual()); + return planAnualGrid; } - private Icon getIcon(String value) { - if (value.equalsIgnoreCase("Si") || !value.equalsIgnoreCase("No")) { + private Icon getIcon(boolean value) { + if (value) { return new Icon(VaadinIcon.CHECK_CIRCLE); } else { return new Icon();