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    
017    package org.kuali.kfs.sys.businessobject;
018    
019    import java.io.Serializable;
020    import java.sql.Date;
021    import java.sql.Timestamp;
022    import java.util.LinkedHashMap;
023    
024    import org.kuali.kfs.coa.businessobject.A21SubAccount;
025    import org.kuali.kfs.coa.businessobject.Account;
026    import org.kuali.kfs.coa.businessobject.AccountingPeriod;
027    import org.kuali.kfs.coa.businessobject.BalanceType;
028    import org.kuali.kfs.coa.businessobject.Chart;
029    import org.kuali.kfs.coa.businessobject.ObjectCode;
030    import org.kuali.kfs.coa.businessobject.ObjectType;
031    import org.kuali.kfs.coa.businessobject.ProjectCode;
032    import org.kuali.kfs.coa.businessobject.SubAccount;
033    import org.kuali.kfs.coa.businessobject.SubObjectCode;
034    import org.kuali.kfs.gl.businessobject.Transaction;
035    import org.kuali.kfs.gl.businessobject.TransientBalanceInquiryAttributes;
036    import org.kuali.kfs.sys.KFSPropertyConstants;
037    import org.kuali.kfs.sys.context.SpringContext;
038    import org.kuali.kfs.sys.document.validation.impl.AccountingDocumentRuleBaseConstants.GENERAL_LEDGER_PENDING_ENTRY_CODE;
039    import org.kuali.rice.kew.doctype.bo.DocumentTypeEBO;
040    import org.kuali.rice.kew.service.impl.KEWModuleService;
041    import org.kuali.rice.kns.bo.PersistableBusinessObjectBase;
042    import org.kuali.rice.kns.util.KualiDecimal;
043    import org.kuali.rice.kns.web.format.CurrencyFormatter;
044    
045    /**
046     * The general ledger pending entry structure holds financial transaction info that will post to the general ledger as an entry.
047     */
048    public class GeneralLedgerPendingEntry extends PersistableBusinessObjectBase implements Transaction, Serializable, Cloneable {
049        private static final long serialVersionUID = 4041748389323105932L;
050        private String financialSystemOriginationCode;
051        private String documentNumber;
052        private Integer transactionLedgerEntrySequenceNumber;
053        private String chartOfAccountsCode;
054        private String accountNumber;
055        private String subAccountNumber;
056        private String financialObjectCode;
057        private String financialSubObjectCode;
058        private String financialBalanceTypeCode;
059        private String financialObjectTypeCode;
060        private Integer universityFiscalYear;
061        private String universityFiscalPeriodCode;
062        private String transactionLedgerEntryDescription;
063        private KualiDecimal transactionLedgerEntryAmount;
064        private String transactionDebitCreditCode;
065        private Date transactionDate;
066        private String financialDocumentTypeCode;
067        private String organizationDocumentNumber;
068        private String projectCode;
069        private String organizationReferenceId;
070        private String referenceFinancialDocumentTypeCode;
071        private String referenceFinancialSystemOriginationCode;
072        private String referenceFinancialDocumentNumber;
073        private Date financialDocumentReversalDate;
074        private String transactionEncumbranceUpdateCode;
075        private String financialDocumentApprovedCode;
076        private String acctSufficientFundsFinObjCd;
077        private boolean transactionEntryOffsetIndicator;
078        private Timestamp transactionEntryProcessedTs;
079    
080        private DocumentTypeEBO financialSystemDocumentTypeCode;
081        private FinancialSystemDocumentHeader documentHeader;
082    
083        private SystemOptions option;
084        private Chart chart;
085        private Account account;
086        private SubAccount subAccount;
087        private ObjectCode financialObject;
088        private SubObjectCode financialSubObject;
089        private BalanceType balanceType;
090        private ObjectType objectType;
091        private A21SubAccount a21SubAccount;
092        private TransientBalanceInquiryAttributes dummyBusinessObject;
093        private OriginationCode originationCode;
094        private ProjectCode project;
095        private OriginationCode referenceOriginationCode;
096        private DocumentTypeEBO referenceFinancialSystemDocumentTypeCode;
097        
098        @Deprecated
099        private transient AccountingPeriod accountingPeriod;
100    
101        /**
102         * Default no-arg constructor.
103         */
104        public GeneralLedgerPendingEntry() {
105            this.objectType = new ObjectType();
106            this.balanceType = new BalanceType();
107            this.dummyBusinessObject = new TransientBalanceInquiryAttributes();
108            this.financialObject = new ObjectCode();
109        }
110    
111        /**
112         * Copy constructor Constructs a GeneralLedgerPendingEntry.java.
113         * 
114         * @param original entry to copy
115         */
116        public GeneralLedgerPendingEntry(GeneralLedgerPendingEntry original) {
117            financialSystemOriginationCode = original.getFinancialSystemOriginationCode();
118            documentNumber = original.getDocumentNumber();
119            transactionLedgerEntrySequenceNumber = original.getTransactionLedgerEntrySequenceNumber();
120            chartOfAccountsCode = original.getChartOfAccountsCode();
121            accountNumber = original.getAccountNumber();
122            subAccountNumber = original.getSubAccountNumber();
123            financialObjectCode = original.getFinancialObjectCode();
124            financialSubObjectCode = original.getFinancialSubObjectCode();
125            financialBalanceTypeCode = original.getFinancialBalanceTypeCode();
126            financialObjectTypeCode = original.getFinancialObjectTypeCode();
127            universityFiscalYear = original.getUniversityFiscalYear();
128            universityFiscalPeriodCode = original.getUniversityFiscalPeriodCode();
129            transactionLedgerEntryDescription = original.getTransactionLedgerEntryDescription();
130            transactionLedgerEntryAmount = original.getTransactionLedgerEntryAmount();
131            transactionDebitCreditCode = original.getTransactionDebitCreditCode();
132            transactionDate = original.getTransactionDate();
133            financialDocumentTypeCode = original.getFinancialDocumentTypeCode();
134            organizationDocumentNumber = original.getOrganizationDocumentNumber();
135            projectCode = original.getProjectCode();
136            organizationReferenceId = original.getOrganizationReferenceId();
137            referenceFinancialDocumentTypeCode = original.getReferenceFinancialDocumentTypeCode();
138            referenceFinancialSystemOriginationCode = original.getReferenceFinancialSystemOriginationCode();
139            referenceFinancialDocumentNumber = original.getReferenceFinancialDocumentNumber();
140            financialDocumentReversalDate = original.getFinancialDocumentReversalDate();
141            transactionEncumbranceUpdateCode = original.getTransactionEncumbranceUpdateCode();
142            financialDocumentApprovedCode = original.getFinancialDocumentApprovedCode();
143            acctSufficientFundsFinObjCd = original.getAcctSufficientFundsFinObjCd();
144            transactionEntryOffsetIndicator = original.isTransactionEntryOffsetIndicator();
145            transactionEntryProcessedTs = original.getTransactionEntryProcessedTs();
146            
147            financialSystemDocumentTypeCode = original.getFinancialSystemDocumentTypeCode();
148            documentHeader = original.getDocumentHeader();
149    
150            option = original.getOption();
151            chart = original.getChart();
152            account = original.getAccount();
153            subAccount = original.getSubAccount();
154            financialObject = original.getFinancialObject();
155            financialSubObject = original.getFinancialSubObject();
156            balanceType = original.getBalanceType();
157            a21SubAccount = original.getA21SubAccount();
158            dummyBusinessObject = original.getDummyBusinessObject();
159            originationCode = original.getOriginationCode();
160            project = original.getProject();
161            referenceOriginationCode = original.getReferenceOriginationCode();
162            referenceFinancialSystemDocumentTypeCode = original.getReferenceFinancialSystemDocumentTypeCode();
163        }
164    
165        public DocumentTypeEBO getReferenceFinancialSystemDocumentTypeCode() {
166            return referenceFinancialSystemDocumentTypeCode = SpringContext.getBean(KEWModuleService.class).retrieveExternalizableBusinessObjectIfNecessary(this, referenceFinancialSystemDocumentTypeCode, "referenceFinancialSystemDocumentTypeCode");
167        }
168    
169        public OriginationCode getReferenceOriginationCode() {
170            return referenceOriginationCode;
171        }
172    
173        public void setReferenceOriginationCode(OriginationCode referenceOriginationCode) {
174            this.referenceOriginationCode = referenceOriginationCode;
175        }
176    
177        public ProjectCode getProject() {
178            return project;
179        }
180    
181        public void setProject(ProjectCode project) {
182            this.project = project;
183        }
184    
185        public OriginationCode getOriginationCode() {
186            return originationCode;
187        }
188    
189        public void setOriginationCode(OriginationCode originationCode) {
190            this.originationCode = originationCode;
191        }
192    
193        public void setOption(SystemOptions option) {
194            this.option = option;
195        }
196    
197        public SystemOptions getOption() {
198            return option;
199        }
200    
201        /**
202         * Gets the documentNumber attribute.
203         * 
204         * @return Returns the documentNumber
205         */
206        public String getDocumentNumber() {
207            return documentNumber;
208        }
209    
210        /**
211         * Sets the documentNumber attribute.
212         * 
213         * @param documentNumber The documentNumber to set.
214         */
215        public void setDocumentNumber(String documentNumber) {
216            this.documentNumber = documentNumber;
217        }
218    
219        /**
220         * Gets the transactionLedgerEntrySequenceNumber attribute.
221         * 
222         * @return Returns the transactionLedgerEntrySequenceNumber
223         */
224        public Integer getTransactionLedgerEntrySequenceNumber() {
225            return transactionLedgerEntrySequenceNumber;
226        }
227    
228        /**
229         * Sets the transactionLedgerEntrySequenceNumber attribute.
230         * 
231         * @param transactionLedgerEntrySequenceNumber The transactionLedgerEntrySequenceNumber to set.
232         */
233        public void setTransactionLedgerEntrySequenceNumber(Integer transactionLedgerEntrySequenceNumber) {
234            this.transactionLedgerEntrySequenceNumber = transactionLedgerEntrySequenceNumber;
235        }
236    
237        /**
238         * Gets the chartOfAccountsCode attribute.
239         * 
240         * @return Returns the chartOfAccountsCode
241         */
242        public String getChartOfAccountsCode() {
243            return chartOfAccountsCode;
244        }
245    
246        /**
247         * Sets the chartOfAccountsCode attribute.
248         * 
249         * @param chartOfAccountsCode The chartOfAccountsCode to set.
250         */
251        public void setChartOfAccountsCode(String chartOfAccountsCode) {
252            this.chartOfAccountsCode = chartOfAccountsCode;
253        }
254    
255        /**
256         * Gets the accountNumber attribute.
257         * 
258         * @return Returns the accountNumber
259         */
260        public String getAccountNumber() {
261            return accountNumber;
262        }
263    
264        /**
265         * Sets the accountNumber attribute.
266         * 
267         * @param accountNumber The accountNumber to set.
268         */
269        public void setAccountNumber(String accountNumber) {
270            this.accountNumber = accountNumber;
271        }
272    
273        /**
274         * Gets the subAccountNumber attribute.
275         * 
276         * @return Returns the subAccountNumber
277         */
278        public String getSubAccountNumber() {
279            return subAccountNumber;
280        }
281    
282        /**
283         * Sets the subAccountNumber attribute.
284         * 
285         * @param subAccountNumber The subAccountNumber to set.
286         */
287        public void setSubAccountNumber(String subAccountNumber) {
288            this.subAccountNumber = subAccountNumber;
289        }
290    
291        /**
292         * Gets the financialObjectCode attribute.
293         * 
294         * @return Returns the financialObjectCode
295         */
296        public String getFinancialObjectCode() {
297            return financialObjectCode;
298        }
299    
300        /**
301         * Sets the financialObjectCode attribute.
302         * 
303         * @param financialObjectCode The financialObjectCode to set.
304         */
305        public void setFinancialObjectCode(String financialObjectCode) {
306            this.financialObjectCode = financialObjectCode;
307        }
308    
309        /**
310         * Gets the financialSubObjectCode attribute.
311         * 
312         * @return Returns the financialSubObjectCode
313         */
314        public String getFinancialSubObjectCode() {
315            return financialSubObjectCode;
316        }
317    
318        /**
319         * Sets the financialSubObjectCode attribute.
320         * 
321         * @param financialSubObjectCode The financialSubObjectCode to set.
322         */
323        public void setFinancialSubObjectCode(String financialSubObjectCode) {
324            this.financialSubObjectCode = financialSubObjectCode;
325        }
326    
327        /**
328         * Gets the financialBalanceTypeCode attribute.
329         * 
330         * @return Returns the financialBalanceTypeCode
331         */
332        public String getFinancialBalanceTypeCode() {
333            return financialBalanceTypeCode;
334        }
335    
336        /**
337         * Sets the financialBalanceTypeCode attribute.
338         * 
339         * @param financialBalanceTypeCode The financialBalanceTypeCode to set.
340         */
341        public void setFinancialBalanceTypeCode(String financialBalanceTypeCode) {
342            this.financialBalanceTypeCode = financialBalanceTypeCode;
343        }
344    
345        /**
346         * Gets the financialObjectTypeCode attribute.
347         * 
348         * @return Returns the financialObjectTypeCode
349         */
350        public String getFinancialObjectTypeCode() {
351            return financialObjectTypeCode;
352        }
353    
354    
355        /**
356         * Sets the financialObjectTypeCode attribute.
357         * 
358         * @param financialObjectTypeCode The financialObjectTypeCode to set.
359         */
360        public void setFinancialObjectTypeCode(String financialObjectTypeCode) {
361            this.financialObjectTypeCode = financialObjectTypeCode;
362        }
363    
364        /**
365         * Gets the universityFiscalYear attribute.
366         * 
367         * @return Returns the universityFiscalYear
368         */
369        public Integer getUniversityFiscalYear() {
370            return universityFiscalYear;
371        }
372    
373    
374        /**
375         * Sets the universityFiscalYear attribute.
376         * 
377         * @param universityFiscalYear The universityFiscalYear to set.
378         */
379        public void setUniversityFiscalYear(Integer universityFiscalYear) {
380            this.universityFiscalYear = universityFiscalYear;
381        }
382    
383        /**
384         * Gets the universityFiscalPeriodCode attribute.
385         * 
386         * @return Returns the universityFiscalPeriodCode
387         */
388        public String getUniversityFiscalPeriodCode() {
389            return universityFiscalPeriodCode;
390        }
391    
392        /**
393         * Sets the universityFiscalPeriodCode attribute.
394         * 
395         * @param universityFiscalPeriodCode The universityFiscalPeriodCode to set.
396         */
397        public void setUniversityFiscalPeriodCode(String universityFiscalPeriodCode) {
398            this.universityFiscalPeriodCode = universityFiscalPeriodCode;
399        }
400    
401        /**
402         * Gets the transactionLedgerEntryDescription attribute.
403         * 
404         * @return Returns the transactionLedgerEntryDescription
405         */
406        public String getTransactionLedgerEntryDescription() {
407            return transactionLedgerEntryDescription;
408        }
409    
410        /**
411         * Sets the transactionLedgerEntryDescription attribute.
412         * 
413         * @param transactionLedgerEntryDescription The transactionLedgerEntryDescription to set.
414         */
415        public void setTransactionLedgerEntryDescription(String transactionLedgerEntryDescription) {
416            this.transactionLedgerEntryDescription = transactionLedgerEntryDescription;
417        }
418    
419        /**
420         * Gets the transactionLedgerEntryAmount attribute.
421         * 
422         * @return Returns the transactionLedgerEntryAmount
423         */
424        public KualiDecimal getTransactionLedgerEntryAmount() {
425            return transactionLedgerEntryAmount;
426        }
427    
428        /**
429         * Sets the transactionLedgerEntryAmount attribute.
430         * 
431         * @param transactionLedgerEntryAmount The transactionLedgerEntryAmount to set.
432         */
433        public void setTransactionLedgerEntryAmount(KualiDecimal transactionLedgerEntryAmount) {
434            this.transactionLedgerEntryAmount = transactionLedgerEntryAmount;
435        }
436    
437        /**
438         * Gets the transactionDebitCreditCode attribute.
439         * 
440         * @return Returns the transactionDebitCreditCode
441         */
442        public String getTransactionDebitCreditCode() {
443            return transactionDebitCreditCode;
444        }
445    
446        /**
447         * Sets the transactionDebitCreditCode attribute.
448         * 
449         * @param transactionDebitCreditCode The transactionDebitCreditCode to set.
450         */
451        public void setTransactionDebitCreditCode(String transactionDebitCreditCode) {
452            this.transactionDebitCreditCode = transactionDebitCreditCode;
453        }
454    
455        /**
456         * Gets the transactionDate attribute.
457         * 
458         * @return Returns the transactionDate
459         */
460        public Date getTransactionDate() {
461            return transactionDate;
462        }
463    
464        /**
465         * Sets the transactionDate attribute.
466         * 
467         * @param transactionDate The transactionDate to set.
468         */
469        public void setTransactionDate(Date transactionDate) {
470            this.transactionDate = transactionDate;
471        }
472    
473        /**
474         * Gets the financialDocumentTypeCode attribute.
475         * 
476         * @return Returns the financialDocumentTypeCode
477         */
478        public String getFinancialDocumentTypeCode() {
479            return financialDocumentTypeCode;
480        }
481    
482        /**
483         * Sets the financialDocumentTypeCode attribute.
484         * 
485         * @param financialDocumentTypeCode The financialDocumentTypeCode to set.
486         */
487        public void setFinancialDocumentTypeCode(String financialDocumentTypeCode) {
488            this.financialDocumentTypeCode = financialDocumentTypeCode;
489        }
490    
491        /**
492         * Gets the organizationDocumentNumber attribute.
493         * 
494         * @return Returns the organizationDocumentNumber
495         */
496        public String getOrganizationDocumentNumber() {
497            return organizationDocumentNumber;
498        }
499    
500        /**
501         * Sets the organizationDocumentNumber attribute.
502         * 
503         * @param organizationDocumentNumber The organizationDocumentNumber to set.
504         */
505        public void setOrganizationDocumentNumber(String organizationDocumentNumber) {
506            this.organizationDocumentNumber = organizationDocumentNumber;
507        }
508    
509        /**
510         * Gets the projectCode attribute.
511         * 
512         * @return Returns the projectCode
513         */
514        public String getProjectCode() {
515            return projectCode;
516        }
517    
518        /**
519         * Sets the projectCode attribute.
520         * 
521         * @param projectCode The projectCode to set.
522         */
523        public void setProjectCode(String projectCode) {
524            this.projectCode = projectCode;
525        }
526    
527        /**
528         * Gets the organizationReferenceId attribute.
529         * 
530         * @return Returns the organizationReferenceId
531         */
532        public String getOrganizationReferenceId() {
533            return organizationReferenceId;
534        }
535    
536        /**
537         * Sets the organizationReferenceId attribute.
538         * 
539         * @param organizationReferenceId The organizationReferenceId to set.
540         */
541        public void setOrganizationReferenceId(String organizationReferenceId) {
542            this.organizationReferenceId = organizationReferenceId;
543        }
544    
545        /**
546         * Gets the referenceFinancialDocumentTypeCode attribute.
547         * 
548         * @return Returns the referenceFinancialDocumentTypeCode
549         */
550        public String getReferenceFinancialDocumentTypeCode() {
551            return referenceFinancialDocumentTypeCode;
552        }
553    
554        /**
555         * Sets the referenceFinancialDocumentTypeCode attribute.
556         * 
557         * @param referenceFinancialDocumentTypeCode The referenceFinancialDocumentTypeCode to set.
558         */
559        public void setReferenceFinancialDocumentTypeCode(String referenceFinancialDocumentTypeCode) {
560            this.referenceFinancialDocumentTypeCode = referenceFinancialDocumentTypeCode;
561        }
562    
563        /**
564         * Gets the referenceFinancialSystemOriginationCode attribute.
565         * 
566         * @return Returns the referenceFinancialSystemOriginationCode
567         */
568        public String getReferenceFinancialSystemOriginationCode() {
569            return referenceFinancialSystemOriginationCode;
570        }
571    
572        /**
573         * Sets the referenceFinancialSystemOriginationCode attribute.
574         * 
575         * @param referenceFinancialSystemOriginationCode The referenceFinancialSystemOriginationCode to set.
576         */
577        public void setReferenceFinancialSystemOriginationCode(String referenceFinancialSystemOriginationCode) {
578            this.referenceFinancialSystemOriginationCode = referenceFinancialSystemOriginationCode;
579        }
580    
581        /**
582         * Gets the referenceFinancialDocumentNumber attribute.
583         * 
584         * @return Returns the referenceFinancialDocumentNumber
585         */
586        public String getReferenceFinancialDocumentNumber() {
587            return referenceFinancialDocumentNumber;
588        }
589    
590        /**
591         * Sets the referenceFinancialDocumentNumber attribute.
592         * 
593         * @param referenceFinancialDocumentNumber The referenceFinancialDocumentNumber to set.
594         */
595        public void setReferenceFinancialDocumentNumber(String referenceFinancialDocumentNumber) {
596            this.referenceFinancialDocumentNumber = referenceFinancialDocumentNumber;
597        }
598    
599        /**
600         * Gets the financialDocumentReversalDate attribute.
601         * 
602         * @return Returns the financialDocumentReversalDate
603         */
604        public Date getFinancialDocumentReversalDate() {
605            return financialDocumentReversalDate;
606        }
607    
608        /**
609         * Sets the financialDocumentReversalDate attribute.
610         * 
611         * @param financialDocumentReversalDate The financialDocumentReversalDate to set.
612         */
613        public void setFinancialDocumentReversalDate(Date financialDocumentReversalDate) {
614            this.financialDocumentReversalDate = financialDocumentReversalDate;
615        }
616    
617        /**
618         * Gets the transactionEncumbranceUpdateCode attribute.
619         * 
620         * @return Returns the transactionEncumbranceUpdateCode
621         */
622        public String getTransactionEncumbranceUpdateCode() {
623            return transactionEncumbranceUpdateCode;
624        }
625    
626        /**
627         * Sets the transactionEncumbranceUpdateCode attribute.
628         * 
629         * @param transactionEncumbranceUpdateCode The transactionEncumbranceUpdateCode to set.
630         */
631        public void setTransactionEncumbranceUpdateCode(String transactionEncumbranceUpdateCode) {
632            this.transactionEncumbranceUpdateCode = transactionEncumbranceUpdateCode;
633        }
634    
635        /**
636         * Gets the financialDocumentApprovedCode attribute.
637         * 
638         * @return Returns the financialDocumentApprovedCode
639         */
640        public String getFinancialDocumentApprovedCode() {
641            return financialDocumentApprovedCode;
642        }
643    
644    
645        /**
646         * Sets the financialDocumentApprovedCode attribute.
647         * 
648         * @param financialDocumentApprovedCode The financialDocumentApprovedCode to set.
649         */
650        public void setFinancialDocumentApprovedCode(String financialDocumentApprovedCode) {
651            this.financialDocumentApprovedCode = financialDocumentApprovedCode;
652        }
653    
654        /**
655         * Gets the acctSufficientFundsFinObjCd attribute.
656         * 
657         * @return Returns the acctSufficientFundsFinObjCd
658         */
659        public String getAcctSufficientFundsFinObjCd() {
660            return acctSufficientFundsFinObjCd;
661        }
662    
663        /**
664         * Sets the acctSufficientFundsFinObjCd attribute.
665         * 
666         * @param acctSufficientFundsFinObjCd The acctSufficientFundsFinObjCd to set.
667         */
668        public void setAcctSufficientFundsFinObjCd(String acctSufficientFundsFinObjCd) {
669            this.acctSufficientFundsFinObjCd = acctSufficientFundsFinObjCd;
670        }
671    
672        /**
673         * Gets the transactionEntryOffsetIndicator attribute.
674         * 
675         * @return Returns the transactionEntryOffsetIndicator
676         */
677        public boolean isTransactionEntryOffsetIndicator() {
678            return transactionEntryOffsetIndicator;
679        }
680    
681        /**
682         * Sets the transactionEntryOffsetIndicator attribute.
683         * 
684         * @param transactionEntryOffsetIndicator The transactionEntryOffsetIndicator to set.
685         */
686        public void setTransactionEntryOffsetIndicator(boolean transactionEntryOffsetIndicator) {
687            this.transactionEntryOffsetIndicator = transactionEntryOffsetIndicator;
688        }
689    
690        /**
691         * Gets the transactionEntryProcessedTs attribute.
692         * 
693         * @return Returns the transactionEntryProcessedTs
694         */
695        public Timestamp getTransactionEntryProcessedTs() {
696            return transactionEntryProcessedTs;
697        }
698    
699        /**
700         * Sets the transactionEntryProcessedTs attribute.
701         * 
702         * @param transactionEntryProcessedTs The transactionEntryProcessedTs to set.
703         */
704        public void setTransactionEntryProcessedTs(Timestamp transactionEntryProcessedTs) {
705            this.transactionEntryProcessedTs = transactionEntryProcessedTs;
706        }
707    
708        /**
709         * @return Returns the financialSystemOriginationCode.
710         */
711        public String getFinancialSystemOriginationCode() {
712            return financialSystemOriginationCode;
713        }
714    
715        /**
716         * @param financialSystemOriginationCode The financialSystemOriginationCode to set.
717         */
718        public void setFinancialSystemOriginationCode(String financialSystemOriginationCode) {
719            this.financialSystemOriginationCode = financialSystemOriginationCode;
720        }
721    
722        /**
723         * @see org.kuali.rice.kns.bo.BusinessObjectBase#toStringMapper()
724         */
725        protected LinkedHashMap toStringMapper() {
726            LinkedHashMap m = new LinkedHashMap();
727            m.put("financialSystemOriginationCode", this.financialSystemOriginationCode);
728            m.put(KFSPropertyConstants.DOCUMENT_NUMBER, this.documentNumber);
729            if (transactionLedgerEntrySequenceNumber == null) {
730                m.put("transactionLedgerEntrySequenceNumber", null);
731            }
732            else {
733                m.put("transactionLedgerEntrySequenceNumber", this.transactionLedgerEntrySequenceNumber.toString());
734            }
735            return m;
736        }
737    
738        /**
739         * Gets the financialSystemDocumentTypeCode attribute. 
740         * @return Returns the financialSystemDocumentTypeCode.
741         */
742        public DocumentTypeEBO getFinancialSystemDocumentTypeCode() {
743            return financialSystemDocumentTypeCode = SpringContext.getBean(KEWModuleService.class).retrieveExternalizableBusinessObjectIfNecessary(this, financialSystemDocumentTypeCode, "financialSystemDocumentTypeCode");
744        }
745    
746        /**
747         * Gets the documentHeader attribute.
748         * 
749         * @return Returns the documentHeader.
750         */
751        public FinancialSystemDocumentHeader getDocumentHeader() {
752            return documentHeader;
753        }
754    
755        /**
756         * Sets the documentHeader attribute value.
757         * 
758         * @param documentHeader The documentHeader to set.
759         */
760        public void setDocumentHeader(FinancialSystemDocumentHeader documentHeader) {
761            this.documentHeader = documentHeader;
762        }
763    
764        /**
765         * Gets the account attribute.
766         * 
767         * @return Returns the account.
768         */
769        public Account getAccount() {
770            return account;
771        }
772    
773        /**
774         * Sets the account attribute value.
775         * 
776         * @param account The account to set.
777         */
778        public void setAccount(Account account) {
779            this.account = account;
780        }
781    
782        /**
783         * Gets the balanceType attribute.
784         * 
785         * @return Returns the balanceType.
786         */
787        public BalanceType getBalanceType() {
788            return balanceType;
789        }
790    
791        /**
792         * Sets the balanceType attribute value.
793         * 
794         * @param balanceType The balanceType to set.
795         */
796        public void setBalanceType(BalanceType balanceType) {
797            this.balanceType = balanceType;
798        }
799    
800        /**
801         * Gets the chart attribute.
802         * 
803         * @return Returns the chart.
804         */
805        public Chart getChart() {
806            return chart;
807        }
808    
809        /**
810         * Sets the chart attribute value.
811         * 
812         * @param chart The chart to set.
813         */
814        public void setChart(Chart chart) {
815            this.chart = chart;
816        }
817    
818        /**
819         * Gets the financialObject attribute.
820         * 
821         * @return Returns the financialObject.
822         */
823        public ObjectCode getFinancialObject() {
824            return financialObject;
825        }
826    
827        /**
828         * Sets the financialObject attribute value.
829         * 
830         * @param financialObject The financialObject to set.
831         */
832        public void setFinancialObject(ObjectCode financialObject) {
833            this.financialObject = financialObject;
834        }
835    
836        /**
837         * Gets the objectType attribute.
838         * 
839         * @return Returns the objectType.
840         */
841        public ObjectType getObjectType() {
842            return objectType;
843        }
844    
845        /**
846         * Sets the objectType attribute value.
847         * 
848         * @param objectType The objectType to set.
849         */
850        public void setObjectType(ObjectType objectType) {
851            this.objectType = objectType;
852        }
853    
854        /**
855         * Gets the a21SubAccount attribute.
856         * 
857         * @return Returns the a21SubAccount.
858         */
859        public A21SubAccount getA21SubAccount() {
860            return this.a21SubAccount;
861        }
862    
863        /**
864         * Sets the a21SubAccount attribute value.
865         * 
866         * @param a21SubAccount The a21SubAccount to set.
867         */
868        public void setA21SubAccount(A21SubAccount a21SubAccount) {
869            this.a21SubAccount = a21SubAccount;
870        }
871    
872        /**
873         * Gets the dummyBusinessObject attribute.
874         * 
875         * @return Returns the dummyBusinessObject.
876         */
877        public TransientBalanceInquiryAttributes getDummyBusinessObject() {
878            return this.dummyBusinessObject;
879        }
880    
881        /**
882         * Sets the dummyBusinessObject attribute value.
883         * 
884         * @param dummyBusinessObject The dummyBusinessObject to set.
885         */
886        public void setDummyBusinessObject(TransientBalanceInquiryAttributes dummyBusinessObject) {
887            this.dummyBusinessObject = dummyBusinessObject;
888        }
889    
890        public SubAccount getSubAccount() {
891            return subAccount;
892        }
893    
894        public void setSubAccount(SubAccount subAccount) {
895            this.subAccount = subAccount;
896        }
897    
898        public SubObjectCode getFinancialSubObject() {
899            return financialSubObject;
900        }
901    
902        public void setFinancialSubObject(SubObjectCode financialSubObject) {
903            this.financialSubObject = financialSubObject;
904        }
905    
906        public boolean isSubAccountNumberBlank() {
907            return subAccountNumber == null || GENERAL_LEDGER_PENDING_ENTRY_CODE.getBlankSubAccountNumber().equals(subAccountNumber);
908        }
909    
910        public boolean isFinancialObjectCodeBlank() {
911            return financialObjectCode == null || GENERAL_LEDGER_PENDING_ENTRY_CODE.getBlankFinancialObjectCode().equals(financialObjectCode);
912        }
913    
914        public boolean isFinancialSubObjectCodeBlank() {
915            return financialSubObjectCode == null || GENERAL_LEDGER_PENDING_ENTRY_CODE.getBlankFinancialSubObjectCode().equals(financialSubObjectCode);
916        }
917    
918        public boolean isProjectCodeBlank() {
919            return projectCode == null || GENERAL_LEDGER_PENDING_ENTRY_CODE.getBlankProjectCode().equals(projectCode);
920        }
921    
922        public boolean isFinancialObjectTypeCodeBlank() {
923            return financialObjectTypeCode == null || GENERAL_LEDGER_PENDING_ENTRY_CODE.getBlankFinancialObjectType().equals(financialObjectTypeCode);
924        }
925    
926        @Deprecated
927        public AccountingPeriod getAccountingPeriod() {
928            return accountingPeriod;
929        }
930    
931        @Deprecated
932        public void setAccountingPeriod(AccountingPeriod accountingPeriod) {
933            this.accountingPeriod = accountingPeriod;
934        }
935        
936        /**
937         * @return the amount formatted as a currency number
938         */
939        public String getCurrencyFormattedTransactionLedgerEntryAmount() {
940            return (String) new CurrencyFormatter().format(getTransactionLedgerEntryAmount());
941        }
942    }