|
|
@ -3,6 +3,7 @@ package mx.gob.jumapacelaya.ui; |
|
|
|
import com.vaadin.flow.component.Component; |
|
|
|
import com.vaadin.flow.component.button.Button; |
|
|
|
import com.vaadin.flow.component.button.ButtonVariant; |
|
|
|
import com.vaadin.flow.component.checkbox.Checkbox; |
|
|
|
import com.vaadin.flow.component.dependency.CssImport; |
|
|
|
import com.vaadin.flow.component.grid.Grid; |
|
|
|
import com.vaadin.flow.component.grid.GridVariant; |
|
|
@ -34,6 +35,7 @@ import java.io.IOException; |
|
|
|
import java.io.InputStream; |
|
|
|
import java.lang.reflect.Array; |
|
|
|
import java.time.LocalDate; |
|
|
|
import java.time.Year; |
|
|
|
import java.time.format.DateTimeFormatter; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.Arrays; |
|
|
@ -137,12 +139,17 @@ public class PlanAnualView extends VerticalLayout { |
|
|
|
uploadLayout.add(upload, btnInsertar); |
|
|
|
toggleLayouts(dataView); |
|
|
|
|
|
|
|
Checkbox chkMostrarTodos = new Checkbox("Mostrar todos los registros"); |
|
|
|
chkMostrarTodos.addValueChangeListener(event -> { |
|
|
|
planAnualFilter.setExcludeRealizado(!event.getValue()); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
this.setPadding(false); |
|
|
|
this.setMargin(false); |
|
|
|
this.setSpacing(false); |
|
|
|
this.setSizeFull(); |
|
|
|
add(header, gridLayout, uploadLayout); |
|
|
|
add(header, chkMostrarTodos, gridLayout, uploadLayout); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -153,22 +160,24 @@ public class PlanAnualView extends VerticalLayout { |
|
|
|
titulo.addClassName("plan-anual-titulo"); |
|
|
|
titulo1.addClassName("plan-anual-titulo1"); |
|
|
|
titulo.setText("Plan Anual de Mantenimiento Preventivo de Equipo de Computo"); |
|
|
|
titulo1.setText("2024"); |
|
|
|
titulo1.setText(Year.now().toString()); |
|
|
|
|
|
|
|
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); |
|
|
|
add(headerLayout); |
|
|
|
} |
|
|
|
|
|
|
|
private Grid<PlanAnual> setupGrid() { |
|
|
|
|
|
|
|
Grid<PlanAnual> planAnualGrid = new Grid<>(PlanAnual.class, false); |
|
|
|
|
|
|
|
planAnualGrid.addColumn(PlanAnual :: getNumero).setHeader("No."); |
|
|
|
planAnualGrid.addColumn(PlanAnual :: getNumero).setHeader("No.").setSortable(true); |
|
|
|
planAnualGrid.addColumn(PlanAnual :: getNomEquipo).setHeader("Equipo").setAutoWidth(true); |
|
|
|
planAnualGrid.addColumn(PlanAnual :: getDepartamento).setHeader("Departamento").setAutoWidth(true); |
|
|
|
planAnualGrid.addThemeVariants(GridVariant.LUMO_WRAP_CELL_CONTENT); |
|
|
@ -187,12 +196,12 @@ public class PlanAnualView extends VerticalLayout { |
|
|
|
planAnualGrid.addColumn(planAnual -> { |
|
|
|
LocalDate fechaProgramada = planAnual.getFechaProgramada(); |
|
|
|
return fechaProgramada != null ? fechaProgramada.format(DateTimeFormatter.ofPattern("dd/MM/yyyy")) : "No programada"; // Formato especifico |
|
|
|
}).setHeader("Fecha Programada").setAutoWidth(true); |
|
|
|
}).setHeader("Fecha Programada").setAutoWidth(true).setSortable(true); |
|
|
|
|
|
|
|
planAnualGrid.addColumn(planAnual -> { |
|
|
|
LocalDate fechaMantenimiento = planAnual.getFechaMantenimiento(); |
|
|
|
return fechaMantenimiento != null ? fechaMantenimiento.format(DateTimeFormatter.ofPattern("dd/MM/yyyy")) : ""; // Formato especifico |
|
|
|
}).setHeader("Fecha Realizacion").setAutoWidth(true); |
|
|
|
}).setHeader("Fecha Realizacion").setAutoWidth(true).setSortable(true); |
|
|
|
|
|
|
|
planAnualGrid.addColumn(PlanAnual :: getEstado).setHeader("Estado").setAutoWidth(true); |
|
|
|
|
|
|
@ -201,7 +210,8 @@ public class PlanAnualView extends VerticalLayout { |
|
|
|
planAnualGrid.setItems(databaseService.getPlanAnual()); |
|
|
|
|
|
|
|
planAnualGrid.addComponentColumn(planAnual -> { |
|
|
|
Button btnRealizar = new Button("Realizar"); |
|
|
|
Button btnRealizar = new Button(new Icon(VaadinIcon.EDIT)); |
|
|
|
btnRealizar.getStyle().set("color", "#A02142"); |
|
|
|
btnRealizar.addClickListener(event -> { |
|
|
|
int idPlananual = planAnual.getNumero(); |
|
|
|
LocalDate fechaSistema = LocalDate.now(); |
|
|
@ -220,7 +230,7 @@ public class PlanAnualView extends VerticalLayout { |
|
|
|
} |
|
|
|
|
|
|
|
return btnRealizar; |
|
|
|
}).setHeader("Realizado"); |
|
|
|
}); |
|
|
|
|
|
|
|
planAnualGrid.setItems(databaseService.getPlanAnual()); |
|
|
|
return planAnualGrid; |
|
|
@ -344,8 +354,15 @@ public class PlanAnualView extends VerticalLayout { |
|
|
|
} |
|
|
|
|
|
|
|
public boolean test(PlanAnual planAnual) { |
|
|
|
if (planAnual == null) { |
|
|
|
return false; // Avoid NullPointerException |
|
|
|
} |
|
|
|
|
|
|
|
boolean matchesSmt = matches(planAnual.getSmt(), smt); |
|
|
|
boolean isNoRealizado = !excludeRealizado || !"REALIZADO".equalsIgnoreCase(planAnual.getEstado()); |
|
|
|
boolean isNoRealizado = !excludeRealizado || |
|
|
|
(planAnual.getEstado() != null && |
|
|
|
!"REALIZADO".equalsIgnoreCase(planAnual.getEstado())); |
|
|
|
|
|
|
|
return matchesSmt && isNoRealizado; |
|
|
|
} |
|
|
|
|
|
|
@ -357,6 +374,8 @@ public class PlanAnualView extends VerticalLayout { |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//Aqui validamos que haya registros en el plan anual y si no hay muestra el upload para cargar un nuevo plan anual |
|
|
|
private void toggleLayouts(GridListDataView<PlanAnual> dataView) { |
|
|
|
boolean hasItems = dataView.getItemCount() > 0; |
|
|
|
|
|
|
|