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