public RequisitionDocument createRequisitionDocumentForTax( TaxTestCaseFixture taxTestCaseFixture) { RequisitionDocument doc = createRequisitionDocument(); doc.getItem(0).getItemType().setTaxableIndicator(taxTestCaseFixture.isItemTypeTaxable()); doc.setDeliveryStateCode("IN"); if (taxTestCaseFixture.isItemTaxAmountNull()) { doc.getItem(0).setItemTaxAmount(null); } else { doc.getItem(0).setItemTaxAmount(new KualiDecimal(100)); } doc.setUseTaxIndicator(taxTestCaseFixture.isUseTax()); if (taxTestCaseFixture.iscommodityCodeNull()) { ((RequisitionItem) doc.getItem(0)).setPurchasingCommodityCode(null); ((RequisitionItem) doc.getItem(0)).setCommodityCode(null); } else { ((RequisitionItem) doc.getItem(0)) .setCommodityCode(CommodityCodeFixture.COMMODITY_CODE_BASIC_ACTIVE.createCommodityCode()); } String INVALID_VALUE = "XX"; String fundGroupCode = doc.getItem(0) .getSourceAccountingLines() .get(0) .getAccount() .getSubFundGroup() .getFundGroupCode(); String subFundGroupCode = doc.getItem(0) .getSourceAccountingLines() .get(0) .getAccount() .getSubFundGroup() .getSubFundGroupCode(); String objectLevelCode = doc.getItem(0) .getSourceAccountingLines() .get(0) .getObjectCode() .getFinancialObjectLevelCode(); String consolidationObjectCode = doc.getItem(0) .getSourceAccountingLines() .get(0) .getObjectCode() .getFinancialObjectLevel() .getFinancialConsolidationObjectCode(); String parameterSuffix; if (taxTestCaseFixture.isDeliveryStateTaxable()) { TestUtils.setSystemParameter( KfsParameterConstants.PURCHASING_DOCUMENT.class, TaxParameters.TAXABLE_DELIVERY_STATES, doc.getDeliveryStateCode()); parameterSuffix = "FOR_TAXABLE_STATES"; } else { TestUtils.setSystemParameter( KfsParameterConstants.PURCHASING_DOCUMENT.class, TaxParameters.TAXABLE_DELIVERY_STATES, INVALID_VALUE); parameterSuffix = "FOR_NON_TAXABLE_STATES"; } if (taxTestCaseFixture.isFundGroupCodeTaxable()) { TestUtils.setSystemParameter( KfsParameterConstants.PURCHASING_DOCUMENT.class, "TAXABLE_FUND_GROUPS_" + parameterSuffix, fundGroupCode); TestUtils.setSystemParameter( KfsParameterConstants.PURCHASING_DOCUMENT.class, "TAXABLE_SUB_FUND_GROUPS_" + parameterSuffix, subFundGroupCode); } else { // Just put some invalid value TestUtils.setSystemParameter( KfsParameterConstants.PURCHASING_DOCUMENT.class, "TAXABLE_FUND_GROUPS_" + parameterSuffix, INVALID_VALUE); TestUtils.setSystemParameter( KfsParameterConstants.PURCHASING_DOCUMENT.class, "TAXABLE_SUB_FUND_GROUPS_" + parameterSuffix, INVALID_VALUE); } if (taxTestCaseFixture.isObjectCodeTaxable()) { TestUtils.setSystemParameter( KfsParameterConstants.PURCHASING_DOCUMENT.class, "TAXABLE_OBJECT_LEVELS_" + parameterSuffix, objectLevelCode); TestUtils.setSystemParameter( KfsParameterConstants.PURCHASING_DOCUMENT.class, "TAXABLE_OBJECT_CONSOLIDATIONS_" + parameterSuffix, consolidationObjectCode); } else { TestUtils.setSystemParameter( KfsParameterConstants.PURCHASING_DOCUMENT.class, "TAXABLE_OBJECT_LEVELS_" + parameterSuffix, INVALID_VALUE); TestUtils.setSystemParameter( KfsParameterConstants.PURCHASING_DOCUMENT.class, "TAXABLE_OBJECT_CONSOLIDATIONS_" + parameterSuffix, INVALID_VALUE); } if (taxTestCaseFixture.isSalesTaxEnabled()) { TestUtils.setSystemParameter( KfsParameterConstants.PURCHASING_DOCUMENT.class, PurapParameterConstants.ENABLE_SALES_TAX_IND, "Y"); } else { TestUtils.setSystemParameter( KfsParameterConstants.PURCHASING_DOCUMENT.class, PurapParameterConstants.ENABLE_SALES_TAX_IND, "N"); } return doc; }