001 /* 002 * Copyright 2011 The Kuali Foundation. 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 package org.kuali.kfs.sys.document.validation.impl; 017 018 import org.apache.commons.lang.StringUtils; 019 import org.kuali.kfs.sys.KFSPropertyConstants; 020 import org.kuali.kfs.sys.businessobject.GeneralLedgerPendingEntry; 021 import org.kuali.kfs.sys.context.SpringContext; 022 import org.kuali.rice.kns.service.DataDictionaryService; 023 024 /** 025 * Holds common constants for all Transaction Processing eDoc rule classes. 026 */ 027 public interface AccountingDocumentRuleBaseConstants { 028 029 // Application parameter lookup constants to be used in conjunction with the grouping constants above 030 public static final class APPLICATION_PARAMETER { 031 public static final String RESTRICTED_OBJECT_CODES = "OBJECT_CODES"; 032 public static final String RESTRICTED_OBJECT_TYPE_CODES = "OBJECT_TYPES"; 033 public static final String RESTRICTED_OBJECT_SUB_TYPE_CODES = "OBJECT_SUB_TYPES"; 034 public static final String RESTRICTED_OBJECT_LEVELS = "OBJECT_LEVELS"; 035 public static final String RESTRICTED_OBJECT_CONSOLIDATIONS = "OBJECT_CONSOLIDATIONS"; 036 public static final String RESTRICTED_FUND_GROUP_CODES = "FUND_GROUPS"; 037 public static final String RESTRICTED_SUB_FUND_GROUP_CODES = "SUB_FUND_GROUPS"; 038 public static final String MANDATORY_TRANSFER_SUBTYPE_CODES = "MANDATORY_TRANSFER_OBJECT_SUB_TYPES"; 039 public static final String NONMANDATORY_TRANSFER_SUBTYPE_CODES = "NON_MANDATORY_TRANSFER_OBJECT_SUB_TYPES"; 040 public static final String FUND_GROUP_BALANCING_SET = "FUND_GROUP_BALANCING_SET"; 041 // doctype parameter 042 public static final String DOCTYPE_SALES_TAX_CHECK = "SALES_TAX_APPLICABLE_DOCUMENT_TYPES"; 043 044 // combination object code and account parameter 045 public static final String SALES_TAX_APPLICABLE_ACCOUNTS_AND_OBJECT_CODES = "SALES_TAX_APPLICABLE_ACCOUNTS_AND_OBJECT_CODES"; 046 } 047 048 /** 049 * Constant to statically define reusable error paths 050 */ 051 public static final class ERROR_PATH { 052 public static final String DELIMITER = "."; 053 public static final String DOCUMENT_ERROR_PREFIX = "document" + DELIMITER; 054 } 055 056 // GLPE KFSConstants 057 public static final class GENERAL_LEDGER_PENDING_ENTRY_CODE { 058 public static final String NO = "N"; 059 public static final String YES = "Y"; 060 private static String BLANK_PROJECT_STRING = null; // Max length is 10 for this field 061 private static String BLANK_SUB_OBJECT_CODE = null; // Max length is 3 for this field 062 private static String BLANK_SUB_ACCOUNT_NUMBER = null; // Max length is 5 for this field 063 private static String BLANK_OBJECT_CODE = null; // Max length is 4 for this field 064 private static String BLANK_OBJECT_TYPE_CODE = null; // Max length is 4 for this field 065 public static final int GLPE_DESCRIPTION_MAX_LENGTH = 40; 066 067 public static String getBlankProjectCode() { 068 if (BLANK_PROJECT_STRING == null) { 069 BLANK_PROJECT_STRING = StringUtils.rightPad("", SpringContext.getBean(DataDictionaryService.class).getAttributeMaxLength(GeneralLedgerPendingEntry.class, KFSPropertyConstants.PROJECT_CODE), '-'); 070 } 071 return BLANK_PROJECT_STRING; 072 } 073 074 public static String getBlankFinancialSubObjectCode() { 075 if (BLANK_SUB_OBJECT_CODE == null) { 076 BLANK_SUB_OBJECT_CODE = StringUtils.rightPad("", SpringContext.getBean(DataDictionaryService.class).getAttributeMaxLength(GeneralLedgerPendingEntry.class, KFSPropertyConstants.FINANCIAL_SUB_OBJECT_CODE), '-'); 077 } 078 return BLANK_SUB_OBJECT_CODE; 079 } 080 081 public static String getBlankSubAccountNumber() { 082 if (BLANK_SUB_ACCOUNT_NUMBER == null) { 083 BLANK_SUB_ACCOUNT_NUMBER = StringUtils.rightPad("", SpringContext.getBean(DataDictionaryService.class).getAttributeMaxLength(GeneralLedgerPendingEntry.class, KFSPropertyConstants.SUB_ACCOUNT_NUMBER), '-'); 084 } 085 return BLANK_SUB_ACCOUNT_NUMBER; 086 } 087 088 public static String getBlankFinancialObjectCode() { 089 if (BLANK_OBJECT_CODE == null) { 090 BLANK_OBJECT_CODE = StringUtils.rightPad("", SpringContext.getBean(DataDictionaryService.class).getAttributeMaxLength(GeneralLedgerPendingEntry.class, KFSPropertyConstants.FINANCIAL_OBJECT_CODE), '-'); 091 } 092 return BLANK_OBJECT_CODE; 093 } 094 095 public static String getBlankFinancialObjectType() { 096 if (BLANK_OBJECT_TYPE_CODE == null) { 097 BLANK_OBJECT_TYPE_CODE = StringUtils.rightPad("", SpringContext.getBean(DataDictionaryService.class).getAttributeMaxLength(GeneralLedgerPendingEntry.class, KFSPropertyConstants.FINANCIAL_OBJECT_TYPE_CODE), '-'); 098 } 099 return BLANK_OBJECT_TYPE_CODE; 100 } 101 } 102 103 // account constants 104 public static final class ACCOUNT_NUMBER { 105 public static final String BUDGET_LEVEL_NO_BUDGET = "N"; 106 } 107 }