diff --git a/src/main/java/com/primefactorsolutions/views/HoursWorkedView.java b/src/main/java/com/primefactorsolutions/views/HoursWorkedView.java index a17d6de..62ef1cb 100644 --- a/src/main/java/com/primefactorsolutions/views/HoursWorkedView.java +++ b/src/main/java/com/primefactorsolutions/views/HoursWorkedView.java @@ -5,6 +5,7 @@ import com.primefactorsolutions.model.HoursWorked; import com.primefactorsolutions.service.EmployeeService; import com.primefactorsolutions.service.HoursWorkedService; import com.vaadin.flow.component.grid.Grid; +import com.vaadin.flow.component.html.H2; import com.vaadin.flow.component.notification.Notification; import com.vaadin.flow.component.orderedlayout.HorizontalLayout; import com.vaadin.flow.component.textfield.TextField; @@ -15,13 +16,9 @@ import com.vaadin.flow.router.PageTitle; import com.vaadin.flow.router.Route; import com.vaadin.flow.spring.annotation.SpringComponent; import jakarta.annotation.security.PermitAll; -import jakarta.persistence.ManyToOne; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Scope; import com.vaadin.flow.component.html.Label; -import org.springframework.web.servlet.HandlerMapping; -import org.springframework.web.servlet.view.InternalResourceViewResolver; import org.vaadin.firitin.components.datepicker.VDatePicker; @@ -36,19 +33,18 @@ import java.util.Locale; @SpringComponent @PermitAll @Scope("prototype") -@PageTitle("Hours Worked") +@PageTitle("Horas Trabajadas") @Route(value = "/hours-worked/me", layout = MainLayout.class) public class HoursWorkedView extends VerticalLayout { - @ManyToOne - private Actividad actividad; - private final List actividades = new ArrayList<>(); private final List actividadesEspecificas = new ArrayList<>(); // Nueva lista para tareas específicas private final Grid grid = new Grid<>(Actividad.class); private final Grid gridActividadesEspecificas = new Grid<>(Actividad.class); - private final ComboBox employeeComboBox = new ComboBox<>("Employee"); + private final ComboBox employeeComboBox = new ComboBox<>("Empleado"); private final ComboBox equipoDropdown = new ComboBox<>("Equipo"); + private VDatePicker fechaPicker = new VDatePicker("Selecciona una fecha"); + private final ComboBox tareasEspecificasDropdown = new ComboBox<>("Tareas Específicas"); private final TextField tareaEspecificaInput = new TextField("Especificar Tarea"); @@ -62,15 +58,11 @@ public class HoursWorkedView extends VerticalLayout { @Autowired private final HoursWorkedService hoursWorkedService; - private final Label fechasLabel = new Label("Selecciona una semana para ver las fechas."); + private final H2 equipoLabel = new H2("Tareas del Cliente/Equipo"); + private final H2 empresaLabel = new H2("Tareas de la Empresa"); private final Label totalCompletadoLabel = new Label(); private final Label horasPendientesLabel = new Label(); - private final Label numeroSemanaLabel = new Label("Número de la Semana: "); - - private VDatePicker fechaPicker = new VDatePicker("Selecciona una fecha"); - - public HoursWorkedView(final EmployeeService employeeService, final HoursWorkedService hoursWorkedService) { this.employeeService = employeeService; this.hoursWorkedService = hoursWorkedService; @@ -149,10 +141,7 @@ public class HoursWorkedView extends VerticalLayout { LocalDate selectedDate = event.getValue(); if (selectedDate != null) { selectedStartOfWeek = getStartOfWeek(selectedDate); - LocalDate endOfWeek = selectedStartOfWeek.plusDays(6); weekNumber = getWeekOfYear(selectedDate); - fechasLabel.setText("Semana del " + selectedStartOfWeek + " al " + endOfWeek); - numeroSemanaLabel.setText("Número de la Semana: " + weekNumber); cargarDatos(); } }); @@ -189,12 +178,14 @@ public class HoursWorkedView extends VerticalLayout { HorizontalLayout buttonsLayout = new HorizontalLayout(actualizarButton, guardarButton, cerrarButton, verMesButton); - VerticalLayout totalesLayout = new VerticalLayout(totalCompletadoLabel, horasPendientesLabel); + VerticalLayout totalesLayout = new VerticalLayout(totalCompletadoLabel, + horasPendientesLabel); totalesLayout.setSpacing(true); totalesLayout.setPadding(true); - add(fechaPicker, fechasLabel, numeroSemanaLabel, filtersLayout, actividadFormLayout, - tareasEspecificasLayout, grid, gridActividadesEspecificas, buttonsLayout, totalesLayout); + add(fechaPicker, filtersLayout, actividadFormLayout, + equipoLabel, grid, empresaLabel, tareasEspecificasLayout, + gridActividadesEspecificas, buttonsLayout, totalesLayout); } private void configurarGrid() { @@ -209,6 +200,7 @@ public class HoursWorkedView extends VerticalLayout { grid.addColumn(Actividad::getSabado).setHeader("Sábado"); grid.addColumn(Actividad::getDomingo).setHeader("Domingo"); grid.addColumn(this::calcularTotalPorDia).setHeader("Total Día").setKey("totalDia"); + grid.setItems(actividades); } private void configurarGridActividadesEspecificas() { @@ -294,7 +286,7 @@ public class HoursWorkedView extends VerticalLayout { return new HorizontalLayout(actividadNombre, horasInput, agregarActividadButton); } - private void agregarOActualizarActividad(Actividad nuevaActividad, DayOfWeek dia, double horas) { + private void agregarOActualizarActividad(final Actividad nuevaActividad, final DayOfWeek dia, final double horas) { Actividad actividadExistente = actividades.stream() .filter(a -> a.getNombre().equals(nuevaActividad.getNombre())) .findFirst() @@ -414,7 +406,7 @@ public class HoursWorkedView extends VerticalLayout { private LocalDate getStartOfWeek(final LocalDate date) { WeekFields weekFields = WeekFields.of(Locale.getDefault()); - return date.with(weekFields.dayOfWeek(), DayOfWeek.MONDAY.getValue()); + return date.with(weekFields.dayOfWeek(), DayOfWeek.FRIDAY.getValue()); } private double calcularTotalPorDia(final Actividad actividad) {