001: /*
002: * Copyright 2007 The Kuali Foundation.
003: *
004: * Licensed under the Educational Community License, Version 1.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/ecl1.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.module.chart.bo;
018:
019: import java.sql.Timestamp;
020: import java.util.ArrayList;
021: import java.util.LinkedHashMap;
022: import java.util.List;
023:
024: import org.apache.commons.lang.StringUtils;
025: import org.kuali.core.bo.DocumentHeader;
026: import org.kuali.core.bo.GlobalBusinessObject;
027: import org.kuali.core.bo.GlobalBusinessObjectDetail;
028: import org.kuali.core.bo.PersistableBusinessObject;
029: import org.kuali.core.bo.PersistableBusinessObjectBase;
030: import org.kuali.core.bo.user.UniversalUser;
031: import org.kuali.core.service.BusinessObjectService;
032: import org.kuali.core.service.PersistenceStructureService;
033: import org.kuali.core.service.UniversalUserService;
034: import org.kuali.core.util.TypedArrayList;
035: import org.kuali.kfs.KFSPropertyConstants;
036: import org.kuali.kfs.bo.PostalZipCode;
037: import org.kuali.kfs.bo.State;
038: import org.kuali.kfs.context.SpringContext;
039: import org.kuali.module.chart.bo.codes.SufficientFundsCode;
040:
041: /**
042: *
043: */
044: public class AccountGlobal extends PersistableBusinessObjectBase
045: implements GlobalBusinessObject {
046:
047: private String documentNumber;
048: private String accountFiscalOfficerSystemIdentifier;
049: private String accountsSupervisorySystemsIdentifier;
050: private String accountManagerSystemIdentifier;
051: private String chartOfAccountsCode;
052: private String organizationCode;
053: private String subFundGroupCode;
054: private String accountCityName;
055: private String accountStateCode;
056: private String accountStreetAddress;
057: private String accountZipCode;
058: private Timestamp accountExpirationDate;
059: private String continuationFinChrtOfAcctCd;
060: private String continuationAccountNumber;
061: private String incomeStreamFinancialCoaCode;
062: private String incomeStreamAccountNumber;
063: private String accountCfdaNumber;
064: private String financialHigherEdFunctionCd;
065: private String accountSufficientFundsCode;
066: private Boolean pendingAcctSufficientFundsIndicator;
067: private String accountSearchCriteriaTxt;
068: private List<AccountGlobalDetail> accountGlobalDetails;
069:
070: private DocumentHeader financialDocument;
071: private UniversalUser accountFiscalOfficerUser;
072: private UniversalUser accountSupervisoryUser;
073: private UniversalUser accountManagerUser;
074: private Chart continuationFinChrtOfAcct;
075: private Account continuationAccount;
076: private Account incomeStreamAccount;
077: private Chart incomeStreamFinancialCoa;
078: private Chart chartOfAccounts;
079: private Org organization;
080: private SubFundGroup subFundGroup;
081: private State accountState;
082: private HigherEdFunction financialHigherEdFunction;
083: private PostalZipCode postalZipCode;
084: private SufficientFundsCode sufficientFundsCode;
085:
086: /**
087: * Default constructor.
088: */
089: public AccountGlobal() {
090: accountGlobalDetails = new TypedArrayList(
091: AccountGlobalDetail.class);
092: }
093:
094: /**
095: * @see org.kuali.core.document.GlobalBusinessObject#getGlobalChangesToDelete()
096: */
097: public List<PersistableBusinessObject> generateDeactivationsToPersist() {
098: return null;
099: }
100:
101: /**
102: * @see org.kuali.core.document.GlobalBusinessObject#applyGlobalChanges(org.kuali.core.bo.BusinessObject)
103: */
104: public List<PersistableBusinessObject> generateGlobalChangesToPersist() {
105:
106: // the list of persist-ready BOs
107: List<PersistableBusinessObject> persistables = new ArrayList();
108:
109: // walk over each change detail record
110: for (AccountGlobalDetail detail : accountGlobalDetails) {
111:
112: // load the object by keys
113: Account account = (Account) SpringContext.getBean(
114: BusinessObjectService.class).findByPrimaryKey(
115: Account.class, detail.getPrimaryKeys());
116:
117: // if we got a valid account, do the processing
118: if (account != null) {
119:
120: // NOTE that the list of fields that are updated may be a subset of the total
121: // number of fields in this class. This is because the class may contain a superset
122: // of the fields actually used in the Global Maintenance Document.
123:
124: // FISCAL OFFICER
125: if (StringUtils
126: .isNotBlank(accountFiscalOfficerSystemIdentifier)) {
127: account
128: .setAccountFiscalOfficerSystemIdentifier(accountFiscalOfficerSystemIdentifier);
129: }
130:
131: // ACCOUNT SUPERVISOR
132: if (StringUtils
133: .isNotBlank(accountsSupervisorySystemsIdentifier)) {
134: account
135: .setAccountsSupervisorySystemsIdentifier(accountsSupervisorySystemsIdentifier);
136: }
137:
138: // ACCOUNT MANAGER
139: if (StringUtils
140: .isNotBlank(accountManagerSystemIdentifier)) {
141: account
142: .setAccountManagerSystemIdentifier(accountManagerSystemIdentifier);
143: }
144:
145: // ORGANIZATION CODE
146: if (StringUtils.isNotBlank(organizationCode)) {
147: account.setOrganizationCode(organizationCode);
148: }
149:
150: // SUB FUND GROUP CODE
151: if (StringUtils.isNotBlank(subFundGroupCode)) {
152: account.setSubFundGroupCode(subFundGroupCode);
153: }
154:
155: // CITY NAME
156: if (StringUtils.isNotBlank(accountCityName)) {
157: account.setAccountCityName(accountCityName);
158: }
159:
160: // STATE CODE
161: if (StringUtils.isNotBlank(accountStateCode)) {
162: account.setAccountStateCode(accountStateCode);
163: }
164:
165: // STREET ADDRESS
166: if (StringUtils.isNotBlank(accountStreetAddress)) {
167: account
168: .setAccountStreetAddress(accountStreetAddress);
169: }
170:
171: // ZIP CODE
172: if (StringUtils.isNotBlank(accountZipCode)) {
173: account.setAccountZipCode(accountZipCode);
174: }
175:
176: // EXPIRATION DATE
177: if (accountExpirationDate != null) {
178: account.setAccountExpirationDate(new Timestamp(
179: accountExpirationDate.getTime()));
180: }
181:
182: // CONTINUATION CHART OF ACCOUNTS CODE
183: if (StringUtils.isNotBlank(continuationFinChrtOfAcctCd)) {
184: account
185: .setContinuationFinChrtOfAcctCd(continuationFinChrtOfAcctCd);
186: }
187:
188: // CONTINUATION ACCOUNT NUMBER
189: if (StringUtils.isNotBlank(continuationAccountNumber)) {
190: account
191: .setContinuationAccountNumber(continuationAccountNumber);
192: }
193:
194: // INCOME STREAM CHART OF ACCOUNTS CODE
195: if (StringUtils
196: .isNotBlank(incomeStreamFinancialCoaCode)) {
197: account
198: .setIncomeStreamFinancialCoaCode(incomeStreamFinancialCoaCode);
199: }
200:
201: // INCOME STREAM ACCOUNT NUMBER
202: if (StringUtils.isNotBlank(incomeStreamAccountNumber)) {
203: account
204: .setIncomeStreamAccountNumber(incomeStreamAccountNumber);
205: }
206:
207: // CG CATL FED DOMESTIC ASSIST NBR
208: if (StringUtils.isNotBlank(accountCfdaNumber)) {
209: account.setAccountCfdaNumber(accountCfdaNumber);
210: }
211:
212: // FINANCIAL HIGHER ED FUNCTION CODE
213: if (StringUtils.isNotBlank(financialHigherEdFunctionCd)) {
214: account
215: .setFinancialHigherEdFunctionCd(financialHigherEdFunctionCd);
216: }
217:
218: // SUFFICIENT FUNDS CODE
219: if (StringUtils.isNotBlank(accountSufficientFundsCode)) {
220: account
221: .setAccountSufficientFundsCode(accountSufficientFundsCode);
222: }
223:
224: // PENDING ACCOUNT SUFFICIENT FUNDS CODE INDICATOR
225: if (pendingAcctSufficientFundsIndicator != null) {
226: account
227: .setPendingAcctSufficientFundsIndicator(pendingAcctSufficientFundsIndicator);
228: }
229:
230: persistables.add(account);
231:
232: }
233: }
234:
235: return persistables;
236: }
237:
238: /**
239: * Gets the documentNumber attribute.
240: *
241: * @return Returns the documentNumber
242: */
243: public String getDocumentNumber() {
244: return documentNumber;
245: }
246:
247: /**
248: * Sets the documentNumber attribute.
249: *
250: * @param documentNumber The documentNumber to set.
251: */
252: public void setDocumentNumber(String documentNumber) {
253: this .documentNumber = documentNumber;
254: }
255:
256: /**
257: * Gets the chartOfAccountsCode attribute.
258: *
259: * @return Returns the chartOfAccountsCode.
260: */
261: public String getChartOfAccountsCode() {
262: return chartOfAccountsCode;
263: }
264:
265: /**
266: * Sets the chartOfAccountsCode attribute value.
267: *
268: * @param chartOfAccountsCode The chartOfAccountsCode to set.
269: */
270: public void setChartOfAccountsCode(String chartOfAccountsCode) {
271: this .chartOfAccountsCode = chartOfAccountsCode;
272: }
273:
274: /**
275: * Gets the organizationCode attribute.
276: *
277: * @return Returns the organizationCode
278: */
279: public String getOrganizationCode() {
280: return organizationCode;
281: }
282:
283: /**
284: * Sets the organizationCode attribute.
285: *
286: * @param organizationCode The organizationCode to set.
287: */
288: public void setOrganizationCode(String organizationCode) {
289: this .organizationCode = organizationCode;
290: }
291:
292: /**
293: * Gets the subFundGroupCode attribute.
294: *
295: * @return Returns the subFundGroupCode
296: */
297: public String getSubFundGroupCode() {
298: return subFundGroupCode;
299: }
300:
301: /**
302: * Sets the subFundGroupCode attribute.
303: *
304: * @param subFundGroupCode The subFundGroupCode to set.
305: */
306: public void setSubFundGroupCode(String subFundGroupCode) {
307: this .subFundGroupCode = subFundGroupCode;
308: }
309:
310: /**
311: * Gets the accountCityName attribute.
312: *
313: * @return Returns the accountCityName
314: */
315: public String getAccountCityName() {
316: return accountCityName;
317: }
318:
319: /**
320: * Sets the accountCityName attribute.
321: *
322: * @param accountCityName The accountCityName to set.
323: */
324: public void setAccountCityName(String accountCityName) {
325: this .accountCityName = accountCityName;
326: }
327:
328: /**
329: * Gets the accountStateCode attribute.
330: *
331: * @return Returns the accountStateCode
332: */
333: public String getAccountStateCode() {
334: return accountStateCode;
335: }
336:
337: /**
338: * Sets the accountStateCode attribute.
339: *
340: * @param accountStateCode The accountStateCode to set.
341: */
342: public void setAccountStateCode(String accountStateCode) {
343: this .accountStateCode = accountStateCode;
344: }
345:
346: /**
347: * Gets the accountStreetAddress attribute.
348: *
349: * @return Returns the accountStreetAddress
350: */
351: public String getAccountStreetAddress() {
352: return accountStreetAddress;
353: }
354:
355: /**
356: * Sets the accountStreetAddress attribute.
357: *
358: * @param accountStreetAddress The accountStreetAddress to set.
359: */
360: public void setAccountStreetAddress(String accountStreetAddress) {
361: this .accountStreetAddress = accountStreetAddress;
362: }
363:
364: /**
365: * Gets the accountZipCode attribute.
366: *
367: * @return Returns the accountZipCode
368: */
369: public String getAccountZipCode() {
370: return accountZipCode;
371: }
372:
373: /**
374: * Sets the accountZipCode attribute.
375: *
376: * @param accountZipCode The accountZipCode to set.
377: */
378: public void setAccountZipCode(String accountZipCode) {
379: this .accountZipCode = accountZipCode;
380: }
381:
382: /**
383: * Gets the accountExpirationDate attribute.
384: *
385: * @return Returns the accountExpirationDate
386: */
387: public Timestamp getAccountExpirationDate() {
388: return accountExpirationDate;
389: }
390:
391: /**
392: * Sets the accountExpirationDate attribute.
393: *
394: * @param accountExpirationDate The accountExpirationDate to set.
395: */
396: public void setAccountExpirationDate(Timestamp accountExpirationDate) {
397: this .accountExpirationDate = accountExpirationDate;
398: }
399:
400: /**
401: * Gets the continuationFinChrtOfAcctCd attribute.
402: *
403: * @return Returns the continuationFinChrtOfAcctCd
404: */
405: public String getContinuationFinChrtOfAcctCd() {
406: return continuationFinChrtOfAcctCd;
407: }
408:
409: /**
410: * Sets the continuationFinChrtOfAcctCd attribute.
411: *
412: * @param continuationFinChrtOfAcctCd The continuationFinChrtOfAcctCd to set.
413: */
414: public void setContinuationFinChrtOfAcctCd(
415: String continuationFinChrtOfAcctCd) {
416: this .continuationFinChrtOfAcctCd = continuationFinChrtOfAcctCd;
417: }
418:
419: /**
420: * Gets the continuationAccountNumber attribute.
421: *
422: * @return Returns the continuationAccountNumber
423: */
424: public String getContinuationAccountNumber() {
425: return continuationAccountNumber;
426: }
427:
428: /**
429: * Sets the continuationAccountNumber attribute.
430: *
431: * @param continuationAccountNumber The continuationAccountNumber to set.
432: */
433: public void setContinuationAccountNumber(
434: String continuationAccountNumber) {
435: this .continuationAccountNumber = continuationAccountNumber;
436: }
437:
438: /**
439: * Gets the incomeStreamFinancialCoaCode attribute.
440: *
441: * @return Returns the incomeStreamFinancialCoaCode
442: */
443: public String getIncomeStreamFinancialCoaCode() {
444: return incomeStreamFinancialCoaCode;
445: }
446:
447: /**
448: * Sets the incomeStreamFinancialCoaCode attribute.
449: *
450: * @param incomeStreamFinancialCoaCode The incomeStreamFinancialCoaCode to set.
451: */
452: public void setIncomeStreamFinancialCoaCode(
453: String incomeStreamFinancialCoaCode) {
454: this .incomeStreamFinancialCoaCode = incomeStreamFinancialCoaCode;
455: }
456:
457: /**
458: * Gets the incomeStreamAccountNumber attribute.
459: *
460: * @return Returns the incomeStreamAccountNumber
461: */
462: public String getIncomeStreamAccountNumber() {
463: return incomeStreamAccountNumber;
464: }
465:
466: /**
467: * Sets the incomeStreamAccountNumber attribute.
468: *
469: * @param incomeStreamAccountNumber The incomeStreamAccountNumber to set.
470: */
471: public void setIncomeStreamAccountNumber(
472: String incomeStreamAccountNumber) {
473: this .incomeStreamAccountNumber = incomeStreamAccountNumber;
474: }
475:
476: /**
477: * Gets the accountSufficientFundsCode attribute.
478: *
479: * @return Returns the accountSufficientFundsCode
480: */
481: public String getAccountSufficientFundsCode() {
482: return accountSufficientFundsCode;
483: }
484:
485: /**
486: * Sets the accountSufficientFundsCode attribute.
487: *
488: * @param accountSufficientFundsCode The accountSufficientFundsCode to set.
489: */
490: public void setAccountSufficientFundsCode(
491: String accountSufficientFundsCode) {
492: this .accountSufficientFundsCode = accountSufficientFundsCode;
493: }
494:
495: /**
496: * Gets the pendingAcctSufficientFundsIndicator attribute.
497: *
498: * @return Returns the pendingAcctSufficientFundsIndicator
499: */
500: public Boolean getPendingAcctSufficientFundsIndicator() {
501: return pendingAcctSufficientFundsIndicator;
502: }
503:
504: /**
505: * Sets the pendingAcctSufficientFundsIndicator attribute.
506: *
507: * @param pendingAcctSufficientFundsIndicator The pendingAcctSufficientFundsIndicator to set.
508: */
509: public void setPendingAcctSufficientFundsIndicator(
510: Boolean pendingAcctSufficientFundsIndicator) {
511: this .pendingAcctSufficientFundsIndicator = pendingAcctSufficientFundsIndicator;
512: }
513:
514: /**
515: * Gets the accountCfdaNumber attribute.
516: *
517: * @return Returns the accountCfdaNumber
518: */
519: public String getAccountCfdaNumber() {
520: return accountCfdaNumber;
521: }
522:
523: /**
524: * Sets the accountCfdaNumber attribute.
525: *
526: * @param accountCfdaNumber The accountCfdaNumber to set.
527: */
528: public void setAccountCfdaNumber(String accountCfdaNumber) {
529: this .accountCfdaNumber = accountCfdaNumber;
530: }
531:
532: /**
533: * Gets the accountSearchCriteriaTxt attribute.
534: *
535: * @return Returns the accountSearchCriteriaTxt
536: */
537: public String getAccountSearchCriteriaTxt() {
538: return accountSearchCriteriaTxt;
539: }
540:
541: /**
542: * Sets the accountSearchCriteriaTxt attribute.
543: *
544: * @param accountSearchCriteriaTxt The accountSearchCriteriaTxt to set.
545: */
546: public void setAccountSearchCriteriaTxt(
547: String accountSearchCriteriaTxt) {
548: this .accountSearchCriteriaTxt = accountSearchCriteriaTxt;
549: }
550:
551: /**
552: * Gets the financialDocument attribute.
553: *
554: * @return Returns the financialDocument
555: */
556: public DocumentHeader getFinancialDocument() {
557: return financialDocument;
558: }
559:
560: /**
561: * Sets the financialDocument attribute.
562: *
563: * @param financialDocument The financialDocument to set.
564: * @deprecated
565: */
566: public void setFinancialDocument(DocumentHeader financialDocument) {
567: this .financialDocument = financialDocument;
568: }
569:
570: public UniversalUser getAccountFiscalOfficerUser() {
571: accountFiscalOfficerUser = SpringContext.getBean(
572: UniversalUserService.class)
573: .updateUniversalUserIfNecessary(
574: accountFiscalOfficerSystemIdentifier,
575: accountFiscalOfficerUser);
576: return accountFiscalOfficerUser;
577: }
578:
579: /**
580: * @param accountFiscalOfficerUser The accountFiscalOfficerUser to set.
581: * @deprecated
582: */
583: public void setAccountFiscalOfficerUser(
584: UniversalUser accountFiscalOfficerUser) {
585: this .accountFiscalOfficerUser = accountFiscalOfficerUser;
586: }
587:
588: public UniversalUser getAccountManagerUser() {
589: accountManagerUser = SpringContext.getBean(
590: UniversalUserService.class)
591: .updateUniversalUserIfNecessary(
592: accountManagerSystemIdentifier,
593: accountManagerUser);
594: return accountManagerUser;
595: }
596:
597: /**
598: * @param accountManagerUser The accountManagerUser to set.
599: * @deprecated
600: */
601: public void setAccountManagerUser(UniversalUser accountManagerUser) {
602: this .accountManagerUser = accountManagerUser;
603: }
604:
605: public UniversalUser getAccountSupervisoryUser() {
606: accountSupervisoryUser = SpringContext.getBean(
607: UniversalUserService.class)
608: .updateUniversalUserIfNecessary(
609: accountsSupervisorySystemsIdentifier,
610: accountSupervisoryUser);
611: return accountSupervisoryUser;
612: }
613:
614: /**
615: * @param accountSupervisoryUser The accountSupervisoryUser to set.
616: * @deprecated
617: */
618: public void setAccountSupervisoryUser(
619: UniversalUser accountSupervisoryUser) {
620: this .accountSupervisoryUser = accountSupervisoryUser;
621: }
622:
623: /**
624: * Gets the continuationFinChrtOfAcct attribute.
625: *
626: * @return Returns the continuationFinChrtOfAcct
627: */
628: public Chart getContinuationFinChrtOfAcct() {
629: return continuationFinChrtOfAcct;
630: }
631:
632: /**
633: * Sets the continuationFinChrtOfAcct attribute.
634: *
635: * @param continuationFinChrtOfAcct The continuationFinChrtOfAcct to set.
636: * @deprecated
637: */
638: public void setContinuationFinChrtOfAcct(
639: Chart continuationFinChrtOfAcct) {
640: this .continuationFinChrtOfAcct = continuationFinChrtOfAcct;
641: }
642:
643: /**
644: * Gets the continuationAccount attribute.
645: *
646: * @return Returns the continuationAccount
647: */
648: public Account getContinuationAccount() {
649: return continuationAccount;
650: }
651:
652: /**
653: * Sets the continuationAccount attribute.
654: *
655: * @param continuationAccount The continuationAccount to set.
656: * @deprecated
657: */
658: public void setContinuationAccount(Account continuationAccount) {
659: this .continuationAccount = continuationAccount;
660: }
661:
662: /**
663: * Gets the incomeStreamAccount attribute.
664: *
665: * @return Returns the incomeStreamAccount
666: */
667: public Account getIncomeStreamAccount() {
668: return incomeStreamAccount;
669: }
670:
671: /**
672: * Sets the incomeStreamAccount attribute.
673: *
674: * @param incomeStreamAccount The incomeStreamAccount to set.
675: * @deprecated
676: */
677: public void setIncomeStreamAccount(Account incomeStreamAccount) {
678: this .incomeStreamAccount = incomeStreamAccount;
679: }
680:
681: /**
682: * Gets the incomeStreamFinancialCoa attribute.
683: *
684: * @return Returns the incomeStreamFinancialCoa
685: */
686: public Chart getIncomeStreamFinancialCoa() {
687: return incomeStreamFinancialCoa;
688: }
689:
690: /**
691: * Sets the incomeStreamFinancialCoa attribute.
692: *
693: * @param incomeStreamFinancialCoa The incomeStreamFinancialCoa to set.
694: * @deprecated
695: */
696: public void setIncomeStreamFinancialCoa(
697: Chart incomeStreamFinancialCoa) {
698: this .incomeStreamFinancialCoa = incomeStreamFinancialCoa;
699: }
700:
701: /**
702: * @return Returns the accountGlobalDetail.
703: */
704: public List<AccountGlobalDetail> getAccountGlobalDetails() {
705: return accountGlobalDetails;
706: }
707:
708: /**
709: * @param accountGlobalDetail The accountGlobalDetail to set.
710: */
711: public void setAccountGlobalDetails(
712: List<AccountGlobalDetail> accountGlobalDetails) {
713: this .accountGlobalDetails = accountGlobalDetails;
714: }
715:
716: /**
717: * Gets the financialHigherEdFunctionCd attribute.
718: *
719: * @return Returns the financialHigherEdFunctionCd.
720: */
721: public String getFinancialHigherEdFunctionCd() {
722: return financialHigherEdFunctionCd;
723: }
724:
725: /**
726: * Sets the financialHigherEdFunctionCd attribute value.
727: *
728: * @param financialHigherEdFunctionCd The financialHigherEdFunctionCd to set.
729: */
730: public void setFinancialHigherEdFunctionCd(
731: String financialHigherEdFunctionCd) {
732: this .financialHigherEdFunctionCd = financialHigherEdFunctionCd;
733: }
734:
735: /**
736: * Gets the accountFiscalOfficerSystemIdentifier attribute.
737: *
738: * @return Returns the accountFiscalOfficerSystemIdentifier.
739: */
740: public String getAccountFiscalOfficerSystemIdentifier() {
741: return accountFiscalOfficerSystemIdentifier;
742: }
743:
744: /**
745: * Sets the accountFiscalOfficerSystemIdentifier attribute value.
746: *
747: * @param accountFiscalOfficerSystemIdentifier The accountFiscalOfficerSystemIdentifier to set.
748: */
749: public void setAccountFiscalOfficerSystemIdentifier(
750: String accountFiscalOfficerSystemIdentifier) {
751: this .accountFiscalOfficerSystemIdentifier = accountFiscalOfficerSystemIdentifier;
752: }
753:
754: /**
755: * Gets the accountManagerSystemIdentifier attribute.
756: *
757: * @return Returns the accountManagerSystemIdentifier.
758: */
759: public String getAccountManagerSystemIdentifier() {
760: return accountManagerSystemIdentifier;
761: }
762:
763: /**
764: * Sets the accountManagerSystemIdentifier attribute value.
765: *
766: * @param accountManagerSystemIdentifier The accountManagerSystemIdentifier to set.
767: */
768: public void setAccountManagerSystemIdentifier(
769: String accountManagerSystemIdentifier) {
770: this .accountManagerSystemIdentifier = accountManagerSystemIdentifier;
771: }
772:
773: /**
774: * Gets the accountsSupervisorySystemsIdentifier attribute.
775: *
776: * @return Returns the accountsSupervisorySystemsIdentifier.
777: */
778: public String getAccountsSupervisorySystemsIdentifier() {
779: return accountsSupervisorySystemsIdentifier;
780: }
781:
782: /**
783: * Sets the accountsSupervisorySystemsIdentifier attribute value.
784: *
785: * @param accountsSupervisorySystemsIdentifier The accountsSupervisorySystemsIdentifier to set.
786: */
787: public void setAccountsSupervisorySystemsIdentifier(
788: String accountsSupervisorySystemsIdentifier) {
789: this .accountsSupervisorySystemsIdentifier = accountsSupervisorySystemsIdentifier;
790: }
791:
792: /**
793: * Gets the chartOfAccounts attribute.
794: *
795: * @return Returns the chartOfAccounts.
796: */
797: public Chart getChartOfAccounts() {
798: return chartOfAccounts;
799: }
800:
801: /**
802: * Sets the chartOfAccounts attribute value.
803: *
804: * @param chartOfAccounts The chartOfAccounts to set.
805: * @deprecated
806: */
807: public void setChartOfAccounts(Chart chartOfAccounts) {
808: this .chartOfAccounts = chartOfAccounts;
809: }
810:
811: /**
812: * Gets the accountState attribute.
813: *
814: * @return Returns the accountState.
815: */
816: public State getAccountState() {
817: return accountState;
818: }
819:
820: /**
821: * Sets the accountState attribute value.
822: *
823: * @param accountState The accountState to set.
824: */
825: public void setAccountState(State accountState) {
826: this .accountState = accountState;
827: }
828:
829: /**
830: * Gets the financialHigherEdFunction attribute.
831: *
832: * @return Returns the financialHigherEdFunction.
833: */
834: public HigherEdFunction getFinancialHigherEdFunction() {
835: return financialHigherEdFunction;
836: }
837:
838: /**
839: * Sets the financialHigherEdFunction attribute value.
840: *
841: * @param financialHigherEdFunction The financialHigherEdFunction to set.
842: */
843: public void setFinancialHigherEdFunction(
844: HigherEdFunction financialHigherEdFunction) {
845: this .financialHigherEdFunction = financialHigherEdFunction;
846: }
847:
848: /**
849: * Gets the organization attribute.
850: *
851: * @return Returns the organization.
852: */
853: public Org getOrganization() {
854: return organization;
855: }
856:
857: /**
858: * Sets the organization attribute value.
859: *
860: * @param organization The organization to set.
861: */
862: public void setOrganization(Org organization) {
863: this .organization = organization;
864: }
865:
866: /**
867: * Gets the postalZipCode attribute.
868: *
869: * @return Returns the postalZipCode.
870: */
871: public PostalZipCode getPostalZipCode() {
872: return postalZipCode;
873: }
874:
875: /**
876: * Sets the postalZipCode attribute value.
877: *
878: * @param postalZipCode The postalZipCode to set.
879: */
880: public void setPostalZipCode(PostalZipCode postalZipCode) {
881: this .postalZipCode = postalZipCode;
882: }
883:
884: /**
885: * Gets the subFundGroup attribute.
886: *
887: * @return Returns the subFundGroup.
888: */
889: public SubFundGroup getSubFundGroup() {
890: return subFundGroup;
891: }
892:
893: /**
894: * Sets the subFundGroup attribute value.
895: *
896: * @param subFundGroup The subFundGroup to set.
897: */
898: public void setSubFundGroup(SubFundGroup subFundGroup) {
899: this .subFundGroup = subFundGroup;
900: }
901:
902: /**
903: * Gets the sufficientFundsCode attribute.
904: *
905: * @return Returns the sufficientFundsCode.
906: */
907: public final SufficientFundsCode getSufficientFundsCode() {
908: return sufficientFundsCode;
909: }
910:
911: /**
912: * Sets the sufficientFundsCode attribute value.
913: *
914: * @param sufficientFundsCode The sufficientFundsCode to set.
915: */
916: public final void setSufficientFundsCode(
917: SufficientFundsCode sufficientFundsCode) {
918: this .sufficientFundsCode = sufficientFundsCode;
919: }
920:
921: /**
922: * @see org.kuali.core.bo.BusinessObjectBase#toStringMapper()
923: */
924: protected LinkedHashMap toStringMapper() {
925: LinkedHashMap m = new LinkedHashMap();
926: m
927: .put(KFSPropertyConstants.DOCUMENT_NUMBER,
928: this .documentNumber);
929: return m;
930: }
931:
932: /**
933: * @see org.kuali.core.document.GlobalBusinessObject#isPersistable()
934: */
935: public boolean isPersistable() {
936: PersistenceStructureService persistenceStructureService = SpringContext
937: .getBean(PersistenceStructureService.class);
938:
939: // fail if the PK for this object is emtpy
940: if (StringUtils.isBlank(documentNumber)) {
941: return false;
942: }
943:
944: // fail if the PKs for any of the contained objects are empty
945: for (AccountGlobalDetail account : getAccountGlobalDetails()) {
946: if (!persistenceStructureService
947: .hasPrimaryKeyFieldValues(account)) {
948: return false;
949: }
950: }
951:
952: // otherwise, its all good
953: return true;
954: }
955:
956: public List<? extends GlobalBusinessObjectDetail> getAllDetailObjects() {
957: return accountGlobalDetails;
958: }
959:
960: /**
961: * @see org.kuali.core.bo.PersistableBusinessObjectBase#buildListOfDeletionAwareLists()
962: */
963: @Override
964: public List buildListOfDeletionAwareLists() {
965: List<List> managedLists = super.buildListOfDeletionAwareLists();
966:
967: managedLists.add(getAccountGlobalDetails());
968:
969: return managedLists;
970: }
971: }
|