/** * This method checks budget versions business rules. * * @param budgetParentDocument the document * @param runDatactionaryValidation if dd validation should be run * @return true if valid false if not * @throws NullPointerException if the proposalDevelopmentDocument is null */ protected boolean processBudgetVersionsBusinessRule( final BudgetParentDocument budgetParentDocument, final boolean runDatactionaryValidation) { if (budgetParentDocument == null) { throw new NullPointerException("the parentDocument is null."); } boolean valid = true; final MessageMap errorMap = GlobalVariables.getMessageMap(); boolean finalVersionFound = false; final DictionaryValidationService dictionaryValidationService = getKnsDictionaryValidationService(); int index = 0; for (BudgetDocumentVersion budgetDocumentVersion : budgetParentDocument.getBudgetDocumentVersions()) { BudgetVersionOverview budgetVersion = budgetDocumentVersion.getBudgetVersionOverview(); if (runDatactionaryValidation) { dictionaryValidationService.validateBusinessObject(budgetVersion, true); } if (budgetVersion.isFinalVersionFlag()) { if (finalVersionFound) { errorMap.putError("finalVersionFlag", KeyConstants.ERROR_MULTIPLE_FINAL_BUDGETS); } else { finalVersionFound = true; } } final String budgetStatusCompleteCode = getParameterService() .getParameterValueAsString( BudgetDocument.class, Constants.BUDGET_STATUS_COMPLETE_CODE); if (budgetStatusCompleteCode.equalsIgnoreCase(budgetVersion.getBudgetStatus())) { if (!budgetVersion.isFinalVersionFlag()) { errorMap.putError( "budgetVersionOverview[" + index + "].budgetStatus", KeyConstants.ERROR_NO_FINAL_BUDGET); valid = false; } } index++; } return valid; }
protected boolean processRunAuditBudgetVersionRule(BudgetParentDocument parentDocument) { // audit check for budgetversion with final status boolean finalAndCompleteBudgetVersionFound = false; boolean budgetVersionsExists = false; boolean retval = true; List<AuditError> auditErrors = new ArrayList<AuditError>(); String budgetStatusCompleteCode = getParameterService() .getParameterValueAsString(BudgetDocument.class, Constants.BUDGET_STATUS_COMPLETE_CODE); for (BudgetDocumentVersion budgetDocumentVersion : parentDocument.getBudgetDocumentVersions()) { BudgetVersionOverview budgetVersion = budgetDocumentVersion.getBudgetVersionOverview(); budgetVersionsExists = true; if (budgetVersion.isFinalVersionFlag()) { BudgetParent budgetParent = parentDocument.getBudgetParent(); if (budgetParent.getBudgetStatus() != null && budgetParent.getBudgetStatus().equals(budgetStatusCompleteCode)) { finalAndCompleteBudgetVersionFound = true; } } } if (budgetVersionsExists && !finalAndCompleteBudgetVersionFound) { auditErrors.add( new AuditError( "document.parentBudget.budgetVersionOverview", KeyConstants.AUDIT_ERROR_NO_BUDGETVERSION_COMPLETE_AND_FINAL, Constants.PD_BUDGET_VERSIONS_PAGE + "." + Constants.BUDGET_VERSIONS_PANEL_ANCHOR)); retval = false; } if (auditErrors.size() > 0) { KNSGlobalVariables.getAuditErrorMap() .put( "budgetVersionErrors", new AuditCluster( Constants.BUDGET_VERSION_PANEL_NAME, auditErrors, Constants.AUDIT_ERRORS)); } return retval; }