001: /*
002: * Copyright 2007 The Kuali Foundation.
003: *
004: * Licensed under the Educational Community License, Version 1.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/ecl1.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.rules;
017:
018: import org.apache.commons.lang.StringUtils;
019: import org.kuali.core.service.DataDictionaryService;
020: import org.kuali.kfs.KFSPropertyConstants;
021: import org.kuali.kfs.bo.GeneralLedgerPendingEntry;
022: import org.kuali.kfs.context.SpringContext;
023:
024: /**
025: * Holds common constants for all Transaction Processing eDoc rule classes.
026: */
027: public interface AccountingDocumentRuleBaseConstants {
028: // Security grouping constants used to do application parameter lookups
029: public static final class APPLICATION_PARAMETER_SECURITY_GROUP {
030: public static final String KUALI_TRANSACTION_PROCESSING_GLOBAL_RULES_SECURITY_GROUPING = "Kuali.FinancialTransactionProcessing.GlobalRules";
031: // WorkGroup for sales tax collection parameters
032: public static final String KUALI_TRANSACTION_PROCESSING_SALES_TAX_COLLECTION_GROUPING = "Kuali.FinancialTransactionProcessing.SalesTaxCollection";
033:
034: }
035:
036: // Application parameter lookup constants to be used in conjunction with the grouping constants above
037: public static final class APPLICATION_PARAMETER {
038: public static final String RESTRICTED_OBJECT_CODES = "OBJECT_CODES";
039: public static final String RESTRICTED_OBJECT_TYPE_CODES = "OBJECT_TYPES";
040: public static final String RESTRICTED_OBJECT_SUB_TYPE_CODES = "OBJECT_SUB_TYPES";
041: public static final String RESTRICTED_OBJECT_LEVELS = "OBJECT_LEVELS";
042: public static final String RESTRICTED_OBJECT_CONSOLIDATIONS = "OBJECT_CONSOLIDATIONS";
043: public static final String RESTRICTED_FUND_GROUP_CODES = "FUND_GROUPS";
044: public static final String RESTRICTED_SUB_FUND_GROUP_CODES = "SUB_FUND_GROUPS";
045: public static final String MANDATORY_TRANSFER_SUBTYPE_CODES = "MANDATORY_TRANSFER_OBJECT_SUB_TYPES";
046: public static final String NONMANDATORY_TRANSFER_SUBTYPE_CODES = "NON_MANDATORY_TRANSFER_OBJECT_SUB_TYPES";
047: public static final String FUND_GROUP_BALANCING_SET = "FUND_GROUP_BALANCING_SET";
048: // doctype parameter
049: public static final String DOCTYPE_SALES_TAX_CHECK = "SALES_TAX_APPLICABLE_DOCUMENT_TYPES";
050:
051: // combination object code and account parameter
052: public static final String SALES_TAX_APPLICABLE_ACCOUNTS_AND_OBJECT_CODES = "SALES_TAX_APPLICABLE_ACCOUNTS_AND_OBJECT_CODES";
053: }
054:
055: /**
056: * Constant to statically define reusable error paths
057: */
058: public static final class ERROR_PATH {
059: public static final String DELIMITER = ".";
060: public static final String DOCUMENT_ERROR_PREFIX = "document"
061: + DELIMITER;
062: }
063:
064: // GLPE KFSConstants
065: public static final class GENERAL_LEDGER_PENDING_ENTRY_CODE {
066: public static final String NO = "N";
067: public static final String YES = "Y";
068: private static String BLANK_PROJECT_STRING = null; // Max length is 10 for this field
069: private static String BLANK_SUB_OBJECT_CODE = null; // Max length is 3 for this field
070: private static String BLANK_SUB_ACCOUNT_NUMBER = null; // Max length is 5 for this field
071: private static String BLANK_OBJECT_CODE = null; // Max length is 4 for this field
072: private static String BLANK_OBJECT_TYPE_CODE = null; // Max length is 4 for this field
073: public static final String GL_PE_OFFSET_STRING = "TP Generated Offset";
074: public static final int GLPE_DESCRIPTION_MAX_LENGTH = 40;
075:
076: public static String getBlankProjectCode() {
077: if (BLANK_PROJECT_STRING == null) {
078: BLANK_PROJECT_STRING = StringUtils
079: .rightPad(
080: "",
081: SpringContext
082: .getBean(
083: DataDictionaryService.class)
084: .getAttributeMaxLength(
085: GeneralLedgerPendingEntry.class,
086: KFSPropertyConstants.PROJECT_CODE),
087: '-');
088: }
089: return BLANK_PROJECT_STRING;
090: }
091:
092: public static String getBlankFinancialSubObjectCode() {
093: if (BLANK_SUB_OBJECT_CODE == null) {
094: BLANK_SUB_OBJECT_CODE = StringUtils
095: .rightPad(
096: "",
097: SpringContext
098: .getBean(
099: DataDictionaryService.class)
100: .getAttributeMaxLength(
101: GeneralLedgerPendingEntry.class,
102: KFSPropertyConstants.FINANCIAL_SUB_OBJECT_CODE),
103: '-');
104: }
105: return BLANK_SUB_OBJECT_CODE;
106: }
107:
108: public static String getBlankSubAccountNumber() {
109: if (BLANK_SUB_ACCOUNT_NUMBER == null) {
110: BLANK_SUB_ACCOUNT_NUMBER = StringUtils
111: .rightPad(
112: "",
113: SpringContext
114: .getBean(
115: DataDictionaryService.class)
116: .getAttributeMaxLength(
117: GeneralLedgerPendingEntry.class,
118: KFSPropertyConstants.SUB_ACCOUNT_NUMBER),
119: '-');
120: }
121: return BLANK_SUB_ACCOUNT_NUMBER;
122: }
123:
124: public static String getBlankFinancialObjectCode() {
125: if (BLANK_OBJECT_CODE == null) {
126: BLANK_OBJECT_CODE = StringUtils
127: .rightPad(
128: "",
129: SpringContext
130: .getBean(
131: DataDictionaryService.class)
132: .getAttributeMaxLength(
133: GeneralLedgerPendingEntry.class,
134: KFSPropertyConstants.FINANCIAL_OBJECT_CODE),
135: '-');
136: }
137: return BLANK_OBJECT_CODE;
138: }
139:
140: public static String getBlankFinancialObjectType() {
141: if (BLANK_OBJECT_TYPE_CODE == null) {
142: BLANK_OBJECT_TYPE_CODE = StringUtils
143: .rightPad(
144: "",
145: SpringContext
146: .getBean(
147: DataDictionaryService.class)
148: .getAttributeMaxLength(
149: GeneralLedgerPendingEntry.class,
150: KFSPropertyConstants.FINANCIAL_OBJECT_TYPE_CODE),
151: '-');
152: }
153: return BLANK_OBJECT_TYPE_CODE;
154: }
155: }
156:
157: // Object Type Code KFSConstants
158: public static final class OBJECT_TYPE_CODE {
159: public static final String DOCUMENT_TYPE_INTERNAL_BILLING = "IB";
160: public static final String DOCUMENT_TYPE_DISTRIBUTION_OF_INCOME_AND_EXPENSE = "DI";
161: public static final String DOCUMENT_TYPE_SERVICE_BILLING = "SB";
162: public static final String DOCUMENT_TYPE_NON_CHECK_DISBURSEMENT = "NC";
163: public static final String DOCUMENT_TYPE_INDIRECT_COST_ADJUSTMENT = "ICA";
164: }
165:
166: // Object Sub-Type Code KFSConstants
167: public static final class OBJECT_SUB_TYPE_CODE {
168: public static final String NON_MANDATORY_TRANSFER = "TN";
169: public static final String MANDATORY_TRANSFER = "MT";
170: public static final String ART_AND_MUSEUM = "AM";
171: public static final String ASSESSMENT = "AS";
172: public static final String ACCOUNT_SUMMARY_OBJECT_CODE = "AC";
173: public static final String ACCOUNTS_RECEIVABLE = "AR";
174: public static final String BLDG = "BD";
175: public static final String BLDG_FED_FUNDED = "BF";
176: public static final String BUDGET_ONLY = "BU";
177: public static final String CASH = "CA";
178: public static final String COST_RECOVERY_EXPENSE = "CE";
179: public static final String CAP_MOVE_EQUIP_FED_FUND = "CF";
180: public static final String CAP_LEASE_PURCHASE = "CL";
181: public static final String CAP_MOVE_EQUIP = "CM";
182: public static final String CAP_MOVE_EQUIP_OTHER_OWN = "CO";
183: public static final String CONSTRUCTION_IN_PROG = "CP";
184: public static final String CAPITAL_LEASE = "C1";
185: public static final String DEPRECIATION = "DR";
186: public static final String EQUIP_STARTUP_COSTS = "ES";
187: public static final String SUBTYPE_FUND_BALANCE = "FB";
188: public static final String FRINGE_BEN = "FR";
189: public static final String HOURLY_WAGES = "HW";
190: public static final String INFRASTRUCTURE = "IF";
191: public static final String INVEST = "IV";
192: public static final String LAND = "LA";
193: public static final String LOSS_DISPOSAL_ASSETS = "LD";
194: public static final String LOSS_ON_DISPOSAL_OF_ASSETS = "LD";
195: public static final String LEASE_IMPROVEMENTS = "LE";
196: public static final String LIBRARY_ACQ = "LI";
197: public static final String LIBRARY_ACQ_FED_FUND = "LF";
198: public static final String LOSS_ON_RETIREMENT_OF_ASSETS = "LO";
199: public static final String NOT_APPLICABLE = "NA";
200: public static final String OTHER_PROVISIONS = "OP";
201: public static final String PLANT_INDEBT = "PI";
202: public static final String PLANT = "PL";
203: public static final String RESERVES = "RE";
204: public static final String SALARIES = "SA";
205: public static final String STATE_APP = "ST";
206: public static final String SALARIES_WAGES = "SW";
207: public static final String TRANSFER_OF_FUNDS = "TF";
208: public static final String UNIV_CONSTRUCTED = "UC";
209: public static final String UNIV_CONSTRUCTED_FED_FUND = "UF";
210: public static final String UNIV_CONSTRUCTED_FED_OWN = "UO";
211: public static final String VALUATIONS_AND_ADJUSTMENTS = "VA";
212: public static final String WRITE_OFF = "WO";
213: public static final String STUDENT_FEES = "SF";
214: }
215:
216: // Object Level Code KFSConstants
217: public static final class OBJECT_LEVEL_CODE {
218: public static final String VALUATIONS_ADJUSTMENTS = "VADJ";
219: public static final String CONTRACT_GRANTS = "C&G";
220: }
221:
222: // Fund Group Code KFSConstants
223: public static final class FUND_GROUP_CODE {
224: public static final String LOAN_FUND = "LF";
225: }
226:
227: // Sub Fund Group Code KFSConstants
228: public static final class SUB_FUND_GROUP_CODE {
229: public static final String CONTINUE_EDUC = "DCEDU";
230: public static final String CODE_EXTAGY = "EXTAGY";
231: public static final String RENEWAL_AND_REPLACEMENT = "PFRR";
232: public static final String CODE_RETIRE_INDEBT = "PFRI";
233: public static final String CODE_INVESTMENT_PLANT = "PFIP";
234: }
235:
236: // Consolidated Object Code KFSConstants
237: public static final class CONSOLIDATED_OBJECT_CODE {
238: public static final String ASSETS = "ASST";
239: public static final String LIABILITIES = "LIAB";
240: public static final String FUND_BALANCE = "FDBL";
241: }
242:
243: // Object Code KFSConstants
244: public static final class OBJECT_CODE {
245: public static final String BURSAR_ACCOUNTS_RECEIVABLES = "8160";
246: public static final String PAYROLL_DEDUCTION_INTERNAL_BENEFITS_ACCOUNTS_RECEIVABLES = "8116";
247: public static final String NON_STUDENT_ACCOUNTS_RECEIVABLES = "8118";
248: public static final String UNAPPLIED_NON_STUDENT_ACCOUNTS_RECEIVABLES = "8015";
249: public static final String NIH_MODULAR_DIRECT_COSTS = "5019";
250: }
251:
252: // account constants
253: public static final class ACCOUNT_NUMBER {
254: public static final String BUDGET_LEVEL_NO_BUDGET = "N";
255: }
256:
257: public static final class EXCEPTIONS {
258: public static final String NULL_OBJECT_SUBTYPE_MESSAGE = "An illegal argument has been passed. Cannot allow (null) subtypes.";
259: }
260: }
|