/*
* The Kuali Financial System, a comprehensive financial management system for higher education.
*
* Copyright 2005-2014 The Kuali Foundation
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.kuali.kfs.gl.businessobject;
import java.sql.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.lang.StringUtils;
import org.kuali.kfs.coa.businessobject.A21SubAccount;
import org.kuali.kfs.coa.businessobject.Account;
import org.kuali.kfs.coa.businessobject.AccountingPeriod;
import org.kuali.kfs.coa.businessobject.BalanceType;
import org.kuali.kfs.coa.businessobject.Chart;
import org.kuali.kfs.coa.businessobject.ObjectCode;
import org.kuali.kfs.coa.businessobject.ObjectType;
import org.kuali.kfs.coa.businessobject.ProjectCode;
import org.kuali.kfs.coa.businessobject.SubAccount;
import org.kuali.kfs.coa.businessobject.SubObjectCode;
import org.kuali.kfs.coa.service.AccountService;
import org.kuali.kfs.gl.GeneralLedgerConstants;
import org.kuali.kfs.gl.exception.LoadException;
import org.kuali.kfs.sys.KFSConstants;
import org.kuali.kfs.sys.KFSPropertyConstants;
import org.kuali.kfs.sys.Message;
import org.kuali.kfs.sys.businessobject.GeneralLedgerPendingEntry;
import org.kuali.kfs.sys.businessobject.OriginationCode;
import org.kuali.kfs.sys.businessobject.SystemOptions;
import org.kuali.kfs.sys.businessobject.UniversityDate;
import org.kuali.kfs.sys.context.SpringContext;
import org.kuali.rice.core.api.datetime.DateTimeService;
import org.kuali.rice.core.api.util.type.KualiDecimal;
import org.kuali.rice.kew.api.doctype.DocumentTypeService;
import org.kuali.rice.kew.doctype.bo.DocumentType;
import org.kuali.rice.kew.doctype.bo.DocumentTypeEBO;
import org.kuali.rice.krad.bo.PersistableBusinessObjectBase;
/**
* This class represents a full origin entry
*/
public class OriginEntryFull extends PersistableBusinessObjectBase implements Transaction, OriginEntryInformation, FlexibleAccountUpdateable {
private static org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(OriginEntryFull.class);
private static OriginEntryFieldUtil originEntryFieldUtil;
public static final Pattern MATCH_CONTROL_CHARACTERS = Pattern.compile("\\p{Cntrl}");
public static final String REPLACE_MATCHED_CONTROL_CHARACTERS = " ";
// 17 characters while it is 19 character in DD. Don't change, it has to be 17.
// KFSMI-3308 - changed to 20
private Integer entryId;
private Integer entryGroupId;
protected String accountNumber;
protected String documentNumber;
protected String referenceFinancialDocumentNumber;
protected String referenceFinancialDocumentTypeCode;
protected Date financialDocumentReversalDate;
protected String financialDocumentTypeCode;
protected String financialBalanceTypeCode;
protected String chartOfAccountsCode;
protected String financialObjectTypeCode;
protected String financialObjectCode;
protected String financialSubObjectCode;
protected String financialSystemOriginationCode;
protected String referenceFinancialSystemOriginationCode;
protected String organizationDocumentNumber;
protected String organizationReferenceId;
protected String projectCode;
protected String subAccountNumber;
protected Date transactionDate;
protected String transactionDebitCreditCode;
protected String transactionEncumbranceUpdateCode;
protected Integer transactionLedgerEntrySequenceNumber;
protected KualiDecimal transactionLedgerEntryAmount;
protected String transactionLedgerEntryDescription;
protected String universityFiscalPeriodCode;
protected Integer universityFiscalYear;
private boolean transactionScrubberOffsetGenerationIndicator;
// bo references
private OriginEntryGroup group;
private Account account;
private SubAccount subAccount;
private A21SubAccount a21SubAccount;
private BalanceType balanceType;
private Chart chart;
private ObjectCode financialObject;
private SubObjectCode financialSubObject;
private ObjectType objectType;
private ProjectCode project;
private DocumentTypeEBO financialSystemDocumentTypeCode;
private UniversityDate universityDate;
private SystemOptions option;
private AccountingPeriod accountingPeriod;
private UniversityDate reversalDate;
private OriginationCode origination;
private DocumentTypeEBO referenceFinancialSystemDocumentTypeCode;
private static final String DATE_FORMAT = "yyyy-MM-dd";
public void copyFieldsFromTransaction(Transaction t) {
setAccountNumber(t.getAccountNumber());
setDocumentNumber(t.getDocumentNumber());
setReferenceFinancialDocumentNumber(t.getReferenceFinancialDocumentNumber());
setReferenceFinancialDocumentTypeCode(t.getReferenceFinancialDocumentTypeCode());
setFinancialDocumentReversalDate(t.getFinancialDocumentReversalDate());
setFinancialDocumentTypeCode(t.getFinancialDocumentTypeCode());
setFinancialBalanceTypeCode(t.getFinancialBalanceTypeCode());
setChartOfAccountsCode(t.getChartOfAccountsCode());
setFinancialObjectTypeCode(t.getFinancialObjectTypeCode());
setFinancialObjectCode(t.getFinancialObjectCode());
setFinancialSubObjectCode(t.getFinancialSubObjectCode());
setFinancialSystemOriginationCode(t.getFinancialSystemOriginationCode());
setReferenceFinancialSystemOriginationCode(t.getReferenceFinancialSystemOriginationCode());
setOrganizationDocumentNumber(t.getOrganizationDocumentNumber());
setOrganizationReferenceId(t.getOrganizationReferenceId());
setProjectCode(t.getProjectCode());
setSubAccountNumber(t.getSubAccountNumber());
setTransactionDate(t.getTransactionDate());
setTransactionDebitCreditCode(t.getTransactionDebitCreditCode());
setTransactionEncumbranceUpdateCode(t.getTransactionEncumbranceUpdateCode());
setTransactionLedgerEntrySequenceNumber(t.getTransactionLedgerEntrySequenceNumber());
setTransactionLedgerEntryAmount(t.getTransactionLedgerEntryAmount());
setTransactionLedgerEntryDescription(t.getTransactionLedgerEntryDescription());
setUniversityFiscalPeriodCode(t.getUniversityFiscalPeriodCode());
setUniversityFiscalYear(t.getUniversityFiscalYear());
}
protected java.sql.Date parseDate(String sdate, boolean beLenientWithDates) throws ParseException {
if ((sdate == null) || (sdate.trim().length() == 0)) {
return null;
}
else {
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
sdf.setLenient(beLenientWithDates);
java.util.Date d = sdf.parse(sdate);
return new Date(d.getTime());
}
}
protected String formatDate(Date date) {
if (date == null) {
return GeneralLedgerConstants.getSpaceTransactionDate();
}
else {
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
return sdf.format(date);
}
}
protected String getValue(String line, int s, int e) {
// String v = line.substring(s, e);
return org.springframework.util.StringUtils.trimTrailingWhitespace(StringUtils.substring(line, s, e));
}
/**
* This method loads the fields of this origin entry by parsing the passed in the string It is assumed that the String does not
* contain the origin entry ID, but if it does, it will be ignored
*
* @param line a string representing an origin entry
* @param lineNumber used to render an error message by identifying this line
* @throws LoadException
*/
public List<Message> setFromTextFileForBatch(String line, int lineNumber) throws LoadException {
List<Message> returnList = new ArrayList<Message>();
final Map<String, Integer> pMap = getOriginEntryFieldUtil().getFieldBeginningPositionMap();
// KFSMI-5958: Don't want any control characters in output files. They potentially disrupt further processing
Matcher controlCharacterMatcher = MATCH_CONTROL_CHARACTERS.matcher(line);
line = controlCharacterMatcher.replaceAll(REPLACE_MATCHED_CONTROL_CHARACTERS);
// Just in case
line = org.apache.commons.lang.StringUtils.rightPad(line, GeneralLedgerConstants.getSpaceAllOriginEntryFields().length(), ' ');
if (!GeneralLedgerConstants.getSpaceUniversityFiscalYear().equals(line.substring(pMap.get(KFSPropertyConstants.UNIVERSITY_FISCAL_YEAR), pMap.get(KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE)))) {
try {
setUniversityFiscalYear(new Integer(getValue(line, pMap.get(KFSPropertyConstants.UNIVERSITY_FISCAL_YEAR), pMap.get(KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE))));
}
catch (NumberFormatException e) {
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));
setUniversityFiscalYear(null);
}
}
else {
setUniversityFiscalYear(null);
}
setChartOfAccountsCode(getValue(line, pMap.get(KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE), pMap.get(KFSPropertyConstants.ACCOUNT_NUMBER)));
setAccountNumber(getValue(line, pMap.get(KFSPropertyConstants.ACCOUNT_NUMBER), pMap.get(KFSPropertyConstants.SUB_ACCOUNT_NUMBER)));
// if chart code is empty while accounts cannot cross charts, then derive chart code from account number
AccountService acctserv = SpringContext.getBean(AccountService.class);
if (StringUtils.isEmpty(getChartOfAccountsCode()) && StringUtils.isNotEmpty(getAccountNumber()) && !acctserv.accountsCanCrossCharts()) {
Account account = acctserv.getUniqueAccountForAccountNumber(getAccountNumber());
if (account != null) {
setChartOfAccountsCode(account.getChartOfAccountsCode());
}
}
setSubAccountNumber(getValue(line, pMap.get(KFSPropertyConstants.SUB_ACCOUNT_NUMBER), pMap.get(KFSPropertyConstants.FINANCIAL_OBJECT_CODE)));
setFinancialObjectCode(getValue(line, pMap.get(KFSPropertyConstants.FINANCIAL_OBJECT_CODE), pMap.get(KFSPropertyConstants.FINANCIAL_SUB_OBJECT_CODE)));
setFinancialSubObjectCode(getValue(line, pMap.get(KFSPropertyConstants.FINANCIAL_SUB_OBJECT_CODE), pMap.get(KFSPropertyConstants.FINANCIAL_BALANCE_TYPE_CODE)));
setFinancialBalanceTypeCode(getValue(line, pMap.get(KFSPropertyConstants.FINANCIAL_BALANCE_TYPE_CODE), pMap.get(KFSPropertyConstants.FINANCIAL_OBJECT_TYPE_CODE)));
setFinancialObjectTypeCode(getValue(line, pMap.get(KFSPropertyConstants.FINANCIAL_OBJECT_TYPE_CODE), pMap.get(KFSPropertyConstants.UNIVERSITY_FISCAL_PERIOD_CODE)));
setUniversityFiscalPeriodCode(getValue(line, pMap.get(KFSPropertyConstants.UNIVERSITY_FISCAL_PERIOD_CODE), pMap.get(KFSPropertyConstants.FINANCIAL_DOCUMENT_TYPE_CODE)));
setFinancialDocumentTypeCode(getValue(line, pMap.get(KFSPropertyConstants.FINANCIAL_DOCUMENT_TYPE_CODE), pMap.get(KFSPropertyConstants.FINANCIAL_SYSTEM_ORIGINATION_CODE)));
setFinancialSystemOriginationCode(getValue(line, pMap.get(KFSPropertyConstants.FINANCIAL_SYSTEM_ORIGINATION_CODE), pMap.get(KFSPropertyConstants.DOCUMENT_NUMBER)));
setDocumentNumber(getValue(line, pMap.get(KFSPropertyConstants.DOCUMENT_NUMBER), pMap.get(KFSPropertyConstants.TRANSACTION_ENTRY_SEQUENCE_NUMBER)));
// don't trim sequenceNumber because SpaceTransactionEntrySequenceNumber is " "
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)))) {
try {
setTransactionLedgerEntrySequenceNumber(new Integer(StringUtils.trim(getValue(line, pMap.get(KFSPropertyConstants.TRANSACTION_ENTRY_SEQUENCE_NUMBER), pMap.get(KFSPropertyConstants.TRANSACTION_LEDGER_ENTRY_DESC)))));
}
catch (NumberFormatException e) {
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));
setTransactionLedgerEntrySequenceNumber(null);
}
}
else {
setTransactionLedgerEntrySequenceNumber(null);
}
setTransactionLedgerEntryDescription(getValue(line, pMap.get(KFSPropertyConstants.TRANSACTION_LEDGER_ENTRY_DESC), pMap.get(KFSPropertyConstants.TRANSACTION_LEDGER_ENTRY_AMOUNT)));
if (!getValue(line, pMap.get(KFSPropertyConstants.TRANSACTION_LEDGER_ENTRY_AMOUNT), pMap.get(KFSPropertyConstants.TRANSACTION_DEBIT_CREDIT_CODE)).equals(GeneralLedgerConstants.EMPTY_CODE)){
try {
setTransactionLedgerEntryAmount(new KualiDecimal(getValue(line, pMap.get(KFSPropertyConstants.TRANSACTION_LEDGER_ENTRY_AMOUNT), pMap.get(KFSPropertyConstants.TRANSACTION_DEBIT_CREDIT_CODE)).trim()));
}
catch (NumberFormatException e) {
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));
setTransactionLedgerEntryAmount(KualiDecimal.ZERO);
}
} else {
returnList.add(new Message("Transaction Amount cannot be blank." , Message.TYPE_FATAL));
setTransactionLedgerEntryAmount(KualiDecimal.ZERO);
}
setTransactionDebitCreditCode(line.substring(pMap.get(KFSPropertyConstants.TRANSACTION_DEBIT_CREDIT_CODE), pMap.get(KFSPropertyConstants.TRANSACTION_DATE)));
if (!getValue(line, pMap.get(KFSPropertyConstants.TRANSACTION_DATE), pMap.get(KFSPropertyConstants.ORGANIZATION_DOCUMENT_NUMBER)).equals(GeneralLedgerConstants.EMPTY_CODE)){
// FSKD-193, KFSMI-5441
try {
setTransactionDate(parseDate(getValue(line, pMap.get(KFSPropertyConstants.TRANSACTION_DATE), pMap.get(KFSPropertyConstants.ORGANIZATION_DOCUMENT_NUMBER)), false));
}
catch (ParseException e) {
setTransactionDate(SpringContext.getBean(DateTimeService.class).getCurrentSqlDate());
}
} else {
setTransactionDate(null);
}
setOrganizationDocumentNumber(getValue(line, pMap.get(KFSPropertyConstants.ORGANIZATION_DOCUMENT_NUMBER), pMap.get(KFSPropertyConstants.PROJECT_CODE)));
setProjectCode(getValue(line, pMap.get(KFSPropertyConstants.PROJECT_CODE), pMap.get(KFSPropertyConstants.ORGANIZATION_REFERENCE_ID)));
setOrganizationReferenceId(getValue(line, pMap.get(KFSPropertyConstants.ORGANIZATION_REFERENCE_ID), pMap.get(KFSPropertyConstants.REFERENCE_FIN_DOCUMENT_TYPE_CODE)));
setReferenceFinancialDocumentTypeCode(getValue(line, pMap.get(KFSPropertyConstants.REFERENCE_FIN_DOCUMENT_TYPE_CODE), pMap.get(KFSPropertyConstants.FIN_SYSTEM_REF_ORIGINATION_CODE)));
setReferenceFinancialSystemOriginationCode(getValue(line, pMap.get(KFSPropertyConstants.FIN_SYSTEM_REF_ORIGINATION_CODE), pMap.get(KFSPropertyConstants.FINANCIAL_DOCUMENT_REFERENCE_NBR)));
setReferenceFinancialDocumentNumber(getValue(line, pMap.get(KFSPropertyConstants.FINANCIAL_DOCUMENT_REFERENCE_NBR), pMap.get(KFSPropertyConstants.FINANCIAL_DOCUMENT_REVERSAL_DATE)));
if (!getValue(line, pMap.get(KFSPropertyConstants.FINANCIAL_DOCUMENT_REVERSAL_DATE), pMap.get(KFSPropertyConstants.TRANSACTION_ENCUMBRANCE_UPDT_CD)).equals(GeneralLedgerConstants.EMPTY_CODE)){
try {
setFinancialDocumentReversalDate(parseDate(getValue(line, pMap.get(KFSPropertyConstants.FINANCIAL_DOCUMENT_REVERSAL_DATE), pMap.get(KFSPropertyConstants.TRANSACTION_ENCUMBRANCE_UPDT_CD)), false));
}
catch (ParseException e) {
setFinancialDocumentReversalDate(null);
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));
}
} else {
setFinancialDocumentReversalDate(null);
}
//set till end
setTransactionEncumbranceUpdateCode(line.substring(pMap.get(KFSPropertyConstants.TRANSACTION_ENCUMBRANCE_UPDT_CD), GeneralLedgerConstants.getSpaceAllOriginEntryFields().length()));
return returnList;
}
protected String getField(int size, String value) {
if (value == null) {
return GeneralLedgerConstants.getSpaceAllOriginEntryFields().substring(0, size);
}
else {
if (value.length() < size) {
return value + GeneralLedgerConstants.getSpaceAllOriginEntryFields().substring(0, size - value.length());
}
else {
return value.substring(0, size);
}
}
}
@Override
public String getLine() {
StringBuffer sb = new StringBuffer();
Map<String, Integer> fieldLengthMap = getOriginEntryFieldUtil().getFieldLengthMap();
if (universityFiscalYear == null) {
sb.append(GeneralLedgerConstants.getSpaceUniversityFiscalYear());
}
else {
sb.append(universityFiscalYear);
}
sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE), chartOfAccountsCode));
sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.ACCOUNT_NUMBER), accountNumber));
sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.SUB_ACCOUNT_NUMBER), subAccountNumber));
sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.FINANCIAL_OBJECT_CODE), financialObjectCode));
sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.FINANCIAL_SUB_OBJECT_CODE), financialSubObjectCode));
sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.FINANCIAL_BALANCE_TYPE_CODE), financialBalanceTypeCode));
sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.FINANCIAL_OBJECT_TYPE_CODE), financialObjectTypeCode));
sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.UNIVERSITY_FISCAL_PERIOD_CODE), universityFiscalPeriodCode));
sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.FINANCIAL_DOCUMENT_TYPE_CODE), financialDocumentTypeCode));
sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.FINANCIAL_SYSTEM_ORIGINATION_CODE), financialSystemOriginationCode));
sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.DOCUMENT_NUMBER), documentNumber));
// This is the cobol code for transaction sequence numbers.
// 3025 019280 IF TRN-ENTR-SEQ-NBR OF GLEN-RECORD NOT NUMERIC
// 3026 019290 MOVE ZEROES TO TRN-ENTR-SEQ-NBR OF GLEN-RECORD
// 3027 019300 END-IF
// 3028 019310 IF TRN-ENTR-SEQ-NBR OF GLEN-RECORD = SPACES
// 3029 019320 MOVE ZEROES
// 3030 019330 TO TRN-ENTR-SEQ-NBR OF ALT-GLEN-RECORD
// 3031 019340 ELSE
// 3032 019350 MOVE TRN-ENTR-SEQ-NBR OF GLEN-RECORD
// 3033 019360 TO TRN-ENTR-SEQ-NBR OF ALT-GLEN-RECORD
// 3034 019370 END-IF
String seqNum ="";
if (transactionLedgerEntrySequenceNumber != null) {
seqNum = transactionLedgerEntrySequenceNumber.toString();
}
// Format to a length of 5
sb.append(StringUtils.leftPad(seqNum.trim(), fieldLengthMap.get(KFSPropertyConstants.TRANSACTION_ENTRY_SEQUENCE_NUMBER), "0"));
sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.TRANSACTION_LEDGER_ENTRY_DESC), transactionLedgerEntryDescription));
if (transactionLedgerEntryAmount == null) {
sb.append(GeneralLedgerConstants.getZeroTransactionLedgerEntryAmount());
}
else {
String a = transactionLedgerEntryAmount.abs().toString();
if (transactionLedgerEntryAmount.isNegative()) {
sb.append("-");
} else {
sb.append("+");
}
sb.append(GeneralLedgerConstants.getZeroTransactionLedgerEntryAmount().substring(1, fieldLengthMap.get(KFSPropertyConstants.TRANSACTION_LEDGER_ENTRY_AMOUNT) - a.length()));
sb.append(a);
}
sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.TRANSACTION_DEBIT_CREDIT_CODE), transactionDebitCreditCode));
sb.append(formatDate(transactionDate));
sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.ORGANIZATION_DOCUMENT_NUMBER), organizationDocumentNumber));
sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.PROJECT_CODE), projectCode));
sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.ORGANIZATION_REFERENCE_ID), organizationReferenceId));
sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.REFERENCE_FIN_DOCUMENT_TYPE_CODE), referenceFinancialDocumentTypeCode));
sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.FIN_SYSTEM_REF_ORIGINATION_CODE), referenceFinancialSystemOriginationCode));
sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.FINANCIAL_DOCUMENT_REFERENCE_NBR), referenceFinancialDocumentNumber));
sb.append(formatDate(financialDocumentReversalDate));
sb.append(getField(fieldLengthMap.get(KFSPropertyConstants.TRANSACTION_ENCUMBRANCE_UPDT_CD), transactionEncumbranceUpdateCode));
// pad to full length
while (GeneralLedgerConstants.getSpaceAllOriginEntryFields().length() > sb.toString().length()) {
sb.append(' ');
}
// KFSMI-5958: Don't want any control characters in output files. They potentially disrupt further processing
Matcher controlCharacterMatcher = MATCH_CONTROL_CHARACTERS.matcher(sb);
String returnString = controlCharacterMatcher.replaceAll(REPLACE_MATCHED_CONTROL_CHARACTERS);
return returnString;
}
public boolean isTransactionScrubberOffsetGenerationIndicator() {
return transactionScrubberOffsetGenerationIndicator;
}
@Override
public void setTransactionScrubberOffsetGenerationIndicator(boolean transactionScrubberOffsetGenerationIndicator) {
this.transactionScrubberOffsetGenerationIndicator = transactionScrubberOffsetGenerationIndicator;
}
@Override
public String getAccountNumber() {
return accountNumber;
}
@Override
public void setAccountNumber(String accountNumber) {
this.accountNumber = accountNumber;
}
@Override
public String getFinancialBalanceTypeCode() {
return financialBalanceTypeCode;
}
@Override
public void setFinancialBalanceTypeCode(String financialBalanceTypeCode) {
this.financialBalanceTypeCode = financialBalanceTypeCode;
}
@Override
public String getChartOfAccountsCode() {
return chartOfAccountsCode;
}
@Override
public void setChartOfAccountsCode(String chartOfAccountsCode) {
this.chartOfAccountsCode = chartOfAccountsCode;
}
@Override
public String getTransactionDebitCreditCode() {
return transactionDebitCreditCode;
}
@Override
public void setTransactionDebitCreditCode(String transactionDebitCreditCode) {
if (transactionDebitCreditCode != null) {
this.transactionDebitCreditCode = transactionDebitCreditCode.toUpperCase();
}
}
@Override
public String getDocumentNumber() {
return documentNumber;
}
@Override
public void setDocumentNumber(String documentNumber) {
this.documentNumber = documentNumber;
}
@Override
public Date getFinancialDocumentReversalDate() {
return financialDocumentReversalDate;
}
@Override
public void setFinancialDocumentReversalDate(Date financialDocumentReversalDate) {
this.financialDocumentReversalDate = financialDocumentReversalDate;
}
@Override
public String getFinancialDocumentTypeCode() {
return financialDocumentTypeCode;
}
@Override
public void setFinancialDocumentTypeCode(String financialDocumentTypeCode) {
this.financialDocumentTypeCode = financialDocumentTypeCode;
}
@Override
public String getTransactionEncumbranceUpdateCode() {
return transactionEncumbranceUpdateCode;
}
@Override
public void setTransactionEncumbranceUpdateCode(String transactionEncumbranceUpdateCode) {
this.transactionEncumbranceUpdateCode = transactionEncumbranceUpdateCode;
}
public Integer getEntryGroupId() {
return entryGroupId;
}
@Override
public void setEntryGroupId(Integer entryGroupId) {
this.entryGroupId = entryGroupId;
}
public Integer getEntryId() {
return entryId;
}
public void setEntryId(Integer entryId) {
this.entryId = entryId;
}
@Override
public void resetEntryId() {
this.entryId = null;
this.versionNumber = null;
}
@Override
public String getFinancialObjectCode() {
return financialObjectCode;
}
@Override
public void setFinancialObjectCode(String financialObjectCode) {
this.financialObjectCode = financialObjectCode;
}
@Override
public String getFinancialObjectTypeCode() {
return financialObjectTypeCode;
}
@Override
public void setFinancialObjectTypeCode(String financialObjectTypeCode) {
this.financialObjectTypeCode = financialObjectTypeCode;
}
@Override
public String getOrganizationDocumentNumber() {
return organizationDocumentNumber;
}
@Override
public void setOrganizationDocumentNumber(String organizationDocumentNumber) {
this.organizationDocumentNumber = organizationDocumentNumber;
}
@Override
public String getOrganizationReferenceId() {
return organizationReferenceId;
}
@Override
public void setOrganizationReferenceId(String organizationReferenceId) {
this.organizationReferenceId = organizationReferenceId;
}
@Override
public String getFinancialSystemOriginationCode() {
return financialSystemOriginationCode;
}
@Override
public void setFinancialSystemOriginationCode(String financialSystemOriginationCode) {
this.financialSystemOriginationCode = financialSystemOriginationCode;
}
@Override
public String getProjectCode() {
if (StringUtils.isBlank(projectCode)) {
projectCode = KFSConstants.getDashProjectCode();
}
return projectCode;
}
@Override
public void setProjectCode(String projectCode) {
this.projectCode = projectCode;
}
@Override
public String getReferenceFinancialDocumentNumber() {
return referenceFinancialDocumentNumber;
}
@Override
public void setReferenceFinancialDocumentNumber(String referenceFinancialDocumentNumber) {
this.referenceFinancialDocumentNumber = referenceFinancialDocumentNumber;
}
@Override
public String getReferenceFinancialDocumentTypeCode() {
return referenceFinancialDocumentTypeCode;
}
@Override
public void setReferenceFinancialDocumentTypeCode(String referenceFinancialDocumentTypeCode) {
this.referenceFinancialDocumentTypeCode = referenceFinancialDocumentTypeCode;
}
@Override
public String getReferenceFinancialSystemOriginationCode() {
return referenceFinancialSystemOriginationCode;
}
@Override
public void setReferenceFinancialSystemOriginationCode(String referenceFinancialSystemOriginationCode) {
this.referenceFinancialSystemOriginationCode = referenceFinancialSystemOriginationCode;
}
@Override
public String getSubAccountNumber() {
if (StringUtils.isBlank(subAccountNumber)) {
subAccountNumber = KFSConstants.getDashSubAccountNumber();
}
return subAccountNumber;
}
@Override
public void setSubAccountNumber(String subAccountNumber) {
this.subAccountNumber = subAccountNumber;
}
@Override
public String getFinancialSubObjectCode() {
if (StringUtils.isBlank(financialSubObjectCode)) {
financialSubObjectCode = KFSConstants.getDashFinancialSubObjectCode();
}
return financialSubObjectCode;
}
@Override
public void setFinancialSubObjectCode(String financialSubObjectCode) {
this.financialSubObjectCode = financialSubObjectCode;
}
@Override
public Date getTransactionDate() {
return transactionDate;
}
@Override
public void setTransactionDate(Date transactionDate) {
this.transactionDate = transactionDate;
}
@Override
public Integer getTransactionLedgerEntrySequenceNumber() {
return transactionLedgerEntrySequenceNumber;
}
@Override
public void setTransactionLedgerEntrySequenceNumber(Integer transactionLedgerEntrySequenceNumber) {
this.transactionLedgerEntrySequenceNumber = transactionLedgerEntrySequenceNumber;
}
@Override
public KualiDecimal getTransactionLedgerEntryAmount() {
return transactionLedgerEntryAmount;
}
@Override
public void setTransactionLedgerEntryAmount(KualiDecimal transactionLedgerEntryAmount) {
this.transactionLedgerEntryAmount = transactionLedgerEntryAmount;
}
public void setTransactionLedgerEntryAmount(String transactionLedgerEntryAmount) {
this.transactionLedgerEntryAmount = new KualiDecimal(transactionLedgerEntryAmount);
}
public void clearTransactionLedgerEntryAmount() {
this.transactionLedgerEntryAmount = null;
}
@Override
public String getTransactionLedgerEntryDescription() {
return transactionLedgerEntryDescription;
}
@Override
public void setTransactionLedgerEntryDescription(String transactionLedgerEntryDescription) {
this.transactionLedgerEntryDescription = transactionLedgerEntryDescription;
}
@Override
public String getUniversityFiscalPeriodCode() {
return universityFiscalPeriodCode;
}
@Override
public void setUniversityFiscalPeriodCode(String universityFiscalPeriodCode) {
this.universityFiscalPeriodCode = universityFiscalPeriodCode;
}
@Override
public Integer getUniversityFiscalYear() {
return universityFiscalYear;
}
@Override
public void setUniversityFiscalYear(Integer universityFiscalYear) {
this.universityFiscalYear = universityFiscalYear;
}
@Override
public boolean isDebit() {
return KFSConstants.GL_DEBIT_CODE.equals(this.transactionDebitCreditCode);
}
@Override
public boolean isCredit() {
return KFSConstants.GL_CREDIT_CODE.equals(this.transactionDebitCreditCode);
}
public void setFieldValue(String fieldName, String fieldValue) {
if ("universityFiscalYear".equals(fieldName)) {
if (StringUtils.isNotBlank(fieldValue)) {
setUniversityFiscalYear(Integer.parseInt(fieldValue));
}
else {
setUniversityFiscalYear(null);
}
}
else if ("chartOfAccountsCode".equals(fieldName)) {
setChartOfAccountsCode(fieldValue);
}
else if ("accountNumber".equals(fieldName)) {
setAccountNumber(fieldValue);
}
else if ("subAccountNumber".equals(fieldName)) {
setSubAccountNumber(fieldValue);
}
else if ("financialObjectCode".equals(fieldName)) {
setFinancialObjectCode(fieldValue);
}
else if ("financialSubObjectCode".equals(fieldName)) {
setFinancialSubObjectCode(fieldValue);
}
else if ("financialBalanceTypeCode".equals(fieldName)) {
setFinancialBalanceTypeCode(fieldValue);
}
else if ("financialObjectTypeCode".equals(fieldName)) {
setFinancialObjectTypeCode(fieldValue);
}
else if ("universityFiscalPeriodCode".equals(fieldName)) {
setUniversityFiscalPeriodCode(fieldValue);
}
else if ("financialDocumentTypeCode".equals(fieldName)) {
setFinancialDocumentTypeCode(fieldValue);
}
else if ("financialSystemOriginationCode".equals(fieldName)) {
setFinancialSystemOriginationCode(fieldValue);
}
else if (KFSPropertyConstants.DOCUMENT_NUMBER.equals(fieldName)) {
setDocumentNumber(fieldValue);
}
else if ("transactionLedgerEntrySequenceNumber".equals(fieldName)) {
if (StringUtils.isNotBlank(fieldValue)) {
setTransactionLedgerEntrySequenceNumber(Integer.parseInt(fieldValue));
}
else {
setTransactionLedgerEntrySequenceNumber(null);
}
}
else if ("transactionLedgerEntryDescription".equals(fieldName)) {
setTransactionLedgerEntryDescription(fieldValue);
}
else if ("transactionLedgerEntryAmount".equals(fieldName)) {
if (StringUtils.isNotBlank(fieldValue)) {
setTransactionLedgerEntryAmount(new KualiDecimal(fieldValue));
}
else {
clearTransactionLedgerEntryAmount();
}
}
else if ("transactionDebitCreditCode".equals(fieldName)) {
setTransactionDebitCreditCode(fieldValue);
}
else if ("transactionDate".equals(fieldName)) {
if (StringUtils.isNotBlank(fieldValue)) {
try {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
setTransactionDate(new java.sql.Date((df.parse(fieldValue)).getTime()));
}
catch (ParseException e) {
setTransactionDate(null);
}
}
else {
setTransactionDate(null);
}
}
else if ("organizationDocumentNumber".equals(fieldName)) {
setOrganizationDocumentNumber(fieldValue);
}
else if ("projectCode".equals(fieldName)) {
setProjectCode(fieldValue);
}
else if ("organizationReferenceId".equals(fieldName)) {
setOrganizationReferenceId(fieldValue);
}
else if ("referenceFinancialDocumentTypeCode".equals(fieldName)) {
setReferenceFinancialDocumentTypeCode(fieldValue);
}
else if ("referenceFinancialSystemOriginationCode".equals(fieldName)) {
setReferenceFinancialSystemOriginationCode(fieldValue);
}
else if ("referenceFinancialDocumentNumber".equals(fieldName)) {
setReferenceFinancialDocumentNumber(fieldValue);
}
else if ("financialDocumentReversalDate".equals(fieldName)) {
if (StringUtils.isNotBlank(fieldValue)) {
try {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
setFinancialDocumentReversalDate(new java.sql.Date((df.parse(fieldValue)).getTime()));
}
catch (ParseException e) {
setFinancialDocumentReversalDate(null);
}
}
else {
setFinancialDocumentReversalDate(null);
}
}
else if ("transactionEncumbranceUpdateCode".equals(fieldName)) {
setTransactionEncumbranceUpdateCode(fieldValue);
}
else {
throw new IllegalArgumentException("Invalid Field Name " + fieldName);
}
}
public Object getFieldValue(String fieldName) {
if ("universityFiscalYear".equals(fieldName)) {
return getUniversityFiscalYear();
}
else if ("chartOfAccountsCode".equals(fieldName)) {
return getChartOfAccountsCode();
}
else if ("accountNumber".equals(fieldName)) {
return getAccountNumber();
}
else if ("subAccountNumber".equals(fieldName)) {
return getSubAccountNumber();
}
else if ("financialObjectCode".equals(fieldName)) {
return getFinancialObjectCode();
}
else if ("financialSubObjectCode".equals(fieldName)) {
return getFinancialSubObjectCode();
}
else if ("financialBalanceTypeCode".equals(fieldName)) {
return getFinancialBalanceTypeCode();
}
else if ("financialObjectTypeCode".equals(fieldName)) {
return getFinancialObjectTypeCode();
}
else if ("universityFiscalPeriodCode".equals(fieldName)) {
return getUniversityFiscalPeriodCode();
}
else if ("financialDocumentTypeCode".equals(fieldName)) {
return getFinancialDocumentTypeCode();
}
else if ("financialSystemOriginationCode".equals(fieldName)) {
return getFinancialSystemOriginationCode();
}
else if (KFSPropertyConstants.DOCUMENT_NUMBER.equals(fieldName)) {
return getDocumentNumber();
}
else if ("transactionLedgerEntrySequenceNumber".equals(fieldName)) {
return getTransactionLedgerEntrySequenceNumber();
}
else if ("transactionLedgerEntryDescription".equals(fieldName)) {
return getTransactionLedgerEntryDescription();
}
else if ("transactionLedgerEntryAmount".equals(fieldName)) {
return getTransactionLedgerEntryAmount();
}
else if ("transactionDebitCreditCode".equals(fieldName)) {
return getTransactionDebitCreditCode();
}
else if ("transactionDate".equals(fieldName)) {
return getTransactionDate();
}
else if ("organizationDocumentNumber".equals(fieldName)) {
return getOrganizationDocumentNumber();
}
else if ("projectCode".equals(fieldName)) {
return getProjectCode();
}
else if ("organizationReferenceId".equals(fieldName)) {
return getOrganizationReferenceId();
}
else if ("referenceFinancialDocumentTypeCode".equals(fieldName)) {
return getReferenceFinancialDocumentTypeCode();
}
else if ("referenceFinancialSystemOriginationCode".equals(fieldName)) {
return getReferenceFinancialSystemOriginationCode();
}
else if ("referenceFinancialDocumentNumber".equals(fieldName)) {
return getReferenceFinancialDocumentNumber();
}
else if ("financialDocumentReversalDate".equals(fieldName)) {
return getFinancialDocumentReversalDate();
}
else if ("transactionEncumbranceUpdateCode".equals(fieldName)) {
return getTransactionEncumbranceUpdateCode();
}
else {
throw new IllegalArgumentException("Invalid Field Name " + fieldName);
}
}
public OriginEntryFull(GeneralLedgerPendingEntry glpe) {
accountNumber = glpe.getAccountNumber();
documentNumber = glpe.getDocumentNumber();
referenceFinancialDocumentNumber = glpe.getReferenceFinancialDocumentNumber();
referenceFinancialDocumentTypeCode = glpe.getReferenceFinancialDocumentTypeCode();
financialDocumentReversalDate = glpe.getFinancialDocumentReversalDate();
financialDocumentTypeCode = glpe.getFinancialDocumentTypeCode();
financialBalanceTypeCode = glpe.getFinancialBalanceTypeCode();
chartOfAccountsCode = glpe.getChartOfAccountsCode();
financialObjectTypeCode = glpe.getFinancialObjectTypeCode();
financialObjectCode = glpe.getFinancialObjectCode();
financialSubObjectCode = glpe.getFinancialSubObjectCode();
financialSystemOriginationCode = glpe.getFinancialSystemOriginationCode();
referenceFinancialSystemOriginationCode = glpe.getReferenceFinancialSystemOriginationCode();
organizationDocumentNumber = glpe.getOrganizationDocumentNumber();
organizationReferenceId = glpe.getOrganizationReferenceId();
projectCode = glpe.getProjectCode();
subAccountNumber = glpe.getSubAccountNumber();
transactionDate = glpe.getTransactionDate();
transactionDebitCreditCode = glpe.getTransactionDebitCreditCode();
transactionEncumbranceUpdateCode = glpe.getTransactionEncumbranceUpdateCode();
transactionLedgerEntrySequenceNumber = glpe.getTransactionLedgerEntrySequenceNumber();
transactionLedgerEntryAmount = glpe.getTransactionLedgerEntryAmount();
transactionLedgerEntryDescription = glpe.getTransactionLedgerEntryDescription();
universityFiscalPeriodCode = glpe.getUniversityFiscalPeriodCode();
universityFiscalYear = glpe.getUniversityFiscalYear();
}
/**
*
*/
public OriginEntryFull(String financialDocumentTypeCode, String financialSystemOriginationCode) {
super();
setChartOfAccountsCode(KFSConstants.EMPTY_STRING);
setAccountNumber(KFSConstants.EMPTY_STRING);
setFinancialDocumentTypeCode(financialDocumentTypeCode);
setFinancialSystemOriginationCode(financialSystemOriginationCode);
setFinancialObjectCode(KFSConstants.EMPTY_STRING);
setFinancialBalanceTypeCode(KFSConstants.EMPTY_STRING);
setFinancialObjectTypeCode(KFSConstants.EMPTY_STRING);
setDocumentNumber(KFSConstants.EMPTY_STRING);
setFinancialDocumentReversalDate(null);
setUniversityFiscalYear(new Integer(0));
setUniversityFiscalPeriodCode(KFSConstants.EMPTY_STRING);
setTransactionLedgerEntrySequenceNumber(new Integer(1));
setTransactionLedgerEntryAmount(KualiDecimal.ZERO);
setTransactionLedgerEntryDescription(KFSConstants.EMPTY_STRING);
setTransactionDate(null);
setTransactionDebitCreditCode(KFSConstants.EMPTY_STRING);
setTransactionEncumbranceUpdateCode(null);
setOrganizationDocumentNumber(KFSConstants.EMPTY_STRING);
setOrganizationReferenceId(KFSConstants.EMPTY_STRING);
setReferenceFinancialDocumentTypeCode(KFSConstants.EMPTY_STRING);
setReferenceFinancialSystemOriginationCode(KFSConstants.EMPTY_STRING);
setReferenceFinancialDocumentNumber(KFSConstants.EMPTY_STRING);
}
/**
*
*/
public OriginEntryFull() {
this(null, null);
}
public OriginEntryFull(Transaction t) {
this();
copyFieldsFromTransaction(t);
}
public OriginEntryFull(String line) {
try {
setFromTextFileForBatch(line, 0);
}
catch (LoadException e) {
LOG.error("OriginEntryFull() Error loading line", e);
}
}
protected LinkedHashMap toStringMapper_RICE20_REFACTORME() {
LinkedHashMap map = new LinkedHashMap();
map.put("entryId", getEntryId());
map.put("entryGroupId", getEntryGroupId());
map.put("universityFiscalYear", getUniversityFiscalYear());
map.put("universityFiscalPeriodCode", getUniversityFiscalPeriodCode());
map.put("chartOfAccountsCode", getChartOfAccountsCode());
map.put("accountNumber", getAccountNumber());
map.put("subAccountNumber", getSubAccountNumber());
map.put("financialObjectCode", getFinancialObjectCode());
map.put("financialObjectTypeCode", getFinancialObjectTypeCode());
map.put("financialSubObjectCode", getFinancialSubObjectCode());
map.put("financialBalanceTypeCode", getFinancialBalanceTypeCode());
map.put(KFSPropertyConstants.DOCUMENT_NUMBER, getDocumentNumber());
map.put("financialDocumentTypeCode", getFinancialDocumentTypeCode());
map.put("financialSystemOriginationCode", getFinancialSystemOriginationCode());
map.put("transactionLedgerEntrySequenceNumber", getTransactionLedgerEntrySequenceNumber());
map.put("transactionLedgerEntryDescription", getTransactionLedgerEntryDescription());
return map;
}
public OriginEntryGroup getGroup() {
return group;
}
public void setGroup(OriginEntryGroup oeg) {
if (oeg != null) {
setEntryGroupId(oeg.getId());
group = oeg;
}
else {
setEntryGroupId(null);
group = null;
}
}
public A21SubAccount getA21SubAccount() {
return a21SubAccount;
}
public void setA21SubAccount(A21SubAccount subAccount) {
a21SubAccount = subAccount;
}
@Override
public Account getAccount() {
return account;
}
@Override
public void setAccount(Account account) {
this.account = account;
}
@Override
public BalanceType getBalanceType() {
return balanceType;
}
@Override
public void setBalanceType(BalanceType balanceType) {
this.balanceType = balanceType;
}
@Override
public Chart getChart() {
return chart;
}
@Override
public void setChart(Chart chart) {
this.chart = chart;
}
@Override
public DocumentTypeEBO getFinancialSystemDocumentTypeCode() {
if ( StringUtils.isBlank( financialDocumentTypeCode ) ) {
financialSystemDocumentTypeCode = null;
} else {
if ( financialSystemDocumentTypeCode == null || !StringUtils.equals(financialDocumentTypeCode, financialSystemDocumentTypeCode.getName() ) ) {
org.kuali.rice.kew.api.doctype.DocumentType docType = SpringContext.getBean(DocumentTypeService.class).getDocumentTypeByName(financialDocumentTypeCode);
if ( docType != null ) {
financialSystemDocumentTypeCode = DocumentType.from( docType );
} else {
financialSystemDocumentTypeCode = null;
}
}
}
return financialSystemDocumentTypeCode;
}
@Override
public ObjectCode getFinancialObject() {
return financialObject;
}
@Override
public void setFinancialObject(ObjectCode financialObject) {
this.financialObject = financialObject;
}
@Override
public SubObjectCode getFinancialSubObject() {
return financialSubObject;
}
public void setFinancialSubObject(SubObjectCode financialSubObject) {
this.financialSubObject = financialSubObject;
}
@Override
public ObjectType getObjectType() {
return objectType;
}
@Override
public void setObjectType(ObjectType objectType) {
this.objectType = objectType;
}
@Override
public SystemOptions getOption() {
return option;
}
@Override
public void setOption(SystemOptions option) {
this.option = option;
}
public ProjectCode getProject() {
return project;
}
public void setProject(ProjectCode project) {
this.project = project;
}
@Override
public SubAccount getSubAccount() {
return subAccount;
}
public void setSubAccount(SubAccount subAccount) {
this.subAccount = subAccount;
}
public UniversityDate getUniversityDate() {
return universityDate;
}
public void setUniversityDate(UniversityDate universityDate) {
this.universityDate = universityDate;
}
public AccountingPeriod getAccountingPeriod() {
return accountingPeriod;
}
public void setAccountingPeriod(AccountingPeriod accountingPeriod) {
this.accountingPeriod = accountingPeriod;
}
public UniversityDate getReversalDate() {
return reversalDate;
}
public void setReversalDate(UniversityDate reversalDate) {
this.reversalDate = reversalDate;
}
public OriginationCode getOrigination() {
return origination;
}
public void setOrigination(OriginationCode origination) {
this.origination = origination;
}
public DocumentTypeEBO getReferenceFinancialSystemDocumentTypeCode() {
if ( StringUtils.isBlank( referenceFinancialDocumentTypeCode ) ) {
referenceFinancialSystemDocumentTypeCode = null;
} else {
if ( referenceFinancialSystemDocumentTypeCode == null || !StringUtils.equals(referenceFinancialDocumentTypeCode, referenceFinancialSystemDocumentTypeCode.getName() ) ) {
org.kuali.rice.kew.api.doctype.DocumentType temp = SpringContext.getBean(DocumentTypeService.class).getDocumentTypeByName(referenceFinancialDocumentTypeCode);
if ( temp != null ) {
referenceFinancialSystemDocumentTypeCode = DocumentType.from( temp );
} else {
referenceFinancialSystemDocumentTypeCode = null;
}
}
}
return referenceFinancialSystemDocumentTypeCode;
}
public static OriginEntryFull copyFromOriginEntryable(OriginEntryInformation oe) {
OriginEntryFull newOriginEntry = new OriginEntryFull();
newOriginEntry.setAccountNumber(oe.getAccountNumber());
newOriginEntry.setDocumentNumber(oe.getDocumentNumber());
newOriginEntry.setReferenceFinancialDocumentNumber(oe.getReferenceFinancialDocumentNumber());
newOriginEntry.setReferenceFinancialDocumentTypeCode(oe.getReferenceFinancialDocumentTypeCode());
newOriginEntry.setFinancialDocumentReversalDate(oe.getFinancialDocumentReversalDate());
newOriginEntry.setFinancialDocumentTypeCode(oe.getFinancialDocumentTypeCode());
newOriginEntry.setFinancialBalanceTypeCode(oe.getFinancialBalanceTypeCode());
newOriginEntry.setChartOfAccountsCode(oe.getChartOfAccountsCode());
newOriginEntry.setFinancialObjectTypeCode(oe.getFinancialObjectTypeCode());
newOriginEntry.setFinancialObjectCode(oe.getFinancialObjectCode());
newOriginEntry.setFinancialSubObjectCode(oe.getFinancialSubObjectCode());
newOriginEntry.setFinancialSystemOriginationCode(oe.getFinancialSystemOriginationCode());
newOriginEntry.setReferenceFinancialSystemOriginationCode(oe.getReferenceFinancialSystemOriginationCode());
newOriginEntry.setOrganizationDocumentNumber(oe.getOrganizationDocumentNumber());
newOriginEntry.setOrganizationReferenceId(oe.getOrganizationReferenceId());
newOriginEntry.setProjectCode(oe.getProjectCode());
newOriginEntry.setSubAccountNumber(oe.getSubAccountNumber());
newOriginEntry.setTransactionDate(oe.getTransactionDate());
newOriginEntry.setTransactionDebitCreditCode(oe.getTransactionDebitCreditCode());
newOriginEntry.setTransactionEncumbranceUpdateCode(oe.getTransactionEncumbranceUpdateCode());
newOriginEntry.setTransactionLedgerEntrySequenceNumber(oe.getTransactionLedgerEntrySequenceNumber());
newOriginEntry.setTransactionLedgerEntryAmount(oe.getTransactionLedgerEntryAmount());
newOriginEntry.setTransactionLedgerEntryDescription(oe.getTransactionLedgerEntryDescription());
newOriginEntry.setUniversityFiscalPeriodCode(oe.getUniversityFiscalPeriodCode());
newOriginEntry.setUniversityFiscalYear(oe.getUniversityFiscalYear());
return newOriginEntry;
}
/**
* @return the static instance of the OriginEntryFieldUtil
*/
protected static OriginEntryFieldUtil getOriginEntryFieldUtil() {
if (originEntryFieldUtil == null) {
originEntryFieldUtil = new OriginEntryFieldUtil();
}
return originEntryFieldUtil;
}
}