Actualizar BD - Actualizar el estado de los registros de solicitudes de vacaciones
This commit is contained in:
parent
cfd5599d32
commit
45bf76c3d8
@ -18,6 +18,10 @@ public class TimeOffRequestService {
|
||||
timeOffRequestRepository.save(newTimeOffRequest);
|
||||
}
|
||||
|
||||
public void saveAll(List<TimeOffRequest> requests) {
|
||||
timeOffRequestRepository.saveAll(requests);
|
||||
}
|
||||
|
||||
public void deleteTimeOffRequest(final UUID id) {
|
||||
timeOffRequestRepository.deleteById(id);
|
||||
}
|
||||
|
@ -1,16 +1,50 @@
|
||||
package com.primefactorsolutions.views;
|
||||
|
||||
import com.primefactorsolutions.model.TimeOffRequest;
|
||||
import com.primefactorsolutions.model.TimeOffRequestStatus;
|
||||
import com.primefactorsolutions.service.TimeOffRequestService;
|
||||
import com.vaadin.flow.component.Text;
|
||||
import com.vaadin.flow.component.html.Main;
|
||||
import com.vaadin.flow.router.PageTitle;
|
||||
import com.vaadin.flow.router.Route;
|
||||
import jakarta.annotation.security.PermitAll;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
@PageTitle("Home")
|
||||
@Route(value = "", layout = MainLayout.class)
|
||||
@PermitAll
|
||||
public class MainView extends Main {
|
||||
public MainView() {
|
||||
add(new Text("welcome"));
|
||||
|
||||
private final TimeOffRequestService requestService;
|
||||
|
||||
public MainView(TimeOffRequestService requestService) {
|
||||
this.requestService = requestService;
|
||||
add(new Text("Welcome"));
|
||||
updateRequestStatuses();
|
||||
}
|
||||
|
||||
private void updateRequestStatuses() {
|
||||
List<TimeOffRequest> requests = requestService.findAllTimeOffRequests();
|
||||
LocalDate now = LocalDate.now();
|
||||
|
||||
for (TimeOffRequest request : requests) {
|
||||
if (request.getState() == TimeOffRequestStatus.APROBADO) {
|
||||
LocalDate expirationDate = request.getExpiration();
|
||||
LocalDate startDate = request.getStartDate();
|
||||
LocalDate endDate = request.getEndDate();
|
||||
|
||||
if (now.isAfter(expirationDate)) {
|
||||
request.setState(TimeOffRequestStatus.VENCIDO);
|
||||
} else if (now.isAfter(endDate) && now.isBefore(expirationDate)) {
|
||||
request.setState(TimeOffRequestStatus.TOMADO);
|
||||
} else if (now.isEqual(startDate) || now.isAfter(startDate) && now.isBefore(endDate)) {
|
||||
request.setState(TimeOffRequestStatus.EN_USO);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
requestService.saveAll(requests);
|
||||
}
|
||||
}
|
||||
|
@ -166,11 +166,6 @@ public class RequestEmployeeView extends Div implements HasUrlParameter<String>
|
||||
List<TimeOffRequest> filteredRequests = allFiltersAreNull(category, state)
|
||||
? requestService.findRequestsByEmployeeId(employeeId)
|
||||
: fetchFilteredTimeOffRequests(category, state);
|
||||
for (TimeOffRequest request : filteredRequests) {
|
||||
if (request.getExpiration().isBefore(LocalDate.now())) {
|
||||
request.setState(TimeOffRequestStatus.VENCIDO);
|
||||
}
|
||||
}
|
||||
for (TimeOffRequest request : filteredRequests) {
|
||||
requestService.saveTimeOffRequest(request);
|
||||
}
|
||||
|
@ -66,7 +66,7 @@ insert into employee (id, version, username, first_name, last_name, status, team
|
||||
|
||||
|
||||
insert into time_off_request (id, version, employee_id, category, state, available_days, expiration, start_date, end_date, days_to_be_take, days_balance)
|
||||
values ('9d6f12ba-e341-4e7a-b8a6-cab0982bd8c1', 1, '5c6f11fe-c341-4be7-a9a6-bba0081ad7c6', 'PATERNIDAD', 'TOMADO', 3, '2024-10-03', '2024-10-01', '2024-10-03', 3, 0);
|
||||
values ('9d6f12ba-e341-4e7a-b8a6-cab0982bd8c1', 1, '5c6f11fe-c341-4be7-a9a6-bba0081ad7c6', 'PATERNIDAD', 'VENCIDO', 3, '2024-10-03', '2024-10-01', '2024-10-03', 3, 0);
|
||||
insert into time_off_request (id, version, employee_id, category, state, available_days, expiration, start_date, end_date, days_to_be_take, days_balance)
|
||||
values ('9a6f12ba-e111-4e7a-b8a6-caa0982bd8a1', 1, '5c6f11fe-c341-4be7-a9a6-bba0081ad7c6', 'AÑO_NUEVO', 'VENCIDO', 1, '2024-01-01', '2024-01-01', '2024-01-01', 1, 0);
|
||||
insert into time_off_request (id, version, employee_id, category, state, available_days, expiration, start_date, end_date, days_to_be_take, days_balance)
|
||||
@ -74,17 +74,17 @@ values ('9b6f12ba-e222-4e7a-b8a6-caa0982bd8b2', 1, '5c6f11fe-c341-4be7-a9a6-bba0
|
||||
insert into time_off_request (id, version, employee_id, category, state, available_days, expiration, start_date, end_date, days_to_be_take, days_balance)
|
||||
values ('9c6f12ba-e333-4e7a-b8a6-caa0982bd8c3', 1, '5c6f11fe-c341-4be7-a9a6-bba0081ad7c6', 'MARTES_CARNAVAL', 'EN_REVISION', 1, '2025-02-13', '2025-02-13', '2025-02-13', 1, 0);
|
||||
insert into time_off_request (id, version, employee_id, category, state, available_days, expiration, start_date, end_date, days_to_be_take, days_balance)
|
||||
values ('9d6f12ba-e444-4e7a-b8a6-caa0982bd8d4', 1, '5c6f11fe-c341-4be7-a9a6-bba0081ad7c6', 'VIERNES_SANTO', 'COMPLETADO', 1, '2024-03-29', '2024-03-29', '2024-03-29', 1, 0);
|
||||
values ('9d6f12ba-e444-4e7a-b8a6-caa0982bd8d4', 1, '5c6f11fe-c341-4be7-a9a6-bba0081ad7c6', 'VIERNES_SANTO', 'APROBADO', 1, '2024-03-29', '2024-03-29', '2024-03-29', 1, 0);
|
||||
insert into time_off_request (id, version, employee_id, category, state, available_days, expiration, start_date, end_date, days_to_be_take, days_balance)
|
||||
values ('9e6f12ba-e555-4e7a-b8a6-caa0982bd8e5', 1, '5c6f11fe-c341-4be7-a9a6-bba0081ad7c6', 'VACACION_GESTION_ACTUAL', 'EN_USO', 30, '2026-11-01', '2024-11-01', '2024-11-30', 30, 0);
|
||||
values ('9e6f12ba-e555-4e7a-b8a6-caa0982bd8e5', 1, '5c6f11fe-c341-4be7-a9a6-bba0081ad7c6', 'VACACION_GESTION_ACTUAL', 'APROBADO', 30, '2026-11-01', '2024-11-01', '2024-11-30', 30, 0);
|
||||
|
||||
insert into time_off_request (id, version, employee_id, category, state, available_days, expiration, start_date, end_date, days_to_be_take, days_balance)
|
||||
values ('8c653f2a-f9a3-4d67-b3b6-12ad98fe0983', 1, 'f6ab3c6d-7078-45f6-9b22-4e37637bfec6', 'DIA_DEL_TRABAJADOR', 'SOLICITADO', 1, '2025-05-01', '2024-05-01', '2024-05-01', 1, 0);
|
||||
values ('8c653f2a-f9a3-4d67-b3b6-12ad98fe0983', 1, 'f6ab3c6d-7078-45f6-9b22-4e37637bfec6', 'DIA_DEL_TRABAJADOR', 'APROBADO', 1, '2024-05-01', '2024-05-01', '2024-05-01', 1, 0);
|
||||
insert into time_off_request (id, version, employee_id, category, state, available_days, expiration, start_date, end_date, days_to_be_take, days_balance)
|
||||
values ('fb9d9d75-b2ab-4ea4-b8b3-0a8f89e5c123', 1, '2e2293b1-3f9a-4f3d-abc8-32639b0a5e15', 'DIA_DE_LA_INDEPENDENCIA', 'EN_USO', 1, '2025-08-06', '2024-08-06', '2024-08-06', 1, 0);
|
||||
values ('fb9d9d75-b2ab-4ea4-b8b3-0a8f89e5c123', 1, '2e2293b1-3f9a-4f3d-abc8-32639b0a5e15', 'DIA_DE_LA_INDEPENDENCIA', 'APROBADO', 1, '2024-08-06', '2024-08-06', '2024-08-06', 1, 0);
|
||||
insert into time_off_request (id, version, employee_id, category, state, available_days, expiration, start_date, end_date, days_to_be_take, days_balance)
|
||||
values ('6fdc47a8-127b-41c4-8d12-7fc12098ab12', 1, 'b2436b82-7b9f-4f0d-9463-f2c3173a45c3', 'DIA_DE_TODOS_LOS_DIFUNTOS', 'PENDIENTE', 1, '2025-12-01', '2025-11-02', '2025-11-02', 1, 0);
|
||||
insert into time_off_request (id, version, employee_id, category, state, available_days, expiration, start_date, end_date, days_to_be_take, days_balance)
|
||||
values ('12ec8b74-983d-4a17-b67e-134f45ae904c', 1, '5c1a7b82-832d-4f24-8377-54b77b91b6a8', 'AÑO_NUEVO', 'PENDIENTE', 1, '2025-01-01', '2025-01-01', '2025-01-01', 1, 0);
|
||||
insert into time_off_request (id, version, employee_id, category, state, available_days, expiration, start_date, end_date, days_to_be_take, days_balance)
|
||||
values ('89bc4b2a-943f-487c-a9f3-bacf78145e67', 1, 'cba3efb7-32bc-44be-9fdc-fc5e4f211254', 'LUNES_CARNAVAL', 'APROBADO', 1, '2025-02-12', '2024-02-12', '2024-02-12', 1, 0);
|
||||
values ('89bc4b2a-943f-487c-a9f3-bacf78145e67', 1, 'cba3efb7-32bc-44be-9fdc-fc5e4f211254', 'LUNES_CARNAVAL', 'APROBADO', 1, '2024-02-12', '2024-02-12', '2024-02-12', 1, 0);
|
||||
|
Loading…
Reference in New Issue
Block a user