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.gl; 017 018 import java.util.List; 019 020 import org.apache.commons.lang.StringUtils; 021 import org.kuali.kfs.coa.businessobject.A21SubAccount; 022 import org.kuali.kfs.coa.businessobject.BalanceType; 023 import org.kuali.kfs.coa.businessobject.ObjectCode; 024 import org.kuali.kfs.gl.batch.CollectorBatch; 025 import org.kuali.kfs.gl.businessobject.CollectorDetail; 026 import org.kuali.kfs.gl.businessobject.OriginEntryFieldUtil; 027 import org.kuali.kfs.gl.businessobject.OriginEntryFull; 028 import org.kuali.kfs.gl.batch.CollectorBatch; 029 import org.kuali.kfs.sys.KFSPropertyConstants; 030 import org.kuali.kfs.sys.businessobject.OriginationCode; 031 import org.kuali.kfs.sys.context.SpringContext; 032 import org.kuali.rice.kns.datadictionary.AttributeDefinition; 033 import org.kuali.rice.kns.service.DataDictionaryService; 034 035 036 /** 037 * This class holds constants specifically for use within the General Ledger module. 038 */ 039 public class GeneralLedgerConstants { 040 041 public static final String INSERT_CODE = "I"; 042 public static final String UPDATE_CODE = "U"; 043 public static final String DELETE_CODE = "D"; 044 public static final String SELECT_CODE = "S"; 045 public static final String EMPTY_CODE = ""; 046 public static final String ERROR_CODE = "E"; 047 public static final String FINALNCIAL_BALANCE_TYPE_FOR_COLLECTOR_DETAIL_RECORD = "AC"; 048 049 //public static final String RETAIN_DAYS = "RETAIN_DAYS"; 050 051 public static class DummyBusinessObject { 052 static final public String COST_SHARE_OPTION = "dummyBusinessObject.costShareOption"; 053 static final public String PENDING_ENTRY_OPTION = "dummyBusinessObject.pendingEntryOption"; 054 static final public String CONSOLIDATION_OPTION = "dummyBusinessObject.consolidationOption"; 055 static final public String LINK_BUTTON_OPTION = "dummyBusinessObject.linkButtonOption"; 056 } 057 058 public static class PendingEntryOptions { 059 static final public String APPROVED = "Approved"; 060 static final public String ALL = "All"; 061 } 062 063 public static class ColumnNames { 064 static final public String SUB_ACCOUNT_NUMBER = "SUB_ACCT_NBR"; 065 static final public String CURRENT_BDLN_BALANCE_AMOUNT = "CURR_BDLN_BAL_AMT"; 066 static final public String ACCOUNTING_LINE_ACTUALS_BALANCE_AMOUNT = "ACLN_ACTLS_BAL_AMT"; 067 static final public String ACCOUNTING_LINE_ENCUMBRANCE_BALANCE_AMOUNT = "ACLN_ENCUM_BAL_AMT"; 068 static final public String CONSOLIDATION_OBJECT_CODE = "FIN_CONS_OBJ_CD"; 069 static final public String REPORT_SORT_CODE = "FIN_REPORT_SORT_CD"; 070 static final public String CONSOLIDATION_REPORT_SORT_CODE = "CONS_FIN_REPORT_SORT_CD"; 071 static final public String OBJECT_LEVEL_CODE = "FIN_OBJ_LVL_CD"; 072 static final public String OBJECT_LEVEL_CODE2 = "FIN_OBJ_LEVEL_CD"; 073 static final public String OBJECT_CODE = "FIN_OBJECT_CD"; 074 // amounts in the balances table 075 static final public String ANNUAL_BALANCE = "ACLN_ANNL_BAL_AMT"; 076 static final public String BEGINNING_BALANCE = "FIN_BEG_BAL_LN_AMT"; 077 static final public String CONTRACT_AND_GRANTS_BEGINNING_BALANCE = "CONTR_GR_BB_AC_AMT"; 078 079 static final public String UNIVERSITY_FISCAL_YEAR = "UNIV_FISCAL_YR"; 080 static final public String CHART_OF_ACCOUNTS_CODE = "FIN_COA_CD"; 081 static final public String ACCOUNT_NUMBER = "ACCOUNT_NBR"; 082 static final public String SUB_OBJECT_CODE = "FIN_SUB_OBJ_CD"; 083 static final public String OBJECT_TYPE_CODE = "FIN_OBJ_TYP_CD"; 084 static final public String BALANCE_TYPE_CODE = "FIN_BALANCE_TYP_CD"; 085 static final public String FISCAL_PERIOD_CODE = "UNIV_FISCAL_PRD_CD"; 086 static final public String DEBIT_CREDIT_CODE = "TRN_DEBIT_CRDT_CD"; 087 static final public String OBJECT_TYPE_DEBIT_CREDIT_CODE = "FIN_OBJTYP_DBCR_CD"; 088 static final public String OFFSET_GENERATION_CODE = "FIN_OFFST_GNRTN_CD"; 089 static final public String TRANSACTION_LEDGER_ENTRY_AMOUNT = "TRN_LDGR_ENTR_AMT"; 090 static final public String TRANSACTION_DEBIT_CREDIT_CD = "TRN_DEBIT_CRDT_CD"; 091 092 static final public String TRANSACTION_DT = "TRANSACTION_DT"; 093 static final public String FIN_OBJ_TYP_CODE = "FIN_OBJ_TYP_CODE"; 094 static final public String NET_EXP_OBJECT_CD = "NET_EXP_OBJECT_CD"; 095 static final public String NET_REV_OBJECT_CD = "NET_REV_OBJECT_CD"; 096 static final public String FUND_BAL_OBJ_TYP_CD = "FUND_BAL_OBJ_TYP_CD"; 097 static final public String FUND_BAL_OBJECT_CD = "FUND_BAL_OBJECT_CD"; 098 static final public String UNIV_DT = "UNIV_DT"; 099 100 static final public String FINANCIAL_DOCUMENT_TYPE_CODE = "FDOC_TYP_CD"; 101 static final public String ORIGINATION_CODE = "FS_ORIGIN_CD"; 102 static final public String DOCUMENT_NUMBER = "FDOC_NBR"; 103 104 static final public String CURRENT_BUDGET_LINE_BALANCE_AMOUNT = "CURR_BDLN_BAL_AMT"; 105 static final public String ACCOUNT_LINE_ACTUALS_BALANCE_AMOUNT = "ACLN_ACTLS_BAL_AMT"; 106 static final public String ACCOUNT_LINE_ENCUMBRANCE_BALANCE_AMOUNT = "ACLN_ENCUM_BAL_AMT"; 107 108 static final public String ACCOUNT_LINE_ENCUMBRANCE_AMOUNT = "ACLN_ENCUM_AMT"; 109 static final public String ACCOUNT_LINE_ENCUMBRANCE_CLOSED_AMOUNT = "ACLN_ENCUM_CLS_AMT"; 110 111 static final public String MONTH_1_ACCT_AMT = "MO1_ACCT_LN_AMT"; 112 static final public String MONTH_2_ACCT_AMT = "MO2_ACCT_LN_AMT"; 113 static final public String MONTH_3_ACCT_AMT = "MO3_ACCT_LN_AMT"; 114 static final public String MONTH_4_ACCT_AMT = "MO4_ACCT_LN_AMT"; 115 static final public String MONTH_5_ACCT_AMT = "MO5_ACCT_LN_AMT"; 116 static final public String MONTH_6_ACCT_AMT = "MO6_ACCT_LN_AMT"; 117 static final public String MONTH_7_ACCT_AMT = "MO7_ACCT_LN_AMT"; 118 static final public String MONTH_8_ACCT_AMT = "MO8_ACCT_LN_AMT"; 119 static final public String MONTH_9_ACCT_AMT = "MO9_ACCT_LN_AMT"; 120 static final public String MONTH_10_ACCT_AMT = "MO10_ACCT_LN_AMT"; 121 static final public String MONTH_11_ACCT_AMT = "MO11_ACCT_LN_AMT"; 122 static final public String MONTH_12_ACCT_AMT = "MO12_ACCT_LN_AMT"; 123 static final public String MONTH_13_ACCT_AMT = "MO13_ACCT_LN_AMT"; 124 125 } 126 127 public static class BalanceInquiryDrillDowns { 128 static final public String OBJECT_LEVEL_CODE = "financialObject.financialObjectLevel.financialObjectLevelCode"; 129 static final public String REPORTING_SORT_CODE = "financialObject.financialObjectLevel.financialReportingSortCode"; 130 static final public String CONSOLIDATION_OBJECT_CODE = "financialObject.financialObjectLevel.financialConsolidationObject.finConsolidationObjectCode"; 131 } 132 133 public static class LookupableBeanKeys { 134 static final public String PENDING_ENTRY = "glPendingEntryLookupable"; 135 public static final String SEGMENTED_LOOKUP_FLAG_NAME = "segmented"; 136 } 137 138 public static final String GL_SCRUBBER_GROUP = "ScrubberStep"; 139 public static final String GL_ORGANIZATION_REVERSION_SELECTION_GROUP = "OrganizationReversion"; 140 141 public static final String ANNUAL_CLOSING_TRANSACTION_DATE_PARM = "ANNUAL_CLOSING_TRANSACTION_DATE"; 142 public static final String ANNUAL_CLOSING_FISCAL_YEAR_PARM = "ANNUAL_CLOSING_FISCAL_YEAR"; 143 public static final String FISCAL_YEAR_PARM = "FISCAL_YEAR"; 144 public static final String ANNUAL_CLOSING_FUND_BALANCE_OBJECT_CODE_PARM = "ANNUAL_CLOSING_FUND_BALANCE_OBJECT_CODE"; 145 public static final String ANNUAL_CLOSING_FUND_BALANCE_OBJECT_TYPE_PARM = "ANNUAL_CLOSING_FUND_BALANCE_OBJECT_TYPE"; 146 public static final String ANNUAL_CLOSING_DOCUMENT_TYPE = "ANNUAL_CLOSING_DOCUMENT_TYPE"; 147 148 public static class GlAccountBalanceGroupParameters { 149 static final public String EXPENSE_OBJECT_TYPE_CODES = "EXPENSE_OBJECT_TYPE_CODES"; 150 static final public String EXPENSE_TRANSFER_OBJECT_TYPE_CODES = "EXPENSE_TRANSFER_OBJECT_TYPE_CODES"; 151 static final public String INCOME_OBJECT_TYPE_CODES = "INCOME_OBJECT_TYPE_CODES"; 152 static final public String INCOME_TRANSFER_OBJECT_TYPE_CODES = "INCOME_TRANSFER_OBJECT_TYPE_CODES"; 153 } 154 155 public static class GlScrubberGroupParameters { 156 static final public String CAPITALIZATION_IND = "CAPITALIZATION_IND"; 157 static final public String CAPITALIZATION_SUBTYPE_OBJECT = "CAPITALIZATION_OBJECT_CODE_BY_OBJECT_SUB_TYPE"; 158 159 static final public String COST_SHARE_OBJECT_CODE_BY_LEVEL_PARM_NM = "COST_SHARE_OBJECT_CODE_BY_OBJECT_LEVEL"; 160 static final public String COST_SHARE_OBJECT_CODE_PARM_NM = "COST_SHARE_OBJECT_CODE"; 161 162 static final public String LIABILITY_IND = "LIABILITY_IND"; 163 static final public String LIABILITY_OBJECT_CODE = "LIABILITY_OBJECT_CODE"; 164 165 static final public String PLANT_INDEBTEDNESS_IND = "PLANT_INDEBTEDNESS_IND"; 166 167 static final public String SCRUBBER_CUTOFF_TIME = "CUTOFF_TIME"; 168 } 169 170 public static class GlScrubberGroupRules { 171 static final public String CAPITALIZATION_DOC_TYPE_CODES = "CAPITALIZATION_DOCUMENT_TYPES"; 172 static final public String CAPITALIZATION_FISCAL_PERIOD_CODES = "CAPITALIZATION_FISCAL_PERIODS"; 173 static final public String CAPITALIZATION_OBJ_SUB_TYPE_CODES = "CAPITALIZATION_OBJECT_SUB_TYPES"; 174 static final public String CAPITALIZATION_SUB_FUND_GROUP_CODES = "CAPITALIZATION_SUB_FUND_GROUPS"; 175 static final public String CAPITALIZATION_CHART_CODES = "CAPITALIZATION_CHARTS"; 176 177 static final public String COST_SHARE_OBJ_TYPE_CODES = "COST_SHARE_OBJECT_TYPES"; 178 static final public String COST_SHARE_FISCAL_PERIOD_CODES = "COST_SHARE_FISCAL_PERIODS"; 179 180 static final public String COST_SHARE_ENC_BAL_TYP_CODES = "COST_SHARE_ENCUMBRANCE_BALANCE_TYPES"; 181 static final public String COST_SHARE_ENC_DOC_TYPE_CODES = "COST_SHARE_DOCUMENT_TYPES"; 182 static final public String COST_SHARE_ENC_FISCAL_PERIOD_CODES = "COST_SHARE_ENCUMBRANCE_FISCAL_PERIODS"; 183 184 static final public String LIABILITY_CHART_CODES = "LIABILITY_CHARTS"; 185 static final public String LIABILITY_DOC_TYPE_CODES = "LIABILITY_DOCUMENT_TYPES"; 186 static final public String LIABILITY_FISCAL_PERIOD_CODES = "LIABILITY_FISCAL_PERIODS"; 187 static final public String LIABILITY_OBJ_SUB_TYPE_CODES = "LIABILITY_OBJECT_SUB_TYPES"; 188 static final public String LIABILITY_SUB_FUND_GROUP_CODES = "LIABILITY_SUB_FUND_GROUPS"; 189 190 static final public String OFFSET_DOC_TYPE_CODES = "OFFSET_GENERATION_DOCUMENT_TYPES"; 191 static final public String OFFSET_FISCAL_PERIOD_CODES = "OFFSET_GENERATION_FISCAL_PERIODS"; 192 193 static final public String DOCUMENT_TYPES_REQUIRING_FLEXIBLE_OFFSET_BALANCING_ENTRIES = "DOCUMENT_TYPES_REQUIRING_FLEXIBLE_OFFSET_BALANCING_ENTRIES"; 194 195 static final public String PLANT_FUND_CAMPUS_OBJECT_SUB_TYPE_CODES = "PLANT_FUND_CAMPUS_OBJECT_SUB_TYPES"; 196 static final public String PLANT_FUND_ORG_OBJECT_SUB_TYPE_CODES = "PLANT_FUND_ORGANIZATION_OBJECT_SUB_TYPES"; 197 198 static final public String PLANT_INDEBTEDNESS_OBJ_SUB_TYPE_CODES = "PLANT_INDEBTEDNESS_OBJECT_SUB_TYPES"; 199 static final public String PLANT_INDEBTEDNESS_SUB_FUND_GROUP_CODES = "PLANT_INDEBTEDNESS_SUB_FUND_GROUPS"; 200 201 static final public String CONTINUATION_ACCOUNT_BYPASS_ORIGINATION_CODES = "CONTINUATION_ACCOUNT_BYPASS_ORIGINATIONS"; 202 static final public String CONTINUATION_ACCOUNT_BYPASS_BALANCE_TYPE_CODES = "CONTINUATION_ACCOUNT_BYPASS_BALANCE_TYPE_CODES"; 203 static final public String CONTINUATION_ACCOUNT_BYPASS_DOCUMENT_TYPE_CODES = "CONTINUATION_ACCOUNT_BYPASS_DOCUMENT_TYPES"; 204 } 205 206 public static class GlSummaryReport { 207 static final public String CURRENT_YEAR_LOWER = "CURRENT_YEAR_LOWER"; 208 static final public String CURRENT_YEAR_UPPER = "CURRENT_YEAR_UPPER"; 209 static final public String CURRENT_AND_LAST_YEAR = "CURRENT_AND_LAST_YEAR"; 210 } 211 212 public static class OrganizationReversionProcess { 213 static final public String ORGANIZATION_REVERSION_COA = "ORGANIZATION_REVERSION_COA"; 214 static final public String CARRY_FORWARD_OBJECT_CODE = "CARRY_FORWARD_OBJECT_CODE"; 215 static final public String DEFAULT_FINANCIAL_SYSTEM_ORIGINATION_CODE = "MANUAL_FEED_ORIGINATION"; 216 static final public String DEFAULT_FINANCIAL_BALANCE_TYPE_CODE = "CASH_REVERSION_DEFAULT_BALANCE_TYPE"; 217 static final public String DEFAULT_FINANCIAL_BALANCE_TYPE_CODE_YEAR_END = "BUDGET_REVERSION_DEFAULT_BALANCE_TYPE"; 218 static final public String DEFAULT_DOCUMENT_NUMBER_PREFIX = "DEFAULT_DOCUMENT_NUMBER_PREFIX"; 219 static final public String UNALLOC_OBJECT_CODE_PARM = "UNALLOCATED_OBJECT_CODE"; 220 } 221 222 public static class PosterService { 223 static final public String SYMBOL_USE_EXPENDITURE_ENTRY = "@"; 224 static final public String SYMBOL_USE_ICR_FROM_ACCOUNT = "#"; 225 static final public String ENCUMBRANCE_OPEN_AMOUNT_OVERRIDING_DOCUMENT_TYPES = "ENCUMBRANCE_OPEN_AMOUNT_OVERRIDING_DOCUMENT_TYPES"; 226 227 } 228 229 public static class Balancing { 230 public static final String NUMBER_OF_PAST_FISCAL_YEARS_TO_INCLUDE = "NUMBER_OF_PAST_FISCAL_YEARS_TO_INCLUDE"; 231 public static final String NUMBER_OF_COMPARISON_FAILURES_TO_PRINT_PER_REPORT = "NUMBER_OF_COMPARISON_FAILURES_TO_PRINT_PER_REPORT"; 232 } 233 234 public static class BatchFileSystem { 235 static final public String EXTENSION = ".data"; 236 static final public String DONE_FILE_EXTENSION = ".done"; 237 238 //static final public String GL_ENTRY = ""; 239 static final public String ENTERPRISE_FEED = "gl_glentry_entp"; 240 static final public String COLLECTOR_OUTPUT = "gl_glentry_coll"; 241 //TODO:- move to OriginEntrySource?? 242 static final public String SCRUBBER_ERROR_PREFIX = "scrberr2"; 243 244 static final public String AUTO_DISAPPROVE_DOCUMENTS_OUTPUT_FILE = "sys_autoDisapprove_output"; 245 static final public String AUTO_DISAPPROVE_DOCUMENTS_ERROR_OUTPUT_FILE = "sys_autoDisapprove_errs"; 246 static final public String TEXT_EXTENSION = ".txt"; 247 248 static final public String BACKUP_FILE = "gl_glbackup"; 249 250 static final public String COLLECTOR_BACKUP_FILE = "col_glbackup"; 251 252 static final public String COLLECTOR_PRE_SCRUBBER = "col_prescrub"; 253 static final public String COLLECTOR_SCRUBBER_INPUT_FILE = "col_sortscrb"; 254 static final public String COLLECTOR_SCRUBBER_VALID_OUTPUT_FILE = "col_scrbout1"; 255 static final public String COLLECTOR_SCRUBBER_ERROR_OUTPUT_FILE = "col_scrberr1"; 256 static final public String COLLECTOR_SCRUBBER_EXPIRED_OUTPUT_FILE = "col_expaccts"; 257 static final public String COLLECTOR_SCRUBBER_ERROR_SORTED_FILE = "col_sorterr1"; 258 static final public String COLLECTOR_DEMERGER_VAILD_OUTPUT_FILE = "col_scrbout2"; 259 static final public String COLLECTOR_DEMERGER_ERROR_OUTPUT_FILE = "col_scrberr2"; 260 261 static final public String PRE_SCRUBBER_FILE = "gl_prescrub"; 262 static final public String SCRUBBER_INPUT_FILE = "gl_sortscrb"; 263 static final public String SCRUBBER_VALID_OUTPUT_FILE = "gl_scrbout1"; 264 static final public String SCRUBBER_ERROR_OUTPUT_FILE = "gl_scrberr1"; 265 static final public String SCRUBBER_EXPIRED_OUTPUT_FILE = "gl_expaccts"; 266 static final public String SCRUBBER_ERROR_SORTED_FILE = "gl_sorterr1"; 267 static final public String DEMERGER_VAILD_OUTPUT_FILE = "gl_scrbout2"; 268 static final public String DEMERGER_ERROR_OUTPUT_FILE = "gl_scrberr2"; 269 270 static final public String POSTER_INPUT_FILE = "gl_sortpost"; 271 static final public String REVERSAL_POSTER_VALID_OUTPUT_FILE = "gl_workfile"; 272 static final public String REVERSAL_POSTER_ERROR_OUTPUT_FILE = "gl_workerrs"; 273 static final public String POSTER_VALID_OUTPUT_FILE = "gl_postout"; 274 275 static final public String POSTER_ERROR_OUTPUT_FILE = "gl_posterrs"; 276 static final public String ICR_TRANSACTIONS_OUTPUT_FILE = "gl_icrtrans"; 277 //todo - create sort step 278 static final public String ICR_POSTER_INPUT_FILE = "gl_sorticr"; 279 280 static final public String ICR_POSTER_ERROR_OUTPUT_FILE = "gl_icrerrs"; 281 282 static final public String NIGHTLY_OUT_FILE = "gl_glentry_kfs"; 283 static final public String EXTRACT_TRANSACTION_FILE = "gl_glentry_pdp"; 284 285 //year end part 286 static final public String ORGANIZATION_REVERSION_PRE_CLOSING_FILE = "gl_org_reversion_pre_closing"; 287 static final public String ORGANIZATION_REVERSION_CLOSING_FILE = "gl_org_reversion_closing"; 288 static final public String ENCUMBRANCE_FORWARD_FILE = "gl_encumbrance_forward"; 289 static final public String CLOSE_NOMINAL_ACTIVITY_FILE = "gl_close_nominal_activity"; 290 static final public String BALANCE_FORWARDS_FILE = "gl_balance_forwards"; 291 static final public String BALANCE_FORWARDS_CLOSED_FILE = "gl_balance_forwards_closed"; 292 293 static final public String LABOR_GL_ENTRY_FILE = "gl_glentry_lab"; 294 } 295 296 public static class PosterOutputSummaryEntry { 297 static final public String ASSET_EXPENSE_OBJECT_TYPE_CODES = "ASSET_EXPENSE_OBJECT_TYPE_CODES"; 298 } 299 300 public static class BalanceForwardRule { 301 static final public String BALANCE_TYPES_TO_ROLL_FORWARD_FOR_BALANCE_SHEET = "BALANCE_TYPES_TO_ROLL_FORWARD_FOR_BALANCE_SHEET"; 302 static final public String BALANCE_TYPES_TO_ROLL_FORWARD_FOR_INCOME_EXPENSE = "BALANCE_TYPES_TO_ROLL_FORWARD_FOR_INCOME_EXPENSE"; 303 static final public String SUB_FUND_GROUPS_FOR_INCEPTION_TO_DATE_REPORTING = "SUB_FUND_GROUPS_FOR_INCEPTION_TO_DATE_REPORTING"; 304 } 305 306 public static class EncumbranceClosingOriginEntry { 307 static final public String GENERATED_TRANSACTION_LEDGER_ENTRY_DESCRIPTION = "GENERATED_TRANSACTION_LEDGER_ENTRY_DESCRIPTION"; 308 static final public String BEGINNING_FUND_BALANCE_TRANSACTION_LEDGER_ENTRY_DESCRIPTION = "BEGINNING_FUND_BALANCE_TRANSACTION_LEDGER_ENTRY_DESCRIPTION"; 309 static final public String OFFSET_OBJECT_CODE_FOR_INTERNAL_ENCUMBRANCE = "OFFSET_OBJECT_CODE_FOR_INTERNAL_ENCUMBRANCE"; 310 static final public String OFFSET_OBJECT_CODE_FOR_PRE_ENCUMBRANCE = "OFFSET_OBJECT_CODE_FOR_PRE_ENCUMBRANCE"; 311 static final public String OFFSET_OBJECT_CODE_FOR_EXTERNAL_ENCUMBRANCE = "OFFSET_OBJECT_CODE_FOR_EXTERNAL_ENCUMBRANCE"; 312 static final public String FORWARDING_ENCUMBRANCE_BALANCE_TYPES = "FORWARDING_ENCUMBRANCE_BALANCE_TYPES"; 313 static final public String FORWARD_ENCUMBRANCE_BALANCE_TYPE_AND_ORIGIN_CODE = "FORWARD_ENCUMBRANCE_BALANCE_TYPE_AND_ORIGIN_CODE"; 314 } 315 316 public static class Reconciliation { 317 // the case of these strings is not important 318 public static final String TABLE_DEF_STRING = "c"; 319 public static final String COLUMN_DEF_STRING = "s"; 320 public static final String CHECKSUM_DEF_STRING = "e"; 321 322 public static final String COMMENT_STRING = "#"; 323 } 324 325 // Some static method calls below that could be done in static variables instead but isn't safe to do during class loading 326 // w/SpringContext. 327 private static String SPACE_UNIVERSITY_FISCAL_PERIOD_CODE = null; 328 329 public static String getSpaceUniversityFiscalPeriodCode() { 330 if (SPACE_UNIVERSITY_FISCAL_PERIOD_CODE == null) { 331 SPACE_UNIVERSITY_FISCAL_PERIOD_CODE = StringUtils.rightPad("", SpringContext.getBean(DataDictionaryService.class).getAttributeMaxLength(OriginEntryFull.class, KFSPropertyConstants.UNIVERSITY_FISCAL_PERIOD_CODE), ' '); 332 } 333 return SPACE_UNIVERSITY_FISCAL_PERIOD_CODE; 334 } 335 336 private static String SPACE_BALANCE_TYPE_CODE = null; 337 338 public static String getSpaceBalanceTypeCode() { 339 if (SPACE_BALANCE_TYPE_CODE == null) { 340 SPACE_BALANCE_TYPE_CODE = StringUtils.rightPad("", SpringContext.getBean(DataDictionaryService.class).getAttributeMaxLength(BalanceType.class, KFSPropertyConstants.CODE), ' '); 341 } 342 return SPACE_BALANCE_TYPE_CODE; 343 } 344 345 private static String SPACE_FINANCIAL_SYSTEM_ORIGINATION_CODE = null; 346 347 public static String getSpaceFinancialSystemOriginationCode() { 348 if (SPACE_FINANCIAL_SYSTEM_ORIGINATION_CODE == null) { 349 SPACE_FINANCIAL_SYSTEM_ORIGINATION_CODE = StringUtils.rightPad("", SpringContext.getBean(DataDictionaryService.class).getAttributeMaxLength(OriginationCode.class, KFSPropertyConstants.FINANCIAL_SYSTEM_ORIGINATION_CODE), ' '); 350 } 351 return SPACE_FINANCIAL_SYSTEM_ORIGINATION_CODE; 352 } 353 354 private static String SPACE_DEBIT_CREDIT_CODE = null; 355 356 public static String getSpaceDebitCreditCode() { 357 if (SPACE_DEBIT_CREDIT_CODE == null) { 358 SPACE_DEBIT_CREDIT_CODE = StringUtils.rightPad("", SpringContext.getBean(DataDictionaryService.class).getAttributeMaxLength(OriginEntryFull.class, KFSPropertyConstants.TRANSACTION_DEBIT_CREDIT_CODE), ' '); 359 } 360 return SPACE_DEBIT_CREDIT_CODE; 361 } 362 363 private static String SPACE_FINANCIAL_OBJECT_CODE = null; 364 365 public static String getSpaceFinancialObjectCode() { 366 if (SPACE_FINANCIAL_OBJECT_CODE == null) { 367 SPACE_FINANCIAL_OBJECT_CODE = StringUtils.rightPad("", SpringContext.getBean(DataDictionaryService.class).getAttributeMaxLength(ObjectCode.class, KFSPropertyConstants.FINANCIAL_OBJECT_CODE), ' '); 368 } 369 return SPACE_FINANCIAL_OBJECT_CODE; 370 } 371 372 private static String SPACE_TRANSACTION_DATE = null; 373 374 public static String getSpaceTransactionDate() { 375 if (SPACE_TRANSACTION_DATE == null) { 376 SPACE_TRANSACTION_DATE = StringUtils.rightPad("", SpringContext.getBean(DataDictionaryService.class).getAttributeMaxLength(OriginEntryFull.class, KFSPropertyConstants.TRANSACTION_DATE), ' '); 377 } 378 return SPACE_TRANSACTION_DATE; 379 } 380 381 private static String SPACE_UNIVERSITY_FISCAL_YEAR = null; 382 383 public static String getSpaceUniversityFiscalYear() { 384 if (SPACE_UNIVERSITY_FISCAL_YEAR == null) { 385 SPACE_UNIVERSITY_FISCAL_YEAR = StringUtils.rightPad("", SpringContext.getBean(DataDictionaryService.class).getAttributeMaxLength(OriginEntryFull.class, KFSPropertyConstants.UNIVERSITY_FISCAL_YEAR), ' '); 386 } 387 return SPACE_UNIVERSITY_FISCAL_YEAR; 388 } 389 390 private static String SPACE_TRANSACTION_ENTRY_SEQUENCE_NUMBER = null; 391 392 public static String getSpaceTransactionEntrySequenceNumber() { 393 if (SPACE_TRANSACTION_ENTRY_SEQUENCE_NUMBER == null) { 394 SPACE_TRANSACTION_ENTRY_SEQUENCE_NUMBER = StringUtils.rightPad("", SpringContext.getBean(DataDictionaryService.class).getAttributeMaxLength(OriginEntryFull.class, KFSPropertyConstants.TRANSACTION_ENTRY_SEQUENCE_NUMBER), ' '); 395 } 396 return SPACE_TRANSACTION_ENTRY_SEQUENCE_NUMBER; 397 } 398 399 private static String SPACE_TRANSACTION_LEDGER_ENTRY_DESCRIPTION = null; 400 401 public static String getSpaceTransactionLedgetEntryDescription() { 402 if (SPACE_TRANSACTION_LEDGER_ENTRY_DESCRIPTION == null) { 403 SPACE_TRANSACTION_LEDGER_ENTRY_DESCRIPTION = StringUtils.rightPad("", SpringContext.getBean(DataDictionaryService.class).getAttributeMaxLength(OriginEntryFull.class, KFSPropertyConstants.TRANSACTION_LEDGER_ENTRY_DESC), ' '); 404 } 405 return SPACE_TRANSACTION_LEDGER_ENTRY_DESCRIPTION; 406 } 407 408 private static String SPACE_SUB_ACCOUNT_TYPE_CODE = null; 409 410 public static String getSpaceSubAccountTypeCode() { 411 if (SPACE_SUB_ACCOUNT_TYPE_CODE == null) { 412 SPACE_SUB_ACCOUNT_TYPE_CODE = StringUtils.rightPad("", SpringContext.getBean(DataDictionaryService.class).getAttributeMaxLength(A21SubAccount.class, KFSPropertyConstants.SUB_ACCOUNT_TYPE_CODE), ' '); 413 } 414 return SPACE_SUB_ACCOUNT_TYPE_CODE; 415 } 416 417 private static String SPACE_ALL_ORIGIN_ENTRY_FIELDS = null; 418 419 public static String getSpaceAllOriginEntryFields() { 420 if (SPACE_ALL_ORIGIN_ENTRY_FIELDS == null) { 421 List<AttributeDefinition> attributes = SpringContext.getBean(DataDictionaryService.class).getDataDictionary().getBusinessObjectEntry(OriginEntryFull.class.getName()).getAttributes(); 422 423 int totalLength = 0; 424 425 for ( AttributeDefinition attributeDefinition : attributes ) { 426 427 if (!(KFSPropertyConstants.ENTRY_GROUP_ID.equals(attributeDefinition.getName()) || KFSPropertyConstants.ENTRY_ID.equals(attributeDefinition.getName()))) { 428 totalLength += attributeDefinition.getMaxLength(); 429 } 430 } 431 432 SPACE_ALL_ORIGIN_ENTRY_FIELDS = StringUtils.rightPad("", totalLength, ' '); 433 } 434 435 return SPACE_ALL_ORIGIN_ENTRY_FIELDS; 436 } 437 438 private static String SPACE_ALL_COLLECTOR_BATCH_HEADER_FIELDS = null; 439 440 public static String getSpaceAllCollectorBatchHeaderFields() { 441 if (SPACE_ALL_COLLECTOR_BATCH_HEADER_FIELDS == null) { 442 List<AttributeDefinition> attributes = SpringContext.getBean(DataDictionaryService.class).getDataDictionary().getBusinessObjectEntry(CollectorBatch.class.getName()).getAttributes(); 443 444 int totalLength = 0; 445 446 for ( AttributeDefinition attributeDefinition : attributes ) { 447 if (!(KFSPropertyConstants.TRAILER_RECORD_FIRST_EMPTY_FIELD.equals(attributeDefinition.getName()) || 448 KFSPropertyConstants.TOTAL_RECORDS.equals(attributeDefinition.getName()) || 449 KFSPropertyConstants.TRAILER_RECORD_SECOND_EMPTY_FIELD.equals(attributeDefinition.getName()) || 450 KFSPropertyConstants.TOTAL_AMOUNT.equals(attributeDefinition.getName()))) { 451 totalLength += attributeDefinition.getMaxLength(); 452 } 453 } 454 455 SPACE_ALL_COLLECTOR_BATCH_HEADER_FIELDS = StringUtils.rightPad("", totalLength, ' '); 456 } 457 458 return SPACE_ALL_COLLECTOR_BATCH_HEADER_FIELDS; 459 } 460 461 private static String SPACE_ALL_COLLECTOR_BATCH_TRAILER_FIELDS = null; 462 463 public static String getSpaceAllCollectorBatchTrailerFields() { 464 if (SPACE_ALL_COLLECTOR_BATCH_TRAILER_FIELDS == null) { 465 List<AttributeDefinition> attributes = SpringContext.getBean(DataDictionaryService.class).getDataDictionary().getBusinessObjectEntry(CollectorBatch.class.getName()).getAttributes(); 466 467 int totalLength = 0; 468 469 for ( AttributeDefinition attributeDefinition : attributes ) { 470 if ((KFSPropertyConstants.UNIVERSITY_FISCAL_YEAR.equals(attributeDefinition.getName()) || 471 KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE.equals(attributeDefinition.getName()) || 472 KFSPropertyConstants.ORGANIZATION_CODE.equals(attributeDefinition.getName()) || 473 KFSPropertyConstants.TRANSMISSION_DATE.equals(attributeDefinition.getName()) || 474 KFSPropertyConstants.COLLECTOR_BATCH_RECORD_TYPE.equals(attributeDefinition.getName()) || 475 KFSPropertyConstants.TRAILER_RECORD_FIRST_EMPTY_FIELD.equals(attributeDefinition.getName()) || 476 KFSPropertyConstants.TOTAL_RECORDS.equals(attributeDefinition.getName()) || 477 KFSPropertyConstants.TRAILER_RECORD_SECOND_EMPTY_FIELD.equals(attributeDefinition.getName()) || 478 KFSPropertyConstants.TOTAL_AMOUNT.equals(attributeDefinition.getName()))) { 479 totalLength += attributeDefinition.getMaxLength(); 480 } 481 } 482 483 SPACE_ALL_COLLECTOR_BATCH_TRAILER_FIELDS = StringUtils.rightPad("", totalLength, ' '); 484 } 485 486 return SPACE_ALL_COLLECTOR_BATCH_TRAILER_FIELDS; 487 } 488 489 private static String SPACE_ALL_COLLECTOR_DETAIL_FIELDS = null; 490 491 public static String getSpaceAllCollectorDetailFields() { 492 if (SPACE_ALL_COLLECTOR_DETAIL_FIELDS == null) { 493 List<AttributeDefinition> attributes = SpringContext.getBean(DataDictionaryService.class).getDataDictionary().getBusinessObjectEntry(CollectorDetail.class.getName()).getAttributes(); 494 495 int totalLength = 0; 496 497 for ( AttributeDefinition attributeDefinition : attributes ) { 498 totalLength += attributeDefinition.getMaxLength(); 499 } 500 501 SPACE_ALL_COLLECTOR_DETAIL_FIELDS = StringUtils.rightPad("", totalLength, ' '); 502 } 503 504 return SPACE_ALL_COLLECTOR_DETAIL_FIELDS; 505 } 506 507 508 private static String ZERO_TRANSACTION_ENTRY_SEQUENCE_NUMBER = null; 509 510 public static String getZeroTransactionEntrySequenceNumber() { 511 if (ZERO_TRANSACTION_ENTRY_SEQUENCE_NUMBER == null) { 512 ZERO_TRANSACTION_ENTRY_SEQUENCE_NUMBER = StringUtils.rightPad("", SpringContext.getBean(DataDictionaryService.class).getAttributeMaxLength(OriginEntryFull.class, KFSPropertyConstants.TRANSACTION_ENTRY_SEQUENCE_NUMBER), '0'); 513 } 514 return ZERO_TRANSACTION_ENTRY_SEQUENCE_NUMBER; 515 } 516 517 public static String getZeroTransactionLedgerEntryAmount(){ 518 OriginEntryFieldUtil oefu = new OriginEntryFieldUtil(); 519 int length = oefu.getFieldLengthMap().get(KFSPropertyConstants.TRANSACTION_LEDGER_ENTRY_AMOUNT); 520 521 String amount = ""; 522 amount = StringUtils.rightPad("+", length - 3, "0") + ".00"; 523 524 return amount; 525 } 526 527 private static String DASH_ORGANIZATION_REFERENCE_ID = null; 528 529 public static String getDashOrganizationReferenceId() { 530 if (DASH_ORGANIZATION_REFERENCE_ID == null) { 531 DASH_ORGANIZATION_REFERENCE_ID = StringUtils.rightPad("", SpringContext.getBean(DataDictionaryService.class).getAttributeMaxLength(OriginEntryFull.class, KFSPropertyConstants.ORGANIZATION_REFERENCE_ID), '-'); 532 } 533 return DASH_ORGANIZATION_REFERENCE_ID; 534 } 535 536 private static String SPACE_CHART_OF_ACCOUNTS_CODE = null; 537 538 public static String getSpaceChartOfAccountsCode() { 539 if (SPACE_CHART_OF_ACCOUNTS_CODE == null) { 540 SPACE_CHART_OF_ACCOUNTS_CODE = StringUtils.rightPad("", SpringContext.getBean(DataDictionaryService.class).getAttributeMaxLength(OriginEntryFull.class, KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE), ' '); 541 } 542 return SPACE_CHART_OF_ACCOUNTS_CODE; 543 } 544 public static final String INCOME_OR_EXPENSE_TRANSFER_CONSOLIDATION_CODE = "TRSF"; 545 }