@KcEventMethod public boolean processApplyToLaterPeriodsWithPersonnelDetails(ApplyToPeriodsBudgetEvent event) { MessageMap errorMap = getGlobalVariableService().getMessageMap(); Budget budget = event.getBudget(); BudgetLineItem budgetLineItem = event.getBudgetLineItem(); List<BudgetPeriod> budgetPeriods = budget.getBudgetPeriods(); BudgetLineItem prevBudgetLineItem = budgetLineItem; for (BudgetPeriod budgetPeriod : budgetPeriods) { if (budgetPeriod.getBudgetPeriod() <= event.getBudgetPeriod().getBudgetPeriod()) continue; QueryList<BudgetLineItem> currentBudgetPeriodLineItems = new QueryList<BudgetLineItem>(budgetPeriod.getBudgetLineItems()); for (BudgetLineItem budgetLineItemToBeApplied : currentBudgetPeriodLineItems) { if (prevBudgetLineItem .getLineItemNumber() .equals(budgetLineItemToBeApplied.getBasedOnLineItem())) { if (budgetLineItemToBeApplied .getBudgetCategory() .getBudgetCategoryTypeCode() .equals(PERSONNEL_CATEGORY) && (!budgetLineItemToBeApplied.getBudgetPersonnelDetailsList().isEmpty() || !prevBudgetLineItem.getBudgetPersonnelDetailsList().isEmpty())) { errorMap.putError( event.getErrorPath() + COST_ELEMENT, KeyConstants.ERROR_APPLY_TO_LATER_PERIODS, budgetLineItemToBeApplied.getBudgetPeriod().toString()); return false; } } else if (StringUtils.equals( budgetLineItem.getBudgetCategory().getBudgetCategoryTypeCode(), PERSONNEL_CATEGORY)) { // Additional Check for Personnel Source Line Item if (StringUtils.equals( budgetLineItem.getCostElement(), budgetLineItemToBeApplied.getCostElement()) && StringUtils.equals( budgetLineItem.getGroupName(), budgetLineItemToBeApplied.getGroupName())) { errorMap.putError( event.getErrorPath() + COST_ELEMENT, KeyConstants.ERROR_PERSONNELLINEITEM_APPLY_TO_LATER_PERIODS, budgetLineItemToBeApplied.getBudgetPeriod().toString()); return false; } } } } return true; }
@KcEventMethod public boolean processCheckLineItemDates(ApplyToPeriodsBudgetEvent event) { return processCheckLineItemDates( event.getBudgetPeriod(), event.getBudgetLineItem(), event.getErrorPath()); }
@KcEventMethod public boolean budgetPersonnelDetailsCheck(ApplyToPeriodsBudgetEvent event) { return budgetPersonnelDetailsCheck( event.getBudget(), event.getBudgetLineItem(), event.getErrorPath()); }