001/*
002 * The Kuali Financial System, a comprehensive financial management system for higher education.
003 * 
004 * Copyright 2005-2014 The Kuali Foundation
005 * 
006 * This program is free software: you can redistribute it and/or modify
007 * it under the terms of the GNU Affero General Public License as
008 * published by the Free Software Foundation, either version 3 of the
009 * License, or (at your option) any later version.
010 * 
011 * This program is distributed in the hope that it will be useful,
012 * but WITHOUT ANY WARRANTY; without even the implied warranty of
013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
014 * GNU Affero General Public License for more details.
015 * 
016 * You should have received a copy of the GNU Affero General Public License
017 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
018 */
019package org.kuali.kfs.sys;
020
021import java.util.ArrayList;
022import java.util.List;
023
024import org.apache.commons.lang.StringUtils;
025import org.apache.log4j.Layout;
026import org.apache.log4j.PatternLayout;
027import org.kuali.kfs.gl.businessobject.OriginEntryFull;
028import org.kuali.kfs.sys.KfsAuthorizationConstants.DisbursementVoucherEditMode;
029import org.kuali.kfs.sys.context.SpringContext;
030import org.kuali.rice.core.api.config.property.Config;
031import org.kuali.rice.core.api.util.type.KualiDecimal;
032import org.kuali.rice.core.api.util.type.KualiInteger;
033import org.kuali.rice.kew.api.KewApiConstants;
034import org.kuali.rice.kim.api.KimConstants.PermissionTemplateNames;
035import org.kuali.rice.kns.service.DataDictionaryService;
036import org.kuali.rice.krad.bo.DocumentHeader;
037import org.kuali.rice.krad.util.KRADConstants;
038
039/**
040 * This class is used to define global constants.
041 */
042public class KFSConstants {
043    private static final long serialVersionUID = 2882277719647128949L;
044
045    public static final String APPLICATION_NAMESPACE_CODE = "KFS";
046
047    public static final String KFS_CORE_SERVICE_NAMESPACE = "http://kfs.kuali.org/core/v5_0";
048
049    public final static String REPORT_TITLE = "reportTitle";
050
051    public static final String ERROR_CORRECTION_EDITING_MODE = "errorCorrection";
052
053    @Deprecated // Please switch all references to KFSConstants.CoreModuleNamespaces
054    public static class ParameterNamespaces {
055        public static final String KFS = "KFS-SYS";
056        public static final String CHART = "KFS-COA";
057        public static final String FINANCIAL = "KFS-FP";
058        public static final String GL = "KFS-GL";
059        public static final String VENDOR = "KFS-VND";
060        public static final String PDP = "KFS-PDP";
061        public static final String KNS = KRADConstants.KNS_NAMESPACE;
062        public static final String ACCESS_SECURITY = "KFS-SEC";
063    }
064
065    public static class CoreModuleNamespaces {
066        public static final String KFS = "KFS-SYS";
067        public static final String CHART = "KFS-COA";
068        public static final String FINANCIAL = "KFS-FP";
069        public static final String GL = "KFS-GL";
070        public static final String VENDOR = "KFS-VND";
071        public static final String PDP = "KFS-PDP";
072        public static final String KNS = KRADConstants.KNS_NAMESPACE;
073        public static final String ACCESS_SECURITY = "KFS-SEC";
074    }
075
076    // for ease of reference, a list of the optional modules delivered with and supported by the KFS project
077    public static final class OptionalModuleNamespaces {
078        public static final String LABOR_DISTRIBUTION = "KFS-LD";
079        public static final String PURCHASING_ACCOUNTS_PAYABLE = "KFS-PURAP";
080        public static final String CAPITAL_ASSET = "KFS-CAM";
081        public static final String CAPITAL_ASSET_BUILDER = "KFS-CAB";
082        public static final String ACCOUNTS_RECEIVABLE = "KFS-AR";
083        public static final String EFFORT_COMMITTMENT = "KFS-EC";
084        public static final String BUDGET_CONSTRUCTION = "KFS-BC";
085        public static final String CONTRACTS_AND_GRANTS = "KFS-CG";
086    }
087
088    // special user used in the post-processor
089    //TODO: eventually this should be removed and the system user should be pulled from a parameter
090    // right now, you HAVE to make sure that a 'kfs' user exists in your system, either in the DB
091    // or in an external system such as LDAP if implemented
092    public static final String SYSTEM_USER = "kfs";
093
094    public static final String ENVIRONMENT_KEY = "environment";
095    public static final String LOG4J_SETTINGS_FILE_KEY = "log4j.settings.file";
096    public static final String LOG4J_RELOAD_MINUTES_KEY = "log4j.reload.minutes";
097    public static final String APPLICATION_URL_KEY = "application.url";
098    public static final String TEMPLATES_DIRECTORY_KEY = "templates.directory";
099    public static final String TEMP_DIRECTORY_KEY = "temp.directory";
100    public static final String EXTERNALIZABLE_HELP_URL_KEY = KRADConstants.EXTERNALIZABLE_HELP_URL_KEY;
101    public static final String EXTERNALIZABLE_IMAGES_URL_KEY = "externalizable.images.url";
102    public static final String RICE_EXTERNALIZABLE_IMAGES_URL_KEY = KRADConstants.EXTERNALIZABLE_IMAGES_URL_KEY;
103    public static final String KC_APPLICATION_URL_KEY = "kc.application.url";
104    public static final String REPORTS_DIRECTORY_KEY = "reports.directory";
105    public static final String WORKFLOW_URL_KEY = Config.KEW_URL;
106    public static final String PROD_ENVIRONMENT_CODE_KEY = Config.PROD_ENVIRONMENT_CODE;
107    public static final String BATCH_FILE_LOOKUP_ROOT_DIRECTORIES = "batch.file.lookup.root.directories";
108    public static final String BATCH_UPLOAD_HELP_SYS_PARAM_NAME = "BATCH_UPLOAD_HELP_URL";
109    public static final String CONTRACTS_GRANTS_BILLING_ENABLED = "contracts.grants.billing.enabled";
110
111    public static final String LOOKUP_RESULTS_LIMIT_URL_KEY = "RESULTS_LIMIT";
112
113    /**
114     * @deprecated please use the version in KFSPropertyConstants.ACCOUNT_NUMBER
115     */
116    @Deprecated
117    public static final String ACCOUNT_NUMBER_PROPERTY_NAME = "accountNumber";
118    public static final String ACCOUNTING_PERIOD_ACTIVE_INDICATOR_FIELD = "active";
119    public static final String ACTION_FORM_UTIL_MAP_METHOD_PARM_DELIMITER = "~";
120    public static final String ADD_LINE_METHOD = "addLine";
121    public static final String ADD_PREFIX = "add";
122    public static final String ACTIVE_INDICATOR = "Y";
123    /**
124     * @deprecated pull from SystemOptions table
125     */
126    @Deprecated
127    public static final String AGGREGATE_ENCUMBRANCE_BALANCE_TYPE_CODE = "EN";
128    public static final String AMOUNT_PROPERTY_NAME = "amount";
129    public static final String APPROVE_METHOD = "approve";
130    @Deprecated
131    public static final String NON_ACTIVE_INDICATOR = "N";
132    public static final String BLANK_SPACE = " ";
133    public static final String BACK_LOCATION = "backLocation";
134    @Deprecated
135    // Move to GL constants
136    public static final String BALANCE_INQUIRY_REPORT_MENU_ACTION = "balanceInquiryReportMenu.do";
137    /**
138     * @deprecated pull from SystemOptions table
139     */
140    @Deprecated
141    public static final String BALANCE_TYPE_CURRENT_BUDGET = "CB";
142    /**
143     * @deprecated pull from SystemOptions table
144     */
145    @Deprecated
146    public static final String BALANCE_TYPE_BASE_BUDGET = "BB";
147    /**
148     * @deprecated pull from SystemOptions table
149     */
150    @Deprecated
151    public static final String BALANCE_TYPE_MONTHLY_BUDGET = "MB";
152    /**
153     * @deprecated pull from SystemOptions table
154     */
155    @Deprecated
156    public static final String BALANCE_TYPE_EXTERNAL_ENCUMBRANCE = "EX";
157    /**
158     * @deprecated pull from SystemOptions table
159     */
160    @Deprecated
161    public static final String BALANCE_TYPE_INTERNAL_ENCUMBRANCE = "IE";
162    /**
163     * @deprecated pull from SystemOptions table
164     */
165    @Deprecated
166    public static final String BALANCE_TYPE_COST_SHARE_ENCUMBRANCE = "CE";
167    /**
168     * @deprecated pull from SystemOptions table
169     */
170    @Deprecated
171    public static final String BALANCE_TYPE_ACTUAL = "AC";
172    @Deprecated
173    public static final String BALANCE_TYPE_AUDIT_TRAIL = "NB";
174    @Deprecated
175    public static final String BALANCE_TYPE_A21 = "A2";
176    @Deprecated
177    public static final String BALANCE_TYPE_PRE_ENCUMBRANCE = "PE";
178    public static final String BLANKET_APPROVE_METHOD = "blanketApprove";
179    public static final String BUSINESS_OBJECT_CLASS_ATTRIBUTE = "businessObjectClassName";
180    public static final String CASH_MANAGEMENT_DOCUMENT_ACTION = "financialCashManagement.do";
181    public static final String CHANGE_JOURNAL_VOUCHER_BALANCE_TYPE_METHOD = "changeBalanceType";
182    @Deprecated
183    public static final String CHART_OF_ACCOUNTS_CODE_PROPERTY_NAME = KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE;
184    public static final String CONFIRMATION_QUESTION = "confirmationQuestion";
185    public static final String CONVERSION_FIELDS_PARAMETER = "conversionFields";
186    public static final String LOOKUP_READ_ONLY_FIELDS = "readOnlyFields";
187    public static final String LOOKUP_AUTO_SEARCH = "autoSearch";
188    public static final String OBJECT_SUB_TYPES_DIFFERENT_QUESTION = "Object Subtypes different Question";
189
190    @Deprecated
191    public static final String CREDIT_AMOUNT_PROPERTY_NAME = "newSourceLineCredit";
192    @Deprecated
193    public static final String DEBIT_AMOUNT_PROPERTY_NAME = "newSourceLineDebit";
194    public static final String DELETE_LINE_METHOD = "deleteLine";
195    public static final String DISBURSEMENT_VOUCHER_PDP_EXTRACT_FILE_NAME = "extr_fr_disb_voucher";
196    public static final String DISENCUMBRANCE = "Disencumbrance";
197    public static final String DISPATCH_REQUEST_PARAMETER = "methodToCall";
198    public static final String DOC_FORM_KEY = "docFormKey";
199    public static final String FORM_KEY = "formKey";
200    public static final String BALANCE_INQUIRY_REPORT_MENU_CALLER_DOC_FORM_KEY = "balanceInquiryReportMenuCallerDocFormKey";
201    public static final String ASSET_INQUIRY_CALLER_DOC_FORM_KEY = "assetInquiryCallerDocFormKey";
202    public static final String DOCUMENT_CANCEL_QUESTION = "DocCancel";
203    public static final String DOCUMENT_DELETE_QUESTION = "DocDelete";
204    public static final String DOCUMENT_HEADER_ID = "documentHeaderId";
205    public static final String DOCUMENT_HEADER_DOCUMENT_STATUS_CODE_PROPERTY_NAME = "financialDocumentStatusCode";
206    public static final String NOTE_TEXT_PROPERTY_NAME = "noteText";
207    public static final String DOCUMENT_HEADER_PROPERTY_NAME = "documentHeader";
208    public static final String DOCUMENT_SAVE_BEFORE_CLOSE_QUESTION = "DocSaveBeforeClose";
209    @Deprecated
210    public static final String EMPLOYEE_ACTIVE_STATUS = "A";
211    public static final String EXISTING_SOURCE_ACCT_LINE_PROPERTY_NAME = "sourceAccountingLine";
212    public static final String EXISTING_TARGET_ACCT_LINE_PROPERTY_NAME = "targetAccountingLine";
213    public static final String SOURCE_ACCT_LINE_TYPE_CODE = "F"; // F = From, the label for this on most documents
214    public static final String TARGET_ACCT_LINE_TYPE_CODE = "T"; // T = To, the label for this on most documents
215    public static final String NEW_DOCUMENT_NOTE_PROPERTY_NAME = "newDocumentNote";
216    public static final String NEW_SOURCE_ACCT_LINE_PROPERTY_NAME = KFSPropertyConstants.NEW_SOURCE_LINE;
217    public static final String NEW_TARGET_ACCT_LINES_PROPERTY_NAME = KFSPropertyConstants.NEW_TARGET_LINE + "s";
218    public static final String NEW_TARGET_ACCT_LINE_PROPERTY_NAME = KFSPropertyConstants.NEW_TARGET_LINE;
219    public static final String DOCUMENT_PROPERTY_NAME = "document";
220    public static final String DOCUMENT_TYPE_NAME = "docTypeName";
221    public static final String DOCUMENT_TYPE_FULL_NAME = "docTypeFullName";
222    public static final String DASH = "-";
223    public static final String EMPTY_STRING = "";
224    public static final String ENCUMBRANCE = "Encumbrance";
225    public static final String EXPENSE = "Expense";
226    public static final String FIELD_CONVERSION_PAIR_SEPERATOR = ":";
227    public static final String FIELD_CONVERSIONS_SEPERATOR = ",";
228    @Deprecated
229    public static final String FINANCIAL_OBJECT_CODE_PROPERTY_NAME = KFSPropertyConstants.FINANCIAL_OBJECT_CODE;
230    @Deprecated
231    public static final String FINANCIAL_OBJECT_LEVEL_CODE_PROPERTY_NAME = KFSPropertyConstants.FINANCIAL_OBJECT_LEVEL_CODE;
232    @Deprecated
233    public static final String FINANCIAL_SUB_OBJECT_CODE_PROPERTY_NAME = KFSPropertyConstants.FINANCIAL_SUB_OBJECT_CODE;
234    public static final String FROM = "From";
235    public static final String GENERIC_CODE_PROPERTY_NAME = "code";
236    public static final String GL_BALANCE_INQUIRY_FLAG = "inquiryFlag";
237    @Deprecated
238    // Move to GL constants
239    public static final String GL_ACCOUNT_BALANCE_BY_CONSOLIDATION_LOOKUP_ACTION = "glAccountBalanceByConsolidationLookup.do";
240    @Deprecated
241    // Move to GL constants
242    public static final String GL_BALANCE_INQUIRY_ACTION = "glBalanceInquiry.do";
243    @Deprecated
244    // Move to GL constants
245    public static final String GL_MODIFIED_INQUIRY_ACTION = "glModifiedInquiry.do";
246    @Deprecated
247    // Move to GL constants
248    public static final String GL_PE_OFFSET_STRING = "TP Generated Offset";
249    @Deprecated
250    public static final String SUB_OBJECT_CODE_PROPERTY_NAME = KFSPropertyConstants.SUB_OBJECT_CODE;
251    @Deprecated
252    public static final String UNIVERSITY_FISCAL_YEAR_PROPERTY_NAME = KFSPropertyConstants.UNIVERSITY_FISCAL_YEAR;
253    @Deprecated
254    public static final String UNIVERSITY_FISCAL_PERIOD_CODE_PROPERTY_NAME = KFSPropertyConstants.UNIVERSITY_FISCAL_PERIOD_CODE;
255    @Deprecated
256    public static final String FINANCIAL_BALANCE_TYPE_CODE_PROPERTY_NAME = KFSPropertyConstants.FINANCIAL_BALANCE_TYPE_CODE;
257    @Deprecated
258    public static final String ACCOUNT_SUFFICIENT_FUNDS_CODE_PROPERTY_NAME = KFSPropertyConstants.ACCOUNT_SUFFICIENT_FUNDS_CODE;
259    @Deprecated
260    public static final String CURRENT_BUDGET_BALANCE_AMOUNT_PROPERTY_NAME = "currentBudgetBalanceAmount";
261    @Deprecated
262    public static final String ACCOUNT_ENCUMBRANCE_AMOUNT_PROPERTY_NAME = "accountEncumbranceAmount";
263    @Deprecated
264    public static final String TRANSACTION_DEBIT_CREDIT_CODE = KFSPropertyConstants.TRANSACTION_DEBIT_CREDIT_CODE;
265    @Deprecated
266    public static final String TRANSACTION_LEDGER_ENTRY_AMOUNT = KFSPropertyConstants.TRANSACTION_LEDGER_ENTRY_AMOUNT;
267    @Deprecated
268    public static final String ACCOUNT_SUFFICIENT_FUNDS_FINANCIAL_OBJECT_CODE_PROPERTY_NAME = KFSPropertyConstants.ACCT_SUFFICIENT_FUNDS_FIN_OBJ_CD;
269    @Deprecated
270    public static final String FINANCIAL_OBJECT_TYPE_CODE = KFSPropertyConstants.FINANCIAL_OBJECT_TYPE_CODE;
271    @Deprecated
272    public static final String FINANCIAL_DOCUMENT_TYPE_CODE = KFSPropertyConstants.FINANCIAL_DOCUMENT_TYPE_CODE;
273    @Deprecated
274    public static final String ORGANIZATION_CODE_PROPERTY_NAME = KFSPropertyConstants.ORGANIZATION_CODE;
275    public static final String ORIGIN_CODE_KUALI = "01";
276    @Deprecated
277    public static final String TRANSFER_FUNDS = "TF";
278    public static final String OVERRIDE_KEYS = "overrideKeys";
279    public static final String PERCENTAGE_SIGN = "%";
280    public static final String RICE_PATH_PREFIX = "kr/";
281    public static final String USE_CONTINUATION_BANK_QUESTION = "UseContinuationBankQuestion";
282    public static final String NEW_WINDOW_URL_TARGET = "_blank";
283    public static final String AND = "and";
284    public static final String COMMA = ",";
285    public static final String PERFORMANCE_BALANCE_INQUIRY_FOR_METHOD = "performBalanceInquiryFor";
286    public static final String INSERT_METHOD = "insert";
287    public static final String SOURCE_ACCOUNTING_LINES_GROUP_NAME = "source";
288    public static final String TARGET_ACCOUNTING_LINES_GROUP_NAME = "target";
289    public static final String SUB_ACCOUNT_EDIT_CG_ICR_SECTION_ID = "Edit CG ICR";
290
291    public static final String SCRIPT_CONFIGURATION_FILES_LIST_NAME = "scriptConfigurationFilePaths";
292    /**
293     * This value denotes that a max length has not been defined for a given lookup results field
294     */
295    public static final int LOOKUP_RESULT_FIELD_MAX_LENGTH_NOT_DEFINED = -1;
296
297    /**
298     * The number of levels BusinessObjectDictionaryServiceImpl will recurse. If this number is high, it may lead to serious
299     * performance problems
300     */
301    public static final int BUSINESS_OBJECT_DICTIONARY_SERVICE_PERFORM_FORCE_UPPERCASE_RECURSION_MAX_DEPTH = 3;
302
303
304    /**
305     * When checkboxes are rendered on the form, a hidden field will also be rendered corresponding to each checkbox with the
306     * checkbox's name suffixed with the value of this constant. No real fields should have names that contain this suffix, since
307     * this may lead to undesired results.
308     */
309    public static final String CHECKBOX_PRESENT_ON_FORM_ANNOTATION = "{CheckboxPresentOnFormAnnotation}";
310
311    public static class OrgReversion {
312        public static final String VALID_PREFIX = "EXTENDED_DEFINITIONS_INCLUDE_";
313        public static final String INVALID_PREFIX = "EXTENDED_DEFINITIONS_EXCLUDE_";
314        public static final String OBJECT_CONSOL_PARAM_SUFFIX = "OBJECT_CONSOLIDATIONS_BY_ORGANIZATION_REVERSION_CATEGORY";
315        public static final String OBJECT_LEVEL_PARAM_SUFFIX = "OBJECT_LEVELS_BY_ORGANIZATION_REVERSION_CATEGORY";
316        public static final String OBJECT_TYPE_PARAM_SUFFIX = "OBJECT_TYPES_BY_ORGANIZATION_REVERSION_CATEGORY";
317        public static final String OBJECT_SUB_TYPE_PARAM_SUFFIX = "OBJECT_SUB_TYPES_BY_ORGANIZATION_REVERSION_CATEGORY";
318        public static final String IS_EXPENSE_PARAM = "EXTENDED_DEFINITIONS_EXPENSE_CATEGORIES";
319    }
320
321    // CR doc properties
322    public static final String NEW_CHECK_PROPERTY_NAME = "newCheck";
323    public static final String EXISTING_CHECK_PROPERTY_NAME = "check";
324
325    public static final int DOCUMENT_ANNOTATION_MAX_LENGTH = 2000;
326
327    // TRN_LDGR_DEBIT_CRDT_CD valid values
328    public static final String GL_DEBIT_CODE = "D";
329    public static final String GL_CREDIT_CODE = "C";
330    public static final String GL_BUDGET_CODE = " ";
331
332    // TRN_ENCUM_UPDT_CD value values
333    public static final String ENCUMB_UPDT_DOCUMENT_CD = "D";
334    public static final String ENCUMB_UPDT_REFERENCE_DOCUMENT_CD = "R";
335    public static final String ENCUMB_UPDT_NO_ENCUMBRANCE_CD = "N";
336
337    // GL Reversal Generated Entry Description Prefix
338    public static final String GL_REVERSAL_DESCRIPTION_PREFIX = "AUTO REVERSAL-";
339
340    // Misc GL text.
341    public static final String PLANT_INDEBTEDNESS_ENTRY_DESCRIPTION = "GENERATED TRANSFER TO NET PLANT";
342
343    // Sufficient Funds Type Codes
344    public static final String SF_TYPE_NO_CHECKING = "N";
345    public static final String SF_TYPE_OBJECT = "O";
346    public static final String SF_TYPE_LEVEL = "L";
347    public static final String SF_TYPE_CONSOLIDATION = "C";
348    public static final String SF_TYPE_CASH_AT_ACCOUNT = "H";
349    public static final String SF_TYPE_ACCOUNT = "A";
350
351    public static final String GRANT = "Grant";
352    public static final String HIDE_LOOKUP_RETURN_LINK = "hideReturnLink";
353    public static final String SUPPRESS_ACTIONS = "suppressActions";
354    public static final String REFERENCES_TO_REFRESH = "referencesToRefresh";
355    public static final String INCOME = "Income";
356    public static final String INITIAL_KUALI_DOCUMENT_STATUS_CD = "?";
357    public static final String INSERT_SOURCE_LINE_METHOD = "insertSourceLine";
358    public static final String INSERT_TARGET_LINE_METHOD = "insertTargetLine";
359    public static final String ICR = "Receipt";
360    public static final String PROJECT_CODE_PROPERTY_NAME = "projectCode";
361
362    public static final String INQUIRY_ACTION = "kr/inquiry.do";
363    public static final String JOURNAL_VOUCHER_CHANGE_BALANCE_TYPE_QUESTION = "JournalVoucherChangeBalanceTypeQuestion";
364    public static final String JOURNAL_VOUCHER_ROUTE_OUT_OF_BALANCE_DOCUMENT_QUESTION = "JournalVoucherRouteOutOfBalanceDocumentQuestion";
365    public static final String JOURNAL_LINE_HELPER_PROPERTY_NAME = "journalLineHelper";
366    public static final String AUXILIARY_LINE_HELPER_PROPERTY_NAME = "auxiliaryLineHelper";
367    public static final String VOUCHER_LINE_HELPER_CREDIT_PROPERTY_NAME = ".credit";
368    public static final String VOUCHER_LINE_HELPER_DEBIT_PROPERTY_NAME = ".debit";
369    public static final String LOOKUP_ACTION = "kr/lookup.do";
370    public static final String LOOKUP_RESULTS_SEQUENCE_NUMBER = "lookupResultsSequenceNumber";
371    public static final String LOOKUP_RESULTS_BO_CLASS_NAME = "lookupResultsBOClassName";
372    public static final String LOOKED_UP_COLLECTION_NAME = "lookedUpCollectionName";
373    public static final String MULTIPLE_VALUE_LOOKUP_PREVIOUSLY_SELECTED_OBJ_IDS_PARAM = "previouslySelectedObjectIds";
374    public static final String MULTIPLE_VALUE_LOOKUP_DISPLAYED_OBJ_ID_PARAM_PREFIX = "displayedObjId-";
375    public static final String MULTIPLE_VALUE_LOOKUP_SELECTED_OBJ_ID_PARAM_PREFIX = "selectedObjId-";
376    public static final String LOOKUP_ANCHOR = "lookupAnchor";
377    public static final String LOOKUPABLE_IMPL_ATTRIBUTE_NAME = "lookupableImplServiceName";
378    public static final String LOOKUPABLE_SUFFIX = "Lookupable";
379    public static final String KUALI_LOOKUPABLE_IMPL = "kualiLookupable";
380    public static final String KUALI_DISBURSEMENT_PAYEE_LOOKUPABLE_IMPL = "disbursementPayeeLookupable";
381    public static final String KUALI_VENDOR_ADDRESS_LOOKUPABLE_IMPL = "vendorAddressLookupable";
382    public static final String DOC_HANDLER_ACTION = "DocHandler.do";
383    public static final String DOC_HANDLER_METHOD = "docHandler";
384    public static final String PARAMETER_DOC_ID = "docId";
385    public static final String PARAMETER_COMMAND = "command";
386    public static final String METHOD_DISPLAY_DOC_SEARCH_VIEW = "displayDocSearchView";
387    public static final String MAINTENANCE_ACTION = "maintenance.do";
388    public static final String MAINTENANCE_ADD_PREFIX = "add.";
389    public static final String MAINTENANCE_COPY_ACTION = "Copy";
390    public static final String MAINTENANCE_EDIT_ACTION = "Edit";
391    public static final String MAINTENANCE_NEW_ACTION = "New";
392    public static final String MAINTENANCE_COPY_METHOD_TO_CALL = "copy";
393    public static final String MAINTENANCE_EDIT_METHOD_TO_CALL = "edit";
394    public static final String MAINTENANCE_NEW_METHOD_TO_CALL = "start";
395    public static final String MAINTENANCE_NEWWITHEXISTING_ACTION = "newWithExisting";
396    public static final String MAINTENANCE_NEW_MAINTAINABLE = "document.newMaintainableObject.";
397    public static final String MAINTENANCE_OLD_MAINTAINABLE = "document.oldMaintainableObject.";
398    public static final String MAPPING_BASIC = "basic";
399    public static final String MAPPING_CANCEL = "cancel";
400    public static final String MAPPING_CLOSE = "close";
401    public static final String MAPPING_ERROR = "error";
402    public static final String MAPPING_PORTAL = "portal";
403    public static final String MAPPING_BALANCE_INQUIRY_REPORT_MENU = "balanceInquiryReportMenu";
404    public static final String MAPPING_DV_PER_DIEM_LINKS = "dvPerDiemLinks";
405    public static final String METHOD_TO_CALL_ATTRIBUTE = "methodToCallAttribute";
406    public static final String METHOD_TO_CALL_PATH = "methodToCallPath";
407    public static final String METHOD_TO_CALL_BOPARM_LEFT_DEL = "(!!";
408    public static final String METHOD_TO_CALL_BOPARM_RIGHT_DEL = "!!)";
409    public static final String METHOD_TO_CALL_PARM1_LEFT_DEL = "(((";
410    public static final String METHOD_TO_CALL_PARM1_RIGHT_DEL = ")))";
411    public static final String METHOD_TO_CALL_PARM2_LEFT_DEL = "((#";
412    public static final String METHOD_TO_CALL_PARM2_RIGHT_DEL = "#))";
413    public static final String METHOD_TO_CALL_PARM3_LEFT_DEL = "((<";
414    public static final String METHOD_TO_CALL_PARM3_RIGHT_DEL = ">))";
415    public static final String METHOD_TO_CALL_PARM4_LEFT_DEL = "(([";
416    public static final String METHOD_TO_CALL_PARM4_RIGHT_DEL = "]))";
417    public static final String METHOD_TO_CALL_PARM5_LEFT_DEL = "((*";
418    public static final String METHOD_TO_CALL_PARM5_RIGHT_DEL = "*))";
419    public static final String METHOD_TO_CALL_PARM6_LEFT_DEL = "((%";
420    public static final String METHOD_TO_CALL_PARM6_RIGHT_DEL = "%))";
421    public static final String METHOD_TO_CALL_PARM7_LEFT_DEL = "((^";
422    public static final String METHOD_TO_CALL_PARM7_RIGHT_DEL = "^))";
423    public static final String METHOD_TO_CALL_PARM8_LEFT_DEL = "((&";
424    public static final String METHOD_TO_CALL_PARM8_RIGHT_DEL = "&))";
425    public static final String METHOD_TO_CALL_PARM9_LEFT_DEL = "((~";
426    public static final String METHOD_TO_CALL_PARM9_RIGHT_DEL = "~))";
427    public static final String METHOD_TO_CALL_PARM10_LEFT_DEL = "((/";
428    public static final String METHOD_TO_CALL_PARM10_RIGHT_DEL = "/))";
429    public static final String METHOD_TO_CALL_PARM11_LEFT_DEL = "(:;";
430    public static final String METHOD_TO_CALL_PARM11_RIGHT_DEL = ";:)";
431    public static final String METHOD_TO_CALL_PARM12_LEFT_DEL = "(::;";
432    public static final String METHOD_TO_CALL_PARM12_RIGHT_DEL = ";::)";
433    public static final String METHOD_TO_CALL_PARM13_LEFT_DEL = "(:::;";
434    public static final String METHOD_TO_CALL_PARM13_RIGHT_DEL = ";:::)";
435    // if more strings needed, then add more colons to the PARM11 strings above, e.g. (::; (:::;, etc.
436
437    public final static long MILLSECONDS_PER_DAY = 24 * 60 * 60 * 1000;
438
439    public static final String ACTION_EXTENSION_DOT_DO = ".do";
440    public static final String ANCHOR = "anchor";
441    public static final String ANCHOR_TOP_OF_FORM = "topOfForm";
442    public static final String NOT_AVAILABLE_STRING = "N/A";
443    public static final int NEGATIVE_ONE = -1;
444    @Deprecated
445    public static final String OBJECT_TYPE_CODE_PROPERTY_NAME = KFSPropertyConstants.OBJECT_TYPE_CODE;
446    public static final String QUESTION_CLICKED_BUTTON = "buttonClicked";
447    public static final String QUESTION_INST_ATTRIBUTE_NAME = "questionIndex";
448    public static final String QUESTION_REFRESH = "QuestionRefresh";
449    public static final String QUESTION_CONTEXT = "context";
450    public static final String QUESTION_REASON_ATTRIBUTE_NAME = "reason";
451    public static final String RELOAD_METHOD_TO_CALL = "reload";
452    public static final String REFRESH_CALLER = "refreshCaller";
453    public static final String REQUIRED_FIELD_SYMBOL = "*";
454    public static final String RETURN_LOCATION_PARAMETER = "returnLocation";
455    public static final String RETURN_METHOD_TO_CALL = "refresh";
456    public static final String ROUTE_METHOD = "route";
457    public static final String SAVE_METHOD = "save";
458    public static final String START_METHOD = "start";
459    public static final String SEARCH_METHOD = "search";
460    public static final String COPY_METHOD = "copy";
461    public static final String INITIATE_METHOD = "initiate";
462    public static final String ERRORCORRECT_METHOD = "correct";
463    public static final String SOURCE = "Source";
464    public static final String SQUARE_BRACKET_LEFT = "[";
465    public static final String SQUARE_BRACKET_RIGHT = "]";
466    @Deprecated
467    public static final String SUB_ACCOUNT_NUMBER_PROPERTY_NAME = KFSPropertyConstants.SUB_ACCOUNT_NUMBER;
468    public static final String TARGET = "Target";
469    public static final String TO = "To";
470    public static final String USER_SESSION_KEY = "UserSession";
471    public static final String VERSION_NUMBER = "versionNumber";
472
473    public static final String SEARCH_LIST_REQUEST_KEY = "searchResultKey";
474
475    public static final int CORRECTION_RECENT_GROUPS_DAY = 10;
476
477    public static final String GLOBAL_ERRORS = "GLOBAL_ERRORS";
478    public static final String GLOBAL_MESSAGES = "GlobalMessages";
479    public static final String DOCUMENT_DOCUMENT_ERRORS = "document.document*";
480    public static final String DOCUMENT_EXPLANATION_ERRORS = "document.explanation*";
481    public static final String DOCUMENT_REVERSAL_ERRORS = "document.reversal*";
482    public static final String DOCUMENT_SELECTED_ERRORS = "document.selected*";
483    public static final String DOCUMENT_HEADER_ERRORS = "document.header*";
484    public static final String DOCUMENT_ERRORS_LESS_DOCUMENT = DOCUMENT_EXPLANATION_ERRORS + "," + DOCUMENT_REVERSAL_ERRORS + "," + DOCUMENT_SELECTED_ERRORS + "," + DOCUMENT_HEADER_ERRORS;
485    public static final String DOCUMENT_ERRORS = DOCUMENT_DOCUMENT_ERRORS + "," + DOCUMENT_EXPLANATION_ERRORS + "," + DOCUMENT_REVERSAL_ERRORS + "," + DOCUMENT_SELECTED_ERRORS + "," + DOCUMENT_HEADER_ERRORS;
486    public static final String DOCUMENT_NOTES_ERRORS = "newDocumentNote*";
487
488    public enum NoteTypeEnum {
489        BUSINESS_OBJECT_NOTE_TYPE("BO", "documentBusinessObject"), DOCUMENT_HEADER_NOTE_TYPE("DH", "documentHeader");
490        private String noteTypeCode;
491        private String noteTypePath;
492
493        private NoteTypeEnum(String noteTypeCode, String noteTypePath) {
494            this.noteTypeCode = noteTypeCode;
495            this.noteTypePath = noteTypePath;
496        }
497
498        public String getCode() {
499            return this.noteTypeCode;
500        }
501
502        public String getPath() {
503            return this.noteTypePath;
504        }
505
506        public String getFullPath() {
507            return KFSConstants.DOCUMENT_PROPERTY_NAME + "." + getPath();
508        }
509    }
510
511    public static final String EDIT_JOURNAL_VOUCHER_ERRORS = "EditJournalVoucherErrors";
512    public static final String EDIT_AUXILIARY_VOUCHER_ERRORS = "EditAuxiliaryVoucherErrors";
513    public static final String EDIT_PRE_ENCUMBRANCE_ERRORS = "EditPreEncumbranceErrors";
514
515    public static final String ACCOUNTING_LINE_ERRORS = "document.accountingLines";
516
517    //cannot use SOURCE_ACCOUNTING_LINE_ERROR_PATTERN due to doubled error displayed in checking already added source accounting line
518    public static final String NEW_SOURCE_LINE_ERRORS = "newSourceLine*";
519    public static final String SOURCE_ACCOUNTING_LINE_ERROR_PATTERN = "document.sourceAccounting*,sourceAccountingLines,newSourceLine*,journalLineHelper*,auxiliaryLineHelper*";
520    public static final String NEW_TARGET_LINE_ERRORS = "newTargetLine*";
521    public static final String TARGET_ACCOUNTING_LINE_ERROR_PATTERN = "document.targetAccounting*,targetAccountingLines,newTargetLine*";
522    public static final String ACCOUNTING_LINE_GROUP_SUFFIX = "s";
523    public static final String SOURCE_ACCOUNTING_LINE_ERRORS = EXISTING_SOURCE_ACCT_LINE_PROPERTY_NAME + ACCOUNTING_LINE_GROUP_SUFFIX;
524    public static final String TARGET_ACCOUNTING_LINE_ERRORS = EXISTING_TARGET_ACCT_LINE_PROPERTY_NAME + ACCOUNTING_LINE_GROUP_SUFFIX;
525    public static final String ITEM_LINE_ERRORS = "newItem*,document.item*";
526
527    public static final String CREDIT_CARD_RECEIPTS_LINE_ERRORS = "newCreditCardReceipt*,document.creditCardReceipt*";
528    public static final String ADVANCE_DEPOSITS_LINE_ERRORS = "newAdvanceDeposit*,document.advanceDeposit*";
529    public static final String GENERAL_LEDGER_PENDING_ENTRIES_TAB_ERRORS = "document.generalLedgerPendingEntr*";
530    public static final String BUDGET_CONSTRUCTION_SALARY_SETTING_TAB_ERRORS = "document.budgetConstructionSalarySetting*";
531    public static final String BUDGET_CONSTRUCTION_REVENUE_TAB_ERRORS = "document.budgetConstructionRevenue*";
532    public static final String BUDGET_CONSTRUCTION_EXPENDITURE_TAB_ERRORS = "document.budgetConstructionExpenditure*";
533    public static final String BUDGET_CONSTRUCTION_MONTHLY_BUDGET_ERRORS = "document.budgetConstructionMonthlyBudget*";
534
535    public static final String WILDCARD_CHARACTER = "*";
536    public static final String WILDCARD_NOT_ALLOWED_ON_FIELD = "error.fieldDoNotAllowWildcard";
537
538    // disbursement voucher error fields
539    public static final String DV_PAYEE_TAB_ERRORS = "DVPayeeErrors,document.dvPayeeDetail.disbVchrPayeeIdNumber,document.dvPayeeDetail.disbVchrPayeeCityName,document.dvPayeeDetail.disbVchrPayeePersonName," + "document.dvPayeeDetail.disbVchrPayeeStateCode,document.dvPayeeDetail.disbVchrPayeeLine1Addr,document.dvPayeeDetail.disbVchrPayeeZipCode,document.dvPayeeDetail.disbVchrPayeeLine2Addr,document.dvPayeeDetail.disbVchrPayeeCountryCode,document.dvPayeeDetail.disbursementVoucherPayeeTypeCode,";
540    public static final String DV_PAYEE_INIT_TAB_ERRORS = "DVPayeeErrors,payeeIdNumber,payeePersonName,payeeTypeCode";
541    public static final String DV_PAYMENT_TAB_ERRORS = "DVPaymentErrors,document.dvPayeeDetail.disbVchrPaymentReasonCode,document.disbVchrCheckTotalAmount,document.disbursementVoucherDueDate,document.dvPayeeDetail.disbVchrAlienPaymentCode," + "document.dvPayeeDetail.disbVchrPayeeEmployeeCode,document.disbVchrAttachmentCode,document.disbVchrSpecialHandlingCode,document.disbVchrPayeeW9CompleteCode" + "document.disbVchrPaymentMethodCode,document.paymentDocumentationLocationCode,document.disbVchrCheckStubText";
542    public static final String DV_NRATAX_TAB_ERRORS = "DVNRATaxErrors,document.dvNonResidentAlienTax.incomeClassCode,document.dvNonResidentAlienTax.incomeTaxTreatyExemptCode,document.dvNonResidentAlienTax.federalIncomeTaxPercent," + "document.dvNonResidentAlienTax.foreignSourceIncomeCode,document.dvNonResidentAlienTax.stateIncomeTaxPercent,document.dvNonResidentAlienTax.incomeTaxGrossUpCode,document.dvNonResidentAlienTax.postalCountryCode," + "document.dvNonResidentAlienTax.referenceFinancialDocumentNumber";
543    public static final String FOREIGNDRAFTS_TAB_ERRORS = "DVForeignDraftErrors,document.wireTransfer.foreignCurrencyTypeCode,document.wireTransfer.foreignCurrencyTypeName";
544    public static final String DV_CONTACT_TAB_ERRORS = "DVContactErrors,document.disbVchrContact*";
545    public static final String DV_SPECHAND_TAB_ERRORS = "DVSpecialHandlingErrors,document.dvPayeeDetail.disbVchrSpecialHandlingPersonName,document.dvPayeeDetail.disbVchrSpecialHandlingCityName,document.dvPayeeDetail.disbVchrSpecialHandlingLine1Addr,document.dvPayeeDetail.disbVchrSpecialHandlingStateCode," + "document.dvPayeeDetail.disbVchrSpecialHandlingLine2Addr,document.dvPayeeDetail.disbVchrSpecialHandlingZipCode,document.dvPayeeDetail.disbVchrSpecialHandlingCountryName";
546    public static final String WIRETRANSFER_TAB_ERRORS = "DVWireTransfersErrors,document.wireTransfer.bankName,document.wireTransfer.bankRoutingNumber,document.wireTransfer.bankCityName,document.wireTransfer.bankStateCode," + "document.wireTransfer.bankCountryCode,document.wireTransfer.attentionLineText,document.wireTransfer.additionalWireText,document.wireTransfer.payeeAccountNumber,document.wireTransfer.currencyTypeName,document.wireTransfer.currencyTypeCode," + "document.wireTransfer.wireTransferFeeWaiverIndicator,document.wireTransfer.payeeAccountName,document.wireTransfer.payeeAccountTypeCode,document.wireTransfer.automatedClearingHouseProfileNumber";
547    public static final String DV_NON_EMPL_TRAVEL_TAB_ERRORS = "DVNonEmployeeTravelErrors,newPrePaidNonEmployeeExpenseLine.*,newNonEmployeeExpenseLine.*,document.dvNonEmployeeTravel.*";
548    public static final String DV_PREPAID_TAB_ERRORS = "DVPrePaidTravelErrors,newPreConferenceRegistrantLine.*,document.dvPreConferenceDetail.*";
549    public static final String GENERAL_PAYMENT_TAB_ERRORS = "DVPaymentErrors";
550    public static final String GENERAL_NRATAX_TAB_ERRORS = "DVNRATaxErrors";
551    public static final String GENERAL_SPECHAND_TAB_ERRORS = "DVSpecialHandlingErrors";
552    public static final String GENERAL_PREPAID_TAB_ERRORS = "DVPrePaidTravelErrors";
553    public static final String GENERAL_NONEMPLOYEE_TAB_ERRORS = "DVNonEmployeeTravelErrors,document.dvNonEmployeeTravel.totalTravelAmount";
554    public static final String DV_CHECK_TRAVEL_TOTAL_ERROR = "document.dvNonEmployeeTravel.totalTravelAmount";
555
556    // country
557    public static final String COUNTRY_CODE_UNITED_STATES = "US";
558
559    // CashManagement tab errors
560    public static final String CASH_MANAGEMENT_DEPOSIT_ERRORS = "document.deposit*";
561
562    public static class CurrencyTypeAmounts {
563        public static final KualiDecimal HUNDRED_DOLLAR_AMOUNT = new KualiDecimal(100.0);
564        public static final KualiDecimal FIFTY_DOLLAR_AMOUNT = new KualiDecimal(50.0);
565        public static final KualiDecimal TWENTY_DOLLAR_AMOUNT = new KualiDecimal(20.0);
566        public static final KualiDecimal TEN_DOLLAR_AMOUNT = new KualiDecimal(10.0);
567        public static final KualiDecimal FIVE_DOLLAR_AMOUNT = new KualiDecimal(5.0);
568        public static final KualiDecimal TWO_DOLLAR_AMOUNT = new KualiDecimal(2.0);
569        public static final KualiDecimal ONE_DOLLAR_AMOUNT = new KualiDecimal(1.0);
570    }
571
572    // Coin and Currency Amounts
573    public static class CoinTypeAmounts {
574        public static final KualiDecimal HUNDRED_CENT_AMOUNT = new KualiDecimal(1.0);
575        public static final KualiDecimal FIFTY_CENT_AMOUNT = new KualiDecimal(0.5);
576        public static final KualiDecimal TWENTY_FIVE_CENT_AMOUNT = new KualiDecimal(0.25);
577        public static final KualiDecimal TEN_CENT_AMOUNT = new KualiDecimal(0.1);
578        public static final KualiDecimal FIVE_CENT_AMOUNT = new KualiDecimal(0.05);
579        public static final KualiDecimal ONE_CENT_AMOUNT = new KualiDecimal(0.01);
580    }
581
582    public final static String[] COIN_DENOMINATIONS = new String[]{"100c", "50c", "25c", "10c", "5c", "1c"};
583    public final static KualiDecimal[] COIN_AMOUNTS = new KualiDecimal[]{
584        CoinTypeAmounts.HUNDRED_CENT_AMOUNT, CoinTypeAmounts.FIFTY_CENT_AMOUNT, CoinTypeAmounts.TWENTY_FIVE_CENT_AMOUNT,
585        CoinTypeAmounts.TEN_CENT_AMOUNT, CoinTypeAmounts.FIVE_CENT_AMOUNT, CoinTypeAmounts.ONE_CENT_AMOUNT};
586
587    // Cashiering source constants
588    public static class CurrencyCoinSources {
589        public static final String CASH_MANAGEMENT_IN = "R"; // money coming in through cashiering activity
590        public static final String CASH_MANAGEMENT_OUT = "O"; // money going out through cashiering activity
591        public static final String CASH_MANAGEMENT_MASTER = "M"; // an amalgamation of a cashiering transaction
592        public static final String DEPOSITS = "D"; // money going out through deposits
593        public static final String CASH_RECEIPTS = "C"; // money coming in through cash receipts
594        public static final String CASH_CHANGE_REQUEST = "Q"; // requesting some change money back
595        public static final String CASH_CHANGE_GRANTED = "G"; // verified change request
596    }
597
598    // Constants for check sources
599    // Why are these constants different from the Currency/Coin constants?
600    // Why, I ask you in return, is the sky blue? That's right, because of
601    // the effect of Rayleigh scattering on atmospheric particles. That's why.
602    public static class CheckSources {
603        public static final String CASH_RECEIPTS = "C";
604        public static final String CASH_MANAGEMENT = "R";
605    }
606
607    public static final String CASHIERING_TRANSACTION_OPEN_ITEM_IN_PROCESS_PROPERTY = "document.currentTransaction.openItemInProcess";
608
609    // Tab error patterns must be at the top level; JSPs do not have access to the nested classes.
610    public static final String EDIT_CASH_RECEIPT_CASH_RECONCILIATION_ERRORS = "document.totalCheckAmount,document.totalCurrencyAmount,document.totalCoinAmount,document.totalChange*,document.totalConfirmed*";
611    public static final String EDIT_CASH_RECEIPT_CHECK_DETAIL_ERRORS = "newCheck*,document.check*";
612    public static final String EDIT_CASH_RECEIPT_CURRENCY_COIN_ERRORS = "document.currencyDetail.*,document.coinDetail.*,document.confirmedCurrencyDetail.*,document.confirmedCoinDetail.*";
613    public static final String EDIT_CASH_RECEIPT_CHANGE_REQUEST_ERRORS = "document.changeCurrencyDetail.*,document.changeCoinDetail.*,document.confirmedChangeCurrencyDetail.*,document.confirmedChangeCoinDetail.*";
614    public static final String EDIT_CASH_MANAGEMENT_CASHIERING_TRANSACTION_ERRORS = "document.currentTransaction.*";
615    public static final String EDIT_CAPITAL_ASSET_INFORMATION_ERRORS = "document.capitalAssetInformation*";
616    public static final String EDIT_CAPITAL_ASSET_MODIFY_ERRORS = "document.capitalAssetModify*";
617    public static final String EDIT_ACCOUNTING_LINES_FOR_CAPITALIZATION_ERRORS = "document.capitalAccountingLines*";
618
619    public static final String MULTIPLE_VALUE = "multipleValues";
620
621    // special chars that I don't know how to put into string literals in JSP expression language
622    public static final String NEWLINE = "\n";
623
624    // Workflow constants
625    public class FinancialProcessingWorkflowConstants {
626
627        // Global
628        public static final String IS_DOCUMENT_AUTO_APPROVED = "RequiresAutoApprovalNotification";
629
630    }
631
632    @Deprecated
633    public static final String WORKFLOW_FYI_REQUEST = KewApiConstants.ACTION_REQUEST_FYI_REQ;
634
635    @Deprecated
636    public static final String WORKFLOW_DOCUMENT_SAVE = "Save";
637    @Deprecated
638    public static final String WORKFLOW_DOCUMENT_BLANKET_APPROVE = "BlanketApprove";
639    @Deprecated
640    public static final String WORKFLOW_DOCUMENT_ROUTE = "Route";
641    @Deprecated
642    public static final String ACCOUNT_RESTRICTED_STATUS_CODE = "R";
643
644    public static class DocumentStatusCodes {
645        public static final String INITIATED = "?";
646        public static final String CANCELLED = "X";
647        public static final String ENROUTE = "R";
648        public static final String DISAPPROVED = "D";
649        public static final String APPROVED = "A";
650        public static final String PROCESSED = "P";
651        public static final String FINAL = "F";
652
653        public static class CashReceipt {
654            // Once a CashReceipt gets approved, its financialDocumentStatus is set to VERIFIED;
655            // this is true whether or not acknowledgment from initiator is required or done.
656            public static final String VERIFIED = "V";
657
658            // When a CashReceipt is associated with a Deposit, its financialDocumentStatus changes to INTERIM
659            // when the deposit type is INTERIM;
660            public static final String INTERIM = "I";
661
662            // or FINAL when the deposit type becomes FINAL. Note: don't confuse this with workflow status FINAL.
663            public static final String FINAL = "F";
664
665            // When the CMDoc is finalized, the CRs of its deposits change to status APPROVED. We can use
666            // DocumentStatusCodes.APPROVED for this status, just like most other FinancialSystemTransactionalDocuments.
667        }
668
669        public static class Payments {
670            public static final String EXTRACTED = "E";
671        }
672    }
673
674    public static class AuxiliaryVoucher {
675        public static final String ADJUSTMENT_DOC_TYPE = "AVAD";
676        public static final String ADJUSTMENT_DOC_TYPE_NAME = "Adjustment";
677        public static final String RECODE_DOC_TYPE = "AVRC";
678        public static final String RECODE_DOC_TYPE_NAME = "Recode";
679        public static final String ACCRUAL_DOC_TYPE = "AVAE";
680        public static final String ACCRUAL_DOC_TYPE_NAME = "Accrual";
681        public static final int ACCRUAL_DOC_DAY_OF_MONTH = 15;
682        public static final String CHANGE_VOUCHER_TYPE = "changeVoucherType";
683    }
684
685    public static class CashDrawerConstants {
686        public static final String STATUS_CLOSED = "C";
687        public static final String STATUS_OPEN = "O";
688        public static final String STATUS_LOCKED = "L";
689    }
690
691    public static class CashReceiptConstants {
692        public static final String DEFAULT_CASH_RECEIPT_CAMPUS_LOCATION_CODE = "??";
693
694        public static final String CASH_RECEIPT_CAMPUS_LOCATION_CODE_PROPERTY_NAME = "campusLocationCode";
695        public static final String CASH_RECEIPT_DOC_HEADER_STATUS_CODE_PROPERTY_NAME = KFSConstants.DOCUMENT_HEADER_PROPERTY_NAME + "." + KFSConstants.DOCUMENT_HEADER_DOCUMENT_STATUS_CODE_PROPERTY_NAME;
696    }
697
698    public static class DepositConstants {
699        public static final String DEPOSIT_TYPE_VERIFIED = "V";
700        public static final String DEPOSIT_TYPE_INTERIM = "I";
701        public static final String DEPOSIT_TYPE_FINAL = "F";
702
703        public static final String DEPOSIT_WIZARD_CASHRECEIPT_ERROR = "cashReceiptErrors";
704        public static final String DEPOSIT_WIZARD_DEPOSITHEADER_ERROR = "depositHeaderErrors";
705    }
706
707    public static class BudgetAdjustmentDocumentConstants {
708        public static final String SOURCE_BA = "From/Decrease";
709        public static final String TARGET_BA = "To/Increase";
710        public static final String GENERATE_BENEFITS_QUESTION_ID = "GenerateBenefitsQuestion";
711        public static final String ADJUSTMENT_RESTRICTION_LEVEL_FUND = "F";
712        public static final String ADJUSTMENT_RESTRICTION_LEVEL_CHART = "C";
713        public static final String ADJUSTMENT_RESTRICTION_LEVEL_ORGANIZATION = "O";
714        public static final String ADJUSTMENT_RESTRICTION_LEVEL_ACCOUNT = "A";
715        public static final String ADJUSTMENT_RESTRICTION_LEVEL_SUBFUND = "S";
716        public static final String ADJUSTMENT_RESTRICTION_LEVEL_NONE = "N";
717        public static final String CROSS_INCOME_STREAM_GLPE_TRANSFER_GENERATING_FUND_GROUPS = "CROSS_INCOME_STREAM_GLPE_TRANSFER_GENERATING_FUND_GROUPS";
718        public static final String CROSS_INCOME_STREAM_GLPE_TRANSFER_GENERATING_SUB_FUND_GROUPS = "CROSS_INCOME_STREAM_GLPE_TRANSFER_GENERATING_SUB_FUND_GROUPS";
719    }
720
721    @Deprecated
722    public static class BudgetConstructionPositionConstants {
723        public static final String POSITION_REGULAR_TEMPORARY_REGULAR = "R";
724        public static final String POSITION_REGULAR_TEMPORARY_TEMPORARY = "T";
725        public static final String POSITION_EFFECTIVE_STATUS_ACTIVE = "A";
726        public static final String POSITION_EFFECTIVE_STATUS_INACTIVE = "I";
727        public static final String POSITION_STATUS_APPROVED = "A";
728        public static final String POSITION_STATUS_DELETED = "D";
729        public static final String POSITION_STATUS_FROZEN = "F";
730        public static final String POSITION_STATUS_TEMPORARILY_INACTIVE = "T";
731    }
732
733    public static class DisbursementVoucherDocumentConstants {
734        public static final String CLEAR_NON_EMPLOYEE_TAB_QUESTION_ID = "ClearNonEmplTravTabQuestion";
735        public static final String CLEAR_WIRE_TRANSFER_TAB_QUESTION_ID = "ClearWireTransferTabQuestion";
736        public static final String CLEAR_FOREIGN_DRAFT_TAB_QUESTION_ID = "ClearForeignDraftTabQuestion";
737    }
738
739    public static final String ACCOUNTING_LINE_IMPORT_MAX_FILE_SIZE_PARM_NM = "MAX_FILE_SIZE_ACCOUNTING_LINE_IMPORT";
740    public static final String ORIGIN_ENTRY_IMPORT_MAX_FILE_SIZE_PARM_NM = "MAX_FILE_SIZE_ORIGIN_ENTRY_IMPORT";
741
742    public static class ChartApcParms {
743
744        public static final String FISCAL_YEAR_MAKER_REPLACE_MODE = "OVERRIDE_TARGET_YEAR_DATA_IND";
745        public static final String FISCAL_YEAR_MAKER_SOURCE_FISCAL_YEAR = "SOURCE_FISCAL_YEAR";
746
747        // added from parameter refactoring.
748        public static final String APC_HRMS_ACTIVE_KEY = "USE_HRMS_ORGANIZATION_ATTRIBUTES_IND";
749        public final static String OBJECT_CODE_ILLEGAL_VALUES = "OBJECT_CODES";
750        public static final String DOCTYPE_AND_OBJ_CODE_ACTIVE = "DOCUMENT_TYPES_REQUIRING_ACTIVE_OBJECT_CODES";
751        public static final String CG_ALLOWED_SUBACCOUNT_TYPE_CODES = "SUB_ACCOUNT_TYPES";
752
753        // Account parms
754        public static final String INCOME_STREAM_ACCOUNT_REQUIRING_FUND_GROUPS = "INCOME_STREAM_ACCOUNT_REQUIRING_FUND_GROUPS";
755        public static final String INCOME_STREAM_ACCOUNT_REQUIRING_SUB_FUND_GROUPS = "INCOME_STREAM_ACCOUNT_REQUIRING_SUB_FUND_GROUPS";
756        public static final String EXPIRATION_DATE_BACKDATING_FUND_GROUPS = "EXPIRATION_DATE_BACKDATING_FUND_GROUPS";
757
758        // Org parms
759        public static final String DEFAULT_ACCOUNT_NOT_REQUIRED_ORG_TYPES = "ORGANIZATION_TYPES_NOT_REQUIRING_DEFAULT_ACCOUNT";
760        public static final String ORG_MUST_REPORT_TO_SELF_ORG_TYPES = "ORGANIZATION_TYPES_THAT_MUST_REPORT_TO_SELF";
761
762        public static final String ACCOUNT_FUND_GROUP_DENOTES_CG = "FUND_GROUP_DENOTES_CG_IND";
763        public static final String ACCOUNT_CG_DENOTING_VALUE = "CG_DENOTING_VALUE";
764
765        // newly created prior year accounts to be added
766        public static final String PRIOR_YEAR_ACCOUNTS_TO_BE_ADDED = "PRIOR_YEAR_ACCOUNTS_TO_BE_ADDED";
767
768        public static final String MAXIMUM_ACCOUNT_DELEGATES = "MAXIMUM_ACCOUNT_DELEGATES";
769    }
770
771    public static class FinancialApcParms {
772        public static final String ACCOUNTING_LINE_IMPORT_HELP = "ACCOUNTING_LINE_IMPORT";
773    }
774
775    public static class SystemGroupParameterNames {
776
777        public static final String FLEXIBLE_OFFSET_ENABLED_FLAG = "USE_FLEXIBLE_OFFSET_IND";
778        public static final String PURGE_GL_ACCT_BALANCES_T_BEFORE_YEAR = "PRIOR_TO_YEAR";
779        public static final String PURGE_GL_ENCUMBRANCE_T_BEFORE_YEAR = "PRIOR_TO_YEAR";
780        public static final String PURGE_GL_SF_BALANCES_T_BEFORE_YEAR = "PRIOR_TO_YEAR";
781        public static final String PURGE_GL_BALANCE_T_BEFORE_YEAR = "PRIOR_TO_YEAR";
782        public static final String PURGE_GL_ENTRY_T_BEFORE_YEAR = "PRIOR_TO_YEAR";
783        public static final String PURGE_GL_ID_BILL_T_BEFORE_YEAR = "PRIOR_TO_YEAR";
784
785        public static final String GL_ANNUAL_CLOSING_DOC_TYPE = "ANNUAL_CLOSING_DOCUMENT_TYPE";
786        public static final String GL_INDIRECT_COST_RECOVERY = "INDIRECT_COST_RECOVERY_DOCUMENT_TYPE";
787        public static final String GL_ORIGINATION_CODE = "MANUAL_FEED_ORIGINATION";
788        public static final String GL_SCRUBBER_VALIDATION_DAYS_OFFSET = "CG_ACCOUNT_EXPIRATION_EXTENSION_DAYS";
789
790        public static final String MULTIPLE_VALUE_LOOKUP_RESULTS_PER_PAGE = "MULTIPLE_VALUE_RESULTS_PER_PAGE";
791        public static final String MULTIPLE_VALUE_LOOKUP_RESULTS_EXPIRATION_AGE = "MULTIPLE_VALUE_RESULTS_EXPIRATION_SECONDS";
792
793        public static final String ACTIVE_INPUT_TYPES_PARAMETER_NAME = "ACTIVE_FILE_TYPES";
794
795        public static final String COLLECTOR_VALIDATOR_EMAIL_SUBJECT_PARAMETER_NAME = "VALIDATION_EMAIL_SUBJECT_LINE";
796        public static final String COLLECTOR_VALIDATOR_ERROR_EMAIL_SUBJECT_PARAMETER_NAME = "VALIDATION_ERROR_EMAIL_SUBJECT_LINE";
797        public static final String COLLECTOR_DEMERGER_EMAIL_SUBJECT_PARAMETER_NAME = "ERROR_EMAIL_SUBJECT_LINE";
798        public static final String COLLECTOR_EQUAL_DC_TOTAL_DOCUMENT_TYPES = "EQUAL_DEBIT_CREDIT_TOTAL_DOCUMENT_TYPES";
799        public static final String COLLECTOR_PERFORM_DUPLICATE_HEADER_CHECK = "PERFORM_DUPLICATE_HEADER_CHECK_IND";
800
801        public static final String BATCH_SCHEDULE_CUTOFF_TIME = "CUTOFF_TIME";
802        public static final String BATCH_SCHEDULE_CUTOFF_TIME_IS_NEXT_DAY = "CUTOFF_TIME_NEXT_DAY_IND";
803        public static final String BATCH_SCHEDULE_STATUS_CHECK_INTERVAL = "STATUS_CHECK_INTERVAL";
804
805        /**
806         * Used by PurgePendingAttachmentsJob to compute the maximum amount of time a pending attachment is allowed to persist on
807         * the file system before being deleted.
808         */
809        public static final String PURGE_PENDING_ATTACHMENTS_STEP_MAX_AGE = "MAX_AGE";
810
811        public static final String NUMBER_OF_DAYS_SINCE_LAST_UPDATE  = "NUMBER_OF_DAYS_SINCE_LAST_UPDATE";
812
813        public static final String ACCOUNTS_CAN_CROSS_CHARTS_IND = "ACCOUNTS_CAN_CROSS_CHARTS_IND";
814
815        public static final String BATCH_CONTAINER_SEMAPHORE_PROCESSING_INTERVAL = "SEMAPHORE_PROCESSING_INTERVAL";
816    }
817
818    public static class GeneralLedgerApplicationParameterKeys {
819        public static final String INCOME_OBJECT_TYPE_CODES = "INCOME_OBJECT_TYPE_CODES";
820        public static final String INCOME_TRANSFER_OBJECT_TYPE_CODES = "INCOME_TRANSFER_OBJECT_TYPE_CODES";
821        public static final String EXPENSE_OBJECT_TYPE_CODES = "EXPENSE_OBJECT_TYPE_CODES";
822        public static final String EXPENSE_TRANSFER_OBJECT_TYPE_CODES = "EXPENSE_TRANSFER_OBJECT_TYPE_CODES";
823    }
824
825    public static class GeneralLedgerCorrectionProcessApplicationParameterKeys {
826        public static final String RECORD_COUNT_FUNCTIONALITY_LIMIT = "RECORD_COUNT_FUNCTIONALITY_LIMIT";
827        public static final String RECORDS_PER_PAGE = "RECORDS_PER_PAGE";
828    }
829
830    public static class EnterpriseFeederApplicationParameterKeys {
831        public static final String TO_ADDRESS = "INVALID_FILE_TO_EMAIL_ADDRESSES";
832    }
833
834    public static class ParameterValues {
835        public static final String YES = "Y";
836        public static final String NO = "N";
837        public static final String STRING_NO = "No";
838        public static final String STRING_YES = "Yes";
839    }
840
841    public static class OptionLabels {
842        public static final String YES = "Yes";
843        public static final String NO = "No";
844    }
845
846    public static class Maintenance {
847        public static final String AFTER_CLASS_DELIM = "!!";
848        public static final String AFTER_FIELDNAME_DELIM = "^^";
849        public static final String AFTER_VALUE_DELIM = "::";
850    }
851
852    public static class ObjectCodeConstants {
853        public static final String INACTIVE_OBJECT_LEVEL_QUESTION_ID = "InactiveObjectLevelQuestion";
854        public static final String SECTION_ID_RESEARCH_ADMIN_ATTRIBUTES = "researchAdminAttributes";
855    }
856
857    public static final String MONTH1 = "01";
858    public static final String MONTH2 = "02";
859    public static final String MONTH3 = "03";
860    public static final String MONTH4 = "04";
861    public static final String MONTH5 = "05";
862    public static final String MONTH6 = "06";
863    public static final String MONTH7 = "07";
864    public static final String MONTH8 = "08";
865    public static final String MONTH9 = "09";
866    public static final String MONTH10 = "10";
867    public static final String MONTH11 = "11";
868    public static final String MONTH12 = "12";
869    public static final String MONTH13 = "13";
870    public static final String PERIOD_CODE_ANNUAL_BALANCE = "AB";
871    public static final String PERIOD_CODE_BEGINNING_BALANCE = "BB";
872    public static final String PERIOD_CODE_CG_BEGINNING_BALANCE = "CB";
873
874    public static final String REQUEST_SEARCH_RESULTS = "reqSearchResults";
875    public static final String REQUEST_SEARCH_RESULTS_SIZE = "reqSearchResultsSize";
876    public static final String GL_COLLECTOR_STAGING_DIRECTORY = "collector.staging.directory";
877
878    public static final String DISBURSEMENT_VOUCHER_DOCUMENTATION_LOCATION_CODE_PROPERTY_NAME = "paymentDocumentationLocationCode";
879    public static final String FUND_GROUP_CODE_PROPERTY_NAME = "code";
880    public static final String SUB_FUND_GROUP_CODE_PROPERTY_NAME = "subFundGroupCode";
881
882    public static final String RULE_CODE_R1 = "R1";
883    public static final String RULE_CODE_R2 = "R2";
884    public static final String RULE_CODE_N1 = "N1";
885    public static final String RULE_CODE_N2 = "N2";
886    public static final String RULE_CODE_C1 = "C1";
887    public static final String RULE_CODE_C2 = "C2";
888    public static final String RULE_CODE_A = "A";
889    public static final String TRANSACTION_DT = "TRANSACTION_DT";
890    public static final String UNALLOC_OBJECT_CD = "UNALLOC_OBJECT_CD";
891    public static final String BEG_BUD_CASH_OBJECT_CD = "BEG_BUD_CASH_OBJECT_CD";
892    public static final String FUND_BAL_OBJECT_CD = "FUND_BAL_OBJECT_CD";
893    public static final String UNIV_FISCAL_YR = "UNIV_FISCAL_YR";
894
895    public static final String EMPLOYEE_LOOKUP_ERRORS = "document.employeeLookups,document.emplid,universityFiscalYear";
896
897    public static class BudgetConstructionConstants {
898
899        /* KFSConstants for the budget construction flag names */
900        public final static String BUDGET_ADMINSTRATION_ACTIVE = "BAACTV";
901        public final static String BASE_BUDGET_UPDATES_OK = "BASEAD";
902        public final static String BUDGET_BATCH_SYNCHRONIZATION_OK = "BSSYNC";
903        public final static String CSF_UPDATES_OK = "CSFUPD";
904        public final static String BUDGET_CONSTRUCTION_ACTIVE = "BCACTV";
905        public final static String BUDGET_CONSTRUCTION_GENESIS_RUNNING = "BCGENE";
906        public final static String BUDGET_CONSTRUCTION_UPDATES_OK = "BCUPDT";
907        public final static String BUDGET_ON_LINE_SYNCHRONIZATION_OK = "PSSYNC";
908
909        /*
910         * object code which stores amounts by which pending general ledger rows in budget construction are out of balance
911         */
912        @Deprecated
913        public final static String OBJECT_CODE_2PLG = "2PLG";
914
915    }
916
917    public static class OperationType {
918        public static final String READ = "read";
919        public static final String REPORT_ERROR = "with error";
920        public static final String INSERT = "insert";
921        public static final String UPDATE = "update";
922        public static final String DELETE = "delete";
923        public static final String SELECT = "select";
924        public static final String BYPASS = "bypassed";
925    }
926
927    public static class PENDING_ENTRY_APPROVED_STATUS_CODE {
928        public static final String APPROVED = "A";
929        public static final String PROCESSED = "X";
930        public static final String NOT_PROCESSED = "N";
931    }
932
933    public static class TableRenderConstants {
934        public static final String SWITCH_TO_PAGE_METHOD = "switchToPage";
935        public static final String SORT_METHOD = "sort";
936
937        public static final String PREVIOUSLY_SORTED_COLUMN_INDEX_PARAM = "previouslySortedColumnIndex";
938        public static final String VIEWED_PAGE_NUMBER = "viewedPageNumber";
939    }
940
941    public static final String PCDO_FILE_TYPE_INDENTIFIER = "procurementCardInputFileType";
942    public static final String COLLECTOR_XML_FILE_TYPE_INDENTIFIER = "collectorXmlInputFileType";
943    public static final String COLLECTOR_FLAT_FILE_TYPE_INDENTIFIER = "collectorFlatFileInputFileType";
944    public static final String ENTERPRISE_FEEDER_FILE_SET_TYPE_INDENTIFIER = "enterpriseFeederFileSetType";
945
946    // next 2 variables for the enterprise feeder batch upload
947    public static final String DATA_FILE_TYPE = "DATA";
948    public static final String RECON_FILE_TYPE = "RECON";
949
950    // next variable used by the batch upload framework
951    public static final String DONE_FILE_TYPE = "DONE_FILE";
952
953    /**
954     * The base implementation of {@link org.kuali.kfs.gl.batch.service.impl.EnterpriseFeederStatusBase} uses strings contained
955     * within ApplicationResources.properties to store the human-readable descriptions of each status object. The fully qualified
956     * class name is appended to the end of this key to generate the true key. For example,
957     * gl.EnterpriseFeeder.StatusDescriptionPrefix.org.kuali.kfs.gl.batch.service.impl.FileReconBadLoadAbortedStatus
958     */
959    public static final String ENTERPRISE_FEEDER_STATUS_DESCRIPTION_PREFIX = "gl.EnterpriseFeeder.StatusDescription.";
960
961    public static final String BATCH_STEP_RUNNER_JOB_NAME = "stepRunByBatchStepRunner";
962
963    // Some static method calls below that could be done in static variables instead but isn't safe to do during class loading
964    // w/SpringContext.
965    private static String DASH_FINANCIAL_OBJECT_CODE = null;
966
967    public static String getDashFinancialObjectCode() {
968        if (DASH_FINANCIAL_OBJECT_CODE == null) {
969            DASH_FINANCIAL_OBJECT_CODE = StringUtils.rightPad("", SpringContext.getBean(DataDictionaryService.class).getAttributeMaxLength(OriginEntryFull.class, KFSPropertyConstants.FINANCIAL_OBJECT_CODE), '-');
970        }
971        return DASH_FINANCIAL_OBJECT_CODE;
972    }
973
974    private static String DASH_FINANCIAL_SUB_OBJECT_CODE = null;
975
976    public static String getDashFinancialSubObjectCode() {
977        if (DASH_FINANCIAL_SUB_OBJECT_CODE == null) {
978            DASH_FINANCIAL_SUB_OBJECT_CODE = StringUtils.rightPad("", SpringContext.getBean(DataDictionaryService.class).getAttributeMaxLength(OriginEntryFull.class, KFSPropertyConstants.FINANCIAL_SUB_OBJECT_CODE), '-');
979        }
980        return DASH_FINANCIAL_SUB_OBJECT_CODE;
981    }
982
983    private static String DASH_SUB_ACCOUNT_NUMBER = null;
984
985    public static String getDashSubAccountNumber() {
986        if (DASH_SUB_ACCOUNT_NUMBER == null) {
987            DASH_SUB_ACCOUNT_NUMBER = StringUtils.rightPad("", SpringContext.getBean(DataDictionaryService.class).getAttributeMaxLength(OriginEntryFull.class, KFSPropertyConstants.SUB_ACCOUNT_NUMBER), '-');
988        }
989        return DASH_SUB_ACCOUNT_NUMBER;
990    }
991
992    private static String SPACE_SUB_ACCOUNT_NUMBER = null;
993
994    public static String getSpaceSubAccountNumber() {
995        if (SPACE_SUB_ACCOUNT_NUMBER == null) {
996            SPACE_SUB_ACCOUNT_NUMBER = StringUtils.rightPad("", SpringContext.getBean(DataDictionaryService.class).getAttributeMaxLength(OriginEntryFull.class, KFSPropertyConstants.SUB_ACCOUNT_NUMBER), ' ');
997        }
998        return SPACE_SUB_ACCOUNT_NUMBER;
999    }
1000
1001    private static String DASH_PROJECT_CODE = null;
1002
1003    public static String getDashProjectCode() {
1004        if (DASH_PROJECT_CODE == null) {
1005            DASH_PROJECT_CODE = StringUtils.rightPad("", SpringContext.getBean(DataDictionaryService.class).getAttributeMaxLength(OriginEntryFull.class, KFSPropertyConstants.PROJECT_CODE), '-');
1006        }
1007        return DASH_PROJECT_CODE;
1008    }
1009
1010    //AR TAB ERROR KEYS
1011
1012    //Customer Invoice Document
1013    @Deprecated
1014    public static final String CUSTOMER_INVOICE_DOCUMENT_ORGANIZATION_ERRORS = "document.billByChartOfAccountCode,document.billedByOrganizationCode,document.accountsReceivableDocumentHeader.processingChartOfAccountCode";
1015    @Deprecated
1016    public static final String CUSTOMER_INVOICE_DOCUMENT_GENERAL_ERRORS = "document.accountsReceivableDocumentHeader.customerNumber,document.billingDate,document.invoiceDueDate";
1017    @Deprecated
1018    public static final String CUSTOMER_INVOICE_DOCUMENT_ADDRESS = "document.customerBillToAddressIdentifier,document.customerShipToAddressIdentifier";
1019    @Deprecated
1020    public static final String CUSTOMER_INVOICE_DOCUMENT_RECEIVABLE_ACCOUNTING_LINE = "document.payment*";
1021    @Deprecated
1022    public static final String CUSTOMER_INVOICE_DOCUMENT_RECURRENCE_DETAILS_ERRORS = "document.customerInvoiceRecurrenceDetails,document.customerInvoiceRecurrenceDetails.*,document.customerInvoiceRecurrenceDetails.document*";
1023
1024
1025    //Cash Control Document
1026    public static final String CASH_CONTROL_DOCUMENT_ERRORS = "document.accountsReceivableDocumentHeader.processingChartOfAccountCode,document.referenceFinancialDocumentNumber,document.customerPaymentMediumCode,document.organizationCode,document.bankCode";
1027    public static final String CASH_CONTROL_DETAILS_ERRORS = "newCashControl*,document.cashControlDetail*";
1028
1029    // Customer Credit Memo Document
1030    @Deprecated
1031    public static final String CUSTOMER_CREDIT_MEMO_DETAILS_ERRORS = "document,document.creditMemoDetails*";
1032    @Deprecated
1033    public static final String CUSTOMER_CREDIT_MEMO_DETAIL_PROPERTY_NAME = "creditMemoDetails";
1034
1035    // Customer Invoice Writeoff Document
1036    @Deprecated
1037    public static final String CUSTOMER_INVOICE_WRITEOFF_INIT_ERRORS = "document.financialDocumentReferenceInvoiceNumber*";
1038    @Deprecated
1039    public static final String CUSTOMER_INVOICE_WRITEOFF_DETAILS_ERRORS = "document.customerInvoiceDetailsForWriteoff*";
1040
1041    // Customer Invoice Writeoff Lookup
1042    @Deprecated
1043    public static final String CUSTOMER_INVOICE_WRITEOFF_LOOKUP_RESULT_ERRORS = "customerInvoiceWriteoffLookupResults";
1044
1045    public static final class ReportGeneration{
1046        public final static String PARAMETER_NAME_SUBREPORT_DIR = "SUBREPORT_DIR";
1047        public final static String PARAMETER_NAME_SUBREPORT_TEMPLATE_NAME = "SUBREPORT_TEMPLATE_NAMES";
1048        public final static String DESIGN_FILE_EXTENSION = ".jrxml";
1049        public final static String JASPER_REPORT_EXTENSION = ".jasper";
1050        public final static String CSV_FILE_EXTENSION = ".csv";
1051        public final static String CSV_MIME_TYPE = "text/csv";
1052        public final static String PDF_FILE_EXTENSION = ".pdf";
1053        public final static String PDF_MIME_TYPE = "application/pdf";
1054        public final static String ZIP_FILE_EXTENSION = ".zip";
1055        public final static String ZIP_MIME_TYPE = "application/zip";
1056        public final static String TEXT_MIME_TYPE = "text/plain";
1057        public final static String ACCOUNT_EXPORT_FILE_NAME = "account_export.txt";
1058        public final static String MONTHLY_EXPORT_FILE_NAME = "monthly_export.txt";
1059        public final static String FUNDING_EXPORT_FILE_NAME = "funding_export.txt";
1060        public final static String USE_JAVASCRIPT = "useJavascript";
1061    }
1062
1063    public final static KualiInteger ONE_HUNDRED = new KualiInteger(100);
1064    public final static KualiInteger ONE = new KualiInteger(1);
1065
1066    // effort certification period status codes
1067    public static final class PeriodStatusCodes {
1068        public static final String CLOSED = "C";
1069        public static final String NOT_OPEN = "N";
1070        public static final String OPEN = "O";
1071    }
1072
1073    @Deprecated
1074    public static final class CustomerParameter {
1075        public static final String TAX_NUMBER_REQUIRED_IND = "TAX_NUMBER_REQUIRED_IND";
1076    }
1077
1078    // financial document type codes
1079    @Deprecated
1080    public static final class FinancialDocumentTypeCodes {
1081        public static final String ALL = "ALL";
1082        // budget construction
1083        public static final String BUDGET_CONSTRUCTION = "BC";
1084
1085        // financial processing
1086        public static final String GENERAL_ERROR_CORRECTION = "GEC";
1087        public static final String YEAR_END_GENERAL_ERROR_CORRECTION = "YEGE";
1088        public static final String DISTRIBUTION_OF_INCOME_AND_EXPENSE = "DI";
1089        public static final String YEAR_END_DISTRIBUTION_OF_INCOME_AND_EXPENSE = "YEDI";
1090        public static final String SERVICE_BILLING = "SB";
1091        public static final String INTERNAL_BILLING = "IB";
1092        public static final String CASH_RECEIPT = "CR";
1093        public static final String PROCUREMENT_CARD = "PCDO";
1094        public static final String ADVANCE_DEPOSIT = "AD";
1095        public static final String CASH_MANAGEMENT = "CMD";
1096        public static final String CREDIT_CARD_RECEIPT = "CCR";
1097        public static final String NON_CHECK_DISBURSEMENT = "ND";
1098
1099        // accounts receivable
1100        public static final String CASH_CONTROL = "CTRL";
1101        public static final String CUSTOMER_CREDIT_MEMO = "CRM";
1102        public static final String CUSTOMER_INVOICE = "INV";
1103
1104        // capital asset
1105        public static final String ASSET_PAYMENT = "MPAY";
1106        public static final String ASSET_DIFFERENT_OBJECT_SUB_TYPE_CONFIRMATION_QUESTION = "AssetDifferentObjectSubTypeQuestion";
1107
1108        // labor
1109        public static final String SALARY_EXPENSE_TRANSFER = "ST";
1110
1111        // purap
1112        public static final String REQUISITION = "REQS";
1113        public static final String PAYMENT_REQUEST = "PREQ";
1114        public static final String PURCHASE_ORDER = "PO";
1115        public static final String PURCHASE_ORDER_AMENDMENT = "POA";
1116        public static final String PURCHASE_ORDER_CLOSE = "POC";
1117        public static final String PURCHASE_ORDER_SPLIT = "POSP";
1118        public static final String PURCHASE_ORDER_REOPEN = "POR";
1119        public static final String PURCHASE_ORDER_PAYMENT_HOLD = "POPH";
1120        public static final String PURCHASE_ORDER_REMOVE_HOLD = "PORH";
1121        public static final String PURCHASE_ORDER_RETRANSMIT = "PORT";
1122        public static final String PURCHASE_ORDER_VOID = "POV";
1123        public static final String LINE_ITEM_RECEIVING = "RCVL";
1124        public static final String CORRECTION_RECEIVING = "RCVC";
1125        public static final String VENDOR_CREDIT_MEMO = "CM";
1126        public static final String BULK_RECEIVING = "RCVB";
1127        public static final String ELECTRONIC_INVOICE_REJECT = "EIRT";
1128
1129        public static final String INTRA_ACCOUNT_ADJUSTMENT = "IAA";
1130        public static final String CONTRACT_MANAGER_ASSIGNMENT = "ACM";
1131    }
1132
1133    // financial document type names
1134    @Deprecated
1135    public static final class FinancialDocumentTypeNames {
1136        public static final String GENERAL_ERROR_CORRECTION = "General Error Correction";
1137        public static final String YEAR_END_GENERAL_ERROR_CORRECTION = "Year End General Error Correction";
1138        public static final String DISTRIBUTION_OF_INCOME_AND_EXPENSE = "Distribution of Income and Expense";
1139        public static final String YEAR_END_DISTRIBUTION_OF_INCOME_AND_EXPENSE = "Year End Distribution of Income and Expense";
1140        public static final String SERVICE_BILLING = "Service Billing";
1141        public static final String INTERNAL_BILLING = "Internal Billing";
1142        public static final String CASH_RECEIPT = "Cash Receipt";
1143        public static final String PROCUREMENT_CARD = "Procurement Card";
1144    }
1145
1146    public static final class AccountingLineViewStandardBlockNames {
1147        public static final String ACTION_BLOCK = "actions";
1148        public static final String SEQUENCE_NUMBER_BLOCK = "sequenceNumber";
1149        public static final String SALES_TAX_BLOCK = "salesTaxInformation";
1150    }
1151
1152    public static final class TaxRegionConstants {
1153        public static final String TAX_REGION_RATES = "taxRegionRates";
1154        public static final String TAX_REGION_COUNTIES = "taxRegionCounties";
1155        public static final String TAX_REGION_STATES = "taxRegionStates";
1156        public static final String TAX_REGION_POSTAL_CODES = "taxRegionPostalCodes";
1157        public static final String TAX_REGION_STATE_CODE = "stateCode";
1158        public static final String TAX_REGION_COUNTY_CODE = "countyCode";
1159        public static final String TAX_REGION_POSTAL_CODE = "postalCode";
1160        public static final String TAX_REGION_TAX_RATE = "taxRate";
1161        public static final String TAX_REGION_EFFECTIVE_DATE = "effectiveDate";
1162        public static final String TAX_REGION_TYPE_CODE = "taxRegionTypeCode";
1163        public static final String TAX_REGION_COUNTIES_SECTION_ID = "TaxRegionCounties";
1164        public static final String TAX_REGION_STATES_SECTION_ID = "TaxRegionStates";
1165        public static final String TAX_REGION_POSTAL_CODES_SECTION_ID = "TaxRegionPostalCodes";
1166        public static final String TAX_REGION_RATES_SECTION_ID = "TaxRegionRates";
1167        public static final String TAX_REGION_CREATE_SECTION_ID = "CreateTaxRegion";
1168
1169        public static final String TAX_REGION_TYPE_CODE_COUNTY = "CNTY";
1170        public static final String TAX_REGION_TYPE_CODE_POSTAL_CODE = "POST";
1171        public static final String TAX_REGION_TYPE_CODE_STATE = "ST";
1172    }
1173
1174    public static final class SubAccountType {
1175        public static final String COST_SHARE = "CS";
1176        public static final String EXPENSE = "EX";
1177
1178        public static final List<String> ELIGIBLE_SUB_ACCOUNT_TYPE_CODES = getEligibleSubAccountTypeCodes();
1179
1180        private static final List<String> getEligibleSubAccountTypeCodes(){
1181            List<String> subAccountTypeCodesList = new ArrayList<String>();
1182            subAccountTypeCodesList.add(KFSConstants.SubAccountType.COST_SHARE);
1183            subAccountTypeCodesList.add(KFSConstants.SubAccountType.EXPENSE);
1184            return subAccountTypeCodesList;
1185        }
1186    }
1187
1188    @Deprecated
1189    // Move to AR
1190    public static final class CustomerOpenItemReport {
1191        public static final String CUSTOMER_NUMBER = "customerNumber";
1192        public static final String CUSTOMER_NAME = "customerName";
1193        public static final String DOCUMENT_NUMBER = "documentNumber";
1194        public static final String REPORT_NAME = "reportName";
1195        public static final String PROCESSING_OR_BILLING_CHART_CODE = "processingOrBillingChartCode";
1196        public static final String ORGANIZATION_CODE = "orgCode";
1197        public static final String REPORT_OPTION = "reportOption";
1198        public static final String COLUMN_TITLE = "columnTitle";
1199        public static final String REPORT_RUN_DATE = "reportRunDate";
1200        public static final String REPORT_BEGIN_DATE = "startDate";
1201        public static final String REPORT_END_DATE = "endDate";
1202        public static final String ACCOUNT_NUMBER = "accountNumber";
1203        public static final String ACCOUNT_CHART_CODE = "accountChartCode";
1204        public static final String ALL_DAYS = "All days";
1205        public static final String HISTORY_REPORT_NAME = "Customer History Report";
1206        public static final String OPEN_ITEM_REPORT_NAME = "Customer Open Item Report";
1207        public static final String REPORT_OPTION_ACCT = "Account";
1208        public static final String UNPAID_UNAPPLIED_AMOUNT = "unpaidUnappliedAmount";
1209        public static final String UNPAID_UNAPPLIED_AMOUNT_REPORT = "Unpaid / Unapplied Amount Report";
1210
1211        public static final String PROCESSING_COA_CODE = "processingChartOfAccountCode";
1212        public static final String PROCESSING_ORGANIZATION_CODE = "processingOrganizationCode";
1213    }
1214
1215    @Deprecated
1216    // Move to AR
1217    public static final class CustomerAgingReport {
1218        public static final String CUSTOMER_NAME = "customerName";
1219        public static final String UNPAID_BALANCE_0_TO_30 = "unpaidBalance0to30";
1220        public static final String UNPAID_BALANCE_31_TO_60 = "unpaidBalance31to60";
1221        public static final String UNPAID_BALANCE_61_TO_90 = "unpaidBalance61to90";
1222        public static final String UNPAID_BALANCE_91_TO_SYSPR = "unpaidBalance91toSYSPR";
1223        public static final String UNPAID_BALANCE_SYSPR_PLUS_1_OR_MORE = "unpaidBalanceSYSPRplus1orMore";
1224    }
1225
1226    @Deprecated // move to PDP
1227    public static final class PdpConstants {
1228        public static final String PAYMENT_OPEN_STATUS_CODE = org.kuali.kfs.pdp.PdpConstants.PaymentStatusCodes.OPEN;
1229    }
1230
1231    @Deprecated
1232    public static final String PAYMENT_APPLICATION_DOCUMENT_ERRORS = "document";
1233    @Deprecated
1234    public static class PaymentApplicationTabErrorCodes {
1235        public static final String NON_AR_TAB = "nonInvoicedAddLine*";
1236        public static final String UNAPPLIED_TAB = "document.nonAppliedHolding*";
1237        public static final String APPLY_TO_INVOICE_DETAIL_TAB = "customerInvoiceDetail*";
1238    }
1239
1240    // define a set of indicators related to payments, including payee types, tax review requirements and others
1241    public static class AdHocPaymentIndicator{
1242        public static final String EMPLOYEE_VENDOR = "E";
1243        public static final String ALIEN_VENDOR = "A";
1244        public static final String EMPLOYEE_PAYEE = "E";
1245        public static final String ALIEN_PAYEE = "A";
1246        public static final String TAX_CONTROL_REQUIRING_TAX_REVIEW = "T";
1247        public static final String PAYMENT_REASON_REQUIRING_TAX_REVIEW = "P";
1248        public static final String OTHER = "N";
1249    }
1250
1251    public static class SysKimApiConstants{
1252        public static final String ACCOUNT_SUPERVISOR_KIM_ROLE_NAME = "Account Supervisor";
1253        public static final String CONTRACTS_AND_GRANTS_PROJECT_DIRECTOR = "Contracts & Grants Project Director";
1254        public static final String FISCAL_OFFICER_KIM_ROLE_NAME = "Fiscal Officer";
1255        public static final String FISCAL_OFFICER_PRIMARY_DELEGATE_KIM_ROLE_NAME = "Fiscal Officer Primary Delegate";
1256        public static final String FISCAL_OFFICER_SECONDARY_DELEGATE_KIM_ROLE_NAME = "Fiscal Officer Secondary Delegate";
1257        public static final String AWARD_SECONDARY_DIRECTOR_KIM_ROLE_NAME = "Award Project Director";
1258        public static final String ACTIVE_FACULTY_OR_STAFF_KIM_ROLE_NAME = "Active Faculty or Staff";
1259        public static final String ACTIVE_PROFESSIONAL_EMPLOYEE_KIM_ROLE_NAME = "Active Professional Employee";
1260        public static final String ACTIVE_EMPLOYEE_AND_KFS_USER_KIM_ROLE_NAME = "Active Employee & Financial System User";
1261        public static final String ACTIVE_PROFESSIONAL_EMPLOYEE_AND_KFS_USER_KIM_ROLE_NAME = "Active Professional Employee & Financial System User";
1262        public static final String CHART_MANAGER_KIM_ROLE_NAME = "Chart Manager";
1263        public static final String ORGANIZATION_REVIEWER_ROLE_NAMESPACECODE = CoreModuleNamespaces.KFS;
1264        public static final String ACCOUNTING_REVIEWER_ROLE_NAMESPACECODE = CoreModuleNamespaces.KFS;
1265        public static final String ACCOUNTING_REVIEWER_ROLE_NAME = "Accounting Reviewer";
1266        public static final String ORGANIZATION_REVIEWER_ROLE_NAME = "Organization Reviewer";
1267        public static final String ACCOUNTS_RECEIVABLE_COLLECTOR = "CGB Collector";
1268        public static final String KFS_USER_ROLE_NAME = "User";
1269        public static final String CONTRACTS_AND_GRANTS_PROCESSOR = "Contracts & Grants Processor";
1270        public static final String SUB_FUND_REVIEWER = "Sub-Fund Reviewer";
1271    }
1272
1273    public enum PermissionAttributeValue {
1274        SOURCE_ACCOUNTING_LINES("sourceAccountingLines"), TARGET_ACCOUNTING_LINES("targetAccountingLines");
1275
1276        public final String value;
1277
1278        private PermissionAttributeValue(String value) {
1279            this.value = value;
1280        }
1281    }
1282
1283    public enum PermissionTemplate {
1284        DEFAULT( KRADConstants.DEFAULT_NAMESPACE, "Default"),
1285        ERROR_CORRECT_DOCUMENT( KFSConstants.CoreModuleNamespaces.KFS, "Error Correct Document"),
1286        MODIFY_ACCOUNTING_LINES(KFSConstants.CoreModuleNamespaces.KFS, "Modify Accounting Lines"),
1287        CLAIM_ELECTRONIC_PAYMENT(KFSConstants.CoreModuleNamespaces.KFS, "Claim Electronic Payment"),
1288        MODIFY_BATCH_JOB(KFSConstants.CoreModuleNamespaces.KFS, "Modify Batch Job"),
1289        EDIT_BANK_CODE(KFSConstants.CoreModuleNamespaces.KFS, "Edit Bank Code"),
1290        ADMINISTER_ROUTING_FOR_DOCUMENT(KRADConstants.KUALI_RICE_WORKFLOW_NAMESPACE, "Administer Routing for Document"),
1291        VIEW_BATCH_FILES(KFSConstants.CoreModuleNamespaces.KFS, "Administer Batch File"),
1292        UPLOAD_BATCH_INPUT_FILES(KFSConstants.CoreModuleNamespaces.KFS, "Upload Batch Input File(s)"),
1293        VIEW_RECORD(KFSConstants.CoreModuleNamespaces.KFS, "View Record");
1294
1295        public final String name;
1296        public final String namespace;
1297        private PermissionTemplate(String namespace, String name) {
1298            this.namespace = namespace;
1299            this.name = name;
1300        }
1301    }
1302
1303    public enum PermissionNames {
1304        EDIT_INACTIVE_ACCOUNT( KFSConstants.CoreModuleNamespaces.CHART, "Edit Inactive Account" ),
1305        SERVE_AS_ACCOUNT_MANAGER( KFSConstants.CoreModuleNamespaces.CHART, "Serve As Account Manager" ),
1306        SERVE_AS_ACCOUNT_SUPERVISOR( KFSConstants.CoreModuleNamespaces.CHART, "Serve As Account Supervisor" ),
1307        SERVE_AS_FISCAL_OFFICER( KFSConstants.CoreModuleNamespaces.CHART, "Serve As Fiscal Officer" ),
1308        SERVE_AS_FISCAL_OFFICER_DELEGATE( KFSConstants.CoreModuleNamespaces.CHART, "Serve As Fiscal Officer Delegate" );
1309
1310        public final String name;
1311        public final String namespace;
1312        private PermissionNames(String namespace, String name) {
1313            this.namespace = namespace;
1314            this.name = name;
1315        }
1316    }
1317
1318    public static final String KFS_ACTION_CAN_ERROR_CORRECT = "canErrorCorrect";
1319    public static final String KFS_ACTION_CAN_EDIT_BANK = "canEditBank";
1320
1321    public static final String AMOUNT_TOTALING_EDITING_MODE = "amountTotaling";
1322    public static final String BANK_ENTRY_VIEWABLE_EDITING_MODE = "bankEntryViewable";
1323    public static final String BANK_ENTRY_EDITABLE_EDITING_MODE = "bankEntry";
1324
1325
1326    public class RouteLevelNames {
1327        public static final String ACCOUNT = "Account";
1328        public static final String ACCOUNTING_ORGANIZATION_HIERARCHY = "AccountingOrganizationHierarchy";
1329        public static final String ACCOUNT_REVIEW_FULL_EDIT = "AccountFullEdit";
1330        public static final String PROJECT_MANAGEMENT = "ProjectManagement";
1331        public static final String ORGANIZATION_HIERARCHY = "OrganizationHierarchy";
1332        public static final String PAYMENT_METHOD = "PaymentMethod";
1333    }
1334
1335    public static final String ROOT_DOCUMENT_TYPE = "KFS";
1336    public static final String FINANCIAL_SYSTEM_TRANSACTIONAL_DOCUMENT = "KFST";
1337    public static final String FINANCIAL_SYSTEM_COMPLEX_MAINTENANCE_DOCUMENT = "KFSM";
1338    public static final String FINANCIAL_SYSTEM_SIMPLE_MAINTENANCE_DOCUMENT = "FSSM";
1339    public static final String FINANCIAL_SYSTEM_LEDGER_ONLY_ROOT_DOCUMENT_TYPE = "FSLO";
1340
1341    public static class COAConstants{
1342        public static final String ORG_REVIEW_ROLE_ORG_ACC_ONLY_CODE = "A";
1343        public static final String ORG_REVIEW_ROLE_ORG_ACC_ONLY_TEXT = "Organization Accounting Only";
1344        public static final String ORG_REVIEW_ROLE_ORG_ONLY_CODE = "O";
1345        public static final String ORG_REVIEW_ROLE_ORG_ONLY_TEXT = "Organization Only";
1346        public static final String ORG_REVIEW_ROLE_ORG_ACC_BOTH_CODE = "B";
1347        public static final String ORG_REVIEW_ROLE_ORG_ACC_BOTH_TEXT = "Both";
1348        public static final String ORG_REVIEW_ROLE_CREATE_DELEGATION_DISPLAY_TEXT = "create delegation";
1349
1350        public final static String DEFAULT_CHART_METHOD = "1";
1351        public final static String DEFAULT_PRIMARY_DEPT_METHOD = "2";
1352        public final static String DEFAULT_PRIMARY_DEPT_CHART_METHOD = "3";
1353
1354    }
1355
1356    public static class ReportConstants{
1357        public static final String EMPTY_CELL_ENTRY_KEY_PREFIX = "EMPTY_CELL";
1358
1359        public static final String TABLE_HEADER_LINE_KEY = "tableHeaderLine";
1360        public static final String SEPARATOR_LINE_KEY = "separatorLine";
1361        public static final String TABLE_CELL_FORMAT_KEY = "tableCellFormat";
1362        public static final String[] FORMAT_ESCAPE_CHARACTERS = new String[]{"%", "\\"};
1363    }
1364
1365    public static final String REQUIRES_WORKSTUDY_REVIEW = "RequiresWorkstudyReview";
1366    public static final String WORKSTUDY_ROUTE_OBJECT_CODES_PARM_NM = "WORKSTUDY_ROUTE_OBJECT_CODES";
1367    public static final String DOCUMENT_LOCKOUT_PARM_NM = "LOCKOUT_IND";
1368    public static final String DOCUMENT_LOCKOUT_PARM_DESC = "This parameter is to lock document during the lockout time.";
1369    public static final String DOCUMENT_LOCKOUT_DEFAULT_MESSAGE = "DOCUMENT_LOCKOUT_DEFAULT_MESSAGE";
1370    public static final String FROM_EMAIL_ADDRESS_PARM_NM = "FROM_EMAIL_ADDRESS";
1371
1372
1373    // System Parameters
1374    public static final String RESULT_SUMMARY_TO_EMAIL_ADDRESSES = "RESULT_SUMMARY_TO_EMAIL_ADDRESSES";
1375    public static final String SOURCE_URL_PARAMETER = "SOURCE_URL";
1376    
1377    public static final String REPORT_WRITER_SERVICE_PAGE_NUMBER_PLACEHOLDER = "${pageNumber}";
1378
1379    @Deprecated
1380    public static class Research {
1381        public static final String KC_NAMESPACE_URI = "KC";
1382        public static final String KC_BUDGET_CATEGORY_SERVICE = "budgetCategorySoapService";
1383        public static final String KC_UNIT_SERVICE = "institutionalUnitSoapService";
1384    }
1385
1386    public static class CapitalAssets {
1387        //C ==> create asset action, M ==> modify asset action
1388        public static final String CAPITAL_ASSET_CREATE_ACTION_INDICATOR = "C";
1389        public static final String CAPITAL_ASSET_MODIFY_ACTION_INDICATOR = "M";
1390        public static final String CAPITAL_ASSET_TAB_STATE_OPEN = "OPEN";
1391        public static final String CAPITAL_ASSET_TAB_STATE_CLOSE = "CLOSE";
1392        public static final String CAPITAL_ASSET_PROCESSED_IND = "N";
1393
1394        public static final String ACCOUNTING_LINES_FOR_CAPITALIZATION_TAB_TITLE = "Accounting Lines for Capitalization";
1395        public static final String CREATE_CAPITAL_ASSETS_TAB_TITLE = "Create Capital Assets";
1396        public static final String MODIFY_CAPITAL_ASSETS_TAB_TITLE = "Modify Capital Assets";
1397
1398        public static final String DISTRIBUTE_COST_EQUALLY_CODE = "2";
1399        public static final String DISTRIBUTE_COST_EQUALLY_DESCRIPTION = "Distribute cost evenly";
1400        public static final String DISTRIBUTE_COST_BY_INDIVIDUAL_ASSET_AMOUNT_CODE = "1";
1401        public static final String DISTRIBUTE_COST_BY_INDIVIDUAL_ASSET_AMOUNT_DESCRIPTION = "Distribute cost by amount";
1402
1403        public static final Integer PERCENT_SCALE = new Integer(2);
1404        public static final Integer CAPITAL_ACCOUNT_LINE_PERCENT_SCALE = new Integer(20);
1405    }
1406
1407    public static final String YEAR_END_ACCOUNTING_PERIOD_EDIT_PERMISSION = "Edit Accounting Period";
1408    public static final String YEAR_END_ACCOUNTING_PERIOD_VIEW_PERMISSION = "View Accounting Period";
1409    public static final String YEAR_END_ACCOUNTING_PERIOD_EDIT_DOCUMENT_ACTION = "AccountingPeriodEditAction";
1410    public static final String YEAR_END_ACCOUNTING_PERIOD_VIEW_DOCUMENT_ACTION = "AccountingPeriodViewAction";
1411    public static final String EXTRACT_NOW_ACTION_PERMISSION = PermissionTemplateNames.USE_TRANSACTIONAL_DOCUMENT + " DV " + DisbursementVoucherEditMode.EXTRACT_NOW;
1412
1413    public static final String ACCOUNTING_PERIOD_TAB_ID = "Accounting Period";
1414
1415    public static final String BUDGET_REALLOCATION_LABEL = "Budget Reallocation";
1416    public static final String YEAR_END_BUDGET_ADJUSTMENT_LABEL = "Year End Budget Adjustment";
1417
1418    public static final String OVERRIDE_ACCOUNT_FOR_EXPIRED_QUESTION_ID = "OverrideAccountForExpiredQuestion";
1419
1420        public static final String NOTIFICATION_TEXT_KEY = "notificationText";
1421    public static final int NOTIFICATION_TEXT_LINE_LENGTH = 80;
1422
1423    public static final String PROCUREMENT_CARD_DEFAULT_SEQUENCE_NAME = "FP_PRCRMNT_CARD_DFLT_SEQ";
1424    public static final String W8_OWNERSHIP_SEQUENCE_NAME = "PUR_VNDR_W8_OWNRSHP_ID_SEQ";
1425
1426    private static Integer MAX_LENGTH_OF_DOCUMENT_DESCRIPTION = null;
1427    public static Integer getMaxLengthOfDocumentDescription() {
1428        if (MAX_LENGTH_OF_DOCUMENT_DESCRIPTION == null) {
1429            MAX_LENGTH_OF_DOCUMENT_DESCRIPTION = SpringContext.getBean(DataDictionaryService.class).getAttributeMaxLength(DocumentHeader.class, KFSPropertyConstants.DOCUMENT_DESCRIPTION);
1430        }
1431        return MAX_LENGTH_OF_DOCUMENT_DESCRIPTION;
1432    }
1433
1434    static final public String TRIAL_BAL_LOOKUPABLE_ID = "glTrialBalanceReportLookupable";
1435    static final public String TRIAL_BAL_SELECT_SUB_SECTION = "selectionConditions";
1436    static final public String TRIAL_BAL_DISPLAY_SUB_SECTION = "displayFields";
1437    static final public String TRIAL_BAL_REPORT_YEAR = "reportYear";
1438    static final public String TRIAL_BAL_REPORT_PERIOD = "reportFiscalPeriod";
1439
1440    // Pcard Email Notification
1441    public static final String ProcurementCardEmailTimeFormat = "EEE, MMM d, yyyy HH:mm:ss z";
1442    public static final String ProcurementCardTransactionTimeFormat = "EEE, MMM d, yyyy";
1443
1444    public static class ProcurementCardEmailVariableTemplate {
1445        public static final String DOC_CREATE_DATE = "docCreateDate";
1446        public static final String TRANSACTION_COUNTER = "transactionCounter";
1447        public static final String TRANSACTION_SUMMARY_LIST = "transactionSummaryList";
1448    }
1449
1450    public static class ProcurementCardParameters {
1451        public static final String PCARD_BATCH_SUMMARY_TO_EMAIL_ADDRESSES = "PCARD_BATCH_SUMMARY_TO_EMAIL_ADDRESSES";
1452        public static final String BATCH_SUMMARY_RUNNING_TIMESTAMP_FORMAT = "BATCH_SUMMARY_RUNNING_TIMESTAMP_FORMAT";
1453        public static final String BATCH_SUMMARY_POSTING_DATE_FORMAT = "BATCH_SUMMARY_POSTING_DATE_FORMAT";
1454        public static final String PCARD_BATCH_LOAD_STEP = "ProcurementCardLoadStep";
1455        public static final String PCARD_BATCH_CREATE_DOC_STEP="ProcurementCardCreateDocumentsStep";
1456    }
1457    public static final String BATCH_LOGGER_DEFAULT_CONVERSION_PATTERN = "%d [%t] u:%X{user}/d:%X{docId} %-5p %c :: %m%n";
1458    public static final Layout BATCH_LOGGER_DEFAULT_PATTERN_LAYOUT = new PatternLayout(BATCH_LOGGER_DEFAULT_CONVERSION_PATTERN);
1459
1460            public static final String MONTH_DAY_YEAR_DATE_FORMAT = "MM/dd/yyyy";
1461
1462    public static class PaymentSourceConstants {
1463        public static final String PAYMENT_METHOD_CHECK = "P";
1464        public static final String PAYMENT_METHOD_WIRE = "W";
1465        public static final String PAYMENT_METHOD_DRAFT = "F";
1466    }
1467
1468    public static final int MAX_NOTE_LINE_SIZE = 90;
1469
1470    public static class PaymentPayeeTypes {
1471        public static final String EMPLOYEE = "E";
1472        public static final String VENDOR = "V";
1473        public static final String CUSTOMER = "C";
1474        public static final String SUBJECT_PAYMENT_VENDOR = "VSP";
1475        public static final String REVOLVING_FUND_VENDOR = "VRF";
1476        public static final String REFUND_VENDOR = "VRV";
1477    }
1478
1479    public static enum PaymentMethod {
1480        ACH_CHECK("P", "Check/ACH"), FOREIGN_DRAFT("F", "Foreign Draft"), WIRE_TRANSFER("W", "Wire Transfer");
1481
1482        private String code;
1483        private String name;
1484
1485        PaymentMethod(String code, String name) {
1486            this.code = code;
1487            this.name = name;
1488        }
1489
1490        public String getCode() {
1491            return this.code;
1492        }
1493
1494        public String getName() {
1495            return this.name;
1496        }
1497
1498        public String getCodeAndName() {
1499            return String.format("%s - %s", this.code, this.name);
1500        }
1501    }
1502    public static class Booleans {
1503        public static final String TRUE = "true";
1504        public static final String FALSE = "false";
1505    }
1506
1507    public static class HttpHeaderResponse {
1508        public static final String ATTACHMENT_CONTENT_TYPE = "attachment";
1509        public static final String INLINE_CONTENT_TYPE = "inline";
1510        public static final String CONTENT_DIPOSITION = "Content-disposition";
1511        public static final String EXPIRES = "Expires";
1512        public static final String CACHE_CONTROL = "Cache-Control";
1513        public static final String FILENAME = "filename";
1514        public static final String PRAGMA = "Pragma";
1515        public static final String CACHE_CONTROL_REVALIDATE_PRE_POST_CHECK_ZERO = "must-revalidate, post-check=0, pre-check=0";
1516        public static final String PUBLIC = "public";
1517    }
1518
1519    public static final String ZERO = "0";
1520
1521    public static class BasicAccountingCategoryCodes {
1522        public static final String ASSETS = "AS";
1523        public static final String EXPENSES = "EX";
1524        public static final String FUND_BALANCE = "FB";
1525        public static final String INCOME = "IN";
1526        public static final String LIABILITIES = "LI";
1527    }
1528
1529}