1   
2   
3   
4   
5   
6   
7   
8   
9   
10  
11  
12  
13  
14  
15  
16  package org.kuali.ole.sys.businessobject;
17  
18  import java.io.Serializable;
19  import java.util.HashMap;
20  import java.util.Iterator;
21  import java.util.LinkedHashMap;
22  import java.util.Map;
23  
24  import org.apache.commons.lang.StringUtils;
25  import org.apache.commons.lang.builder.EqualsBuilder;
26  import org.apache.commons.lang.builder.HashCodeBuilder;
27  import org.apache.log4j.Logger;
28  import org.kuali.ole.coa.businessobject.Account;
29  import org.kuali.ole.coa.businessobject.BalanceType;
30  import org.kuali.ole.coa.businessobject.Chart;
31  import org.kuali.ole.coa.businessobject.ObjectCode;
32  import org.kuali.ole.coa.businessobject.ObjectType;
33  import org.kuali.ole.coa.businessobject.ProjectCode;
34  import org.kuali.ole.coa.businessobject.SubAccount;
35  import org.kuali.ole.coa.businessobject.SubObjectCode;
36  import org.kuali.ole.coa.service.AccountService;
37  import org.kuali.ole.fp.businessobject.SalesTax;
38  import org.kuali.ole.sys.OLEPropertyConstants;
39  import org.kuali.ole.sys.context.SpringContext;
40  import org.kuali.ole.sys.service.UniversityDateService;
41  import org.kuali.rice.core.api.util.type.KualiDecimal;
42  import org.kuali.rice.kew.api.doctype.DocumentTypeService;
43  import org.kuali.rice.kew.doctype.bo.DocumentType;
44  import org.kuali.rice.kew.doctype.bo.DocumentTypeEBO;
45  import org.kuali.rice.krad.bo.PersistableBusinessObjectBase;
46  import org.kuali.rice.krad.util.ObjectUtils;
47  
48  
49  
50  
51  
52  public abstract class AccountingLineBase extends PersistableBusinessObjectBase implements Serializable, AccountingLine, GeneralLedgerPendingEntrySourceDetail {
53      private static final Logger LOG = Logger.getLogger(AccountingLineBase.class);
54  
55      protected String documentNumber;
56      protected Integer sequenceNumber; 
57      protected Integer postingYear;
58      protected KualiDecimal amount;
59      protected String referenceOriginCode;
60      protected String referenceNumber;
61      protected String referenceTypeCode;
62      protected String overrideCode = AccountingLineOverride.CODE.NONE;
63      protected boolean accountExpiredOverride; 
64      protected boolean accountExpiredOverrideNeeded; 
65      protected boolean nonFringeAccountOverride; 
66      protected boolean nonFringeAccountOverrideNeeded; 
67      protected boolean objectBudgetOverride;
68      protected boolean objectBudgetOverrideNeeded;
69      protected String organizationReferenceId;
70      protected String debitCreditCode; 
71      protected String encumbranceUpdateCode; 
72      protected String financialDocumentLineTypeCode;
73      protected String financialDocumentLineDescription;
74      protected boolean salesTaxRequired;
75  
76      protected String chartOfAccountsCode;
77      protected String accountNumber;
78      protected String financialObjectCode;
79      protected String subAccountNumber;
80      protected String financialSubObjectCode;
81      protected String projectCode;
82      protected String balanceTypeCode;
83  
84      
85      protected Chart chart;
86      protected Account account;
87      protected ObjectCode objectCode;
88      protected SubAccount subAccount;
89      protected SubObjectCode subObjectCode;
90      protected ProjectCode project;
91      protected BalanceType balanceTyp;
92      protected OriginationCode referenceOrigin;
93      protected DocumentTypeEBO referenceFinancialSystemDocumentTypeCode;
94      protected SalesTax salesTax;
95  
96      
97  
98  
99      public AccountingLineBase() {
100         setAmount(KualiDecimal.ZERO);
101         chart = new Chart();
102         account = new Account();
103         objectCode = new ObjectCode();
104         subAccount = new SubAccount();
105         subObjectCode = new SubObjectCode();
106         project = new ProjectCode();
107 
108         balanceTyp = new BalanceType();
109         
110         salesTaxRequired = false;
111     }
112 
113 
114     
115 
116 
117     @Override
118     public Account getAccount() {
119         return account;
120     }
121 
122     
123 
124 
125 
126     @Deprecated
127     @Override
128     public void setAccount(Account account) {
129         this.account = account;
130     }
131 
132     
133 
134 
135     @Override
136     public Chart getChart() {
137         return chart;
138     }
139 
140     
141 
142 
143 
144     @Deprecated
145     @Override
146     public void setChart(Chart chart) {
147         this.chart = chart;
148     }
149 
150     
151 
152 
153     @Override
154     public String getDocumentNumber() {
155         return documentNumber;
156     }
157 
158     
159 
160 
161     @Override
162     public KualiDecimal getAmount() {
163         return amount;
164     }
165 
166     
167 
168 
169     @Override
170     public void setAmount(KualiDecimal amount) {
171         this.amount = amount;
172     }
173 
174     
175 
176 
177     @Override
178     public BalanceType getBalanceTyp() {
179         return balanceTyp;
180     }
181 
182     
183 
184 
185 
186     @Deprecated
187     @Override
188     public void setBalanceTyp(BalanceType balanceTyp) {
189         this.balanceTyp = balanceTyp;
190     }
191 
192     
193 
194 
195     @Override
196     public ObjectCode getObjectCode() {
197         return objectCode;
198     }
199 
200     
201 
202 
203 
204     @Deprecated
205     @Override
206     public void setObjectCode(ObjectCode objectCode) {
207         this.objectCode = objectCode;
208     }
209 
210     
211 
212 
213     @Override
214     public String getReferenceOriginCode() {
215         return referenceOriginCode;
216     }
217 
218     
219 
220 
221     @Override
222     public void setReferenceOriginCode(String originCode) {
223         this.referenceOriginCode = originCode;
224     }
225 
226     
227 
228 
229 
230 
231     @Override
232     public OriginationCode getReferenceOrigin() {
233         return referenceOrigin;
234     }
235 
236     
237 
238 
239 
240 
241 
242     @Deprecated
243     @Override
244     public void setReferenceOrigin(OriginationCode referenceOrigin) {
245         this.referenceOrigin = referenceOrigin;
246     }
247 
248     
249 
250 
251 
252     @Override
253     public DocumentTypeEBO getReferenceFinancialSystemDocumentTypeCode() {
254         if ( StringUtils.isBlank( referenceTypeCode ) ) {
255             referenceFinancialSystemDocumentTypeCode = null;
256         } else {
257             if ( referenceFinancialSystemDocumentTypeCode == null || !StringUtils.equals(referenceTypeCode, referenceFinancialSystemDocumentTypeCode.getName() ) ) {
258                 org.kuali.rice.kew.api.doctype.DocumentType temp = SpringContext.getBean(DocumentTypeService.class).getDocumentTypeByName(referenceTypeCode);
259                 if ( temp != null ) {
260                     referenceFinancialSystemDocumentTypeCode = DocumentType.from( temp );
261                 } else {
262                     referenceFinancialSystemDocumentTypeCode = null;
263                 }
264             }
265         }
266         return referenceFinancialSystemDocumentTypeCode;
267     }
268 
269     
270 
271 
272     @Override
273     public String getOrganizationReferenceId() {
274         return organizationReferenceId;
275     }
276 
277     
278 
279 
280     @Override
281     public void setOrganizationReferenceId(String organizationReferenceId) {
282         this.organizationReferenceId = organizationReferenceId;
283     }
284 
285     
286 
287 
288     @Override
289     public String getOverrideCode() {
290         return overrideCode;
291     }
292 
293     
294 
295 
296     @Override
297     public void setOverrideCode(String overrideCode) {
298         this.overrideCode = overrideCode;
299     }
300 
301     
302 
303 
304     @Override
305     public Integer getPostingYear() {
306         if (postingYear == null) {
307             postingYear = SpringContext.getBean(UniversityDateService.class).getCurrentFiscalYear();
308         }
309         return postingYear;
310     }
311 
312     
313 
314 
315     @Override
316     public void setPostingYear(Integer postingYear) {
317         this.postingYear = postingYear;
318     }
319 
320     
321 
322 
323     @Override
324     public String getProjectCode() {
325         return projectCode;
326     }
327 
328     
329 
330 
331     @Override
332     public void setProjectCode(String projectCode) {
333         this.projectCode = projectCode;
334     }
335 
336     
337 
338 
339     @Override
340     public String getReferenceNumber() {
341         return referenceNumber;
342     }
343 
344     
345 
346 
347     @Override
348     public void setReferenceNumber(String referenceNumber) {
349         this.referenceNumber = referenceNumber;
350     }
351 
352     
353 
354 
355     @Override
356     public String getReferenceTypeCode() {
357         return referenceTypeCode;
358     }
359 
360     
361 
362 
363     @Override
364     public void setReferenceTypeCode(String referenceTypeCode) {
365         this.referenceTypeCode = referenceTypeCode;
366     }
367 
368     
369 
370 
371     @Override
372     public Integer getSequenceNumber() {
373         return sequenceNumber;
374     }
375 
376     
377 
378 
379     @Override
380     public void setSequenceNumber(Integer sequenceNumber) {
381         this.sequenceNumber = sequenceNumber;
382     }
383 
384     
385 
386 
387     @Override
388     public SubAccount getSubAccount() {
389         return subAccount;
390     }
391 
392     
393 
394 
395 
396     @Deprecated
397     @Override
398     public void setSubAccount(SubAccount subAccount) {
399         this.subAccount = subAccount;
400     }
401 
402     
403 
404 
405     @Override
406     public SubObjectCode getSubObjectCode() {
407         return subObjectCode;
408     }
409 
410     
411 
412 
413 
414     @Deprecated
415     @Override
416     public void setSubObjectCode(SubObjectCode subObjectCode) {
417         this.subObjectCode = subObjectCode;
418     }
419 
420 
421     
422 
423 
424     @Override
425     public SalesTax getSalesTax() {
426         return salesTax;
427     }
428 
429     
430 
431 
432 
433     @Deprecated
434     @Override
435     public void setSalesTax(SalesTax salesTax) {
436         this.salesTax = salesTax;
437     }
438 
439     
440 
441 
442     @Override
443     public boolean isSalesTaxRequired() {
444         return salesTaxRequired;
445     }
446 
447     
448 
449 
450     @Override
451     public void setSalesTaxRequired(boolean salesTaxRequired) {
452         this.salesTaxRequired = salesTaxRequired;
453     }
454 
455 
456     
457 
458 
459     @Override
460     public void setDocumentNumber(String documentNumber) {
461         this.documentNumber = documentNumber;
462     }
463 
464     
465 
466 
467 
468 
469 
470     @Override
471     public String getDebitCreditCode() {
472         return debitCreditCode;
473     }
474 
475     
476 
477 
478 
479 
480 
481     @Override
482     public void setDebitCreditCode(String debitCreditCode) {
483         this.debitCreditCode = debitCreditCode;
484     }
485 
486     
487 
488 
489 
490 
491 
492     @Override
493     public String getEncumbranceUpdateCode() {
494         return encumbranceUpdateCode;
495     }
496 
497     
498 
499 
500 
501 
502 
503     @Override
504     public void setEncumbranceUpdateCode(String encumbranceUpdateCode) {
505         this.encumbranceUpdateCode = encumbranceUpdateCode;
506     }
507 
508     
509 
510 
511 
512 
513 
514     @Override
515     public ObjectType getObjectType() {
516         if ( getObjectTypeCode() != null ) {
517             return objectCode.getFinancialObjectType();
518         }
519         return null;
520     }
521 
522     
523 
524 
525     @Override
526     public String getAccountNumber() {
527         return accountNumber;
528     }
529 
530     
531 
532 
533     @Override
534     public void setAccountNumber(String accountNumber) {
535         this.accountNumber = accountNumber;
536         
537         SpringContext.getBean(AccountService.class).populateAccountingLineChartIfNeeded(this);
538     }
539 
540     
541 
542 
543     @Override
544     public String getBalanceTypeCode() {
545         return balanceTypeCode;
546     }
547 
548     
549 
550 
551     @Override
552     public void setBalanceTypeCode(String balanceTypeCode) {
553         this.balanceTypeCode = balanceTypeCode;
554     }
555 
556     
557 
558 
559     @Override
560     public String getChartOfAccountsCode() {
561         return chartOfAccountsCode;
562     }
563 
564     
565 
566 
567     @Override
568     public void setChartOfAccountsCode(String chartOfAccountsCode) {
569         this.chartOfAccountsCode = chartOfAccountsCode;
570     }
571 
572     
573 
574 
575     @Override
576     public String getFinancialObjectCode() {
577         return financialObjectCode;
578     }
579 
580     
581 
582 
583     @Override
584     public void setFinancialObjectCode(String financialObjectCode) {
585         this.financialObjectCode = financialObjectCode;
586     }
587 
588     
589 
590 
591     @Override
592     public String getFinancialSubObjectCode() {
593         return financialSubObjectCode;
594     }
595 
596     
597 
598 
599     @Override
600     public void setFinancialSubObjectCode(String financialSubObjectCode) {
601         this.financialSubObjectCode = financialSubObjectCode;
602     }
603 
604     
605 
606 
607     @Override
608     public String getObjectTypeCode() {
609         if ( ObjectUtils.isNull(objectCode)
610                 || !StringUtils.equals(getFinancialObjectCode(), objectCode.getFinancialObjectCode())
611                 || !StringUtils.equals(getChartOfAccountsCode(), objectCode.getChartOfAccountsCode())
612                 || !getPostingYear().equals(objectCode.getUniversityFiscalYear() )
613                         ) {
614             refreshReferenceObject("objectCode");
615         }
616        
617         if (!ObjectUtils.isNull(objectCode)) {
618             return objectCode.getFinancialObjectTypeCode();
619         }
620         return null;
621     }
622 
623     
624 
625 
626     @Override
627     public String getFinancialDocumentLineTypeCode() {
628         return financialDocumentLineTypeCode;
629     }
630 
631     
632 
633 
634     @Override
635     public void setFinancialDocumentLineTypeCode(String financialDocumentLineTypeCode) {
636         this.financialDocumentLineTypeCode = financialDocumentLineTypeCode;
637     }
638 
639     
640 
641 
642     @Override
643     public ProjectCode getProject() {
644         return project;
645     }
646 
647     
648 
649 
650 
651     @Deprecated
652     @Override
653     public void setProject(ProjectCode project) {
654         this.project = project;
655     }
656 
657     
658 
659 
660     @Override
661     public String getSubAccountNumber() {
662         return subAccountNumber;
663     }
664 
665     
666 
667 
668     @Override
669     public void setSubAccountNumber(String subAccountNumber) {
670         this.subAccountNumber = subAccountNumber;
671     }
672 
673     
674 
675 
676     @Override
677     public String getFinancialDocumentLineDescription() {
678         return financialDocumentLineDescription;
679     }
680 
681     
682 
683 
684     @Override
685     public void setFinancialDocumentLineDescription(String financialDocumentLineDescription) {
686         this.financialDocumentLineDescription = financialDocumentLineDescription;
687     }
688 
689     
690 
691 
692     protected LinkedHashMap toStringMapper_RICE20_REFACTORME() {
693         LinkedHashMap m = new LinkedHashMap();
694 
695         m.put(OLEPropertyConstants.DOCUMENT_NUMBER, documentNumber);
696 
697         m.put("sequenceNumber", sequenceNumber);
698         m.put("postingYear", postingYear);
699         m.put("amount", amount);
700         m.put("debitCreditCode", debitCreditCode);
701         m.put("encumbranceUpdateCode", encumbranceUpdateCode);
702         m.put("financialDocumentLineDescription", financialDocumentLineDescription);
703 
704         m.put("chart", getChartOfAccountsCode());
705         m.put("account", getAccountNumber());
706         m.put("objectCode", getFinancialObjectCode());
707         m.put("subAccount", getSubAccountNumber());
708         m.put("subObjectCode", getFinancialSubObjectCode());
709         m.put("projectCode", getProjectCode());
710         m.put("balanceTyp", getBalanceTypeCode());
711 
712         m.put("orgRefId", getOrganizationReferenceId());
713 
714         return m;
715     }
716 
717     
718 
719 
720     @Override
721     public boolean isSourceAccountingLine() {
722         return (this instanceof SourceAccountingLine);
723     }
724 
725     
726 
727 
728     @Override
729     public boolean isTargetAccountingLine() {
730         return (this instanceof TargetAccountingLine);
731     }
732 
733 
734     
735 
736 
737     @Override
738     public String getAccountKey() {
739         String key = getChartOfAccountsCode() + ":" + getAccountNumber();
740         return key;
741     }
742 
743 
744     
745 
746 
747     @Override
748     public void copyFrom(AccountingLine other) {
749         if (other == null) {
750             throw new IllegalArgumentException("invalid (null) other");
751         }
752 
753         if (this != other) {
754             
755             setSequenceNumber(other.getSequenceNumber());
756             setDocumentNumber(other.getDocumentNumber());
757             setPostingYear(other.getPostingYear());
758             setAmount(other.getAmount());
759             setReferenceOriginCode(other.getReferenceOriginCode());
760             setReferenceNumber(other.getReferenceNumber());
761             setReferenceTypeCode(other.getReferenceTypeCode());
762             setOverrideCode(other.getOverrideCode());
763             setOrganizationReferenceId(other.getOrganizationReferenceId());
764             setDebitCreditCode(other.getDebitCreditCode());
765             setEncumbranceUpdateCode(other.getEncumbranceUpdateCode());
766             setFinancialDocumentLineTypeCode(other.getFinancialDocumentLineTypeCode());
767             setFinancialDocumentLineDescription(other.getFinancialDocumentLineDescription());
768             setAccountExpiredOverride(other.getAccountExpiredOverride());
769             setAccountExpiredOverrideNeeded(other.getAccountExpiredOverrideNeeded());
770             setObjectBudgetOverride(other.isObjectBudgetOverride());
771             setObjectBudgetOverrideNeeded(other.isObjectBudgetOverrideNeeded());
772 
773             
774             setChartOfAccountsCode(other.getChartOfAccountsCode());
775             setAccountNumber(other.getAccountNumber());
776             setFinancialObjectCode(other.getFinancialObjectCode());
777             setSubAccountNumber(other.getSubAccountNumber());
778             setFinancialSubObjectCode(other.getFinancialSubObjectCode());
779             setProjectCode(other.getProjectCode());
780             setBalanceTypeCode(other.getBalanceTypeCode());
781 
782             
783             if (ObjectUtils.isNotNull(other.getSalesTax())) {
784                 SalesTax salesTax = getSalesTax();
785                 SalesTax origSalesTax = other.getSalesTax();
786                 if (salesTax != null) {
787                     salesTax.setAccountNumber(origSalesTax.getAccountNumber());
788                     salesTax.setChartOfAccountsCode(origSalesTax.getChartOfAccountsCode());
789                     salesTax.setFinancialDocumentGrossSalesAmount(origSalesTax.getFinancialDocumentGrossSalesAmount());
790                     salesTax.setFinancialDocumentTaxableSalesAmount(origSalesTax.getFinancialDocumentTaxableSalesAmount());
791                     salesTax.setFinancialDocumentSaleDate(origSalesTax.getFinancialDocumentSaleDate());
792 
793                     
794                     salesTax.setDocumentNumber(other.getDocumentNumber());
795                     salesTax.setFinancialDocumentLineNumber(other.getSequenceNumber());
796                     salesTax.setFinancialDocumentLineTypeCode(other.getFinancialDocumentLineTypeCode());
797                 }
798                 else {
799                     salesTax = origSalesTax;
800                 }
801             }
802 
803             
804             setChart(other.getChart());
805             setAccount(other.getAccount());
806             setObjectCode(other.getObjectCode());
807             setSubAccount(other.getSubAccount());
808             setSubObjectCode(other.getSubObjectCode());
809             setProject(other.getProject());
810             setBalanceTyp(other.getBalanceTyp());
811         }
812     }
813 
814 
815     
816 
817 
818     @Override
819     public boolean isLike(AccountingLine other) {
820         boolean isLike = false;
821 
822         if (other != null) {
823             if (other == this) {
824                 isLike = true;
825             }
826             else {
827                 Map thisValues = this.getValuesMap();
828                 Map otherValues = other.getValuesMap();
829 
830                 isLike = thisValues.equals(otherValues);
831 
832                 if (!isLike && LOG.isDebugEnabled()) {
833                     StringBuffer inequalities = new StringBuffer();
834                     boolean first = true;
835 
836                     for (Iterator i = thisValues.keySet().iterator(); i.hasNext();) {
837                         String key = (String) i.next();
838 
839                         Object thisValue = thisValues.get(key);
840                         Object otherValue = otherValues.get(key);
841                         if (!org.apache.commons.lang.ObjectUtils.equals(thisValue, otherValue)) {
842                             inequalities.append(key + "(" + thisValue + " != " + otherValue + ")");
843 
844                             if (first) {
845                                 first = false;
846                             }
847                             else {
848                                 inequalities.append(",");
849                             }
850                         }
851                     }
852 
853                     if (LOG.isDebugEnabled()) {
854                         LOG.debug("inequalities: " + inequalities);
855                     }
856                 }
857             }
858         }
859 
860         return isLike;
861     }
862 
863     
864 
865 
866     @Override
867     public boolean getAccountExpiredOverride() {
868         return accountExpiredOverride;
869     }
870 
871     
872 
873 
874     @Override
875     public void setAccountExpiredOverride(boolean b) {
876         accountExpiredOverride = b;
877     }
878 
879     
880 
881 
882     @Override
883     public boolean getAccountExpiredOverrideNeeded() {
884         return accountExpiredOverrideNeeded;
885     }
886 
887     
888 
889 
890     @Override
891     public void setAccountExpiredOverrideNeeded(boolean b) {
892         accountExpiredOverrideNeeded = b;
893     }
894 
895     
896 
897 
898     @Override
899     public boolean isObjectBudgetOverride() {
900         return objectBudgetOverride;
901     }
902 
903     
904 
905 
906     @Override
907     public void setObjectBudgetOverride(boolean objectBudgetOverride) {
908         this.objectBudgetOverride = objectBudgetOverride;
909     }
910 
911     
912 
913 
914     @Override
915     public boolean isObjectBudgetOverrideNeeded() {
916         return objectBudgetOverrideNeeded;
917     }
918 
919     
920 
921 
922     @Override
923     public void setObjectBudgetOverrideNeeded(boolean objectBudgetOverrideNeeded) {
924         this.objectBudgetOverrideNeeded = objectBudgetOverrideNeeded;
925     }
926 
927     
928 
929 
930     @Override
931     public boolean getNonFringeAccountOverride() {
932         return nonFringeAccountOverride;
933     }
934 
935     
936 
937 
938     @Override
939     public void setNonFringeAccountOverride(boolean nonFringeAccountOverride) {
940         this.nonFringeAccountOverride = nonFringeAccountOverride;
941     }
942 
943     
944 
945 
946     @Override
947     public boolean getNonFringeAccountOverrideNeeded() {
948         return nonFringeAccountOverrideNeeded;
949     }
950 
951     
952 
953 
954     @Override
955     public void setNonFringeAccountOverrideNeeded(boolean nonFringeAccountOverrideNeeded) {
956         this.nonFringeAccountOverrideNeeded = nonFringeAccountOverrideNeeded;
957     }
958 
959     
960 
961 
962 
963 
964     @Override
965     public Map getValuesMap() {
966         Map simpleValues = new HashMap();
967 
968         simpleValues.put("sequenceNumber", getSequenceNumber());
969         simpleValues.put(OLEPropertyConstants.DOCUMENT_NUMBER, getDocumentNumber());
970         simpleValues.put("postingYear", getPostingYear());
971         simpleValues.put("amount", getAmount());
972         simpleValues.put("referenceOriginCode", getReferenceOriginCode());
973         simpleValues.put("referenceNumber", getReferenceNumber());
974         simpleValues.put("referenceTypeCode", getReferenceTypeCode());
975         simpleValues.put("overrideCode", getOverrideCode());
976         
977         simpleValues.put("organizationReferenceId", getOrganizationReferenceId());
978         simpleValues.put("debitCreditCode", getDebitCreditCode());
979         simpleValues.put("encumbranceUpdateCode", getEncumbranceUpdateCode());
980         simpleValues.put("financialDocumentLineTypeCode", getFinancialDocumentLineTypeCode());
981         simpleValues.put("financialDocumentLineDescription", getFinancialDocumentLineDescription());
982 
983         simpleValues.put("chartOfAccountsCode", getChartOfAccountsCode());
984         simpleValues.put("accountNumber", getAccountNumber());
985         simpleValues.put("financialObjectCode", getFinancialObjectCode());
986         simpleValues.put("subAccountNumber", getSubAccountNumber());
987         simpleValues.put("financialSubObjectCode", getFinancialSubObjectCode());
988         simpleValues.put("projectCode", getProjectCode());
989         simpleValues.put("balanceTypeCode", getBalanceTypeCode());
990         simpleValues.put("objectTypeCode", getObjectTypeCode());
991 
992         return simpleValues;
993     }
994 
995     
996 
997 
998 
999 
1000     @Override
1001     public boolean equals(Object obj) {
1002         if (!(obj instanceof AccountingLine)) {
1003             return false;
1004         }
1005         AccountingLine accountingLine = (AccountingLine) obj;
1006         return new EqualsBuilder().append(this.chartOfAccountsCode, accountingLine.getChartOfAccountsCode()).append(this.accountNumber, accountingLine.getAccountNumber()).append(this.subAccountNumber, accountingLine.getSubAccountNumber()).append(this.financialObjectCode, accountingLine.getFinancialObjectCode()).append(this.financialSubObjectCode, accountingLine.getFinancialSubObjectCode()).append(this.projectCode, accountingLine.getProjectCode()).append(this.organizationReferenceId, accountingLine.getOrganizationReferenceId()).isEquals();
1007     }
1008 
1009     
1010 
1011 
1012 
1013 
1014     @Override
1015     public int hashCode() {
1016         return new HashCodeBuilder(37, 41).append(this.chartOfAccountsCode).append(this.accountNumber).append(this.subAccountNumber).append(this.financialObjectCode).append(this.financialSubObjectCode).append(this.projectCode).append(this.organizationReferenceId).toHashCode();
1017     }
1018 
1019 
1020     @Override
1021     public String toString() {
1022         StringBuilder builder = new StringBuilder();
1023         builder.append("AccountingLineBase [");
1024         if (documentNumber != null)
1025             builder.append("documentNumber=").append(documentNumber).append(", ");
1026         if (sequenceNumber != null)
1027             builder.append("sequenceNumber=").append(sequenceNumber).append(", ");
1028         if (postingYear != null)
1029             builder.append("postingYear=").append(postingYear).append(", ");
1030         if (amount != null)
1031             builder.append("amount=").append(amount).append(", ");
1032         if (debitCreditCode != null)
1033             builder.append("debitCreditCode=").append(debitCreditCode).append(", ");
1034         if (chartOfAccountsCode != null)
1035             builder.append("chartOfAccountsCode=").append(chartOfAccountsCode).append(", ");
1036         if (accountNumber != null)
1037             builder.append("accountNumber=").append(accountNumber).append(", ");
1038         if (subAccountNumber != null)
1039             builder.append("subAccountNumber=").append(subAccountNumber).append(", ");
1040         if (financialObjectCode != null)
1041             builder.append("financialObjectCode=").append(financialObjectCode).append(", ");
1042         if (financialSubObjectCode != null)
1043             builder.append("financialSubObjectCode=").append(financialSubObjectCode).append(", ");
1044         if (projectCode != null)
1045             builder.append("projectCode=").append(projectCode).append(", ");
1046         if (balanceTypeCode != null)
1047             builder.append("balanceTypeCode=").append(balanceTypeCode);
1048         builder.append("]");
1049         return builder.toString();
1050     }
1051 
1052 
1053 
1054 }