/** * Looks up what should be the method on the AccountingDocument class that returns the group title * * @return */ protected Method discoverGroupTitleMethod(AccountingDocument document) { Method groupTitleMethod = null; try { String methodName = new StringBuilder() .append("get") .append(accountingLineGroupPropertyName.substring(0, 1).toUpperCase()) .append(accountingLineGroupPropertyName.substring(1)) .append("SectionTitle") .toString(); groupTitleMethod = document.getClass().getMethod(methodName, new Class[0]); } catch (SecurityException se) { throw new RuntimeException(se); } catch (NoSuchMethodException nsme) { throw new RuntimeException(nsme); } return groupTitleMethod; }
/** * This method checks to see if this doctype needs sales tax If it does then it checks to see if * the account and object code require sales tax If it does then it returns true. Note - this is * hackish as we shouldn't have to call rules directly from the action class But we need to in * this instance because we are copying the lines before calling rules and need a way to modify * them before they go on * * @param accountingLine * @return true if sales tax check is needed, false otherwise */ protected boolean isSalesTaxRequired( AccountingDocument financialDocument, AccountingLine accountingLine) { boolean required = false; String docType = SpringContext.getBean(DataDictionaryService.class) .getDocumentTypeNameByClass(financialDocument.getClass()); // first we need to check just the doctype to see if it needs the sales tax check ParameterService parameterService = SpringContext.getBean(ParameterService.class); // apply the rule, see if it fails ParameterEvaluator docTypeSalesTaxCheckEvaluator = /*REFACTORME*/ SpringContext.getBean(ParameterEvaluatorService.class) .getParameterEvaluator( KfsParameterConstants.FINANCIAL_PROCESSING_DOCUMENT.class, APPLICATION_PARAMETER.DOCTYPE_SALES_TAX_CHECK, docType); if (docTypeSalesTaxCheckEvaluator.evaluationSucceeds()) { required = true; } // second we need to check the account and object code combination to see if it needs sales tax if (required) { // get the object code and account String objCd = accountingLine.getFinancialObjectCode(); String account = accountingLine.getAccountNumber(); if (!StringUtils.isEmpty(objCd) && !StringUtils.isEmpty(account)) { String compare = account + ":" + objCd; ParameterEvaluator salesTaxApplicableAcctAndObjectEvaluator = /*REFACTORME*/ SpringContext.getBean(ParameterEvaluatorService.class) .getParameterEvaluator( KfsParameterConstants.FINANCIAL_PROCESSING_DOCUMENT.class, APPLICATION_PARAMETER.SALES_TAX_APPLICABLE_ACCOUNTS_AND_OBJECT_CODES, compare); if (!salesTaxApplicableAcctAndObjectEvaluator.evaluationSucceeds()) { required = false; } } else { // the two fields are currently empty and we don't need to check yet required = false; } } return required; }