En-desarrollo #65
@ -343,10 +343,6 @@ public class EmployeeView extends BeanValidationForm<Employee> implements HasUrl
|
||||
employee.setStatus(status.getValue());
|
||||
employee.setAge(age.getValue());
|
||||
|
||||
if (employee.getDateOfEntry() != null) {
|
||||
processTimeOffRequests(employee);
|
||||
}
|
||||
|
||||
employeeService.createOrUpdate(employee);
|
||||
Notification.show(NOTIFICATION_SAVE_SUCCESS);
|
||||
getUI().ifPresent(ui -> ui.navigate(EmployeesListView.class));
|
||||
@ -355,83 +351,6 @@ public class EmployeeView extends BeanValidationForm<Employee> implements HasUrl
|
||||
}
|
||||
}
|
||||
|
||||
private void processTimeOffRequests(final Employee employee) {
|
||||
boolean isCurrentYearEntry = employee.getDateOfEntry().getYear() == LocalDate.now().getYear();
|
||||
|
||||
deleteExistingTimeOffRequests(employee);
|
||||
|
||||
if (isCurrentYearEntry) {
|
||||
saveCurrentYearRequest(employee);
|
||||
} else if (LocalDate.now().getYear() > employee.getDateOfEntry().getYear()) {
|
||||
savePreviousAndCurrentYearRequests(employee);
|
||||
}
|
||||
}
|
||||
|
||||
private void deleteExistingTimeOffRequests(final Employee employee) {
|
||||
deleteTimeOffRequestByCategory(employee, TimeOffRequestType.VACACION_GESTION_ANTERIOR);
|
||||
deleteTimeOffRequestByCategory(employee, TimeOffRequestType.VACACION_GESTION_ACTUAL);
|
||||
}
|
||||
|
||||
private void deleteTimeOffRequestByCategory(final Employee employee, final TimeOffRequestType category) {
|
||||
var requests = requestService.findByEmployeeAndCategory(employee.getId(), category);
|
||||
if (!requests.isEmpty()) {
|
||||
requestService.deleteTimeOffRequest(requests.getFirst().getId());
|
||||
}
|
||||
}
|
||||
|
||||
private void saveCurrentYearRequest(final Employee employee) {
|
||||
LocalDate baseDate = LocalDate.of(
|
||||
LocalDate.now().getYear(),
|
||||
employee.getDateOfEntry().getMonth(),
|
||||
employee.getDateOfEntry().getDayOfMonth()
|
||||
);
|
||||
TimeOffRequest currentRequest = createTimeOffRequest(
|
||||
employee,
|
||||
TimeOffRequestType.VACACION_GESTION_ACTUAL,
|
||||
baseDate,
|
||||
729
|
||||
);
|
||||
requestService.saveTimeOffRequest(currentRequest);
|
||||
}
|
||||
|
||||
private void savePreviousAndCurrentYearRequests(final Employee employee) {
|
||||
LocalDate previousBaseDate = LocalDate.of(
|
||||
LocalDate.now().getYear() - 1,
|
||||
employee.getDateOfEntry().getMonth(),
|
||||
employee.getDateOfEntry().getDayOfMonth()
|
||||
);
|
||||
TimeOffRequest previousRequest = createTimeOffRequest(
|
||||
employee,
|
||||
TimeOffRequestType.VACACION_GESTION_ANTERIOR,
|
||||
previousBaseDate,
|
||||
729
|
||||
);
|
||||
|
||||
LocalDate currentBaseDate = previousBaseDate.plusYears(1);
|
||||
TimeOffRequest currentRequest = createTimeOffRequest(
|
||||
employee,
|
||||
TimeOffRequestType.VACACION_GESTION_ACTUAL,
|
||||
currentBaseDate,
|
||||
1094
|
||||
);
|
||||
|
||||
requestService.saveTimeOffRequest(previousRequest);
|
||||
requestService.saveTimeOffRequest(currentRequest);
|
||||
}
|
||||
|
||||
private TimeOffRequest createTimeOffRequest(final Employee employee,
|
||||
final TimeOffRequestType category,
|
||||
final LocalDate baseDate,
|
||||
final int expirationDays) {
|
||||
TimeOffRequest request = new TimeOffRequest();
|
||||
request.setEmployee(employee);
|
||||
request.setCategory(category);
|
||||
request.setState(TimeOffRequestStatus.APROBADO);
|
||||
request.setExpiration(baseDate.plusDays(expirationDays));
|
||||
setVacationDuration(employee, request, baseDate);
|
||||
return request;
|
||||
}
|
||||
|
||||
private void enableEditMode() {
|
||||
setFieldsEditable();
|
||||
saveButton.setVisible(true);
|
||||
|
@ -122,7 +122,7 @@ public class RequestEmployeeView extends Div implements HasUrlParameter<String>
|
||||
double totalAvailableDays = totalHoliday + totalVacations + totalPersonalDays;
|
||||
|
||||
return new VerticalLayout(
|
||||
new Span("Total días libres: " + totalHoliday),
|
||||
new Span("Total feriados: " + totalHoliday),
|
||||
new Span("Total vacaciones: " + totalVacations),
|
||||
new Span("Total días personales: " + totalPersonalDays),
|
||||
new Span("Total general: " + totalAvailableDays)
|
||||
|
Loading…
Reference in New Issue
Block a user