001    /*
002     * Copyright 2011 The Kuali Foundation.
003     * 
004     * Licensed under the Educational Community License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     * 
008     * http://www.opensource.org/licenses/ecl2.php
009     * 
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     * See the License for the specific language governing permissions and
014     * limitations under the License.
015     */
016    package org.kuali.kfs.module.endow;
017    
018    import org.kuali.kfs.sys.KFSConstants;
019    import org.kuali.rice.core.util.JSTLConstants;
020    import org.kuali.rice.core.util.KeyLabelPair;
021    import org.kuali.rice.kns.util.KualiDecimal;
022    import org.kuali.rice.kns.util.KualiInteger;
023    
024    public class EndowConstants extends JSTLConstants {
025    
026        public static final String KFS_ENDOW_ROLE_NAMESPACE = "KFS-ENDOW";
027    
028        public static final String YES = "Y";
029        public static final String NO = "N";
030    
031        public static final int NUMBER_OF_MONTHS_REMAINING = 6;
032        public static final int NUMBER_OF_DAYS_IN_YEAR = 365;
033        public static final int MAXIMUM_NUMBER_OF_LINES_PER_EDOC = 1000;
034        public static final int MAXMUM_NUMBER_OF_EDOC_INITIALIZATION_TRY = 10;
035    
036        public static final int SHORT_VS_LONG_TERM_PERIOD = 12;
037    
038        public static final String NEW_SOURCE_TRAN_LINE_PROPERTY_NAME = "newSourceTransactionLine";
039        public static final String NEW_TARGET_TRAN_LINE_PROPERTY_NAME = "newTargetTransactionLine";
040        public static final String NEW_SOURCE_ACC_LINE_PROPERTY_NAME = "newSourceAccouningLine";
041        public static final String NEW_TARGET_ACC_LINE_PROPERTY_NAME = "newTargetAccountingLine";
042    
043        public static final String SOURCE_TRANSACTION_LINE_GROUP_LABEL_NAME = "From";
044        public static final String TARGET_TRANSACTION_LINE_GROUP_LABEL_NAME = "To";
045        public static final String SOURCE_TAX_LOTS_LABEL_NAME = "From";
046        public static final String TARGET_TAX_LOTS__LABEL_NAME = "To";
047    
048        // labels for transaction lines for Corpus Adjustment, Unit/Share Adjustment
049        public static final String DECREASE_TRANSACTION_LINE_GROUP_LABEL_NAME = "Decrease";
050        public static final String INCREASE_TRANSACTION_LINE_GROUP_LABEL_NAME = "Increase";
051    
052        public static final String DECREASE_TAX_LOTS_LABEL_NAME = "Decrease";
053        public static final String INCREASE_TAX_LOTS_LABEL_NAME = "Increase";
054    
055        public static class SecurityReportingGroups {
056            public static final String CASH_EQUIVALENTS = "CSHEQ";
057        }
058    
059        public static class KemToGLInterfaceBatchProcess {
060            public static final String DATA_FILE_SUFFIX = ".data";
061            public static final String RECON_FILE_SUFFIX = ".recon";
062            public static final String KEM_TO_GL_ACTIVITY_OUTPUT_DATA_FILE = "endow_endowentry_entp";
063            public static final String KEM_TO_GL_ACTIVITY_OUTPUT_RECONCILE_FILE = "endow_endowentry_entp";
064            public static final String SYSTEM_ORIGINATION_CODE_FOR_ENDOWMENT = "EM";
065            public static final String DEBIT_CODE = "D";
066            public static final String CREDIT_CODE = "C";
067            public static final String SUB_TYPE_CASH = "Cash";
068            public static final String SUB_TYPE_NON_CASH = "Non-Cash";
069        }
070        
071        public static class EndowmentTransactionTypeCodes {
072            public static final String ASSET_TYPE_CODE = "A";
073            public static final String LIABILITY_TYPE_CODE = "L";
074            public static final String INCOME_TYPE_CODE = "I";
075            public static final String EXPENSE_TYPE_CODE = "E";
076        }
077    
078        public static class FeeType {
079            public static final String FEE_TYPE_CODE_FOR_PAYMENTS = "P";
080        }
081    
082        public static class ClassCodeTypes {
083            public static final String ALTERNATIVE_INVESTMENT = "A";
084            public static final String CASH_EQUIVALENTS = "C";
085            public static final String BOND = "B";
086            public static final String LIABILITY = "L";
087            public static final String POOLED_INVESTMENT = "P";
088            public static final String STOCKS = "S";
089            public static final String OTHER = "O";
090        }
091    
092        // Frequency Codes
093        public static class FrequencyCodes {
094            public static final String SEMI_ANNUAL_FREQUENCY_CODE_FOR_NEXT_PROCESS_DUE_DATE = "IJME";
095            public static final String QUARTERLY_FREQUENCY_CODE_FOR_NEXT_PROCESS_DUE_DATE = "QJME";
096        }
097    
098        public static class FrequencyTypes {
099            public static final String DAILY = "D";
100            public static final String WEEKLY = "W";
101            public static final String SEMI_MONTHLY = "S";
102            public static final String MONTHLY = "M";
103            public static final String QUARTERLY = "Q";
104            public static final String SEMI_ANNUALLY = "I";
105            public static final String ANNUALLY = "A";
106        }
107    
108        public static class FrequencyMonths {
109            public static final String JANUARY = "J";
110            public static final String FEBRUARY = "F";
111            public static final String MARCH = "M";
112            public static final String APRIL = "A";
113            public static final String MAY = "Y";
114            public static final String JUNE = "U";
115            public static final String JULY = "L";
116            public static final String AUGUST = "G";
117            public static final String SEPTEMBER = "S";
118            public static final String OCTOBER = "O";
119            public static final String NOVEMBER = "N";
120            public static final String DECEMBER = "D";
121        }
122    
123        public static class FrequencyWeekDays {
124            public static final String MONDAY = "MON";
125            public static final String TUESDAY = "TUE";
126            public static final String WEDNESDAY = "WED";
127            public static final String THURSDAY = "THU";
128            public static final String FRIDAY = "FRI";
129        }
130    
131        public static class FrequencyMonthly {
132            public static final String DATE = "DT";
133            public static final String MONTH_END = "ME";
134            public static final String THIRD_FRIDAY = "TH";
135        }
136    
137        // Acrrual Method values
138        public static class AccrualMethod {
139            public static final String AUTOMATED_CASH_MANAGEMENT = "A";
140            public static final String MORTGAGE_30 = "3";
141            public static final String MORTGAGE_60 = "6";
142            public static final String DISCOUNT_BONDS = "B";
143            public static final String TIME_DEPOSITS = "M";
144            public static final String TREASURY_NOTES_AND_BONDS = "T";
145            public static final String DIVIDENDS = "D";
146            public static final String NONR = "N";
147        }
148    
149        public static class ValuationMethod {
150            public static final String UNITS = "U";
151            public static final String MARKET = "M";
152        }
153    
154        public static class Scale {
155            public static final int SECURITY_UNIT_VALUE = 5;
156            public static final int SECURITY_MARKET_VALUE = 2;
157            public static final int SECURITY_INCOME_RATE = 5;
158        }
159    
160        public static class IncomePrincipalIndicator {
161            public static final String INCOME = "I";
162            public static final String PRINCIPAL = "P";
163        }
164    
165        public static final String LOOKUP_LINK = "Lookup";
166    
167        public static class KemidValueOptions {
168            public static final String MANUAL = "Manual";
169            public static final String AUTOMATIC = "Automatic";
170        }
171    
172        public static class TaxLotsAccountingMethodOptions {
173            public static final String AVERAGE_BALANCE = "Average Balance";
174            public static final String FIFO = "FIFO";
175            public static final String LIFO = "LIFO";
176        }
177    
178    
179        public final static KualiInteger ZERO = new KualiInteger(0);
180        public final static KualiInteger ONE = new KualiInteger(1);
181    
182        /**
183         * Preset Values These will be here until we can come up with a better solution.
184         */
185    
186        // Agreement Status Code
187        public static class AgreementStatusCode {
188            public static final String AGRMNT_STAT_CD_COMP = "COMP";
189            public static final String AGRMNT_STAT_CD_NONE = "NONE";
190            public static final String AGRMNT_STAT_CD_PEND = "PEND";
191        }
192    
193        // Agreement Special Instruction Code
194        public static class AgreementSpecialInstructionCode {
195            public static final String AGRMNT_SPCL_INSTRC_CD_NONE = "0";
196        }
197    
198        // Transaction Restriction Code
199        public static class TransactionRestrictionCode {
200            public static final String TRAN_RESTR_CD_NDISB = "NDISB";
201            public static final String TRAN_RESTR_CD_NTRAN = "NTRAN";
202            public static final String TRAN_RESTR_CD_NONE = "NONE";
203        }
204    
205        // Type Restriction Code for preset values
206        public static class TypeRestrictionPresetValueCodes {
207            public static final String PERMANENTLY_RESTRICTED_DEFAULT_INDICATOR = "Y";
208            public static final String PERMANENT_TYPE_RESTRICTION_CODE = "P";
209            public static final String INCOME_TYPE_RESTRICTION_CODE = "I";
210            public static final String UNRESTRICTED_TYPE_RESTRICTION_CODE = "U";
211            public static final String NOT_APPLICABLE_TYPE_RESTRICTION_CODE = "NA";
212            public static final String TEMPORARY_RESTRICTED_TYPE_RESTRICTION_CODE = "T";
213            public static final String TYPE_RESTRICTION_PERM = "permanentIndicator";
214            public static final String TYPE_RESTRICTION_ACTIVE_INDICATOR = "active";
215            public static final String DEFAULT_PERMANENT_INDICATOR = "N";
216        }
217    
218        // Fee Method values...
219        public static class FeeMethod {
220            public static final String FEE_TYPE_CODE_VALUE_FOR_TRANSACTIONS = "T";
221            public static final String FEE_TYPE_CODE_VALUE_FOR_PAYMENTS = "P";
222            public static final String FEE_TYPE_CODE_VALUE_FOR_BALANCES = "B";
223            public static final String FEE_METHOD_TAB_ID = "Edit Fee Method";
224            public static final String CLASS_CODES_TAB_ID = "Class Codes";
225            public static final String SECURITY_TAB_ID = "Security";
226            public static final String PAYMENT_TYPES_TAB_ID = "Payment Types";
227            public static final String TRANSACTION_TYPES_TAB_ID = "Transaction Types";
228            public static final String ENDOWMENT_TRANSACTION_CODES_TAB_ID = "Endowment Transaction Codes";
229            public static final String FEE_BASE_CD_VALUE = "I";
230            public static final String FEE_RATE_DEFINITION_CODE_FOR_COUNT = "C";
231            public static final String FEE_RATE_DEFINITION_CODE_FOR_VALUE = "V";
232            public static final KualiDecimal FEE_RATE_DEFAULT_VALUE = new KualiDecimal("99999999999999999.99");
233            public static final int FEE_RATE_MAX_SCALE = 4;
234            public static final String ENDOWMENT_HISTORY_VALUE_ADJUSTMENT = "EHVA";
235            public static final String FEE_BASE_CODE_VALUE_FOR_INCOME = "I";
236            public static final String FEE_BASE_CODE_VALUE_FOR_PRINCIPAL = "P";
237            public static final String FEE_BASE_CODE_VALUE_FOR_INCOME_AND_PRINCIPAL = "B";
238        }
239    
240        // Fee Balances Types values...
241        public static class FeeBalanceTypes {
242            public static final String FEE_BALANCE_TYPE_VALUE_FOR_AVERAGE_UNITS = "AU";
243            public static final String FEE_BALANCE_TYPE_VALUE_FOR_CURRENT_UNITS = "CU";
244            public static final String FEE_BALANCE_TYPE_VALUE_FOR_MONTH_END_UNITS = "MU";
245            public static final String FEE_BALANCE_TYPE_VALUE_FOR_AVERAGE_MARKET_VALUE = "AMV";
246            public static final String FEE_BALANCE_TYPE_VALUE_FOR_CURRENT_MARKET_VALUE = "CMV";
247            public static final String FEE_BALANCE_TYPE_VALUE_FOR_MONTH_END_MARKET_VALUE = "MMV";
248        }
249    
250        public static class Sequences {
251            public static final String END_KEMID_SEQ = "END_KEMID_SEQ";
252            public static final String END_TICKLER_SEQ = "END_TKLR_SEQ";
253            public static final String END_ACI_SEQ = "END_ACI_SEQ";
254            public static final String END_REC_CSH_XFR_SEQ = "END_REC_CSH_XFR_SEQ";
255            public static final String END_CASH_SWEEP_SEQ = "END_CASH_SWEEP_SEQ";
256        }
257    
258        // Transactions
259    
260        public static class TransactionSourceTypeCode {
261            public static final String MANUAL = "M";
262            public static final String AUTOMATED = "A";
263            public static final String RECURRING = "R";
264        }
265    
266        public static final String PRINCIPAL = "Principal";
267        public static final String INCOME = "Income";
268    
269        public static final String UNITS_TOTALING_EDITING_MODE = "unitsTotaling";
270    
271        public static final String EXISTING_SOURCE_TRAN_LINE_PROPERTY_NAME = "sourceTransactionLine";
272        public static final String EXISTING_TARGET_TRAN_LINE_PROPERTY_NAME = "targetTransactionLine";
273    
274        // public static class TransactionTabErrors {
275        public static final String SECURITY_ERRORS = "securityErrors";
276        // }
277        public static final String TRANSACTION_LINE_TYPE_SOURCE = "F";
278        public static final String TRANSACTION_LINE_TYPE_TARGET = "T";
279    
280        public static final String TRANSACTION_SECURITY_TYPE_SOURCE = "F";
281        public static final String TRANSACTION_SECURITY_TYPE_TARGET = "T";
282    
283        public static final class TransactionSubTypeCode {
284            public static final String CASH = "C";
285            public static final String NON_CASH = "N";
286        }
287    
288        public static final String TRANSACTION_DETAILS_ERRORS = "document.transactionSubTypeCode";
289        public static final String SOURCE_TRANSACTION_LINES_ERRORS = "newSourceTransactionLine*,document.sourceTransactionLines*";
290        public static final String TARGET_TRANSACTION_LINES_ERRORS = "newTargetTransactionLine*,document.targetTransactionLines*";
291        public static final String TRANSACTION_LINE_ERRORS = "document.transactionLines";
292        public static final String TRANSACTION_SECURITY_TAB_ERRORS = "document.sourceTransactionSecurity*,document.targetTransactionSecurity*,*registrationCode";
293        public static final String ACCOUNTING_LINE_ERRORS = "document.accountingLines";
294        public static final String SOURCE_ACCOUNTING_LINES_ERRORS = "newSourceAccountingLine*,document.sourceAccountingLines*";
295        public static final String TARGET_ACCOUNTING_LINES_ERRORS = "newTargetAccountingLine*,document.targetAccountingLines*";
296    
297        public static final class HistoryHoldingValueAdjustmentValuationCodes {
298            public static final String HISTORY_VALUE_ADJUSTMENT_VALUATION_METHOD_FOR_UNIT_VALUE = "U";
299            public static final String HISTORY_VALUE_ADJUSTMENT_VALUATION_METHOD_FOR_MARKET_VALUE = "M";
300            public static final String HISTORY_VALUE_ADJUSTMENT_DETAILS_ERRORS = "holdingHistory*";
301        }
302    
303        // Consolidated Object Code Constants
304        public static final class ConsolidatedObjectCode {
305            public static final String ASSETS = "ASST";
306            public static final String LIABILITIES = "LIAB";
307            public static final String FUND_BALANCE = "FDBL";
308        }
309    
310        public static final class ObjectTypeCode {
311            public static final String EXPENSE_NOT_EXPENDITURE = "ES";
312            public static final String INCOME_NOT_CASH = "IC";
313        }
314    
315        public static final class HoldingTaxLotRebalanceCodes {
316            public static final String RESULTS_ACTIONS_LINK = "Rebalance";
317        }
318    
319        // Transaction Types in Recurring Cash Transfer doc
320        public static final String ENDOWMENT_CASH_TRANSFER_TRANSACTION_TYPE = "ECT";
321        public static final String ENDOWMENT_GENERAL_LEDGER_CASH_TRANSFER_TRANSACTION_TYPE = "EGLT";
322        public static final String ENDOWMENT_RECURRING_CASH_TRANSFER_DOCUMENT_TYPES = "DOCUMENT_TYPES";
323    
324    
325        // HoldingHistoryValueAdjustmentDocument constants
326        public static final class HoldingHistoryValueAdjustmentDocument {
327            public static final String TRANSACTION_POSTED_NO = "N";
328            public static final String TRANSACTION_POSTED_YES = "Y";
329        }
330    
331        // Document Type Codes
332        public static final class DocumentTypeNames {
333            public static final String ENDOWMENT_ASSET_INCREASE = "EAI";
334            public static final String ENDOWMENT_ASSET_DECREASE = "EAD";
335            public static final String ENDOWMENT_CASH_INCREASE = "ECI";
336            public static final String ENDOWMENT_CASH_DECREASE = "ECDD";
337            public static final String ENDOWMENT_CASH_TRANSFER = "ECT";
338            public static final String ENDOWMENT_LIABILITY_INCREASE = "ELI";
339            public static final String ENDOWMENT_LIABILITY_DECREASE = "ELD";
340            public static final String ENDOWMENT_HOLDING_ADJUSTMENT = "EHA";
341            public static final String ENDOWMENT_SECURITY_TRANSFER = "EST";
342            public static final String ENDOWMENT_CORPORATE_REORGANZATION = "ECR";
343            public static final String ENDOWNENT_HOLDING_VALUE_ADJUSTMENT = "EHVA";
344            public static final String ENDOWMENT_TO_GENERAL_LEDGER_TRANSFER = "EGLT";
345            public static final String GENERAL_LEDGER_TO_ENDOWMENT_TRANSFER = "GLET";
346            public static final String ENDOWMENT_CORPUS_ADJUSTMENT = "ECA";
347            public static final String ENDOWMENT_UNIT_SHARE_ADJUSTMENT = "EUSA";
348            
349        }
350        
351        public static final String KUALI_FREQUENCY_LOOKUPABLE_IMPL = "frequencyCodeLookupable";
352        
353        public static final class EndowmentReport {
354            public static final String ENDOWMENT = "Endowment";
355            public static final String NON_ENDOWED = "Non-Endowed";
356            public static final String BOTH_ENDOWMENT_OPTION = "Both";
357            public static final String DETAIL_REPORT = "Detail";
358            public static final String TOTAL_REPORT = "Total";
359            public static final String BOTH_REPORT_OPTION = "Both";
360            public static final String DETAIL = "D";
361            public static final String TOTAL = "T";
362            public static final String BOTH = "B";
363        }
364    }