From 4ad745145f7032938de6a204c34475d63fc92006 Mon Sep 17 00:00:00 2001 From: Melina Gutierrez Date: Tue, 22 Oct 2024 15:04:40 -0400 Subject: [PATCH] #46 Perfil de Empleado - Registro Semanal --- pom.xml | 6 ++++ .../repositories/HoursWorkedRepository.java | 10 ++++++ .../service/HoursWorkedService.java | 35 +++++++++++++++++++ .../views/HoursWorkedView.java | 8 ++++- .../views/MainLayout.java | 2 ++ 5 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/primefactorsolutions/repositories/HoursWorkedRepository.java create mode 100644 src/main/java/com/primefactorsolutions/service/HoursWorkedService.java diff --git a/pom.xml b/pom.xml index a9cae3e..b27ada9 100644 --- a/pom.xml +++ b/pom.xml @@ -72,6 +72,12 @@ runtime + + org.apache.pdfbox + pdfbox + 2.0.29 + + org.springframework.boot spring-boot-starter-data-jpa diff --git a/src/main/java/com/primefactorsolutions/repositories/HoursWorkedRepository.java b/src/main/java/com/primefactorsolutions/repositories/HoursWorkedRepository.java new file mode 100644 index 0000000..e5ad85b --- /dev/null +++ b/src/main/java/com/primefactorsolutions/repositories/HoursWorkedRepository.java @@ -0,0 +1,10 @@ +package com.primefactorsolutions.repositories; + +import com.primefactorsolutions.model.HoursWorked; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface HoursWorkedRepository extends JpaRepository { + // Puedes definir consultas personalizadas aquĆ­ si es necesario. +} diff --git a/src/main/java/com/primefactorsolutions/service/HoursWorkedService.java b/src/main/java/com/primefactorsolutions/service/HoursWorkedService.java new file mode 100644 index 0000000..855a305 --- /dev/null +++ b/src/main/java/com/primefactorsolutions/service/HoursWorkedService.java @@ -0,0 +1,35 @@ +package com.primefactorsolutions.service; + +import com.primefactorsolutions.model.HoursWorked; +import com.primefactorsolutions.repositories.HoursWorkedRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class HoursWorkedService { + private final HoursWorkedRepository hoursWorkedRepository; + + @Autowired + public HoursWorkedService(HoursWorkedRepository hoursWorkedRepository) { + this.hoursWorkedRepository = hoursWorkedRepository; + } + + public List findAll() { + return hoursWorkedRepository.findAll(); + } + + public HoursWorked saveHoursWorked(HoursWorked hoursWorked) { + return hoursWorkedRepository.save(hoursWorked); + } + + public HoursWorked save(HoursWorked hoursWorked) { + return hoursWorkedRepository.save(hoursWorked); + } + + public void deleteHoursWorked(Long id) { + hoursWorkedRepository.deleteById(id); + } +} + diff --git a/src/main/java/com/primefactorsolutions/views/HoursWorkedView.java b/src/main/java/com/primefactorsolutions/views/HoursWorkedView.java index 183c2c6..2eb0c19 100644 --- a/src/main/java/com/primefactorsolutions/views/HoursWorkedView.java +++ b/src/main/java/com/primefactorsolutions/views/HoursWorkedView.java @@ -3,6 +3,7 @@ import com.primefactorsolutions.model.Actividad; import com.primefactorsolutions.model.Employee; import com.primefactorsolutions.model.HoursWorked; import com.primefactorsolutions.service.EmployeeService; +import com.primefactorsolutions.service.HoursWorkedService; import com.vaadin.flow.component.datepicker.DatePicker; import com.vaadin.flow.component.grid.Grid; import com.vaadin.flow.component.notification.Notification; @@ -48,8 +49,10 @@ public class HoursWorkedView extends VerticalLayout { private final Label horasPendientesLabel = new Label(); @Autowired - public HoursWorkedView(final EmployeeService employeeService) { + private final HoursWorkedService hoursWorkedService; + public HoursWorkedView(final EmployeeService employeeService, final HoursWorkedService hoursWorkedService) { this.employeeService = employeeService; + this.hoursWorkedService = hoursWorkedService; configurarVista(); cargarDatos(); } @@ -218,6 +221,9 @@ public class HoursWorkedView extends VerticalLayout { HoursWorked hoursWorked = new HoursWorked(); hoursWorked.setEmployee(employeeComboBox.getValue()); hoursWorked.setWeekNumber(weekNumber); + hoursWorked.setTotalHours((actividades.stream() + .mapToDouble(this::calcularTotalPorDia).sum())); + hoursWorkedService.save(hoursWorked); Notification.show("Actividades guardadas correctamente."); } diff --git a/src/main/java/com/primefactorsolutions/views/MainLayout.java b/src/main/java/com/primefactorsolutions/views/MainLayout.java index e64ad07..f2a465c 100644 --- a/src/main/java/com/primefactorsolutions/views/MainLayout.java +++ b/src/main/java/com/primefactorsolutions/views/MainLayout.java @@ -148,6 +148,8 @@ public class MainLayout extends AppLayout { LineAwesomeIcon.HOURGLASS_START_SOLID.create()); timesheet.addItem(new SideNavItem("Hours Worked", HoursWorkedView.class, LineAwesomeIcon.ID_CARD_SOLID.create())); +// timesheet.addItem(new SideNavItem("Reporte", ReportHoursWorkedView.class, +// LineAwesomeIcon.CAR_ALT_SOLID.create())); SideNavItem profile = new SideNavItem("My Profile", ProfileView.class, LineAwesomeIcon.USER_EDIT_SOLID.create());