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 package org.kuali.kfs.coa.businessobject;
017
018 import java.sql.Date;
019 import java.util.HashSet;
020 import java.util.LinkedHashMap;
021 import java.util.Properties;
022 import java.util.Set;
023
024 import org.apache.commons.lang.StringUtils;
025 import org.apache.log4j.Logger;
026 import org.kuali.kfs.coa.service.OrganizationService;
027 import org.kuali.kfs.sys.KFSConstants;
028 import org.kuali.rice.kns.bo.Country;
029 import org.kuali.rice.kns.bo.PostalCode;
030 import org.kuali.kfs.sys.context.SpringContext;
031 import org.kuali.rice.kns.service.CountryService;
032 import org.kuali.rice.kns.service.KualiModuleService;
033 import org.kuali.rice.kns.service.PostalCodeService;
034 import org.kuali.rice.kns.bo.Campus;
035 import org.kuali.rice.kns.bo.Inactivateable;
036 import org.kuali.rice.kns.bo.PersistableBusinessObjectBase;
037 import org.kuali.rice.kim.bo.Person;
038 import org.kuali.rice.kns.service.KualiConfigurationService;
039 import org.kuali.rice.kim.service.PersonService;
040 import org.kuali.rice.kns.util.UrlFactory;
041
042 /**
043 *
044 */
045 public class Organization extends PersistableBusinessObjectBase implements Inactivateable {
046 private static final Logger LOG = Logger.getLogger(Organization.class);
047
048 private static final long serialVersionUID = 121873645110037203L;
049
050 /**
051 * Default no-arg constructor.
052 */
053 public Organization() {
054 organizationInFinancialProcessingIndicator = false;
055 }
056
057 private String organizationCode;
058 private String organizationName;
059 private String organizationCityName;
060 private String organizationStateCode;
061 private String organizationZipCode;
062 private Date organizationBeginDate;
063 private Date organizationEndDate;
064 private boolean organizationInFinancialProcessingIndicator;
065 private String organizationManagerUniversalId;
066 private String responsibilityCenterCode;
067 private String organizationPhysicalCampusCode;
068 private String organizationTypeCode;
069 private String reportsToChartOfAccountsCode;
070 private String reportsToOrganizationCode;
071 private String organizationPlantAccountNumber;
072 private String campusPlantAccountNumber;
073 private String organizationPlantChartCode;
074 private String campusPlantChartCode;
075 private String organizationCountryCode;
076 private String organizationLine1Address;
077 private String organizationLine2Address;
078
079 private Chart chartOfAccounts;
080 private Organization hrisOrganization;
081 private Account organizationDefaultAccount;
082 private Person organizationManagerUniversal;
083 private ResponsibilityCenter responsibilityCenter;
084 private Campus organizationPhysicalCampus;
085 private OrganizationType organizationType;
086 private Organization reportsToOrganization;
087 private Chart reportsToChartOfAccounts;
088 private Account organizationPlantAccount;
089 private Account campusPlantAccount;
090 private Chart organizationPlantChart;
091 private Chart campusPlantChart;
092 private PostalCode postalZip;
093 private Country organizationCountry;
094
095 // HRMS Org fields
096 private OrganizationExtension organizationExtension;
097 private String editHrmsUnitSectionBlank;
098 private String editHrmsUnitSection;
099
100 // fields for mixed anonymous keys
101 private String organizationDefaultAccountNumber;
102 private String chartOfAccountsCode;
103
104 // Several kinds of Dummy Attributes for dividing sections on Inquiry page
105 private String editPlantAccountsSectionBlank;
106 private String editPlantAccountsSection;
107
108 private boolean active;
109
110 /**
111 * Gets the organizationCode attribute.
112 *
113 * @return Returns the organizationCode
114 */
115 public String getOrganizationCode() {
116 return organizationCode;
117 }
118
119 /**
120 * Sets the organizationCode attribute.
121 *
122 * @param organizationCode The organizationCode to set.
123 */
124 public void setOrganizationCode(String organizationCode) {
125 this.organizationCode = organizationCode;
126 }
127
128 /**
129 * Gets the organizationName attribute.
130 *
131 * @return Returns the organizationName
132 */
133 public String getOrganizationName() {
134 return organizationName;
135 }
136
137 /**
138 * Sets the organizationName attribute.
139 *
140 * @param organizationName The organizationName to set.
141 */
142 public void setOrganizationName(String organizationName) {
143 this.organizationName = organizationName;
144 }
145
146 /**
147 * Gets the organizationCityName attribute.
148 *
149 * @return Returns the organizationCityName
150 */
151 public String getOrganizationCityName() {
152 return organizationCityName;
153 }
154
155 /**
156 * Sets the organizationCityName attribute.
157 *
158 * @param organizationCityName The organizationCityName to set.
159 */
160 public void setOrganizationCityName(String organizationCityName) {
161 this.organizationCityName = organizationCityName;
162 }
163
164 /**
165 * Gets the organizationStateCode attribute.
166 *
167 * @return Returns the organizationStateCode
168 */
169 public String getOrganizationStateCode() {
170 return organizationStateCode;
171 }
172
173 /**
174 * Sets the organizationStateCode attribute.
175 *
176 * @param organizationStateCode The organizationStateCode to set.
177 */
178 public void setOrganizationStateCode(String organizationStateCode) {
179 this.organizationStateCode = organizationStateCode;
180 }
181
182 /**
183 * Gets the organizationZipCode attribute.
184 *
185 * @return Returns the organizationZipCode
186 */
187 public String getOrganizationZipCode() {
188 return organizationZipCode;
189 }
190
191 /**
192 * Sets the organizationZipCode attribute.
193 *
194 * @param organizationZipCode The organizationZipCode to set.
195 */
196 public void setOrganizationZipCode(String organizationZipCode) {
197 this.organizationZipCode = organizationZipCode;
198 }
199
200 /**
201 * Gets the organizationBeginDate attribute.
202 *
203 * @return Returns the organizationBeginDate
204 */
205 public Date getOrganizationBeginDate() {
206 return organizationBeginDate;
207 }
208
209 /**
210 * Sets the organizationBeginDate attribute.
211 *
212 * @param organizationBeginDate The organizationBeginDate to set.
213 */
214 public void setOrganizationBeginDate(Date organizationBeginDate) {
215 this.organizationBeginDate = organizationBeginDate;
216 }
217
218 /**
219 * Gets the organizationEndDate attribute.
220 *
221 * @return Returns the organizationEndDate
222 */
223 public Date getOrganizationEndDate() {
224 return organizationEndDate;
225 }
226
227 /**
228 * Sets the organizationEndDate attribute.
229 *
230 * @param organizationEndDate The organizationEndDate to set.
231 */
232 public void setOrganizationEndDate(Date organizationEndDate) {
233 this.organizationEndDate = organizationEndDate;
234 }
235
236 /**
237 * Gets the organizationInFinancialProcessingIndicator attribute.
238 *
239 * @return Returns the organizationInFinancialProcessingIndicator
240 */
241 public boolean isOrganizationInFinancialProcessingIndicator() {
242 return organizationInFinancialProcessingIndicator;
243 }
244
245 /**
246 * Sets the organizationInFinancialProcessingIndicator attribute.
247 *
248 * @param organizationInFinancialProcessingIndicator The organizationInFinancialProcessingIndicator to set.
249 */
250 public void setOrganizationInFinancialProcessingIndicator(boolean organizationInFinancialProcessingIndicator) {
251 this.organizationInFinancialProcessingIndicator = organizationInFinancialProcessingIndicator;
252 }
253
254 /**
255 * Gets the chartOfAccounts attribute.
256 *
257 * @return Returns the chartOfAccounts
258 */
259 public Chart getChartOfAccounts() {
260 return chartOfAccounts;
261 }
262
263 /**
264 * Sets the chartOfAccounts attribute.
265 *
266 * @param chartOfAccounts The chartOfAccounts to set.
267 * @deprecated
268 */
269 public void setChartOfAccounts(Chart chartOfAccounts) {
270 this.chartOfAccounts = chartOfAccounts;
271 }
272
273 /**
274 * Gets the organizationDefaultAccount attribute.
275 *
276 * @return Returns the organizationDefaultAccount
277 */
278 public Account getOrganizationDefaultAccount() {
279 return organizationDefaultAccount;
280 }
281
282 /**
283 * Sets the organizationDefaultAccount attribute.
284 *
285 * @param organizationDefaultAccount The organizationDefaultAccount to set.
286 * @deprecated
287 */
288 public void setOrganizationDefaultAccount(Account organizationDefaultAccount) {
289 this.organizationDefaultAccount = organizationDefaultAccount;
290 }
291
292 public Person getOrganizationManagerUniversal() {
293 organizationManagerUniversal = SpringContext.getBean(org.kuali.rice.kim.service.PersonService.class).updatePersonIfNecessary(organizationManagerUniversalId, organizationManagerUniversal);
294 return organizationManagerUniversal;
295 }
296
297 /**
298 * Sets the organizationManagerUniversal attribute.
299 *
300 * @param organizationManagerUniversal The organizationManagerUniversal to set.
301 * @deprecated
302 */
303 public void setOrganizationManagerUniversal(Person organizationManagerUniversal) {
304 this.organizationManagerUniversal = organizationManagerUniversal;
305 }
306
307 /**
308 * Gets the responsibilityCenter attribute.
309 *
310 * @return Returns the responsibilityCenter
311 */
312 public ResponsibilityCenter getResponsibilityCenter() {
313 return responsibilityCenter;
314 }
315
316 /**
317 * Sets the responsibilityCenter attribute.
318 *
319 * @param responsibilityCenter The responsibilityCenter to set.
320 * @deprecated
321 */
322 public void setResponsibilityCenter(ResponsibilityCenter responsibilityCenter) {
323 this.responsibilityCenter = responsibilityCenter;
324 }
325
326 /**
327 * Gets the organizationPhysicalCampus attribute.
328 *
329 * @return Returns the organizationPhysicalCampus
330 */
331 public Campus getOrganizationPhysicalCampus() {
332 return organizationPhysicalCampus = (Campus) SpringContext.getBean(KualiModuleService.class).getResponsibleModuleService(Campus.class).retrieveExternalizableBusinessObjectIfNecessary(this, organizationPhysicalCampus, "organizationPhysicalCampus");
333 }
334
335 /**
336 * Sets the organizationPhysicalCampus attribute.
337 *
338 * @param organizationPhysicalCampus The organizationPhysicalCampus to set.
339 * @deprecated
340 */
341 public void setOrganizationPhysicalCampus(Campus organizationPhysicalCampus) {
342 this.organizationPhysicalCampus = organizationPhysicalCampus;
343 }
344
345 /**
346 * Gets the organizationType attribute.
347 *
348 * @return Returns the organizationType
349 */
350 public OrganizationType getOrganizationType() {
351 return organizationType;
352 }
353
354 /**
355 * Sets the organizationType attribute.
356 *
357 * @param organizationType The organizationType to set.
358 * @deprecated
359 */
360 public void setOrganizationType(OrganizationType organizationType) {
361 this.organizationType = organizationType;
362 }
363
364 /**
365 * Gets the reportsToOrganization attribute.
366 *
367 * @return Returns the reportsToOrganization
368 */
369 public Organization getReportsToOrganization() {
370 return reportsToOrganization;
371 }
372
373 /**
374 * Sets the reportsToOrganization attribute.
375 *
376 * @param reportsToOrganization The reportsToOrganization to set.
377 * @deprecated
378 */
379 public void setReportsToOrganization(Organization reportsToOrganization) {
380 this.reportsToOrganization = reportsToOrganization;
381 }
382
383 /**
384 * Gets the reportsToChartOfAccounts attribute.
385 *
386 * @return Returns the reportsToChartOfAccounts
387 */
388 public Chart getReportsToChartOfAccounts() {
389 return reportsToChartOfAccounts;
390 }
391
392 /**
393 * Sets the reportsToChartOfAccounts attribute.
394 *
395 * @param reportsToChartOfAccounts The reportsToChartOfAccounts to set.
396 * @deprecated
397 */
398 public void setReportsToChartOfAccounts(Chart reportsToChartOfAccounts) {
399 this.reportsToChartOfAccounts = reportsToChartOfAccounts;
400 }
401
402 /**
403 * Gets the organizationPlantAccount attribute.
404 *
405 * @return Returns the organizationPlantAccount
406 */
407 public Account getOrganizationPlantAccount() {
408 return organizationPlantAccount;
409 }
410
411 /**
412 * Sets the organizationPlantAccount attribute.
413 *
414 * @param organizationPlantAccount The organizationPlantAccount to set.
415 * @deprecated
416 */
417 public void setOrganizationPlantAccount(Account organizationPlantAccount) {
418 this.organizationPlantAccount = organizationPlantAccount;
419 }
420
421 /**
422 * Gets the campusPlantAccount attribute.
423 *
424 * @return Returns the campusPlantAccount
425 */
426 public Account getCampusPlantAccount() {
427 return campusPlantAccount;
428 }
429
430 /**
431 * Sets the campusPlantAccount attribute.
432 *
433 * @param campusPlantAccount The campusPlantAccount to set.
434 * @deprecated
435 */
436 public void setCampusPlantAccount(Account campusPlantAccount) {
437 this.campusPlantAccount = campusPlantAccount;
438 }
439
440 /**
441 * Gets the organizationPlantChart attribute.
442 *
443 * @return Returns the organizationPlantChart
444 */
445 public Chart getOrganizationPlantChart() {
446 return organizationPlantChart;
447 }
448
449 /**
450 * Sets the organizationPlantChart attribute.
451 *
452 * @param organizationPlantChart The organizationPlantChart to set.
453 * @deprecated
454 */
455 public void setOrganizationPlantChart(Chart organizationPlantChart) {
456 this.organizationPlantChart = organizationPlantChart;
457 }
458
459 /**
460 * Gets the campusPlantChart attribute.
461 *
462 * @return Returns the campusPlantChart
463 */
464 public Chart getCampusPlantChart() {
465 return campusPlantChart;
466 }
467
468 /**
469 * Sets the campusPlantChart attribute.
470 *
471 * @param campusPlantChart The campusPlantChart to set.
472 * @deprecated
473 */
474 public void setCampusPlantChart(Chart campusPlantChart) {
475 this.campusPlantChart = campusPlantChart;
476 }
477
478 /**
479 * Gets the organizationCountry attribute.
480 *
481 * @return Returns the organizationCountry.
482 */
483 public Country getOrganizationCountry() {
484 organizationCountry = SpringContext.getBean(CountryService.class).getByPrimaryIdIfNecessary(organizationCountryCode, organizationCountry);
485 return organizationCountry;
486 }
487
488 /**
489 * Sets the organizationCountry attribute value.
490 *
491 * @param organizationCountry The organizationCountry to set.
492 * @deprecated
493 */
494 public void setOrganizationCountry(Country organizationCountry) {
495 this.organizationCountry = organizationCountry;
496 }
497
498 /**
499 * Gets the chartOfAccountsCode attribute.
500 *
501 * @return Returns the chartOfAccountsCode.
502 */
503 public String getChartOfAccountsCode() {
504 return chartOfAccountsCode;
505 }
506
507 /**
508 * Sets the chartOfAccountsCode attribute value.
509 *
510 * @param chartOfAccountsCode The chartOfAccountsCode to set.
511 */
512 public void setChartOfAccountsCode(String chartOfAccountsCode) {
513 this.chartOfAccountsCode = chartOfAccountsCode;
514 }
515
516 /**
517 * Gets the organizationDefaultAccountNumber attribute.
518 *
519 * @return Returns the organizationDefaultAccountNumber.
520 */
521 public String getOrganizationDefaultAccountNumber() {
522 return organizationDefaultAccountNumber;
523 }
524
525 /**
526 * Sets the organizationDefaultAccountNumber attribute value.
527 *
528 * @param organizationDefaultAccountNumber The organizationDefaultAccountNumber to set.
529 */
530 public void setOrganizationDefaultAccountNumber(String organizationDefaultAccountNumber) {
531 this.organizationDefaultAccountNumber = organizationDefaultAccountNumber;
532 }
533
534 /**
535 * @return Returns the campusPlantAccountNumber.
536 */
537 public String getCampusPlantAccountNumber() {
538 return campusPlantAccountNumber;
539 }
540
541 /**
542 * @param campusPlantAccountNumber The campusPlantAccountNumber to set.
543 */
544 public void setCampusPlantAccountNumber(String campusPlantAccountNumber) {
545 this.campusPlantAccountNumber = campusPlantAccountNumber;
546 }
547
548 /**
549 * @return Returns the campusPlantChartCode.
550 */
551 public String getCampusPlantChartCode() {
552 return campusPlantChartCode;
553 }
554
555 /**
556 * @param campusPlantChartCode The campusPlantChartCode to set.
557 */
558 public void setCampusPlantChartCode(String campusPlantChartCode) {
559 this.campusPlantChartCode = campusPlantChartCode;
560 }
561
562 /**
563 * @return Returns the organizationManagerUniversalId.
564 */
565 public String getOrganizationManagerUniversalId() {
566 return organizationManagerUniversalId;
567 }
568
569 /**
570 * @param organizationManagerUniversalId The organizationManagerUniversalId to set.
571 */
572 public void setOrganizationManagerUniversalId(String organizationManagerUniversalId) {
573 this.organizationManagerUniversalId = organizationManagerUniversalId;
574 }
575
576 /**
577 * @return Returns the organizationPhysicalCampusCode.
578 */
579 public String getOrganizationPhysicalCampusCode() {
580 return organizationPhysicalCampusCode;
581 }
582
583 /**
584 * @param organizationPhysicalCampusCode The organizationPhysicalCampusCode to set.
585 */
586 public void setOrganizationPhysicalCampusCode(String organizationPhysicalCampusCode) {
587 this.organizationPhysicalCampusCode = organizationPhysicalCampusCode;
588 }
589
590 /**
591 * @return Returns the organizationPlantAccountNumber.
592 */
593 public String getOrganizationPlantAccountNumber() {
594 return organizationPlantAccountNumber;
595 }
596
597 /**
598 * @param organizationPlantAccountNumber The organizationPlantAccountNumber to set.
599 */
600 public void setOrganizationPlantAccountNumber(String organizationPlantAccountNumber) {
601 this.organizationPlantAccountNumber = organizationPlantAccountNumber;
602 }
603
604 /**
605 * @return Returns the organizationPlantChartCode.
606 */
607 public String getOrganizationPlantChartCode() {
608 return organizationPlantChartCode;
609 }
610
611 /**
612 * @param organizationPlantChartCode The organizationPlantChartCode to set.
613 */
614 public void setOrganizationPlantChartCode(String organizationPlantChartCode) {
615 this.organizationPlantChartCode = organizationPlantChartCode;
616 }
617
618 /**
619 * @return Returns the organizationTypeCode.
620 */
621 public String getOrganizationTypeCode() {
622 return organizationTypeCode;
623 }
624
625 /**
626 * @param organizationTypeCode The organizationTypeCode to set.
627 */
628 public void setOrganizationTypeCode(String organizationTypeCode) {
629 this.organizationTypeCode = organizationTypeCode;
630 }
631
632 /**
633 * @return Returns the reportsToChartOfAccountsCode.
634 */
635 public String getReportsToChartOfAccountsCode() {
636 return reportsToChartOfAccountsCode;
637 }
638
639 /**
640 * @param reportsToChartOfAccountsCode The reportsToChartOfAccountsCode to set.
641 */
642 public void setReportsToChartOfAccountsCode(String reportsToChartOfAccountsCode) {
643 this.reportsToChartOfAccountsCode = reportsToChartOfAccountsCode;
644 }
645
646 /**
647 * @return Returns the reportsToOrganizationCode.
648 */
649 public String getReportsToOrganizationCode() {
650 return reportsToOrganizationCode;
651 }
652
653 /**
654 * @param reportsToOrganizationCode The reportsToOrganizationCode to set.
655 */
656 public void setReportsToOrganizationCode(String reportsToOrganizationCode) {
657 this.reportsToOrganizationCode = reportsToOrganizationCode;
658 }
659
660 /**
661 * @return Returns the responsibilityCenterCode.
662 */
663 public String getResponsibilityCenterCode() {
664 return responsibilityCenterCode;
665 }
666
667 /**
668 * @param responsibilityCenterCode The responsibilityCenterCode to set.
669 */
670 public void setResponsibilityCenterCode(String responsibilityCenterCode) {
671 this.responsibilityCenterCode = responsibilityCenterCode;
672 }
673
674 /**
675 * Gets the postalZip attribute.
676 *
677 * @return Returns the postalZip.
678 */
679 public PostalCode getPostalZip() {
680 postalZip = SpringContext.getBean(PostalCodeService.class).getByPrimaryIdIfNecessary( organizationCountryCode, organizationZipCode, postalZip);
681 return postalZip;
682 }
683
684 /**
685 * Sets the postalZip attribute value.
686 *
687 * @param postalZip The postalZip to set.
688 */
689 public void setPostalZip(PostalCode postalZip) {
690 this.postalZip = postalZip;
691 }
692
693 /**
694 * Gets the organizationCountryCode attribute.
695 *
696 * @return Returns the organizationCountryCode.
697 */
698 public String getOrganizationCountryCode() {
699 return organizationCountryCode;
700 }
701
702 /**
703 * Sets the organizationCountryCode attribute value.
704 *
705 * @param organizationCountryCode The organizationCountryCode to set.
706 */
707 public void setOrganizationCountryCode(String organizationCountryCode) {
708 this.organizationCountryCode = organizationCountryCode;
709 }
710
711 /**
712 * Gets the organizationLine1Address attribute.
713 *
714 * @return Returns the organizationLine1Address.
715 */
716 public String getOrganizationLine1Address() {
717 return organizationLine1Address;
718 }
719
720 /**
721 * Sets the organizationLine1Address attribute value.
722 *
723 * @param organizationLine1Address The organizationLine1Address to set.
724 */
725 public void setOrganizationLine1Address(String organizationLine1Address) {
726 this.organizationLine1Address = organizationLine1Address;
727 }
728
729 /**
730 * Gets the organizationLine2Address attribute.
731 *
732 * @return Returns the organizationLine2Address.
733 */
734 public String getOrganizationLine2Address() {
735 return organizationLine2Address;
736 }
737
738 /**
739 * Sets the organizationLine2Address attribute value.
740 *
741 * @param organizationLine2Address The organizationLine2Address to set.
742 */
743 public void setOrganizationLine2Address(String organizationLine2Address) {
744 this.organizationLine2Address = organizationLine2Address;
745 }
746
747 /**
748 * @see org.kuali.rice.kns.bo.BusinessObjectBase#toStringMapper()
749 */
750 protected LinkedHashMap toStringMapper() {
751 LinkedHashMap m = new LinkedHashMap();
752
753 m.put("chartOfAccountsCode", this.chartOfAccountsCode);
754 m.put("organizationCode", this.organizationCode);
755
756 return m;
757 }
758
759 /**
760 * Gets the editPlantAccountsSection attribute.
761 *
762 * @return Returns the editPlantAccountsSection.
763 */
764 public String getEditPlantAccountsSection() {
765 return editPlantAccountsSection;
766 }
767
768 /**
769 * Gets the editPlantAccountsSectionBlank attribute.
770 *
771 * @return Returns the editPlantAccountsSectionBlank.
772 */
773 public String getEditPlantAccountsSectionBlank() {
774 return editPlantAccountsSectionBlank;
775 }
776
777 /**
778 * Gets the editHrmsUnitSection attribute.
779 *
780 * @return Returns the editHrmsUnitSection.
781 */
782 public final String getEditHrmsUnitSection() {
783 return editHrmsUnitSection;
784 }
785
786 /**
787 * Sets the editHrmsUnitSection attribute value.
788 *
789 * @param editHrmsUnitSection The editHrmsUnitSection to set.
790 */
791 public final void setEditHrmsUnitSection(String editHrmsUnitSection) {
792 this.editHrmsUnitSection = editHrmsUnitSection;
793 }
794
795 /**
796 * Gets the editHrmsUnitSectionBlank attribute.
797 *
798 * @return Returns the editHrmsUnitSectionBlank.
799 */
800 public final String getEditHrmsUnitSectionBlank() {
801 return editHrmsUnitSectionBlank;
802 }
803
804 /**
805 * Sets the editHrmsUnitSectionBlank attribute value.
806 *
807 * @param editHrmsUnitSectionBlank The editHrmsUnitSectionBlank to set.
808 */
809 public final void setEditHrmsUnitSectionBlank(String editHrmsUnitSectionBlank) {
810 this.editHrmsUnitSectionBlank = editHrmsUnitSectionBlank;
811 }
812
813 /**
814 * Gets the organizationExtension attribute.
815 *
816 * @return Returns the organizationExtension.
817 */
818 public final OrganizationExtension getOrganizationExtension() {
819 return organizationExtension;
820 }
821
822 /**
823 * Sets the organizationExtension attribute value.
824 *
825 * @param organizationExtension The organizationExtension to set.
826 */
827 public final void setOrganizationExtension(OrganizationExtension organizationExtension) {
828 this.organizationExtension = organizationExtension;
829 }
830
831 public String getOrganizationHierarchy() {
832 OrganizationService organizationService = SpringContext.getBean(OrganizationService.class);
833 StringBuffer result = new StringBuffer();
834 Set<Organization> seen = new HashSet<Organization>();
835
836 Organization org = this;
837
838 while (org != null && org.getReportsToOrganizationCode() != null && !seen.contains(org)) {
839 String rChart = org.getReportsToChartOfAccountsCode();
840 String rOrg = org.getReportsToOrganizationCode();
841
842 seen.add(org);
843 org = organizationService.getByPrimaryIdWithCaching(rChart, rOrg);
844
845 result.append(rChart).append("/").append(rOrg).append(" ");
846 result.append(((org == null) ? "" : org.getOrganizationName()));
847 if ( org != null && org.getReportsToOrganizationCode() != null && !seen.contains(org)) {
848 result.append(" ==> ");
849 }
850 result.append("\n");
851 }
852
853 return result.toString();
854 }
855
856 public String getOrganizationReviewHierarchy() {
857
858 Properties params = new Properties();
859 params.put("methodToCall", "start");
860 params.put("docFormKey", "");
861 params.put("lookupableImplServiceName", "RuleBaseValuesLookupableImplService");
862 params.put("fin_coa_cd", this.chartOfAccountsCode);
863 params.put("org_cd", this.organizationCode);
864 params.put("conversionFields", "");
865 params.put("returnLocation", "");
866 params.put("active_ind", "true");
867 params.put("ruleTemplateName", "KualiOrgReviewTemplate");
868
869 return UrlFactory.parameterizeUrl(SpringContext.getBean(KualiConfigurationService.class).getPropertyString(KFSConstants.WORKFLOW_URL_KEY) + "/Lookup.do", params);
870 }
871
872 /**
873 * Gets the campus code for Endowment Report
874 *
875 * @return
876 */
877 public String getOrganizationPhysicalCampusCodeForReport() {
878 return organizationPhysicalCampusCode;
879 }
880
881 /**
882 * Implementing equals so Org will behave reasonably in a hashed datastructure.
883 *
884 * @see java.lang.Object#equals(java.lang.Object)
885 */
886 public boolean equals(Object obj) {
887 boolean equal = false;
888
889 if (obj != null) {
890
891 if (this == obj)
892 return true;
893
894 if (this.getClass().isAssignableFrom(obj.getClass())) {
895
896 Organization other = (Organization) obj;
897
898 if (StringUtils.equals(this.getChartOfAccountsCode(), other.getChartOfAccountsCode())) {
899 if (StringUtils.equals(this.getOrganizationCode(), other.getOrganizationCode())) {
900 equal = true;
901 }
902 }
903 }
904 }
905
906 return equal;
907 }
908
909 /**
910 * @return Returns the code and description in format: xx - xxxxxxxxxxxxxxxx
911 */
912 public String getCodeAndDescription() {
913 String theString = getOrganizationCode() + "-" + getOrganizationName();
914 return theString;
915 }
916
917 /**
918 * @see java.lang.Object#hashCode()
919 */
920 public int hashCode() {
921 String hashString = getChartOfAccountsCode() + "|" + getOrganizationCode();
922 return hashString.hashCode();
923 }
924
925 public boolean isActive() {
926 return active;
927 }
928
929 public void setActive(boolean active) {
930 this.active = active;
931 }
932
933 /**
934 * Gets the organizationName attribute for report
935 *
936 * @return Returns the organizationName
937 */
938 public String getOrganizationCodeForReport() {
939 return organizationCode;
940 }
941 }