use of com.axelor.apps.hr.db.ExtraHoursLine in project axelor-open-suite by axelor.
the class ExtraHoursServiceImpl method compute.
@Override
public void compute(ExtraHours extraHours) {
BigDecimal totalQty = BigDecimal.ZERO;
List<ExtraHoursLine> extraHoursLines = extraHours.getExtraHoursLineList();
for (ExtraHoursLine extraHoursLine : extraHoursLines) {
totalQty = totalQty.add(extraHoursLine.getQty());
}
extraHours.setTotalQty(totalQty);
}
use of com.axelor.apps.hr.db.ExtraHoursLine in project axelor-open-suite by axelor.
the class PayrollPreparationService method computeExtraHoursNumber.
public BigDecimal computeExtraHoursNumber(PayrollPreparation payrollPreparation) {
LocalDate fromDate = payrollPreparation.getPeriod().getFromDate();
LocalDate toDate = payrollPreparation.getPeriod().getToDate();
BigDecimal extraHoursNumber = BigDecimal.ZERO;
for (ExtraHoursLine extraHoursLine : Beans.get(ExtraHoursLineRepository.class).all().filter("self.user.employee = ?1 AND self.extraHours.statusSelect = 3 AND self.date BETWEEN ?2 AND ?3 AND (self.payrollPreparation = null OR self.payrollPreparation.id = ?4)", payrollPreparation.getEmployee(), fromDate, toDate, payrollPreparation.getId()).fetch()) {
payrollPreparation.addExtraHoursLineListItem(extraHoursLine);
extraHoursNumber = extraHoursNumber.add(extraHoursLine.getQty());
}
return extraHoursNumber;
}
use of com.axelor.apps.hr.db.ExtraHoursLine in project axelor-open-suite by axelor.
the class PayrollPreparationService method exportNibelis.
public void exportNibelis(PayrollPreparation payrollPreparation, List<String[]> list) throws AxelorException {
HRConfig hrConfig = hrConfigService.getHRConfig(payrollPreparation.getCompany());
// LEAVES
if (payrollPreparation.getLeaveDuration().compareTo(BigDecimal.ZERO) > 0) {
List<PayrollLeave> payrollLeaveList = fillInLeaves(payrollPreparation);
for (PayrollLeave payrollLeave : payrollLeaveList) {
if (payrollLeave.getLeaveReason().getPayrollPreprationExport()) {
String[] leaveLine = createExportFileLine(payrollPreparation);
leaveLine[3] = payrollLeave.getLeaveReason().getExportCode();
leaveLine[4] = payrollLeave.getFromDate().format(DateTimeFormatter.ofPattern("dd/MM/yyyy"));
leaveLine[5] = payrollLeave.getToDate().format(DateTimeFormatter.ofPattern("dd/MM/yyyy"));
leaveLine[6] = payrollLeave.getDuration().toString();
list.add(leaveLine);
}
}
}
// LUNCH VOUCHER MANAGEMENT
if (payrollPreparation.getLunchVoucherNumber().compareTo(BigDecimal.ZERO) > 0) {
String[] lunchVoucherLine = createExportFileLine(payrollPreparation);
lunchVoucherLine[3] = hrConfig.getExportCodeForLunchVoucherManagement();
lunchVoucherLine[6] = payrollPreparation.getLunchVoucherNumber().toString();
list.add(lunchVoucherLine);
}
// EMPLOYEE BONUS MANAGEMENT
if (payrollPreparation.getEmployeeBonusAmount().compareTo(BigDecimal.ZERO) > 0) {
Map<String, BigDecimal> map = new HashMap<>();
for (EmployeeBonusMgtLine bonus : payrollPreparation.getEmployeeBonusMgtLineList()) {
if (bonus.getEmployeeBonusMgt().getEmployeeBonusType().getPayrollPreparationExport()) {
if (map.containsKey(bonus.getEmployeeBonusMgt().getEmployeeBonusType().getExportCode())) {
map.put(bonus.getEmployeeBonusMgt().getEmployeeBonusType().getExportCode(), bonus.getAmount().add(map.get(bonus.getEmployeeBonusMgt().getEmployeeBonusType().getExportCode())));
} else {
map.put(bonus.getEmployeeBonusMgt().getEmployeeBonusType().getExportCode(), bonus.getAmount());
}
}
}
for (Map.Entry<String, BigDecimal> entry : map.entrySet()) {
String[] employeeBonusLine = createExportFileLine(payrollPreparation);
employeeBonusLine[3] = entry.getKey();
employeeBonusLine[6] = entry.getValue().toString();
list.add(employeeBonusLine);
}
}
// EXTRA HOURS
if (payrollPreparation.getExtraHoursNumber().compareTo(BigDecimal.ZERO) > 0) {
List<ExtraHoursLine> extraHourLineList = Beans.get(ExtraHoursLineRepository.class).all().filter("self.payrollPreparation.id = ?1" + " AND self.extraHoursType.payrollPreprationExport = ?2", payrollPreparation.getId(), true).fetch();
Map<ExtraHoursType, BigDecimal> extraHourLineExportMap = extraHourLineList.stream().collect(Collectors.groupingBy(ExtraHoursLine::getExtraHoursType, Collectors.reducing(BigDecimal.ZERO, ExtraHoursLine::getQty, BigDecimal::add)));
extraHourLineExportMap.forEach((extraHoursTypeGroup, totalHours) -> {
String[] extraHourLine = createExportFileLine(payrollPreparation);
extraHourLine[3] = extraHoursTypeGroup.getExportCode();
extraHourLine[6] = totalHours.toString();
list.add(extraHourLine);
});
}
}
Aggregations