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.module.cg.businessobject; 018 019 import java.sql.Date; 020 import java.sql.Timestamp; 021 import java.util.LinkedHashMap; 022 import java.util.List; 023 024 import org.apache.ojb.broker.PersistenceBroker; 025 import org.apache.ojb.broker.PersistenceBrokerException; 026 import org.kuali.kfs.integration.cg.ContractsAndGrantsAward; 027 import org.kuali.kfs.sys.KFSConstants; 028 import org.kuali.kfs.sys.context.SpringContext; 029 import org.kuali.rice.kim.bo.Person; 030 import org.kuali.rice.kns.bo.Inactivateable; 031 import org.kuali.rice.kns.bo.PersistableBusinessObjectBase; 032 import org.kuali.rice.kns.service.KualiConfigurationService; 033 import org.kuali.rice.kns.util.KualiDecimal; 034 import org.kuali.rice.kns.util.ObjectUtils; 035 import org.kuali.rice.kns.util.TypedArrayList; 036 037 /** 038 * Defines a financial award object. 039 */ 040 public class Award extends PersistableBusinessObjectBase implements Inactivateable, ContractsAndGrantsAward { 041 private static final String AWARD_INQUIRY_TITLE_PROPERTY = "message.inquiry.award.title"; 042 043 private Long proposalNumber; 044 private Date awardBeginningDate; 045 private Date awardEndingDate; 046 047 /** 048 * This field is for write-only to the database via OJB, not the corresponding property of this BO. OJB uses reflection to read 049 * it, so the compiler warns because it doesn't know. 050 * 051 * @see #getAwardTotalAmount 052 * @see #setAwardTotalAmount 053 */ 054 @SuppressWarnings("unused") 055 private KualiDecimal awardTotalAmount; 056 057 private String awardAddendumNumber; 058 private KualiDecimal awardAllocatedUniversityComputingServicesAmount; 059 private KualiDecimal federalPassThroughFundedAmount; 060 private Date awardEntryDate; 061 private KualiDecimal agencyFuture1Amount; 062 private KualiDecimal agencyFuture2Amount; 063 private KualiDecimal agencyFuture3Amount; 064 private String awardDocumentNumber; 065 private Timestamp awardLastUpdateDate; 066 private boolean federalPassThroughIndicator; 067 private String oldProposalNumber; 068 private KualiDecimal awardDirectCostAmount; 069 private KualiDecimal awardIndirectCostAmount; 070 private KualiDecimal federalFundedAmount; 071 private Timestamp awardCreateTimestamp; 072 private Date awardClosingDate; 073 private String proposalAwardTypeCode; 074 private String awardStatusCode; 075 private String letterOfCreditFundGroupCode; 076 private String grantDescriptionCode; 077 private String agencyNumber; 078 private String federalPassThroughAgencyNumber; 079 private String agencyAnalystName; 080 private String analystTelephoneNumber; 081 private String awardProjectTitle; 082 private String awardCommentText; 083 private String awardPurposeCode; 084 private boolean active; 085 private String kimGroupNames; 086 private List<AwardProjectDirector> awardProjectDirectors; 087 private List<AwardAccount> awardAccounts; 088 private List<AwardSubcontractor> awardSubcontractors; 089 private List<AwardOrganization> awardOrganizations; 090 private Proposal proposal; 091 private ProposalAwardType proposalAwardType; 092 private AwardStatus awardStatus; 093 private LetterOfCreditFundGroup letterOfCreditFundGroup; 094 private GrantDescription grantDescription; 095 private Agency agency; 096 private Agency federalPassThroughAgency; 097 private ProposalPurpose awardPurpose; 098 private AwardOrganization primaryAwardOrganization; 099 private String routingOrg; 100 private String routingChart; 101 102 /** Dummy value used to facilitate lookups */ 103 private transient String lookupPersonUniversalIdentifier; 104 private transient Person lookupPerson; 105 106 private final String userLookupRoleNamespaceCode = KFSConstants.ParameterNamespaces.KFS; 107 private final String userLookupRoleName = KFSConstants.SysKimConstants.CONTRACTS_AND_GRANTS_PROJECT_DIRECTOR; 108 109 /** 110 * Default no-args constructor. 111 */ 112 public Award() { 113 // Must use TypedArrayList because its get() method automatically grows the array for Struts. 114 awardProjectDirectors = new TypedArrayList(AwardProjectDirector.class); 115 awardAccounts = new TypedArrayList(AwardAccount.class); 116 awardSubcontractors = new TypedArrayList(AwardSubcontractor.class); 117 awardOrganizations = new TypedArrayList(AwardOrganization.class); 118 } 119 120 /** 121 * Creates a collection of lists within this award object that should be aware of when the deletion of one of their elements 122 * occurs. This collection is used to refresh the display upon deletion of an element to ensure that the deleted element is not 123 * longer visible on the interface. 124 * 125 * @see org.kuali.rice.kns.bo.PersistableBusinessObjectBase#buildListOfDeletionAwareLists() 126 */ 127 @Override 128 public List buildListOfDeletionAwareLists() { 129 List<List> managedLists = super.buildListOfDeletionAwareLists(); 130 managedLists.add(getAwardAccounts()); 131 managedLists.add(getAwardOrganizations()); 132 managedLists.add(getAwardProjectDirectors()); 133 managedLists.add(getAwardSubcontractors()); 134 return managedLists; 135 } 136 137 /** 138 * Constructs an Award. 139 * 140 * @param proposal The associated proposal that the award will be linked to. 141 */ 142 public Award(Proposal proposal) { 143 this(); 144 populateFromProposal(proposal); 145 } 146 147 /** 148 * This method takes all the applicable attributes from the associated proposal object and sets those attributes into their 149 * corresponding award attributes. 150 * 151 * @param proposal The associated proposal that the award will be linked to. 152 */ 153 public void populateFromProposal(Proposal proposal) { 154 if (ObjectUtils.isNotNull(proposal)) { 155 setProposalNumber(proposal.getProposalNumber()); 156 setAgencyNumber(proposal.getAgencyNumber()); 157 setAwardProjectTitle(proposal.getProposalProjectTitle()); 158 setAwardDirectCostAmount(proposal.getProposalDirectCostAmount()); 159 setAwardIndirectCostAmount(proposal.getProposalIndirectCostAmount()); 160 setProposalAwardTypeCode(proposal.getProposalAwardTypeCode()); 161 setFederalPassThroughIndicator(proposal.getProposalFederalPassThroughIndicator()); 162 setFederalPassThroughAgencyNumber(proposal.getFederalPassThroughAgencyNumber()); 163 setAwardPurposeCode(proposal.getProposalPurposeCode()); 164 165 // copy proposal organizations to award organizations 166 getAwardOrganizations().clear(); 167 for (ProposalOrganization pOrg : proposal.getProposalOrganizations()) { 168 AwardOrganization awardOrg = new AwardOrganization(); 169 // newCollectionRecord is set to true to allow deletion of this record after being populated from proposal 170 awardOrg.setNewCollectionRecord(true); 171 awardOrg.setProposalNumber(pOrg.getProposalNumber()); 172 awardOrg.setChartOfAccountsCode(pOrg.getChartOfAccountsCode()); 173 awardOrg.setOrganizationCode(pOrg.getOrganizationCode()); 174 awardOrg.setAwardPrimaryOrganizationIndicator(pOrg.isProposalPrimaryOrganizationIndicator()); 175 awardOrg.setActive(pOrg.isActive()); 176 getAwardOrganizations().add(awardOrg); 177 } 178 179 // copy proposal subcontractors to award subcontractors 180 getAwardSubcontractors().clear(); 181 for (ProposalSubcontractor pSubcontractor : proposal.getProposalSubcontractors()) { 182 AwardSubcontractor awardSubcontractor = new AwardSubcontractor(); 183 // newCollectionRecord is set to true to allow deletion of this record after being populated from proposal 184 awardSubcontractor.setNewCollectionRecord(true); 185 awardSubcontractor.setProposalNumber(pSubcontractor.getProposalNumber()); 186 awardSubcontractor.setAwardSubcontractorNumber(pSubcontractor.getProposalSubcontractorNumber()); 187 awardSubcontractor.setSubcontractorAmount(pSubcontractor.getProposalSubcontractorAmount()); 188 awardSubcontractor.setAwardSubcontractorDescription(pSubcontractor.getProposalSubcontractorDescription()); 189 awardSubcontractor.setSubcontractorNumber(pSubcontractor.getSubcontractorNumber()); 190 awardSubcontractor.setActive(pSubcontractor.isActive()); 191 getAwardSubcontractors().add(awardSubcontractor); 192 } 193 194 // copy proposal project directors to award propject directors 195 getAwardProjectDirectors().clear(); 196 for (ProposalProjectDirector pDirector : proposal.getProposalProjectDirectors()) { 197 AwardProjectDirector awardDirector = new AwardProjectDirector(); 198 // newCollectionRecord is set to true to allow deletion of this record after being populated from proposal 199 awardDirector.setNewCollectionRecord(true); 200 awardDirector.setProposalNumber(pDirector.getProposalNumber()); 201 awardDirector.setAwardPrimaryProjectDirectorIndicator(pDirector.isProposalPrimaryProjectDirectorIndicator()); 202 awardDirector.setAwardProjectDirectorProjectTitle(pDirector.getProposalProjectDirectorProjectTitle()); 203 awardDirector.setPrincipalId(pDirector.getPrincipalId()); 204 awardDirector.setActive(pDirector.isActive()); 205 getAwardProjectDirectors().add(awardDirector); 206 } 207 } 208 } 209 210 /** 211 * Gets the proposalNumber attribute. 212 * 213 * @return Returns the proposalNumber 214 */ 215 public Long getProposalNumber() { 216 return proposalNumber; 217 } 218 219 /** 220 * Sets the proposalNumber attribute. 221 * 222 * @param proposalNumber The proposalNumber to set. 223 */ 224 public void setProposalNumber(Long proposalNumber) { 225 this.proposalNumber = proposalNumber; 226 } 227 228 /** 229 * Gets the awardBeginningDate attribute. 230 * 231 * @return Returns the awardBeginningDate 232 */ 233 public Date getAwardBeginningDate() { 234 return awardBeginningDate; 235 } 236 237 /** 238 * Sets the awardBeginningDate attribute. 239 * 240 * @param awardBeginningDate The awardBeginningDate to set. 241 */ 242 public void setAwardBeginningDate(Date awardBeginningDate) { 243 this.awardBeginningDate = awardBeginningDate; 244 } 245 246 /** 247 * Gets the awardEndingDate attribute. 248 * 249 * @return Returns the awardEndingDate 250 */ 251 public Date getAwardEndingDate() { 252 return awardEndingDate; 253 } 254 255 /** 256 * Sets the awardEndingDate attribute. 257 * 258 * @param awardEndingDate The awardEndingDate to set. 259 */ 260 public void setAwardEndingDate(Date awardEndingDate) { 261 this.awardEndingDate = awardEndingDate; 262 } 263 264 /** 265 * Gets the awardTotalAmount attribute. 266 * 267 * @return Returns the awardTotalAmount 268 */ 269 public KualiDecimal getAwardTotalAmount() { 270 KualiDecimal direct = getAwardDirectCostAmount(); 271 KualiDecimal indirect = getAwardIndirectCostAmount(); 272 return ObjectUtils.isNull(direct) || ObjectUtils.isNull(indirect) ? null : direct.add(indirect); 273 } 274 275 /** 276 * Does nothing. This property is determined by the direct and indirect cost amounts. This setter is here only because without 277 * it, the maintenance framework won't display this attribute. 278 * 279 * @param awardTotalAmount The awardTotalAmount to set. 280 * @deprecated Should not be used. See method description above. 281 */ 282 @Deprecated 283 public void setAwardTotalAmount(KualiDecimal awardTotalAmount) { 284 // do nothing 285 } 286 287 /** 288 * OJB calls this method as the first operation before this BO is inserted into the database. The database contains 289 * CGAWD_TOT_AMT, a denormalized column that Kuali does not use but needs to maintain with this method because OJB bypasses the 290 * getter. 291 * 292 * @param persistenceBroker from OJB 293 * @throws PersistenceBrokerException Thrown by call to super.beforeInsert(); 294 * @see org.kuali.rice.kns.bo.PersistableBusinessObjectBase#beforeInsert(org.apache.ojb.broker.PersistenceBroker) 295 */ 296 @Override 297 public void beforeInsert(PersistenceBroker persistenceBroker) throws PersistenceBrokerException { 298 super.beforeInsert(persistenceBroker); 299 awardTotalAmount = getAwardTotalAmount(); 300 } 301 302 /** 303 * OJB calls this method as the first operation before this BO is updated to the database. The database contains CGAWD_TOT_AMT, 304 * a denormalized column that Kuali does not use but needs to maintain with this method because OJB bypasses the getter. 305 * 306 * @param persistenceBroker from OJB 307 * @throws PersistenceBrokerException Thrown by call to super.beforeUpdate(); 308 * @see org.kuali.rice.kns.bo.PersistableBusinessObjectBase#beforeUpdate(org.apache.ojb.broker.PersistenceBroker) 309 */ 310 @Override 311 public void beforeUpdate(PersistenceBroker persistenceBroker) throws PersistenceBrokerException { 312 super.beforeUpdate(persistenceBroker); 313 awardTotalAmount = getAwardTotalAmount(); 314 } 315 316 /** 317 * Gets the awardAddendumNumber attribute. 318 * 319 * @return Returns the awardAddendumNumber 320 */ 321 public String getAwardAddendumNumber() { 322 return awardAddendumNumber; 323 } 324 325 /** 326 * Sets the awardAddendumNumber attribute. 327 * 328 * @param awardAddendumNumber The awardAddendumNumber to set. 329 */ 330 public void setAwardAddendumNumber(String awardAddendumNumber) { 331 this.awardAddendumNumber = awardAddendumNumber; 332 } 333 334 /** 335 * Gets the awardAllocatedUniversityComputingServicesAmount attribute. 336 * 337 * @return Returns the awardAllocatedUniversityComputingServicesAmount 338 */ 339 public KualiDecimal getAwardAllocatedUniversityComputingServicesAmount() { 340 return awardAllocatedUniversityComputingServicesAmount; 341 } 342 343 /** 344 * Sets the awardAllocatedUniversityComputingServicesAmount attribute. 345 * 346 * @param awardAllocatedUniversityComputingServicesAmount The awardAllocatedUniversityComputingServicesAmount to set. 347 */ 348 public void setAwardAllocatedUniversityComputingServicesAmount(KualiDecimal awardAllocatedUniversityComputingServicesAmount) { 349 this.awardAllocatedUniversityComputingServicesAmount = awardAllocatedUniversityComputingServicesAmount; 350 } 351 352 /** 353 * Gets the federalPassThroughFundedAmount attribute. 354 * 355 * @return Returns the federalPassThroughFundedAmount 356 */ 357 public KualiDecimal getFederalPassThroughFundedAmount() { 358 return federalPassThroughFundedAmount; 359 } 360 361 /** 362 * Sets the federalPassThroughFundedAmount attribute. 363 * 364 * @param federalPassThroughFundedAmount The federalPassThroughFundedAmount to set. 365 */ 366 public void setFederalPassThroughFundedAmount(KualiDecimal federalPassThroughFundedAmount) { 367 this.federalPassThroughFundedAmount = federalPassThroughFundedAmount; 368 } 369 370 /** 371 * Gets the awardEntryDate attribute. 372 * 373 * @return Returns the awardEntryDate 374 */ 375 public Date getAwardEntryDate() { 376 return awardEntryDate; 377 } 378 379 /** 380 * Sets the awardEntryDate attribute. 381 * 382 * @param awardEntryDate The awardEntryDate to set. 383 */ 384 public void setAwardEntryDate(Date awardEntryDate) { 385 this.awardEntryDate = awardEntryDate; 386 } 387 388 /** 389 * Gets the agencyFuture1Amount attribute. 390 * 391 * @return Returns the agencyFuture1Amount 392 */ 393 public KualiDecimal getAgencyFuture1Amount() { 394 return agencyFuture1Amount; 395 } 396 397 /** 398 * Sets the agencyFuture1Amount attribute. 399 * 400 * @param agencyFuture1Amount The agencyFuture1Amount to set. 401 */ 402 public void setAgencyFuture1Amount(KualiDecimal agencyFuture1Amount) { 403 this.agencyFuture1Amount = agencyFuture1Amount; 404 } 405 406 407 /** 408 * Gets the agencyFuture2Amount attribute. 409 * 410 * @return Returns the agencyFuture2Amount 411 */ 412 public KualiDecimal getAgencyFuture2Amount() { 413 return agencyFuture2Amount; 414 } 415 416 /** 417 * Sets the agencyFuture2Amount attribute. 418 * 419 * @param agencyFuture2Amount The agencyFuture2Amount to set. 420 */ 421 public void setAgencyFuture2Amount(KualiDecimal agencyFuture2Amount) { 422 this.agencyFuture2Amount = agencyFuture2Amount; 423 } 424 425 /** 426 * Gets the agencyFuture3Amount attribute. 427 * 428 * @return Returns the agencyFuture3Amount 429 */ 430 public KualiDecimal getAgencyFuture3Amount() { 431 return agencyFuture3Amount; 432 } 433 434 /** 435 * Sets the agencyFuture3Amount attribute. 436 * 437 * @param agencyFuture3Amount The agencyFuture3Amount to set. 438 */ 439 public void setAgencyFuture3Amount(KualiDecimal agencyFuture3Amount) { 440 this.agencyFuture3Amount = agencyFuture3Amount; 441 } 442 443 /** 444 * Gets the awardDocumentNumber attribute. 445 * 446 * @return Returns the awardDocumentNumber 447 */ 448 public String getAwardDocumentNumber() { 449 return awardDocumentNumber; 450 } 451 452 /** 453 * Sets the awardDocumentNumber attribute. 454 * 455 * @param awardDocumentNumber The awardDocumentNumber to set. 456 */ 457 public void setAwardDocumentNumber(String awardDocumentNumber) { 458 this.awardDocumentNumber = awardDocumentNumber; 459 } 460 461 /** 462 * Gets the awardLastUpdateDate attribute. 463 * 464 * @return Returns the awardLastUpdateDate 465 */ 466 public Timestamp getAwardLastUpdateDate() { 467 return awardLastUpdateDate; 468 } 469 470 /** 471 * Sets the awardLastUpdateDate attribute. 472 * 473 * @param awardLastUpdateDate The awardLastUpdateDate to set. 474 */ 475 public void setAwardLastUpdateDate(Timestamp awardLastUpdateDate) { 476 this.awardLastUpdateDate = awardLastUpdateDate; 477 } 478 479 /** 480 * Gets the federalPassThroughIndicator attribute. 481 * 482 * @return Returns the federalPassThroughIndicator 483 */ 484 public boolean getFederalPassThroughIndicator() { 485 return federalPassThroughIndicator; 486 } 487 488 /** 489 * Sets the federalPassThroughIndicator attribute. 490 * 491 * @param federalPassThroughIndicator The federalPassThroughIndicator to set. 492 */ 493 public void setFederalPassThroughIndicator(boolean federalPassThroughIndicator) { 494 this.federalPassThroughIndicator = federalPassThroughIndicator; 495 } 496 497 /** 498 * Gets the oldProposalNumber attribute. 499 * 500 * @return Returns the oldProposalNumber 501 */ 502 public String getOldProposalNumber() { 503 return oldProposalNumber; 504 } 505 506 /** 507 * Sets the oldProposalNumber attribute. 508 * 509 * @param oldProposalNumber The oldProposalNumber to set. 510 */ 511 public void setOldProposalNumber(String oldProposalNumber) { 512 this.oldProposalNumber = oldProposalNumber; 513 } 514 515 /** 516 * Gets the awardDirectCostAmount attribute. 517 * 518 * @return Returns the awardDirectCostAmount 519 */ 520 public KualiDecimal getAwardDirectCostAmount() { 521 return awardDirectCostAmount; 522 } 523 524 /** 525 * Sets the awardDirectCostAmount attribute. 526 * 527 * @param awardDirectCostAmount The awardDirectCostAmount to set. 528 */ 529 public void setAwardDirectCostAmount(KualiDecimal awardDirectCostAmount) { 530 this.awardDirectCostAmount = awardDirectCostAmount; 531 } 532 533 /** 534 * Gets the awardIndirectCostAmount attribute. 535 * 536 * @return Returns the awardIndirectCostAmount 537 */ 538 public KualiDecimal getAwardIndirectCostAmount() { 539 return awardIndirectCostAmount; 540 } 541 542 /** 543 * Sets the awardIndirectCostAmount attribute. 544 * 545 * @param awardIndirectCostAmount The awardIndirectCostAmount to set. 546 */ 547 public void setAwardIndirectCostAmount(KualiDecimal awardIndirectCostAmount) { 548 this.awardIndirectCostAmount = awardIndirectCostAmount; 549 } 550 551 /** 552 * Gets the federalFundedAmount attribute. 553 * 554 * @return Returns the federalFundedAmount 555 */ 556 public KualiDecimal getFederalFundedAmount() { 557 return federalFundedAmount; 558 } 559 560 /** 561 * Sets the federalFundedAmount attribute. 562 * 563 * @param federalFundedAmount The federalFundedAmount to set. 564 */ 565 public void setFederalFundedAmount(KualiDecimal federalFundedAmount) { 566 this.federalFundedAmount = federalFundedAmount; 567 } 568 569 /** 570 * Gets the awardCreateTimestamp attribute. 571 * 572 * @return Returns the awardCreateTimestamp 573 */ 574 public Timestamp getAwardCreateTimestamp() { 575 return awardCreateTimestamp; 576 } 577 578 /** 579 * Sets the awardCreateTimestamp attribute. 580 * 581 * @param awardCreateTimestamp The awardCreateTimestamp to set. 582 */ 583 public void setAwardCreateTimestamp(Timestamp awardCreateTimestamp) { 584 this.awardCreateTimestamp = awardCreateTimestamp; 585 } 586 587 /** 588 * Gets the awardClosingDate attribute. 589 * 590 * @return Returns the awardClosingDate 591 */ 592 public Date getAwardClosingDate() { 593 return awardClosingDate; 594 } 595 596 /** 597 * Sets the awardClosingDate attribute. 598 * 599 * @param awardClosingDate The awardClosingDate to set. 600 */ 601 public void setAwardClosingDate(Date awardClosingDate) { 602 this.awardClosingDate = awardClosingDate; 603 } 604 605 /** 606 * Gets the proposalAwardTypeCode attribute. 607 * 608 * @return Returns the proposalAwardTypeCode 609 */ 610 public String getProposalAwardTypeCode() { 611 return proposalAwardTypeCode; 612 } 613 614 /** 615 * Sets the proposalAwardTypeCode attribute. 616 * 617 * @param proposalAwardTypeCode The proposalAwardTypeCode to set. 618 */ 619 public void setProposalAwardTypeCode(String proposalAwardTypeCode) { 620 this.proposalAwardTypeCode = proposalAwardTypeCode; 621 } 622 623 /** 624 * Gets the awardStatusCode attribute. 625 * 626 * @return Returns the awardStatusCode 627 */ 628 public String getAwardStatusCode() { 629 return awardStatusCode; 630 } 631 632 /** 633 * Sets the awardStatusCode attribute. 634 * 635 * @param awardStatusCode The awardStatusCode to set. 636 */ 637 public void setAwardStatusCode(String awardStatusCode) { 638 this.awardStatusCode = awardStatusCode; 639 } 640 641 /** 642 * Gets the letterOfCreditFundGroupCode attribute. 643 * 644 * @return Returns the letterOfCreditFundGroupCode 645 */ 646 public String getLetterOfCreditFundGroupCode() { 647 return letterOfCreditFundGroupCode; 648 } 649 650 /** 651 * Sets the letterOfCreditFundGroupCode attribute. 652 * 653 * @param letterOfCreditFundGroupCode The letterOfCreditFundGroupCode to set. 654 */ 655 public void setLetterOfCreditFundGroupCode(String letterOfCreditFundGroupCode) { 656 this.letterOfCreditFundGroupCode = letterOfCreditFundGroupCode; 657 } 658 659 /** 660 * Gets the grantDescriptionCode attribute. 661 * 662 * @return Returns the grantDescriptionCode 663 */ 664 public String getGrantDescriptionCode() { 665 return grantDescriptionCode; 666 } 667 668 /** 669 * Sets the grantDescriptionCode attribute. 670 * 671 * @param grantDescriptionCode The grantDescriptionCode to set. 672 */ 673 public void setGrantDescriptionCode(String grantDescriptionCode) { 674 this.grantDescriptionCode = grantDescriptionCode; 675 } 676 677 /** 678 * Gets the agencyNumber attribute. 679 * 680 * @return Returns the agencyNumber 681 */ 682 public String getAgencyNumber() { 683 return agencyNumber; 684 } 685 686 /** 687 * Sets the agencyNumber attribute. 688 * 689 * @param agencyNumber The agencyNumber to set. 690 */ 691 public void setAgencyNumber(String agencyNumber) { 692 this.agencyNumber = agencyNumber; 693 } 694 695 /** 696 * Gets the federalPassThroughAgencyNumber attribute. 697 * 698 * @return Returns the federalPassThroughAgencyNumber 699 */ 700 public String getFederalPassThroughAgencyNumber() { 701 return federalPassThroughAgencyNumber; 702 } 703 704 /** 705 * Sets the federalPassThroughAgencyNumber attribute. 706 * 707 * @param federalPassThroughAgencyNumber The federalPassThroughAgencyNumber to set. 708 */ 709 public void setFederalPassThroughAgencyNumber(String federalPassThroughAgencyNumber) { 710 this.federalPassThroughAgencyNumber = federalPassThroughAgencyNumber; 711 } 712 713 /** 714 * Gets the agencyAnalystName attribute. 715 * 716 * @return Returns the agencyAnalystName 717 */ 718 public String getAgencyAnalystName() { 719 return agencyAnalystName; 720 } 721 722 /** 723 * Sets the agencyAnalystName attribute. 724 * 725 * @param agencyAnalystName The agencyAnalystName to set. 726 */ 727 public void setAgencyAnalystName(String agencyAnalystName) { 728 this.agencyAnalystName = agencyAnalystName; 729 } 730 731 /** 732 * Gets the analystTelephoneNumber attribute. 733 * 734 * @return Returns the analystTelephoneNumber 735 */ 736 public String getAnalystTelephoneNumber() { 737 return analystTelephoneNumber; 738 } 739 740 /** 741 * Sets the analystTelephoneNumber attribute. 742 * 743 * @param analystTelephoneNumber The analystTelephoneNumber to set. 744 */ 745 public void setAnalystTelephoneNumber(String analystTelephoneNumber) { 746 this.analystTelephoneNumber = analystTelephoneNumber; 747 } 748 749 /** 750 * Gets the awardProjectTitle attribute. 751 * 752 * @return Returns the awardProjectTitle 753 */ 754 public String getAwardProjectTitle() { 755 return awardProjectTitle; 756 } 757 758 /** 759 * Sets the awardProjectTitle attribute. 760 * 761 * @param awardProjectTitle The awardProjectTitle to set. 762 */ 763 public void setAwardProjectTitle(String awardProjectTitle) { 764 this.awardProjectTitle = awardProjectTitle; 765 } 766 767 /** 768 * Gets the awardCommentText attribute. 769 * 770 * @return Returns the awardCommentText 771 */ 772 public String getAwardCommentText() { 773 return awardCommentText; 774 } 775 776 /** 777 * Sets the awardCommentText attribute. 778 * 779 * @param awardCommentText The awardCommentText to set. 780 */ 781 public void setAwardCommentText(String awardCommentText) { 782 this.awardCommentText = awardCommentText; 783 } 784 785 /** 786 * Gets the awardPurposeCode attribute. 787 * 788 * @return Returns the awardPurposeCode 789 */ 790 public String getAwardPurposeCode() { 791 return awardPurposeCode; 792 } 793 794 /** 795 * Sets the awardPurposeCode attribute. 796 * 797 * @param awardPurposeCode The awardPurposeCode to set. 798 */ 799 public void setAwardPurposeCode(String awardPurposeCode) { 800 this.awardPurposeCode = awardPurposeCode; 801 } 802 803 /** 804 * Gets the active attribute. 805 * 806 * @return Returns the active. 807 */ 808 public boolean isActive() { 809 return active; 810 } 811 812 /** 813 * Sets the active attribute value. 814 * 815 * @param active The active to set. 816 */ 817 public void setActive(boolean active) { 818 this.active = active; 819 } 820 821 /** 822 * Gets the proposal attribute. 823 * 824 * @return Returns the proposal 825 */ 826 public Proposal getProposal() { 827 return proposal; 828 } 829 830 /** 831 * Sets the proposal attribute. 832 * 833 * @param proposal The proposal to set. 834 * @deprecated Setter is required by OJB, but should not be used to modify this attribute. This attribute is set on the initial 835 * creation of the object and should not be changed. 836 */ 837 @Deprecated 838 public void setProposal(Proposal proposal) { 839 this.proposal = proposal; 840 } 841 842 /** 843 * Gets the proposalAwardType attribute. 844 * 845 * @return Returns the proposalAwardType 846 */ 847 public ProposalAwardType getProposalAwardType() { 848 return proposalAwardType; 849 } 850 851 /** 852 * Sets the proposalAwardType attribute. 853 * 854 * @param proposalAwardType The proposalAwardType to set. 855 * @deprecated Setter is required by OJB, but should not be used to modify this attribute. This attribute is set on the initial 856 * creation of the object and should not be changed. 857 */ 858 @Deprecated 859 public void setProposalAwardType(ProposalAwardType proposalAwardType) { 860 this.proposalAwardType = proposalAwardType; 861 } 862 863 /** 864 * Gets the awardStatus attribute. 865 * 866 * @return Returns the awardStatus 867 */ 868 public AwardStatus getAwardStatus() { 869 return awardStatus; 870 } 871 872 /** 873 * Sets the awardStatus attribute. 874 * 875 * @param awardStatus The awardStatus to set. 876 * @deprecated Setter is required by OJB, but should not be used to modify this attribute. This attribute is set on the initial 877 * creation of the object and should not be changed. 878 */ 879 @Deprecated 880 public void setAwardStatus(AwardStatus awardStatus) { 881 this.awardStatus = awardStatus; 882 } 883 884 /** 885 * Gets the letterOfCreditFundGroup attribute. 886 * 887 * @return Returns the letterOfCreditFundGroup 888 */ 889 public LetterOfCreditFundGroup getLetterOfCreditFundGroup() { 890 return letterOfCreditFundGroup; 891 } 892 893 /** 894 * Sets the letterOfCreditFundGroup attribute. 895 * 896 * @param letterOfCreditFundGroup The letterOfCreditFundGroup to set. 897 * @deprecated Setter is required by OJB, but should not be used to modify this attribute. This attribute is set on the initial 898 * creation of the object and should not be changed. 899 */ 900 @Deprecated 901 public void setLetterOfCreditFundGroup(LetterOfCreditFundGroup letterOfCreditFundGroup) { 902 this.letterOfCreditFundGroup = letterOfCreditFundGroup; 903 } 904 905 /** 906 * Gets the grantDescription attribute. 907 * 908 * @return Returns the grantDescription 909 */ 910 public GrantDescription getGrantDescription() { 911 return grantDescription; 912 } 913 914 /** 915 * Sets the grantDescription attribute. 916 * 917 * @param grantDescription The grantDescription to set. 918 * @deprecated Setter is required by OJB, but should not be used to modify this attribute. This attribute is set on the initial 919 * creation of the object and should not be changed. 920 */ 921 @Deprecated 922 public void setGrantDescription(GrantDescription grantDescription) { 923 this.grantDescription = grantDescription; 924 } 925 926 /** 927 * Gets the agency attribute. 928 * 929 * @return Returns the agency 930 */ 931 public Agency getAgency() { 932 return agency; 933 } 934 935 /** 936 * Sets the agency attribute. 937 * 938 * @param agency The agency to set. 939 * @deprecated Setter is required by OJB, but should not be used to modify this attribute. This attribute is set on the initial 940 * creation of the object and should not be changed. 941 */ 942 @Deprecated 943 public void setAgency(Agency agency) { 944 this.agency = agency; 945 } 946 947 /** 948 * Gets the federalPassThroughAgency attribute. 949 * 950 * @return Returns the federalPassThroughAgency 951 */ 952 public Agency getFederalPassThroughAgency() { 953 return federalPassThroughAgency; 954 } 955 956 /** 957 * Sets the federalPassThroughAgency attribute. 958 * 959 * @param federalPassThroughAgency The federalPassThroughAgency to set. 960 * @deprecated Setter is required by OJB, but should not be used to modify this attribute. This attribute is set on the initial 961 * creation of the object and should not be changed. 962 */ 963 @Deprecated 964 public void setFederalPassThroughAgency(Agency federalPassThroughAgency) { 965 this.federalPassThroughAgency = federalPassThroughAgency; 966 } 967 968 /** 969 * Gets the awardPurpose attribute. 970 * 971 * @return Returns the awardPurpose 972 */ 973 public ProposalPurpose getAwardPurpose() { 974 return awardPurpose; 975 } 976 977 /** 978 * Sets the awardPurpose attribute. 979 * 980 * @param awardPurpose The awardPurpose to set. 981 * @deprecated Setter is required by OJB, but should not be used to modify this attribute. This attribute is set on the initial 982 * creation of the object and should not be changed. 983 */ 984 @Deprecated 985 public void setAwardPurpose(ProposalPurpose awardPurpose) { 986 this.awardPurpose = awardPurpose; 987 } 988 989 /** 990 * Gets the awardProjectDirectors list. 991 * 992 * @return Returns the awardProjectDirectors list 993 */ 994 public List<AwardProjectDirector> getAwardProjectDirectors() { 995 return awardProjectDirectors; 996 } 997 998 /** 999 * Sets the awardProjectDirectors list. 1000 * 1001 * @param awardProjectDirectors The awardProjectDirectors list to set. 1002 */ 1003 public void setAwardProjectDirectors(List<AwardProjectDirector> awardProjectDirectors) { 1004 this.awardProjectDirectors = awardProjectDirectors; 1005 } 1006 1007 /** 1008 * Gets the awardAccounts list. 1009 * 1010 * @return Returns the awardAccounts. 1011 */ 1012 public List<AwardAccount> getAwardAccounts() { 1013 return awardAccounts; 1014 } 1015 1016 /** 1017 * Sets the awardAccounts list. 1018 * 1019 * @param awardAccounts The awardAccounts to set. 1020 */ 1021 public void setAwardAccounts(List<AwardAccount> awardAccounts) { 1022 this.awardAccounts = awardAccounts; 1023 } 1024 1025 /** 1026 * Gets the awardOrganizations list. 1027 * 1028 * @return Returns the awardOrganizations. 1029 */ 1030 public List<AwardOrganization> getAwardOrganizations() { 1031 return awardOrganizations; 1032 } 1033 1034 /** 1035 * Sets the awardOrganizations list. 1036 * 1037 * @param awardOrganizations The awardOrganizations to set. 1038 */ 1039 public void setAwardOrganizations(List<AwardOrganization> awardOrganizations) { 1040 this.awardOrganizations = awardOrganizations; 1041 } 1042 1043 /** 1044 * Gets the awardSubcontractors list. 1045 * 1046 * @return Returns the awardSubcontractors. 1047 */ 1048 public List<AwardSubcontractor> getAwardSubcontractors() { 1049 return awardSubcontractors; 1050 } 1051 1052 /** 1053 * Sets the awardSubcontractors list. 1054 * 1055 * @param awardSubcontractors The awardSubcontractors to set. 1056 */ 1057 public void setAwardSubcontractors(List<AwardSubcontractor> awardSubcontractors) { 1058 this.awardSubcontractors = awardSubcontractors; 1059 } 1060 1061 /** 1062 * This method gets the primary award organization. 1063 * 1064 * @return The award organization object marked as primary in the award organizations collection. 1065 */ 1066 public AwardOrganization getPrimaryAwardOrganization() { 1067 for (AwardOrganization ao : awardOrganizations) { 1068 if (ao != null && ao.isAwardPrimaryOrganizationIndicator()) { 1069 setPrimaryAwardOrganization(ao); 1070 break; 1071 } 1072 } 1073 1074 return primaryAwardOrganization; 1075 } 1076 1077 /** 1078 * This method sets the primary award organization. 1079 * 1080 * @param primaryAwardOrganization 1081 */ 1082 public void setPrimaryAwardOrganization(AwardOrganization primaryAwardOrganization) { 1083 this.primaryAwardOrganization = primaryAwardOrganization; 1084 this.routingChart = primaryAwardOrganization.getChartOfAccountsCode(); 1085 this.routingOrg = primaryAwardOrganization.getOrganizationCode(); 1086 } 1087 1088 /** 1089 * This method maps the proposal number into a hash map with "proposalNumber" as the identifier. 1090 * 1091 * @see org.kuali.rice.kns.bo.BusinessObjectBase#toStringMapper() 1092 */ 1093 @Override 1094 @SuppressWarnings("unchecked") 1095 protected LinkedHashMap toStringMapper() { 1096 LinkedHashMap<String, String> m = new LinkedHashMap<String, String>(); 1097 if (this.proposalNumber != null) { 1098 m.put("proposalNumber", this.proposalNumber.toString()); 1099 } 1100 return m; 1101 } 1102 1103 /** 1104 * Sums the total for all award subcontractors 1105 * 1106 * @return Returns the total of all the award subcontractor's amounts 1107 */ 1108 public KualiDecimal getAwardSubcontractorsTotalAmount() { 1109 KualiDecimal total = KualiDecimal.ZERO; 1110 for (AwardSubcontractor subcontractor : getAwardSubcontractors()) { 1111 KualiDecimal amount = subcontractor.getSubcontractorAmount(); 1112 if (ObjectUtils.isNotNull(amount)) { 1113 total = total.add(amount); 1114 } 1115 } 1116 return total; 1117 } 1118 1119 /** 1120 * @see org.kuali.kfs.sys.document.workflow.AlternateOrgReviewRouting#getRoutingChart() 1121 */ 1122 public String getRoutingChart() { 1123 return routingChart; 1124 } 1125 1126 /** 1127 * @see org.kuali.kfs.sys.document.workflow.AlternateOrgReviewRouting#setRoutingChart(java.lang.String) 1128 */ 1129 public void setRoutingChart(String routingChart) { 1130 this.routingChart = routingChart; 1131 } 1132 1133 /** 1134 * @see org.kuali.kfs.sys.document.workflow.AlternateOrgReviewRouting#getRoutingOrg() 1135 */ 1136 public String getRoutingOrg() { 1137 return routingOrg; 1138 } 1139 1140 /** 1141 * @see org.kuali.kfs.sys.document.workflow.AlternateOrgReviewRouting#setRoutingOrg(java.lang.String) 1142 */ 1143 public void setRoutingOrg(String routingOrg) { 1144 this.routingOrg = routingOrg; 1145 } 1146 1147 /** 1148 * Gets the lookup {@link Person}. 1149 * 1150 * @return the lookup {@link Person} 1151 */ 1152 public Person getLookupPerson() { 1153 return lookupPerson; 1154 } 1155 1156 /** 1157 * Sets the lookup {@link Person} 1158 * 1159 * @param lookupPerson 1160 */ 1161 public void setLookupPerson(Person lookupPerson) { 1162 this.lookupPerson = lookupPerson; 1163 } 1164 1165 /** 1166 * Gets the universal user id of the lookup person. 1167 * 1168 * @return the id of the lookup person 1169 */ 1170 public String getLookupPersonUniversalIdentifier() { 1171 lookupPerson = SpringContext.getBean(org.kuali.rice.kim.service.PersonService.class).updatePersonIfNecessary(lookupPersonUniversalIdentifier, lookupPerson); 1172 return lookupPersonUniversalIdentifier; 1173 } 1174 1175 /** 1176 * Sets the universal user id of the lookup person 1177 * 1178 * @param lookupPersonId the id of the lookup person 1179 */ 1180 public void setLookupPersonUniversalIdentifier(String lookupPersonId) { 1181 this.lookupPersonUniversalIdentifier = lookupPersonId; 1182 } 1183 1184 public String getUserLookupRoleNamespaceCode() { 1185 return userLookupRoleNamespaceCode; 1186 } 1187 1188 public void setUserLookupRoleNamespaceCode(String userLookupRoleNamespaceCode) { 1189 } 1190 1191 public String getUserLookupRoleName() { 1192 return userLookupRoleName; 1193 } 1194 1195 public void setUserLookupRoleName(String userLookupRoleName) { 1196 } 1197 1198 /** 1199 * @return a String to represent this field on the inquiry 1200 */ 1201 public String getAwardInquiryTitle() { 1202 return SpringContext.getBean(KualiConfigurationService.class).getPropertyString(AWARD_INQUIRY_TITLE_PROPERTY); 1203 } 1204 1205 /** 1206 * Pretends to set the inquiry title 1207 */ 1208 public void setAwardInquiryTitle(String inquiryTitle) { 1209 // ain't nothing to do 1210 } 1211 1212 } 1213