@Override protected void onSaveOrModify(EmployeeSalaryDO obj) { if (obj.getId() == null) { List<EmployeeSalaryDO> list = pfEmgrFactory.runRoTrans(emgr -> { return emgr.select(EmployeeSalaryDO.class, "SELECT s FROM EmployeeSalaryDO s WHERE s.year = :year and s.month = :month and s.employee.id = :employeeid", "year", obj.getYear(), "month", obj.getMonth(), "employeeid", obj.getEmployeeId()); }); if (CollectionUtils.isNotEmpty(list)) { log.info("Insert of EmployeeSalaryDO not possible. There is a existing one for employee with id: " + obj.getEmployeeId() + " and year: " + obj.getYear() + " and month: " + obj.getMonth() + " . Existing one: " + list.get(0).toString()); throw new UserException("fibu.employee.salary.error.salaryAlreadyExist"); } } else { List<EmployeeSalaryDO> list = pfEmgrFactory.runRoTrans(emgr -> { return emgr .select(EmployeeSalaryDO.class, "SELECT s FROM EmployeeSalaryDO s WHERE s.year = :year and s.month = :month and s.employee.id = :employeeid and s.id <> :id", "year", obj.getYear(), "month", obj.getMonth(), "employeeid", obj.getEmployeeId(), "id", obj.getId()); }); if (CollectionUtils.isNotEmpty(list)) { log.info("Update of EmployeeSalaryDO not possible. There is a existing one for employee with id: " + obj.getEmployeeId() + " and year: " + obj.getYear() + " and month: " + obj.getMonth() + " and ID: " + obj.getId() + " . Existing one: " + list.get(0).toString()); throw new UserException("fibu.employee.salary.error.salaryAlreadyExist"); } } }
@Override public EmployeeSalaryDO newInstance() { return new EmployeeSalaryDO(); }
/** * @param employeeSalary * @param employeeId If null, then employee will be set to null; * @see BaseDao#getOrLoad(Integer) */ public void setEmployee(final EmployeeSalaryDO employeeSalary, Integer employeeId) { EmployeeDO employee = employeeDao.getOrLoad(employeeId); employeeSalary.setEmployee(employee); }
@Override public EmployeeSalaryDO getEmployeeSalaryByDate(EmployeeDO employee, Calendar selectedDate) { List<EmployeeSalaryDO> findByEmployee = employeeSalaryDao.findByEmployee(employee); for (EmployeeSalaryDO sal : findByEmployee) { if (sal.getYear().equals(selectedDate.get(Calendar.YEAR)) && sal.getMonth().equals(selectedDate.get(Calendar.MONTH))) { return sal; } } return null; }
employeeSalary = employeeSalaryService.getEmployeeSalaryByDate(employee, selectedDateCalendar); if (employeeSalary == null) { employeeSalary = new EmployeeSalaryDO(); employeeSalary.setEmployee(employee); employeeSalary.setYear(selectedDateCalendar.get(Calendar.YEAR)); employeeSalary.setMonth(selectedDateCalendar.get(Calendar.MONTH) + 1); employeeSalary.setType(EmployeeSalaryType.GEHALT); } else { employeeSalary.setMonth(selectedDateCalendar.get(Calendar.MONTH) + 1); employeeSalary.setBruttoMitAgAnteil(row.getSalary()); if (StringUtils.isBlank(row.getRemark()) == false) { employeeSalary.setComment(row.getRemark()); employeeSalary = new EmployeeSalaryDO(); element.putErrorProperty(I18nHelper.getLocalizedMessage("fibu.employee.staffNumber"), row.getStaffnumber());
@Override protected void addColumns(final RepeatingView cellRepeater, final ImportedElement<?> element, final String style) { final String s = "white-space: nowrap; text-align: right;"; final String styleRightAlign = (style == null) ? s : style + " " + s; final EmployeeSalaryDO employeeSalary = (EmployeeSalaryDO) element.getValue(); final EmployeeDO employee = employeeSalary != null ? employeeSalary.getEmployee() : null; addCell(cellRepeater, employee != null ? employee.getStaffNumber() : "", styleRightAlign); addCell(cellRepeater, employee != null ? employee.getUser().getFullname() : "", styleRightAlign); addCell(cellRepeater, employeeSalary != null ? employeeSalary.getYear() : null, styleRightAlign); addCell(cellRepeater, employeeSalary != null ? employeeSalary.getMonth() : null, styleRightAlign); addCell(cellRepeater, employeeSalary != null && employeeSalary.getBruttoMitAgAnteil() != null ? employeeSalary.getBruttoMitAgAnteil().toString() : "", styleRightAlign); addCell(cellRepeater, employeeSalary != null ? employeeSalary.getComment() : "", styleRightAlign); }
boolean found = false; for (final EmployeeSalaryDO salary : list) { if (salary.getEmployeeId().equals(employee.getId()) == true) { found = true; break; final int year = first.getYear(); final int month = first.getMonth(); final DayHolder buchungsdatum = new DayHolder(); buchungsdatum.setDate(year, month, 1); final PFUserDO user = getUserGroupCache().getUser(salary.getEmployee().getUserId()); Validate.isTrue(year == salary.getYear()); Validate.isTrue(month == salary.getMonth()); final MonthlyEmployeeReport report = monthlyEmployeeReportDao.getReport(year, month, user); mapping.add(ExcelColumn.MITARBEITER, user.getFullname()); final Kost1DO kost1 = salary.getEmployee().getKost1(); final BigDecimal bruttoMitAGAnteil = salary.getBruttoMitAgAnteil(); final BigDecimal netDuration = new BigDecimal(report.getTotalNetDuration()); final Map<String, Kost2Row> rows = report.getKost2Rows(); addEmployeeRow(employeeSheet, salary.getEmployee(), numberOfWorkingDays, netDuration, report);
@Override public AbstractSecuredBasePage afterSaveOrUpdate() { recent = getRecent(); if (getData().getYear() != null) { recent.setYear(getData().getYear()); } if (getData().getMonth() != null) { recent.setMonth(getData().getMonth()); } if (getData().getType() != null) { recent.setType(getData().getType()); } return null; }
private int commit(final ImportedSheet<EmployeeSalaryDO> sheet) { final List<EmployeeSalaryDO> employeeSalariesToUpdate = sheet .getElements() .stream() .filter(ImportedElement::isSelected) .map(ImportedElement::getValue) .collect(Collectors.toList()); employeeSalariesToUpdate.forEach(sal -> { //Correct view to db sal.setMonth(sal.getMonth() - 1); employeeSalaryService.saveOrUpdate(sal); }); return employeeSalariesToUpdate.size(); }
@Transient public Integer getEmployeeSalaryId() { if (this.employeeSalary == null) { return null; } return employeeSalary.getId(); }
/** * @see org.projectforge.web.wicket.CellItemListenerPropertyColumn#populateItem(org.apache.wicket.markup.repeater.Item, * java.lang.String, org.apache.wicket.model.IModel) */ @Override public void populateItem(final Item<ICellPopulator<EmployeeSalaryDO>> item, final String componentId, final IModel<EmployeeSalaryDO> rowModel) { final EmployeeSalaryDO employeeSalary = rowModel.getObject(); if (isSelectMode() == false) { item.add(new ListSelectActionPanel(componentId, rowModel, EmployeeSalaryEditPage.class, employeeSalary.getId(), returnToPage, employeeSalary.getFormattedYearAndMonth())); } else { item.add(new ListSelectActionPanel(componentId, rowModel, caller, selectProperty, employeeSalary.getId(), employeeSalary .getFormattedYearAndMonth())); } cellItemListener.populateItem(item, componentId, rowModel); addRowClick(item); } });
/** * @see ExcelExporter#addMapping(PropertyMapping, java.lang.Object, * java.lang.reflect.Field) */ @Override public void addMapping(final PropertyMapping mapping, final Object entry, final Field field) { if ("month".equals(field.getName()) == true) { final EmployeeSalaryDO salary = (EmployeeSalaryDO) entry; // Excel month starts with 1 instead of 0: mapping.add(field.getName(), salary.getMonth() + 1); } else { super.addMapping(mapping, entry, field); } } };
@Override public int compare(final EmployeeSalaryDO o1, final EmployeeSalaryDO o2) { return (o1.getEmployee().getUser().getFullname()).compareTo(o2.getEmployee().getUser().getFullname()); } });
@Override public EmployeeSalaryDO getLatestSalaryForEmployee(EmployeeDO employee) { List<EmployeeSalaryDO> findByEmployee = employeeSalaryDao.findByEmployee(employee); return findByEmployee .stream() .sorted((sal1, sal2) -> { Calendar c1 = new GregorianCalendar(sal1.getYear(), sal1.getMonth(), 1); Calendar c2 = new GregorianCalendar(sal2.getYear(), sal2.getMonth(), 1); return c2.compareTo(c1); }) .findFirst() .orElse(null); }
public List<KostZuweisungDO> getKostZuweisungen(final EmployeeSalaryDO salary) { @SuppressWarnings("unchecked") final List<KostZuweisungDO> list = (List<KostZuweisungDO>) getHibernateTemplate().find("from KostZuweisungDO k where k.employeeSalary.id = ? and u.password = ?", salary.getId()); return list; }
public void reconcile(final ImportStorage<?> storage, final String sheetName) { // checkLoggeinUserRight(accessChecker); Validate.notNull(storage.getSheets()); @SuppressWarnings("unchecked") final ImportedSheet<EmployeeSalaryDO> sheet = (ImportedSheet<EmployeeSalaryDO>) storage.getNamedSheet(sheetName); Validate.notNull(sheet); for (final ImportedElement<EmployeeSalaryDO> el : sheet.getElements()) { final EmployeeSalaryDO employeeSalary = el.getValue(); if (employeeSalary != null) { final Integer id = employeeSalary.getId(); final EmployeeSalaryDO dbEmployeeSalary = (id != null) ? employeeSalaryService.selectByPk(id) : null; if (dbEmployeeSalary != null) { el.setOldValue(dbEmployeeSalary); } } } sheet.setStatus(ImportStatus.RECONCILED); sheet.calculateStatistics(); sheet.setNumberOfCommittedElements(-1); }