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.businessobject; 017 018 import java.sql.Date; 019 import java.text.ParseException; 020 import java.text.SimpleDateFormat; 021 import java.util.ArrayList; 022 import java.util.LinkedHashMap; 023 import java.util.List; 024 import java.util.Map; 025 import java.util.regex.Matcher; 026 import java.util.regex.Pattern; 027 028 import org.apache.commons.lang.StringUtils; 029 import org.kuali.kfs.coa.businessobject.A21SubAccount; 030 import org.kuali.kfs.coa.businessobject.Account; 031 import org.kuali.kfs.coa.businessobject.AccountingPeriod; 032 import org.kuali.kfs.coa.businessobject.BalanceType; 033 import org.kuali.kfs.coa.businessobject.Chart; 034 import org.kuali.kfs.coa.businessobject.ObjectCode; 035 import org.kuali.kfs.coa.businessobject.ObjectType; 036 import org.kuali.kfs.coa.businessobject.ProjectCode; 037 import org.kuali.kfs.coa.businessobject.SubAccount; 038 import org.kuali.kfs.coa.businessobject.SubObjectCode; 039 import org.kuali.kfs.coa.service.AccountService; 040 import org.kuali.kfs.gl.GeneralLedgerConstants; 041 import org.kuali.kfs.gl.exception.LoadException; 042 import org.kuali.kfs.sys.KFSConstants; 043 import org.kuali.kfs.sys.KFSPropertyConstants; 044 import org.kuali.kfs.sys.Message; 045 import org.kuali.kfs.sys.businessobject.GeneralLedgerPendingEntry; 046 import org.kuali.kfs.sys.businessobject.OriginationCode; 047 import org.kuali.kfs.sys.businessobject.SystemOptions; 048 import org.kuali.kfs.sys.businessobject.UniversityDate; 049 import org.kuali.kfs.sys.context.SpringContext; 050 import org.kuali.rice.kew.doctype.bo.DocumentTypeEBO; 051 import org.kuali.rice.kew.service.impl.KEWModuleService; 052 import org.kuali.rice.kns.bo.PersistableBusinessObjectBase; 053 import org.kuali.rice.kns.service.DateTimeService; 054 import org.kuali.rice.kns.util.KualiDecimal; 055 056 /** 057 * This class represents a full origin entry 058 */ 059 public class OriginEntryFull extends PersistableBusinessObjectBase implements Transaction, OriginEntryInformation, FlexibleAccountUpdateable { 060 private static org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(OriginEntryFull.class); 061 private static OriginEntryFieldUtil originEntryFieldUtil; 062 063 public static final Pattern MATCH_CONTROL_CHARACTERS = Pattern.compile("\\p{Cntrl}"); 064 public static final String REPLACE_MATCHED_CONTROL_CHARACTERS = " "; 065 066 // 17 characters while it is 19 character in DD. Don't change, it has to be 17. 067 // KFSMI-3308 - changed to 20 068 069 070 private Integer entryId; 071 private Integer entryGroupId; 072 protected String accountNumber; 073 protected String documentNumber; 074 protected String referenceFinancialDocumentNumber; 075 protected String referenceFinancialDocumentTypeCode; 076 protected Date financialDocumentReversalDate; 077 protected String financialDocumentTypeCode; 078 protected String financialBalanceTypeCode; 079 protected String chartOfAccountsCode; 080 protected String financialObjectTypeCode; 081 protected String financialObjectCode; 082 protected String financialSubObjectCode; 083 protected String financialSystemOriginationCode; 084 protected String referenceFinancialSystemOriginationCode; 085 protected String organizationDocumentNumber; 086 protected String organizationReferenceId; 087 protected String projectCode; 088 protected String subAccountNumber; 089 protected Date transactionDate; 090 protected String transactionDebitCreditCode; 091 protected String transactionEncumbranceUpdateCode; 092 protected Integer transactionLedgerEntrySequenceNumber; 093 protected KualiDecimal transactionLedgerEntryAmount; 094 protected String transactionLedgerEntryDescription; 095 protected String universityFiscalPeriodCode; 096 protected Integer universityFiscalYear; 097 private boolean transactionScrubberOffsetGenerationIndicator; 098 099 // bo references 100 private OriginEntryGroup group; 101 private Account account; 102 private SubAccount subAccount; 103 private A21SubAccount a21SubAccount; 104 private BalanceType balanceType; 105 private Chart chart; 106 private ObjectCode financialObject; 107 private SubObjectCode financialSubObject; 108 private ObjectType objectType; 109 private ProjectCode project; 110 private DocumentTypeEBO financialSystemDocumentTypeCode; 111 private UniversityDate universityDate; 112 private SystemOptions option; 113 private AccountingPeriod accountingPeriod; 114 private UniversityDate reversalDate; 115 private OriginationCode origination; 116 private DocumentTypeEBO referenceFinancialSystemDocumentTypeCode; 117 118 private static final String DATE_FORMAT = "yyyy-MM-dd"; 119 120 public void copyFieldsFromTransaction(Transaction t) { 121 setAccountNumber(t.getAccountNumber()); 122 setDocumentNumber(t.getDocumentNumber()); 123 setReferenceFinancialDocumentNumber(t.getReferenceFinancialDocumentNumber()); 124 setReferenceFinancialDocumentTypeCode(t.getReferenceFinancialDocumentTypeCode()); 125 setFinancialDocumentReversalDate(t.getFinancialDocumentReversalDate()); 126 setFinancialDocumentTypeCode(t.getFinancialDocumentTypeCode()); 127 setFinancialBalanceTypeCode(t.getFinancialBalanceTypeCode()); 128 setChartOfAccountsCode(t.getChartOfAccountsCode()); 129 setFinancialObjectTypeCode(t.getFinancialObjectTypeCode()); 130 setFinancialObjectCode(t.getFinancialObjectCode()); 131 setFinancialSubObjectCode(t.getFinancialSubObjectCode()); 132 setFinancialSystemOriginationCode(t.getFinancialSystemOriginationCode()); 133 setReferenceFinancialSystemOriginationCode(t.getReferenceFinancialSystemOriginationCode()); 134 setOrganizationDocumentNumber(t.getOrganizationDocumentNumber()); 135 setOrganizationReferenceId(t.getOrganizationReferenceId()); 136 setProjectCode(t.getProjectCode()); 137 setSubAccountNumber(t.getSubAccountNumber()); 138 setTransactionDate(t.getTransactionDate()); 139 setTransactionDebitCreditCode(t.getTransactionDebitCreditCode()); 140 setTransactionEncumbranceUpdateCode(t.getTransactionEncumbranceUpdateCode()); 141 setTransactionLedgerEntrySequenceNumber(t.getTransactionLedgerEntrySequenceNumber()); 142 setTransactionLedgerEntryAmount(t.getTransactionLedgerEntryAmount()); 143 setTransactionLedgerEntryDescription(t.getTransactionLedgerEntryDescription()); 144 setUniversityFiscalPeriodCode(t.getUniversityFiscalPeriodCode()); 145 setUniversityFiscalYear(t.getUniversityFiscalYear()); 146 } 147 148 protected java.sql.Date parseDate(String sdate, boolean beLenientWithDates) throws ParseException { 149 if ((sdate == null) || (sdate.trim().length() == 0)) { 150 return null; 151 } 152 else { 153 154 SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT); 155 sdf.setLenient(beLenientWithDates); 156 157 java.util.Date d = sdf.parse(sdate); 158 return new Date(d.getTime()); 159 } 160 } 161 162 protected String formatDate(Date date) { 163 if (date == null) { 164 return GeneralLedgerConstants.getSpaceTransactionDate(); 165 } 166 else { 167 SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT); 168 return sdf.format(date); 169 } 170 } 171 172 protected String getValue(String line, int s, int e) { 173 // String v = line.substring(s, e); 174 return org.springframework.util.StringUtils.trimTrailingWhitespace(StringUtils.substring(line, s, e)); 175 } 176 177 /** 178 * This method loads the fields of this origin entry by parsing the passed in the string It is assumed that the String does not 179 * contain the origin entry ID, but if it does, it will be ignored 180 * 181 * @param line a string representing an origin entry 182 * @param lineNumber used to render an error message by identifying this line 183 * @throws LoadException 184 */ 185 186 public List<Message> setFromTextFileForBatch(String line, int lineNumber) throws LoadException { 187 List<Message> returnList = new ArrayList<Message>(); 188 final Map<String, Integer> pMap = getOriginEntryFieldUtil().getFieldBeginningPositionMap(); 189 190 // KFSMI-5958: Don't want any control characters in output files. They potentially disrupt further processing 191 Matcher controlCharacterMatcher = MATCH_CONTROL_CHARACTERS.matcher(line); 192 line = controlCharacterMatcher.replaceAll(REPLACE_MATCHED_CONTROL_CHARACTERS); 193 194 // Just in case 195 line = org.apache.commons.lang.StringUtils.rightPad(line, GeneralLedgerConstants.getSpaceAllOriginEntryFields().length(), ' '); 196 197 if (!GeneralLedgerConstants.getSpaceUniversityFiscalYear().equals(line.substring(pMap.get(KFSPropertyConstants.UNIVERSITY_FISCAL_YEAR), pMap.get(KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE)))) { 198 try { 199 setUniversityFiscalYear(new Integer(getValue(line, pMap.get(KFSPropertyConstants.UNIVERSITY_FISCAL_YEAR), pMap.get(KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE)))); 200 } 201 catch (NumberFormatException e) { 202 returnList.add(new Message("Fiscal year '" + line.substring(pMap.get(KFSPropertyConstants.UNIVERSITY_FISCAL_YEAR), pMap.get(KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE)) + "' contains an invalid value." , Message.TYPE_FATAL)); 203 setUniversityFiscalYear(null); 204 } 205 } 206 else { 207 setUniversityFiscalYear(null); 208 } 209 210 setChartOfAccountsCode(getValue(line, pMap.get(KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE), pMap.get(KFSPropertyConstants.ACCOUNT_NUMBER))); 211 setAccountNumber(getValue(line, pMap.get(KFSPropertyConstants.ACCOUNT_NUMBER), pMap.get(KFSPropertyConstants.SUB_ACCOUNT_NUMBER))); 212 213 // if chart code is empty while accounts cannot cross charts, then derive chart code from account number 214 AccountService acctserv = SpringContext.getBean(AccountService.class); 215 if (StringUtils.isEmpty(getChartOfAccountsCode()) && StringUtils.isNotEmpty(getAccountNumber()) && !acctserv.accountsCanCrossCharts()) { 216 Account account = acctserv.getUniqueAccountForAccountNumber(getAccountNumber()); 217 if (account != null) { 218 setChartOfAccountsCode(account.getChartOfAccountsCode()); 219 } 220 } 221 222 setSubAccountNumber(getValue(line, pMap.get(KFSPropertyConstants.SUB_ACCOUNT_NUMBER), pMap.get(KFSPropertyConstants.FINANCIAL_OBJECT_CODE))); 223 setFinancialObjectCode(getValue(line, pMap.get(KFSPropertyConstants.FINANCIAL_OBJECT_CODE), pMap.get(KFSPropertyConstants.FINANCIAL_SUB_OBJECT_CODE))); 224 setFinancialSubObjectCode(getValue(line, pMap.get(KFSPropertyConstants.FINANCIAL_SUB_OBJECT_CODE), pMap.get(KFSPropertyConstants.FINANCIAL_BALANCE_TYPE_CODE))); 225 setFinancialBalanceTypeCode(getValue(line, pMap.get(KFSPropertyConstants.FINANCIAL_BALANCE_TYPE_CODE), pMap.get(KFSPropertyConstants.FINANCIAL_OBJECT_TYPE_CODE))); 226 setFinancialObjectTypeCode(getValue(line, pMap.get(KFSPropertyConstants.FINANCIAL_OBJECT_TYPE_CODE), pMap.get(KFSPropertyConstants.UNIVERSITY_FISCAL_PERIOD_CODE))); 227 setUniversityFiscalPeriodCode(getValue(line, pMap.get(KFSPropertyConstants.UNIVERSITY_FISCAL_PERIOD_CODE), pMap.get(KFSPropertyConstants.FINANCIAL_DOCUMENT_TYPE_CODE))); 228 setFinancialDocumentTypeCode(getValue(line, pMap.get(KFSPropertyConstants.FINANCIAL_DOCUMENT_TYPE_CODE), pMap.get(KFSPropertyConstants.FINANCIAL_SYSTEM_ORIGINATION_CODE))); 229 setFinancialSystemOriginationCode(getValue(line, pMap.get(KFSPropertyConstants.FINANCIAL_SYSTEM_ORIGINATION_CODE), pMap.get(KFSPropertyConstants.DOCUMENT_NUMBER))); 230 setDocumentNumber(getValue(line, pMap.get(KFSPropertyConstants.DOCUMENT_NUMBER), pMap.get(KFSPropertyConstants.TRANSACTION_ENTRY_SEQUENCE_NUMBER))); 231 232 // don't trim sequenceNumber because SpaceTransactionEntrySequenceNumber is " " 233 if (!GeneralLedgerConstants.getSpaceTransactionEntrySequenceNumber().equals(line.substring(pMap.get(KFSPropertyConstants.TRANSACTION_ENTRY_SEQUENCE_NUMBER), pMap.get(KFSPropertyConstants.TRANSACTION_LEDGER_ENTRY_DESC))) && !GeneralLedgerConstants.getZeroTransactionEntrySequenceNumber().equals(getValue(line, pMap.get(KFSPropertyConstants.TRANSACTION_ENTRY_SEQUENCE_NUMBER), pMap.get(KFSPropertyConstants.TRANSACTION_LEDGER_ENTRY_DESC)))) { 234 try { 235 setTransactionLedgerEntrySequenceNumber(new Integer(getValue(line, pMap.get(KFSPropertyConstants.TRANSACTION_ENTRY_SEQUENCE_NUMBER), pMap.get(KFSPropertyConstants.TRANSACTION_LEDGER_ENTRY_DESC)))); 236 } 237 catch (NumberFormatException e) { 238 returnList.add(new Message("Transaction Sequence Number '" + line.substring(pMap.get(KFSPropertyConstants.TRANSACTION_ENTRY_SEQUENCE_NUMBER), pMap.get(KFSPropertyConstants.TRANSACTION_LEDGER_ENTRY_DESC)) + "' contains an invalid value." , Message.TYPE_FATAL)); 239 setTransactionLedgerEntrySequenceNumber(null); 240 } 241 } 242 else { 243 setTransactionLedgerEntrySequenceNumber(null); 244 } 245 246 setTransactionLedgerEntryDescription(getValue(line, pMap.get(KFSPropertyConstants.TRANSACTION_LEDGER_ENTRY_DESC), pMap.get(KFSPropertyConstants.TRANSACTION_LEDGER_ENTRY_AMOUNT))); 247 248 if (!getValue(line, pMap.get(KFSPropertyConstants.TRANSACTION_LEDGER_ENTRY_AMOUNT), pMap.get(KFSPropertyConstants.TRANSACTION_DEBIT_CREDIT_CODE)).equals(GeneralLedgerConstants.EMPTY_CODE)){ 249 try { 250 setTransactionLedgerEntryAmount(new KualiDecimal(getValue(line, pMap.get(KFSPropertyConstants.TRANSACTION_LEDGER_ENTRY_AMOUNT), pMap.get(KFSPropertyConstants.TRANSACTION_DEBIT_CREDIT_CODE)).trim())); 251 } 252 catch (NumberFormatException e) { 253 returnList.add(new Message("Transaction Amount '" + line.substring(pMap.get(KFSPropertyConstants.TRANSACTION_LEDGER_ENTRY_AMOUNT), pMap.get(KFSPropertyConstants.TRANSACTION_DEBIT_CREDIT_CODE)) + "' contains an invalid value." , Message.TYPE_FATAL)); 254 setTransactionLedgerEntryAmount(KualiDecimal.ZERO); 255 } 256 } else { 257 returnList.add(new Message("Transaction Amount cannot be blank." , Message.TYPE_FATAL)); 258 setTransactionLedgerEntryAmount(KualiDecimal.ZERO); 259 } 260 261 setTransactionDebitCreditCode(line.substring(pMap.get(KFSPropertyConstants.TRANSACTION_DEBIT_CREDIT_CODE), pMap.get(KFSPropertyConstants.TRANSACTION_DATE))); 262 263 if (!getValue(line, pMap.get(KFSPropertyConstants.TRANSACTION_DATE), pMap.get(KFSPropertyConstants.ORGANIZATION_DOCUMENT_NUMBER)).equals(GeneralLedgerConstants.EMPTY_CODE)){ 264 // FSKD-193, KFSMI-5441 265 try { 266 setTransactionDate(parseDate(getValue(line, pMap.get(KFSPropertyConstants.TRANSACTION_DATE), pMap.get(KFSPropertyConstants.ORGANIZATION_DOCUMENT_NUMBER)), false)); 267 } 268 catch (ParseException e) { 269 setTransactionDate(SpringContext.getBean(DateTimeService.class).getCurrentSqlDate()); 270 } 271 } else { 272 setTransactionDate(null); 273 } 274 275 setOrganizationDocumentNumber(getValue(line, pMap.get(KFSPropertyConstants.ORGANIZATION_DOCUMENT_NUMBER), pMap.get(KFSPropertyConstants.PROJECT_CODE))); 276 setProjectCode(getValue(line, pMap.get(KFSPropertyConstants.PROJECT_CODE), pMap.get(KFSPropertyConstants.ORGANIZATION_REFERENCE_ID))); 277 setOrganizationReferenceId(getValue(line, pMap.get(KFSPropertyConstants.ORGANIZATION_REFERENCE_ID), pMap.get(KFSPropertyConstants.REFERENCE_FIN_DOCUMENT_TYPE_CODE))); 278 setReferenceFinancialDocumentTypeCode(getValue(line, pMap.get(KFSPropertyConstants.REFERENCE_FIN_DOCUMENT_TYPE_CODE), pMap.get(KFSPropertyConstants.FIN_SYSTEM_REF_ORIGINATION_CODE))); 279 setReferenceFinancialSystemOriginationCode(getValue(line, pMap.get(KFSPropertyConstants.FIN_SYSTEM_REF_ORIGINATION_CODE), pMap.get(KFSPropertyConstants.FINANCIAL_DOCUMENT_REFERENCE_NBR))); 280 setReferenceFinancialDocumentNumber(getValue(line, pMap.get(KFSPropertyConstants.FINANCIAL_DOCUMENT_REFERENCE_NBR), pMap.get(KFSPropertyConstants.FINANCIAL_DOCUMENT_REVERSAL_DATE))); 281 282 if (!getValue(line, pMap.get(KFSPropertyConstants.FINANCIAL_DOCUMENT_REVERSAL_DATE), pMap.get(KFSPropertyConstants.TRANSACTION_ENCUMBRANCE_UPDT_CD)).equals(GeneralLedgerConstants.EMPTY_CODE)){ 283 try { 284 setFinancialDocumentReversalDate(parseDate(getValue(line, pMap.get(KFSPropertyConstants.FINANCIAL_DOCUMENT_REVERSAL_DATE), pMap.get(KFSPropertyConstants.TRANSACTION_ENCUMBRANCE_UPDT_CD)), false)); 285 } 286 catch (ParseException e) { 287 setFinancialDocumentReversalDate(null); 288 returnList.add(new Message("Reversal Date '" + line.substring(pMap.get(KFSPropertyConstants.FINANCIAL_DOCUMENT_REVERSAL_DATE), pMap.get(KFSPropertyConstants.TRANSACTION_ENCUMBRANCE_UPDT_CD)) + "' contains an invalid value." , Message.TYPE_FATAL)); 289 290 } 291 } else { 292 setFinancialDocumentReversalDate(null); 293 } 294 295 //set till end 296 setTransactionEncumbranceUpdateCode(line.substring(pMap.get(KFSPropertyConstants.TRANSACTION_ENCUMBRANCE_UPDT_CD), GeneralLedgerConstants.getSpaceAllOriginEntryFields().length())); 297 298 return returnList; 299 } 300 301 302 protected String getField(int size, String value) { 303 if (value == null) { 304 return GeneralLedgerConstants.getSpaceAllOriginEntryFields().substring(0, size); 305 } 306 else { 307 if (value.length() < size) { 308 return value + GeneralLedgerConstants.getSpaceAllOriginEntryFields().substring(0, size - value.length()); 309 } 310 else { 311 return value.substring(0, size); 312 } 313 } 314 } 315 316 public String getLine() { 317 StringBuffer sb = new StringBuffer(); 318 Map<String, Integer> fieldLengthMap = getOriginEntryFieldUtil().getFieldLengthMap(); 319 320 if (universityFiscalYear == null) { 321 sb.append(GeneralLedgerConstants.getSpaceUniversityFiscalYear()); 322 } 323 else { 324 sb.append(universityFiscalYear); 325 } 326 327 sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE), chartOfAccountsCode)); 328 sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.ACCOUNT_NUMBER), accountNumber)); 329 sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.SUB_ACCOUNT_NUMBER), subAccountNumber)); 330 sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.FINANCIAL_OBJECT_CODE), financialObjectCode)); 331 sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.FINANCIAL_SUB_OBJECT_CODE), financialSubObjectCode)); 332 sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.FINANCIAL_BALANCE_TYPE_CODE), financialBalanceTypeCode)); 333 sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.FINANCIAL_OBJECT_TYPE_CODE), financialObjectTypeCode)); 334 sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.UNIVERSITY_FISCAL_PERIOD_CODE), universityFiscalPeriodCode)); 335 sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.FINANCIAL_DOCUMENT_TYPE_CODE), financialDocumentTypeCode)); 336 sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.FINANCIAL_SYSTEM_ORIGINATION_CODE), financialSystemOriginationCode)); 337 sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.DOCUMENT_NUMBER), documentNumber)); 338 339 // This is the cobol code for transaction sequence numbers. 340 // 3025 019280 IF TRN-ENTR-SEQ-NBR OF GLEN-RECORD NOT NUMERIC 341 // 3026 019290 MOVE ZEROES TO TRN-ENTR-SEQ-NBR OF GLEN-RECORD 342 // 3027 019300 END-IF 343 // 3028 019310 IF TRN-ENTR-SEQ-NBR OF GLEN-RECORD = SPACES 344 // 3029 019320 MOVE ZEROES 345 // 3030 019330 TO TRN-ENTR-SEQ-NBR OF ALT-GLEN-RECORD 346 // 3031 019340 ELSE 347 // 3032 019350 MOVE TRN-ENTR-SEQ-NBR OF GLEN-RECORD 348 // 3033 019360 TO TRN-ENTR-SEQ-NBR OF ALT-GLEN-RECORD 349 // 3034 019370 END-IF 350 String seqNum =""; 351 if (transactionLedgerEntrySequenceNumber != null) { 352 seqNum = transactionLedgerEntrySequenceNumber.toString(); 353 } 354 // Format to a length of 5 355 sb.append(StringUtils.leftPad(seqNum.trim(), fieldLengthMap.get(KFSPropertyConstants.TRANSACTION_ENTRY_SEQUENCE_NUMBER), "0")); 356 357 sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.TRANSACTION_LEDGER_ENTRY_DESC), transactionLedgerEntryDescription)); 358 if (transactionLedgerEntryAmount == null) { 359 sb.append(GeneralLedgerConstants.getZeroTransactionLedgerEntryAmount()); 360 } 361 else { 362 String a = transactionLedgerEntryAmount.abs().toString(); 363 if (transactionLedgerEntryAmount.isNegative()) { 364 sb.append("-"); 365 } else { 366 sb.append("+"); 367 } 368 sb.append(GeneralLedgerConstants.getZeroTransactionLedgerEntryAmount().substring(1, fieldLengthMap.get(KFSPropertyConstants.TRANSACTION_LEDGER_ENTRY_AMOUNT) - a.length())); 369 sb.append(a); 370 } 371 sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.TRANSACTION_DEBIT_CREDIT_CODE), transactionDebitCreditCode)); 372 sb.append(formatDate(transactionDate)); 373 sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.ORGANIZATION_DOCUMENT_NUMBER), organizationDocumentNumber)); 374 sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.PROJECT_CODE), projectCode)); 375 sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.ORGANIZATION_REFERENCE_ID), organizationReferenceId)); 376 sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.REFERENCE_FIN_DOCUMENT_TYPE_CODE), referenceFinancialDocumentTypeCode)); 377 sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.FIN_SYSTEM_REF_ORIGINATION_CODE), referenceFinancialSystemOriginationCode)); 378 sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.FINANCIAL_DOCUMENT_REFERENCE_NBR), referenceFinancialDocumentNumber)); 379 sb.append(formatDate(financialDocumentReversalDate)); 380 sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.TRANSACTION_ENCUMBRANCE_UPDT_CD), transactionEncumbranceUpdateCode)); 381 // pad to full length 382 while (GeneralLedgerConstants.getSpaceAllOriginEntryFields().length() > sb.toString().length()) { 383 sb.append(' '); 384 } 385 386 // KFSMI-5958: Don't want any control characters in output files. They potentially disrupt further processing 387 Matcher controlCharacterMatcher = MATCH_CONTROL_CHARACTERS.matcher(sb); 388 String returnString = controlCharacterMatcher.replaceAll(REPLACE_MATCHED_CONTROL_CHARACTERS); 389 390 return returnString; 391 } 392 393 public boolean isTransactionScrubberOffsetGenerationIndicator() { 394 return transactionScrubberOffsetGenerationIndicator; 395 } 396 397 public void setTransactionScrubberOffsetGenerationIndicator(boolean transactionScrubberOffsetGenerationIndicator) { 398 this.transactionScrubberOffsetGenerationIndicator = transactionScrubberOffsetGenerationIndicator; 399 } 400 401 public String getAccountNumber() { 402 return accountNumber; 403 } 404 405 public void setAccountNumber(String accountNumber) { 406 this.accountNumber = accountNumber; 407 } 408 409 public String getFinancialBalanceTypeCode() { 410 return financialBalanceTypeCode; 411 } 412 413 public void setFinancialBalanceTypeCode(String financialBalanceTypeCode) { 414 this.financialBalanceTypeCode = financialBalanceTypeCode; 415 } 416 417 public String getChartOfAccountsCode() { 418 return chartOfAccountsCode; 419 } 420 421 public void setChartOfAccountsCode(String chartOfAccountsCode) { 422 this.chartOfAccountsCode = chartOfAccountsCode; 423 } 424 425 public String getTransactionDebitCreditCode() { 426 return transactionDebitCreditCode; 427 } 428 429 public void setTransactionDebitCreditCode(String transactionDebitCreditCode) { 430 if (transactionDebitCreditCode != null) { 431 this.transactionDebitCreditCode = transactionDebitCreditCode.toUpperCase(); 432 } 433 } 434 435 public String getDocumentNumber() { 436 return documentNumber; 437 } 438 439 public void setDocumentNumber(String documentNumber) { 440 this.documentNumber = documentNumber; 441 } 442 443 public Date getFinancialDocumentReversalDate() { 444 return financialDocumentReversalDate; 445 } 446 447 public void setFinancialDocumentReversalDate(Date financialDocumentReversalDate) { 448 this.financialDocumentReversalDate = financialDocumentReversalDate; 449 } 450 451 public String getFinancialDocumentTypeCode() { 452 return financialDocumentTypeCode; 453 } 454 455 public void setFinancialDocumentTypeCode(String financialDocumentTypeCode) { 456 this.financialDocumentTypeCode = financialDocumentTypeCode; 457 } 458 459 public String getTransactionEncumbranceUpdateCode() { 460 return transactionEncumbranceUpdateCode; 461 } 462 463 public void setTransactionEncumbranceUpdateCode(String transactionEncumbranceUpdateCode) { 464 this.transactionEncumbranceUpdateCode = transactionEncumbranceUpdateCode; 465 } 466 467 public Integer getEntryGroupId() { 468 return entryGroupId; 469 } 470 471 public void setEntryGroupId(Integer entryGroupId) { 472 this.entryGroupId = entryGroupId; 473 } 474 475 public Integer getEntryId() { 476 return entryId; 477 } 478 479 public void setEntryId(Integer entryId) { 480 this.entryId = entryId; 481 } 482 483 public void resetEntryId() { 484 this.entryId = null; 485 this.versionNumber = null; 486 } 487 488 public String getFinancialObjectCode() { 489 return financialObjectCode; 490 } 491 492 public void setFinancialObjectCode(String financialObjectCode) { 493 this.financialObjectCode = financialObjectCode; 494 } 495 496 public String getFinancialObjectTypeCode() { 497 return financialObjectTypeCode; 498 } 499 500 public void setFinancialObjectTypeCode(String financialObjectTypeCode) { 501 this.financialObjectTypeCode = financialObjectTypeCode; 502 } 503 504 public String getOrganizationDocumentNumber() { 505 return organizationDocumentNumber; 506 } 507 508 public void setOrganizationDocumentNumber(String organizationDocumentNumber) { 509 this.organizationDocumentNumber = organizationDocumentNumber; 510 } 511 512 public String getOrganizationReferenceId() { 513 return organizationReferenceId; 514 } 515 516 public void setOrganizationReferenceId(String organizationReferenceId) { 517 this.organizationReferenceId = organizationReferenceId; 518 } 519 520 public String getFinancialSystemOriginationCode() { 521 return financialSystemOriginationCode; 522 } 523 524 public void setFinancialSystemOriginationCode(String financialSystemOriginationCode) { 525 this.financialSystemOriginationCode = financialSystemOriginationCode; 526 } 527 528 public String getProjectCode() { 529 if (StringUtils.isBlank(projectCode)) { 530 projectCode = KFSConstants.getDashProjectCode(); 531 } 532 return projectCode; 533 } 534 535 public void setProjectCode(String projectCode) { 536 this.projectCode = projectCode; 537 } 538 539 public String getReferenceFinancialDocumentNumber() { 540 return referenceFinancialDocumentNumber; 541 } 542 543 public void setReferenceFinancialDocumentNumber(String referenceFinancialDocumentNumber) { 544 this.referenceFinancialDocumentNumber = referenceFinancialDocumentNumber; 545 } 546 547 public String getReferenceFinancialDocumentTypeCode() { 548 return referenceFinancialDocumentTypeCode; 549 } 550 551 public void setReferenceFinancialDocumentTypeCode(String referenceFinancialDocumentTypeCode) { 552 this.referenceFinancialDocumentTypeCode = referenceFinancialDocumentTypeCode; 553 } 554 555 public String getReferenceFinancialSystemOriginationCode() { 556 return referenceFinancialSystemOriginationCode; 557 } 558 559 public void setReferenceFinancialSystemOriginationCode(String referenceFinancialSystemOriginationCode) { 560 this.referenceFinancialSystemOriginationCode = referenceFinancialSystemOriginationCode; 561 } 562 563 public String getSubAccountNumber() { 564 if (StringUtils.isBlank(subAccountNumber)) { 565 subAccountNumber = KFSConstants.getDashSubAccountNumber(); 566 } 567 return subAccountNumber; 568 } 569 570 public void setSubAccountNumber(String subAccountNumber) { 571 this.subAccountNumber = subAccountNumber; 572 } 573 574 public String getFinancialSubObjectCode() { 575 if (StringUtils.isBlank(financialSubObjectCode)) { 576 financialSubObjectCode = KFSConstants.getDashFinancialSubObjectCode(); 577 } 578 return financialSubObjectCode; 579 } 580 581 public void setFinancialSubObjectCode(String financialSubObjectCode) { 582 this.financialSubObjectCode = financialSubObjectCode; 583 } 584 585 public Date getTransactionDate() { 586 return transactionDate; 587 } 588 589 public void setTransactionDate(Date transactionDate) { 590 this.transactionDate = transactionDate; 591 } 592 593 public Integer getTransactionLedgerEntrySequenceNumber() { 594 return transactionLedgerEntrySequenceNumber; 595 } 596 597 public void setTransactionLedgerEntrySequenceNumber(Integer transactionLedgerEntrySequenceNumber) { 598 this.transactionLedgerEntrySequenceNumber = transactionLedgerEntrySequenceNumber; 599 } 600 601 public KualiDecimal getTransactionLedgerEntryAmount() { 602 return transactionLedgerEntryAmount; 603 } 604 605 public void setTransactionLedgerEntryAmount(KualiDecimal transactionLedgerEntryAmount) { 606 this.transactionLedgerEntryAmount = transactionLedgerEntryAmount; 607 } 608 609 public void setTransactionLedgerEntryAmount(String transactionLedgerEntryAmount) { 610 this.transactionLedgerEntryAmount = new KualiDecimal(transactionLedgerEntryAmount); 611 } 612 613 public void clearTransactionLedgerEntryAmount() { 614 this.transactionLedgerEntryAmount = null; 615 } 616 617 public String getTransactionLedgerEntryDescription() { 618 return transactionLedgerEntryDescription; 619 } 620 621 public void setTransactionLedgerEntryDescription(String transactionLedgerEntryDescription) { 622 this.transactionLedgerEntryDescription = transactionLedgerEntryDescription; 623 } 624 625 public String getUniversityFiscalPeriodCode() { 626 return universityFiscalPeriodCode; 627 } 628 629 public void setUniversityFiscalPeriodCode(String universityFiscalPeriodCode) { 630 this.universityFiscalPeriodCode = universityFiscalPeriodCode; 631 } 632 633 public Integer getUniversityFiscalYear() { 634 return universityFiscalYear; 635 } 636 637 public void setUniversityFiscalYear(Integer universityFiscalYear) { 638 this.universityFiscalYear = universityFiscalYear; 639 } 640 641 public boolean isDebit() { 642 return KFSConstants.GL_DEBIT_CODE.equals(this.transactionDebitCreditCode); 643 } 644 645 public boolean isCredit() { 646 return KFSConstants.GL_CREDIT_CODE.equals(this.transactionDebitCreditCode); 647 } 648 649 public void setFieldValue(String fieldName, String fieldValue) { 650 if ("universityFiscalYear".equals(fieldName)) { 651 if (StringUtils.isNotBlank(fieldValue)) { 652 setUniversityFiscalYear(Integer.parseInt(fieldValue)); 653 } 654 else { 655 setUniversityFiscalYear(null); 656 } 657 } 658 else if ("chartOfAccountsCode".equals(fieldName)) { 659 setChartOfAccountsCode(fieldValue); 660 } 661 else if ("accountNumber".equals(fieldName)) { 662 setAccountNumber(fieldValue); 663 } 664 else if ("subAccountNumber".equals(fieldName)) { 665 setSubAccountNumber(fieldValue); 666 } 667 else if ("financialObjectCode".equals(fieldName)) { 668 setFinancialObjectCode(fieldValue); 669 } 670 else if ("financialSubObjectCode".equals(fieldName)) { 671 setFinancialSubObjectCode(fieldValue); 672 } 673 else if ("financialBalanceTypeCode".equals(fieldName)) { 674 setFinancialBalanceTypeCode(fieldValue); 675 } 676 else if ("financialObjectTypeCode".equals(fieldName)) { 677 setFinancialObjectTypeCode(fieldValue); 678 } 679 else if ("universityFiscalPeriodCode".equals(fieldName)) { 680 setUniversityFiscalPeriodCode(fieldValue); 681 } 682 else if ("financialDocumentTypeCode".equals(fieldName)) { 683 setFinancialDocumentTypeCode(fieldValue); 684 } 685 else if ("financialSystemOriginationCode".equals(fieldName)) { 686 setFinancialSystemOriginationCode(fieldValue); 687 } 688 else if (KFSPropertyConstants.DOCUMENT_NUMBER.equals(fieldName)) { 689 setDocumentNumber(fieldValue); 690 } 691 else if ("transactionLedgerEntrySequenceNumber".equals(fieldName)) { 692 if (StringUtils.isNotBlank(fieldValue)) { 693 setTransactionLedgerEntrySequenceNumber(Integer.parseInt(fieldValue)); 694 } 695 else { 696 setTransactionLedgerEntrySequenceNumber(null); 697 } 698 } 699 else if ("transactionLedgerEntryDescription".equals(fieldName)) { 700 setTransactionLedgerEntryDescription(fieldValue); 701 } 702 else if ("transactionLedgerEntryAmount".equals(fieldName)) { 703 if (StringUtils.isNotBlank(fieldValue)) { 704 setTransactionLedgerEntryAmount(new KualiDecimal(fieldValue)); 705 } 706 else { 707 clearTransactionLedgerEntryAmount(); 708 } 709 } 710 else if ("transactionDebitCreditCode".equals(fieldName)) { 711 setTransactionDebitCreditCode(fieldValue); 712 } 713 else if ("transactionDate".equals(fieldName)) { 714 if (StringUtils.isNotBlank(fieldValue)) { 715 try { 716 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); 717 setTransactionDate(new java.sql.Date((df.parse(fieldValue)).getTime())); 718 } 719 catch (ParseException e) { 720 setTransactionDate(null); 721 } 722 } 723 else { 724 setTransactionDate(null); 725 } 726 } 727 else if ("organizationDocumentNumber".equals(fieldName)) { 728 setOrganizationDocumentNumber(fieldValue); 729 } 730 else if ("projectCode".equals(fieldName)) { 731 setProjectCode(fieldValue); 732 } 733 else if ("organizationReferenceId".equals(fieldName)) { 734 setOrganizationReferenceId(fieldValue); 735 } 736 else if ("referenceFinancialDocumentTypeCode".equals(fieldName)) { 737 setReferenceFinancialDocumentTypeCode(fieldValue); 738 } 739 else if ("referenceFinancialSystemOriginationCode".equals(fieldName)) { 740 setReferenceFinancialSystemOriginationCode(fieldValue); 741 } 742 else if ("referenceFinancialDocumentNumber".equals(fieldName)) { 743 setReferenceFinancialDocumentNumber(fieldValue); 744 } 745 else if ("financialDocumentReversalDate".equals(fieldName)) { 746 if (StringUtils.isNotBlank(fieldValue)) { 747 try { 748 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); 749 setFinancialDocumentReversalDate(new java.sql.Date((df.parse(fieldValue)).getTime())); 750 } 751 catch (ParseException e) { 752 setFinancialDocumentReversalDate(null); 753 } 754 } 755 else { 756 setFinancialDocumentReversalDate(null); 757 } 758 } 759 else if ("transactionEncumbranceUpdateCode".equals(fieldName)) { 760 setTransactionEncumbranceUpdateCode(fieldValue); 761 } 762 else { 763 throw new IllegalArgumentException("Invalid Field Name " + fieldName); 764 } 765 } 766 767 public Object getFieldValue(String fieldName) { 768 if ("universityFiscalYear".equals(fieldName)) { 769 return getUniversityFiscalYear(); 770 } 771 else if ("chartOfAccountsCode".equals(fieldName)) { 772 return getChartOfAccountsCode(); 773 } 774 else if ("accountNumber".equals(fieldName)) { 775 return getAccountNumber(); 776 } 777 else if ("subAccountNumber".equals(fieldName)) { 778 return getSubAccountNumber(); 779 } 780 else if ("financialObjectCode".equals(fieldName)) { 781 return getFinancialObjectCode(); 782 } 783 else if ("financialSubObjectCode".equals(fieldName)) { 784 return getFinancialSubObjectCode(); 785 } 786 else if ("financialBalanceTypeCode".equals(fieldName)) { 787 return getFinancialBalanceTypeCode(); 788 } 789 else if ("financialObjectTypeCode".equals(fieldName)) { 790 return getFinancialObjectTypeCode(); 791 } 792 else if ("universityFiscalPeriodCode".equals(fieldName)) { 793 return getUniversityFiscalPeriodCode(); 794 } 795 else if ("financialDocumentTypeCode".equals(fieldName)) { 796 return getFinancialDocumentTypeCode(); 797 } 798 else if ("financialSystemOriginationCode".equals(fieldName)) { 799 return getFinancialSystemOriginationCode(); 800 } 801 else if (KFSPropertyConstants.DOCUMENT_NUMBER.equals(fieldName)) { 802 return getDocumentNumber(); 803 } 804 else if ("transactionLedgerEntrySequenceNumber".equals(fieldName)) { 805 return getTransactionLedgerEntrySequenceNumber(); 806 } 807 else if ("transactionLedgerEntryDescription".equals(fieldName)) { 808 return getTransactionLedgerEntryDescription(); 809 } 810 else if ("transactionLedgerEntryAmount".equals(fieldName)) { 811 return getTransactionLedgerEntryAmount(); 812 } 813 else if ("transactionDebitCreditCode".equals(fieldName)) { 814 return getTransactionDebitCreditCode(); 815 } 816 else if ("transactionDate".equals(fieldName)) { 817 return getTransactionDate(); 818 } 819 else if ("organizationDocumentNumber".equals(fieldName)) { 820 return getOrganizationDocumentNumber(); 821 } 822 else if ("projectCode".equals(fieldName)) { 823 return getProjectCode(); 824 } 825 else if ("organizationReferenceId".equals(fieldName)) { 826 return getOrganizationReferenceId(); 827 } 828 else if ("referenceFinancialDocumentTypeCode".equals(fieldName)) { 829 return getReferenceFinancialDocumentTypeCode(); 830 } 831 else if ("referenceFinancialSystemOriginationCode".equals(fieldName)) { 832 return getReferenceFinancialSystemOriginationCode(); 833 } 834 else if ("referenceFinancialDocumentNumber".equals(fieldName)) { 835 return getReferenceFinancialDocumentNumber(); 836 } 837 else if ("financialDocumentReversalDate".equals(fieldName)) { 838 return getFinancialDocumentReversalDate(); 839 } 840 else if ("transactionEncumbranceUpdateCode".equals(fieldName)) { 841 return getTransactionEncumbranceUpdateCode(); 842 } 843 else { 844 throw new IllegalArgumentException("Invalid Field Name " + fieldName); 845 } 846 } 847 848 public OriginEntryFull(GeneralLedgerPendingEntry glpe) { 849 accountNumber = glpe.getAccountNumber(); 850 documentNumber = glpe.getDocumentNumber(); 851 referenceFinancialDocumentNumber = glpe.getReferenceFinancialDocumentNumber(); 852 referenceFinancialDocumentTypeCode = glpe.getReferenceFinancialDocumentTypeCode(); 853 financialDocumentReversalDate = glpe.getFinancialDocumentReversalDate(); 854 financialDocumentTypeCode = glpe.getFinancialDocumentTypeCode(); 855 financialBalanceTypeCode = glpe.getFinancialBalanceTypeCode(); 856 chartOfAccountsCode = glpe.getChartOfAccountsCode(); 857 financialObjectTypeCode = glpe.getFinancialObjectTypeCode(); 858 financialObjectCode = glpe.getFinancialObjectCode(); 859 financialSubObjectCode = glpe.getFinancialSubObjectCode(); 860 financialSystemOriginationCode = glpe.getFinancialSystemOriginationCode(); 861 referenceFinancialSystemOriginationCode = glpe.getReferenceFinancialSystemOriginationCode(); 862 organizationDocumentNumber = glpe.getOrganizationDocumentNumber(); 863 organizationReferenceId = glpe.getOrganizationReferenceId(); 864 projectCode = glpe.getProjectCode(); 865 subAccountNumber = glpe.getSubAccountNumber(); 866 transactionDate = glpe.getTransactionDate(); 867 transactionDebitCreditCode = glpe.getTransactionDebitCreditCode(); 868 transactionEncumbranceUpdateCode = glpe.getTransactionEncumbranceUpdateCode(); 869 transactionLedgerEntrySequenceNumber = glpe.getTransactionLedgerEntrySequenceNumber(); 870 transactionLedgerEntryAmount = glpe.getTransactionLedgerEntryAmount(); 871 transactionLedgerEntryDescription = glpe.getTransactionLedgerEntryDescription(); 872 universityFiscalPeriodCode = glpe.getUniversityFiscalPeriodCode(); 873 universityFiscalYear = glpe.getUniversityFiscalYear(); 874 } 875 876 /** 877 * 878 */ 879 public OriginEntryFull(String financialDocumentTypeCode, String financialSystemOriginationCode) { 880 super(); 881 882 setChartOfAccountsCode(KFSConstants.EMPTY_STRING); 883 setAccountNumber(KFSConstants.EMPTY_STRING); 884 885 setFinancialDocumentTypeCode(financialDocumentTypeCode); 886 setFinancialSystemOriginationCode(financialSystemOriginationCode); 887 888 setFinancialObjectCode(KFSConstants.EMPTY_STRING); 889 setFinancialBalanceTypeCode(KFSConstants.EMPTY_STRING); 890 setFinancialObjectTypeCode(KFSConstants.EMPTY_STRING); 891 setDocumentNumber(KFSConstants.EMPTY_STRING); 892 setFinancialDocumentReversalDate(null); 893 894 setUniversityFiscalYear(new Integer(0)); 895 setUniversityFiscalPeriodCode(KFSConstants.EMPTY_STRING); 896 897 setTransactionLedgerEntrySequenceNumber(new Integer(1)); 898 setTransactionLedgerEntryAmount(KualiDecimal.ZERO); 899 setTransactionLedgerEntryDescription(KFSConstants.EMPTY_STRING); 900 setTransactionDate(null); 901 setTransactionDebitCreditCode(KFSConstants.EMPTY_STRING); 902 setTransactionEncumbranceUpdateCode(null); 903 904 setOrganizationDocumentNumber(KFSConstants.EMPTY_STRING); 905 setOrganizationReferenceId(KFSConstants.EMPTY_STRING); 906 907 setReferenceFinancialDocumentTypeCode(KFSConstants.EMPTY_STRING); 908 setReferenceFinancialSystemOriginationCode(KFSConstants.EMPTY_STRING); 909 setReferenceFinancialDocumentNumber(KFSConstants.EMPTY_STRING); 910 } 911 912 /** 913 * 914 */ 915 public OriginEntryFull() { 916 this(null, null); 917 } 918 919 public OriginEntryFull(Transaction t) { 920 this(); 921 copyFieldsFromTransaction(t); 922 } 923 924 public OriginEntryFull(String line) { 925 try { 926 setFromTextFileForBatch(line, 0); 927 } 928 catch (LoadException e) { 929 LOG.error("OriginEntryFull() Error loading line", e); 930 } 931 } 932 933 protected LinkedHashMap toStringMapper() { 934 LinkedHashMap map = new LinkedHashMap(); 935 map.put("entryId", getEntryId()); 936 map.put("entryGroupId", getEntryGroupId()); 937 map.put("universityFiscalYear", getUniversityFiscalYear()); 938 map.put("universityFiscalPeriodCode", getUniversityFiscalPeriodCode()); 939 map.put("chartOfAccountsCode", getChartOfAccountsCode()); 940 map.put("accountNumber", getAccountNumber()); 941 map.put("subAccountNumber", getSubAccountNumber()); 942 map.put("financialObjectCode", getFinancialObjectCode()); 943 map.put("financialObjectTypeCode", getFinancialObjectTypeCode()); 944 map.put("financialSubObjectCode", getFinancialSubObjectCode()); 945 map.put("financialBalanceTypeCode", getFinancialBalanceTypeCode()); 946 map.put(KFSPropertyConstants.DOCUMENT_NUMBER, getDocumentNumber()); 947 map.put("financialDocumentTypeCode", getFinancialDocumentTypeCode()); 948 map.put("financialSystemOriginationCode", getFinancialSystemOriginationCode()); 949 map.put("transactionLedgerEntrySequenceNumber", getTransactionLedgerEntrySequenceNumber()); 950 map.put("transactionLedgerEntryDescription", getTransactionLedgerEntryDescription()); 951 return map; 952 } 953 954 public OriginEntryGroup getGroup() { 955 return group; 956 } 957 958 public void setGroup(OriginEntryGroup oeg) { 959 if (oeg != null) { 960 setEntryGroupId(oeg.getId()); 961 group = oeg; 962 } 963 else { 964 setEntryGroupId(null); 965 group = null; 966 } 967 } 968 969 public A21SubAccount getA21SubAccount() { 970 return a21SubAccount; 971 } 972 973 public void setA21SubAccount(A21SubAccount subAccount) { 974 a21SubAccount = subAccount; 975 } 976 977 public Account getAccount() { 978 return account; 979 } 980 981 public void setAccount(Account account) { 982 this.account = account; 983 } 984 985 public BalanceType getBalanceType() { 986 return balanceType; 987 } 988 989 public void setBalanceType(BalanceType balanceType) { 990 this.balanceType = balanceType; 991 } 992 993 public Chart getChart() { 994 return chart; 995 } 996 997 public void setChart(Chart chart) { 998 this.chart = chart; 999 } 1000 1001 public DocumentTypeEBO getFinancialSystemDocumentTypeCode() { 1002 return financialSystemDocumentTypeCode = SpringContext.getBean(KEWModuleService.class).retrieveExternalizableBusinessObjectIfNecessary(this, financialSystemDocumentTypeCode, "financialSystemDocumentTypeCode"); 1003 } 1004 1005 public ObjectCode getFinancialObject() { 1006 return financialObject; 1007 } 1008 1009 public void setFinancialObject(ObjectCode financialObject) { 1010 this.financialObject = financialObject; 1011 } 1012 1013 public SubObjectCode getFinancialSubObject() { 1014 return financialSubObject; 1015 } 1016 1017 public void setFinancialSubObject(SubObjectCode financialSubObject) { 1018 this.financialSubObject = financialSubObject; 1019 } 1020 1021 public ObjectType getObjectType() { 1022 return objectType; 1023 } 1024 1025 public void setObjectType(ObjectType objectType) { 1026 this.objectType = objectType; 1027 } 1028 1029 public SystemOptions getOption() { 1030 return option; 1031 } 1032 1033 public void setOption(SystemOptions option) { 1034 this.option = option; 1035 } 1036 1037 public ProjectCode getProject() { 1038 return project; 1039 } 1040 1041 public void setProject(ProjectCode project) { 1042 this.project = project; 1043 } 1044 1045 public SubAccount getSubAccount() { 1046 return subAccount; 1047 } 1048 1049 public void setSubAccount(SubAccount subAccount) { 1050 this.subAccount = subAccount; 1051 } 1052 1053 public UniversityDate getUniversityDate() { 1054 return universityDate; 1055 } 1056 1057 public void setUniversityDate(UniversityDate universityDate) { 1058 this.universityDate = universityDate; 1059 } 1060 1061 public AccountingPeriod getAccountingPeriod() { 1062 return accountingPeriod; 1063 } 1064 1065 public void setAccountingPeriod(AccountingPeriod accountingPeriod) { 1066 this.accountingPeriod = accountingPeriod; 1067 } 1068 1069 public UniversityDate getReversalDate() { 1070 return reversalDate; 1071 } 1072 1073 public void setReversalDate(UniversityDate reversalDate) { 1074 this.reversalDate = reversalDate; 1075 } 1076 1077 public OriginationCode getOrigination() { 1078 return origination; 1079 } 1080 1081 public void setOrigination(OriginationCode origination) { 1082 this.origination = origination; 1083 } 1084 1085 public DocumentTypeEBO getReferenceFinancialSystemDocumentTypeCode() { 1086 return referenceFinancialSystemDocumentTypeCode = SpringContext.getBean(KEWModuleService.class).retrieveExternalizableBusinessObjectIfNecessary(this, referenceFinancialSystemDocumentTypeCode, "referenceFinancialSystemDocumentTypeCode"); 1087 } 1088 1089 public static OriginEntryFull copyFromOriginEntryable(OriginEntryInformation oe) { 1090 OriginEntryFull newOriginEntry = new OriginEntryFull(); 1091 newOriginEntry.setAccountNumber(oe.getAccountNumber()); 1092 newOriginEntry.setDocumentNumber(oe.getDocumentNumber()); 1093 newOriginEntry.setReferenceFinancialDocumentNumber(oe.getReferenceFinancialDocumentNumber()); 1094 newOriginEntry.setReferenceFinancialDocumentTypeCode(oe.getReferenceFinancialDocumentTypeCode()); 1095 newOriginEntry.setFinancialDocumentReversalDate(oe.getFinancialDocumentReversalDate()); 1096 newOriginEntry.setFinancialDocumentTypeCode(oe.getFinancialDocumentTypeCode()); 1097 newOriginEntry.setFinancialBalanceTypeCode(oe.getFinancialBalanceTypeCode()); 1098 newOriginEntry.setChartOfAccountsCode(oe.getChartOfAccountsCode()); 1099 newOriginEntry.setFinancialObjectTypeCode(oe.getFinancialObjectTypeCode()); 1100 newOriginEntry.setFinancialObjectCode(oe.getFinancialObjectCode()); 1101 newOriginEntry.setFinancialSubObjectCode(oe.getFinancialSubObjectCode()); 1102 newOriginEntry.setFinancialSystemOriginationCode(oe.getFinancialSystemOriginationCode()); 1103 newOriginEntry.setReferenceFinancialSystemOriginationCode(oe.getReferenceFinancialSystemOriginationCode()); 1104 newOriginEntry.setOrganizationDocumentNumber(oe.getOrganizationDocumentNumber()); 1105 newOriginEntry.setOrganizationReferenceId(oe.getOrganizationReferenceId()); 1106 newOriginEntry.setProjectCode(oe.getProjectCode()); 1107 newOriginEntry.setSubAccountNumber(oe.getSubAccountNumber()); 1108 newOriginEntry.setTransactionDate(oe.getTransactionDate()); 1109 newOriginEntry.setTransactionDebitCreditCode(oe.getTransactionDebitCreditCode()); 1110 newOriginEntry.setTransactionEncumbranceUpdateCode(oe.getTransactionEncumbranceUpdateCode()); 1111 newOriginEntry.setTransactionLedgerEntrySequenceNumber(oe.getTransactionLedgerEntrySequenceNumber()); 1112 newOriginEntry.setTransactionLedgerEntryAmount(oe.getTransactionLedgerEntryAmount()); 1113 newOriginEntry.setTransactionLedgerEntryDescription(oe.getTransactionLedgerEntryDescription()); 1114 newOriginEntry.setUniversityFiscalPeriodCode(oe.getUniversityFiscalPeriodCode()); 1115 newOriginEntry.setUniversityFiscalYear(oe.getUniversityFiscalYear()); 1116 return newOriginEntry; 1117 } 1118 1119 /** 1120 * @return the static instance of the OriginEntryFieldUtil 1121 */ 1122 protected static OriginEntryFieldUtil getOriginEntryFieldUtil() { 1123 if (originEntryFieldUtil == null) { 1124 originEntryFieldUtil = new OriginEntryFieldUtil(); 1125 } 1126 return originEntryFieldUtil; 1127 } 1128 }