Observaciones-vacaciones #83
@ -137,7 +137,8 @@ public class DocumentsListView extends BaseView {
|
||||
}
|
||||
|
||||
private String getEmployeeLabel(final Employee employee) {
|
||||
return employee.getFirstName().equals("TODOS") ? "TODOS" : employee.getFirstName() + " " + employee.getLastName();
|
||||
return employee.getFirstName().equals("TODOS")
|
||||
? "TODOS" : employee.getFirstName() + " " + employee.getLastName();
|
||||
}
|
||||
|
||||
private void navigateToEditDocumentView(final Document document) {
|
||||
|
@ -141,43 +141,47 @@ public class RequestEmployeeView extends BaseView implements HasUrlParameter<Str
|
||||
Employee employee = employeeService.getEmployee(employeeId);
|
||||
boolean isMale = employee.getGender() == Employee.Gender.MALE;
|
||||
int currentYear = LocalDate.now().getYear();
|
||||
LocalDate currentDate = LocalDate.now();
|
||||
|
||||
List<Vacation> vacations = vacationService.findVacations();
|
||||
|
||||
double healthLicence = 2;
|
||||
List<TimeOffRequest> healthRequests = requestService
|
||||
.findByEmployeeAndCategory(employeeId, TimeOffRequestType.PERMISOS_DE_SALUD);
|
||||
if (healthRequests != null && !healthRequests.isEmpty()) {
|
||||
healthLicence = healthRequests.getLast().getDaysBalance();
|
||||
}
|
||||
double healthLicence = getHealthLicence(employeeId);
|
||||
|
||||
double totalFixedAndMovableHolidays = calculateHolidayDays(vacations);
|
||||
double totalPersonalDays = calculatePersonalDays(vacations, isMale);
|
||||
List<Double> vacationDays = calculateVacationDays(employee);
|
||||
|
||||
double utilizedVacationCurrentDays = vacationDays.get(1);
|
||||
List<TimeOffRequest> vacationCurrentRequests = requestService
|
||||
.findByEmployeeAndCategory(employeeId, TimeOffRequestType.VACACION_GESTION_ACTUAL);
|
||||
if (vacationCurrentRequests != null && !vacationCurrentRequests.isEmpty()) {
|
||||
utilizedVacationCurrentDays = vacationCurrentRequests.getLast().getDaysBalance();
|
||||
}
|
||||
double totalVacationCurrentDays = vacationDays.get(1) - (vacationDays.get(1) - utilizedVacationCurrentDays);
|
||||
|
||||
double utilizedVacationPreviousDays = vacationDays.get(0);
|
||||
List<TimeOffRequest> vacationPreviousRequests = requestService
|
||||
.findByEmployeeAndCategory(employeeId, TimeOffRequestType.VACACION_GESTION_ANTERIOR);
|
||||
if (vacationPreviousRequests != null && !vacationPreviousRequests.isEmpty()) {
|
||||
utilizedVacationPreviousDays = vacationPreviousRequests.getLast().getDaysBalance();
|
||||
}
|
||||
double totalVacationPreviousDays = vacationDays.getFirst()
|
||||
- (vacationDays.getFirst() - utilizedVacationPreviousDays);
|
||||
double totalVacationCurrentDays = calculateUtilizedVacationDays(
|
||||
vacationDays.get(1),
|
||||
TimeOffRequestType.VACACION_GESTION_ACTUAL
|
||||
);
|
||||
double totalVacationPreviousDays = calculateUtilizedVacationDays(
|
||||
vacationDays.get(0),
|
||||
TimeOffRequestType.VACACION_GESTION_ANTERIOR
|
||||
);
|
||||
|
||||
double utilizedFixedAndMovableHolidays = calculateHolidayUtilizedDays(currentYear);
|
||||
double utilizedPersonalDays = calculatePersonalDaysUtilized(isMale, currentYear);
|
||||
|
||||
double remainingHolidayDays = totalFixedAndMovableHolidays - utilizedFixedAndMovableHolidays;
|
||||
double remainingPersonalDays = (totalPersonalDays - utilizedPersonalDays) + healthLicence;
|
||||
double remainingVacationDays = totalVacationCurrentDays + totalVacationPreviousDays;
|
||||
double remainingHolidayDays = calculateRemainingHolidayDays(
|
||||
totalFixedAndMovableHolidays,
|
||||
utilizedFixedAndMovableHolidays,
|
||||
employee.getDateOfExit(),
|
||||
currentDate
|
||||
);
|
||||
double remainingPersonalDays = calculateRemainingPersonalDays(
|
||||
totalPersonalDays,
|
||||
utilizedPersonalDays,
|
||||
healthLicence,
|
||||
employee.getDateOfExit(),
|
||||
currentDate
|
||||
);
|
||||
double remainingVacationDays = calculateRemainingVacationDays(
|
||||
totalVacationCurrentDays,
|
||||
totalVacationPreviousDays,
|
||||
employee.getDateOfExit(),
|
||||
currentDate
|
||||
);
|
||||
|
||||
double totalAvailableDays = remainingHolidayDays + remainingPersonalDays + remainingVacationDays;
|
||||
|
||||
@ -189,6 +193,51 @@ public class RequestEmployeeView extends BaseView implements HasUrlParameter<Str
|
||||
);
|
||||
}
|
||||
|
||||
private double getHealthLicence(final UUID employeeId) {
|
||||
List<TimeOffRequest> healthRequests = requestService
|
||||
.findByEmployeeAndCategory(employeeId, TimeOffRequestType.PERMISOS_DE_SALUD);
|
||||
return healthRequests != null && !healthRequests.isEmpty() ? healthRequests.getLast().getDaysBalance() : 2;
|
||||
}
|
||||
|
||||
private double calculateUtilizedVacationDays(final double vacationDays, final TimeOffRequestType requestType) {
|
||||
List<TimeOffRequest> vacationRequests = requestService.findByEmployeeAndCategory(employeeId, requestType);
|
||||
if (vacationRequests != null && !vacationRequests.isEmpty()) {
|
||||
return vacationRequests.getLast().getDaysBalance();
|
||||
}
|
||||
return vacationDays;
|
||||
}
|
||||
|
||||
private double calculateRemainingVacationDays(final double totalVacationCurrentDays,
|
||||
final double totalVacationPreviousDays,
|
||||
final LocalDate exitDate,
|
||||
final LocalDate currentDate) {
|
||||
if (exitDate == null || exitDate.isAfter(currentDate)) {
|
||||
return totalVacationCurrentDays + totalVacationPreviousDays;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
private double calculateRemainingHolidayDays(final double totalFixedAndMovableHolidays,
|
||||
final double utilizedFixedAndMovableHolidays,
|
||||
final LocalDate exitDate,
|
||||
final LocalDate currentDate) {
|
||||
if (exitDate == null || exitDate.isAfter(currentDate)) {
|
||||
return totalFixedAndMovableHolidays - utilizedFixedAndMovableHolidays;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
private double calculateRemainingPersonalDays(final double totalPersonalDays,
|
||||
final double utilizedPersonalDays,
|
||||
final double healthLicence,
|
||||
final LocalDate exitDate,
|
||||
final LocalDate currentDate) {
|
||||
if (exitDate == null || exitDate.isAfter(currentDate)) {
|
||||
return (totalPersonalDays - utilizedPersonalDays) + healthLicence;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
private double calculateHolidayDays(final List<Vacation> vacations) {
|
||||
return vacations.stream()
|
||||
.filter(req -> req.getType() != Vacation.Type.OTHER)
|
||||
@ -304,10 +353,6 @@ public class RequestEmployeeView extends BaseView implements HasUrlParameter<Str
|
||||
return vacation.getType() != Vacation.Type.OTHER;
|
||||
}
|
||||
|
||||
private void navigateToRequestsListView() {
|
||||
getUI().ifPresent(ui -> ui.navigate(RequestsListView.class));
|
||||
}
|
||||
|
||||
private void navigateToEditRequest(final TimeOffRequest request) {
|
||||
navigateToRequestView(request, "edit");
|
||||
}
|
||||
@ -406,12 +451,20 @@ public class RequestEmployeeView extends BaseView implements HasUrlParameter<Str
|
||||
employeeId = UUID.fromString(parameter);
|
||||
Employee employee = employeeService.getEmployee(employeeId);
|
||||
requests = requestService.findRequestsByEmployeeId(employeeId);
|
||||
setViewTitle(employee.getFirstName() + " " + employee.getLastName(), employee.getTeam().getName());
|
||||
setViewTitle(
|
||||
employee.getFirstName() + " " + employee.getLastName(),
|
||||
employee.getTeam().getName(),
|
||||
employee.getDateOfExit()
|
||||
);
|
||||
requestGrid.setItems(requests);
|
||||
initializeView();
|
||||
}
|
||||
|
||||
private void setViewTitle(final String employeeName, final String employeeTeam) {
|
||||
getCurrentPageLayout().addComponentAsFirst(new H3(String.format("%s (%s)", employeeName, employeeTeam)));
|
||||
private void setViewTitle(final String employeeName, final String employeeTeam, final LocalDate dateOfExit) {
|
||||
addComponentAsFirst(new H3("Nombre del empleado: " + employeeName));
|
||||
addComponentAtIndex(1, new H3("Equipo: " + employeeTeam));
|
||||
if (dateOfExit != null) {
|
||||
addComponentAtIndex(2, new H3("Descontado a cero en fecha " + dateOfExit + " por pago de finiquito."));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -186,6 +186,13 @@ public class RequestsListView extends BaseView {
|
||||
double totalAvailable = calculateTotalAvailable(vacations, employeeRequests, employee);
|
||||
|
||||
double generalTotal = totalAvailable + totalVacations - totalUtilized;
|
||||
|
||||
if (employee.getDateOfExit() != null
|
||||
&& (employee.getDateOfExit().isBefore(LocalDate.now())
|
||||
|| employee.getDateOfExit().isEqual(LocalDate.now()))) {
|
||||
generalTotal = 0;
|
||||
}
|
||||
|
||||
return String.valueOf(generalTotal);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user