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.module.endow.report.util; 017 018 import java.math.BigDecimal; 019 import java.util.ArrayList; 020 import java.util.List; 021 022 import org.kuali.rice.kns.util.ObjectUtils; 023 /* 024 * class for holding data for transaction summary report 025 */ 026 public class TransactionSummaryReportDataHolder { 027 // header 028 protected String institution; 029 protected String beginningDate; 030 protected String endingDate; 031 protected String kemid; 032 protected String kemidLongTitle; 033 034 //body 035 protected BigDecimal incomeBeginningMarketValue = BigDecimal.ZERO; 036 protected BigDecimal principalBeginningMarketValue = BigDecimal.ZERO; 037 038 //list of contributions and other income records.. 039 protected List<ContributionsDataHolder> reportGroupsForContributions; 040 041 //list of expenses records... 042 protected List<ExpensesDataHolder> reportGroupsForExpenses; 043 044 //list of cash transfers.... 045 protected List<CashTransfersDataHolder> reportGroupsForCashTransfers; 046 047 //list of security transfers.... 048 protected List<SecurityTransfersDataHolder> reportGroupsForSecurityTransfers; 049 050 //change in market value data 051 protected BigDecimal incomeChangeInMarketValue = BigDecimal.ZERO; 052 protected BigDecimal principalChangeInMarketValue = BigDecimal.ZERO; 053 054 //period end total market value (including cash) data 055 protected BigDecimal incomeEndingMarketValue = BigDecimal.ZERO; 056 protected BigDecimal principalEndingMarketValue = BigDecimal.ZERO; 057 058 protected BigDecimal next12MonthsEstimatedIncome = BigDecimal.ZERO; 059 protected BigDecimal remainderOfFYEstimatedIncome = BigDecimal.ZERO; 060 protected BigDecimal nextFYEstimatedIncome = BigDecimal.ZERO; 061 062 // footer 063 protected EndowmentReportFooterDataHolder footer; 064 065 public TransactionSummaryReportDataHolder() { 066 reportGroupsForContributions = new ArrayList<ContributionsDataHolder>(); 067 reportGroupsForExpenses = new ArrayList<ExpensesDataHolder>(); 068 reportGroupsForCashTransfers = new ArrayList<CashTransfersDataHolder>(); 069 reportGroupsForSecurityTransfers = new ArrayList<SecurityTransfersDataHolder>(); 070 071 footer = null; 072 } 073 074 /** 075 * Gets the first row description 076 * 077 * @return description 078 */ 079 protected String getBeginningDescription() { 080 return "Beginning Market Value"; 081 } 082 083 /** 084 * Gets the last row description 085 * 086 * @return 087 */ 088 protected String getEndingDescription() { 089 return "Period End total Market Value (including Cash)"; 090 } 091 092 /** 093 * gets attribute institution 094 * @return institution 095 */ 096 protected String getInstitution() { 097 return institution; 098 } 099 100 /** 101 * sets attribute institution 102 */ 103 public void setInstitution(String institution) { 104 this.institution = institution; 105 } 106 107 /** 108 * gets attribute beginningDate 109 * @return beginningDate 110 */ 111 protected String getBeginningDate() { 112 return beginningDate; 113 } 114 115 /** 116 * sets attribute beginningDate 117 */ 118 public void setBeginningDate(String beginningDate) { 119 this.beginningDate = beginningDate; 120 } 121 122 /** 123 * gets attribute endingDate 124 * @return endingDate 125 */ 126 protected String getEndingDate() { 127 return endingDate; 128 } 129 130 /** 131 * sets attribute endingDate 132 */ 133 public void setEndingDate(String endingDate) { 134 this.endingDate = endingDate; 135 } 136 137 /** 138 * gets attribute incomeBeginningMarketValue 139 * @return incomeBeginningMarketValue 140 */ 141 public BigDecimal getIncomeBeginningMarketValue() { 142 if (ObjectUtils.isNull(incomeBeginningMarketValue)) { 143 return BigDecimal.ZERO; 144 } 145 146 return incomeBeginningMarketValue; 147 } 148 149 /** 150 * sets attribute incomeBeginningMarketValue 151 */ 152 public void setIncomeBeginningMarketValue(BigDecimal incomeBeginningMarketValue) { 153 this.incomeBeginningMarketValue = incomeBeginningMarketValue; 154 } 155 156 /** 157 * gets attribute principalBeginningMarketValue 158 * @return principalBeginningMarketValue 159 */ 160 public BigDecimal getPrincipalBeginningMarketValue() { 161 if (ObjectUtils.isNull(principalBeginningMarketValue)) { 162 return BigDecimal.ZERO; 163 } 164 165 return principalBeginningMarketValue; 166 } 167 168 /** 169 * sets attribute principalBeginningMarketValue 170 */ 171 public void setPrincipalBeginningMarketValue(BigDecimal principalBeginningMarketValue) { 172 this.principalBeginningMarketValue = principalBeginningMarketValue; 173 } 174 175 /** 176 * gets total beginning market value 177 * @return sum of incomeBeginningMarketValue and principleBeginningMarketValue 178 */ 179 public BigDecimal getTotalBeginningMarketValue() { 180 return this.getIncomeBeginningMarketValue().add(this.getPrincipalBeginningMarketValue()); 181 } 182 183 /** 184 * gets attribute incomeChangeInMarketValue 185 * @return incomeChangeInMarketValue 186 */ 187 public BigDecimal getIncomeChangeInMarketValue() { 188 if (ObjectUtils.isNull(incomeChangeInMarketValue)) { 189 return BigDecimal.ZERO; 190 } 191 192 return incomeChangeInMarketValue; 193 } 194 195 /** 196 * sets attribute incomeChangeInMarketValue 197 */ 198 public void setIncomeChangeInMarketValue(BigDecimal incomeChangeInMarketValue) { 199 this.incomeChangeInMarketValue = incomeChangeInMarketValue; 200 } 201 202 /** 203 * gets attribute principalChangeInMarketValue 204 * @return principalChangeInMarketValue 205 */ 206 public BigDecimal getPrincipalChangeInMarketValue() { 207 if (ObjectUtils.isNull(principalChangeInMarketValue)) { 208 return BigDecimal.ZERO; 209 } 210 211 return principalChangeInMarketValue; 212 } 213 214 /** 215 * sets attribute principalChangeInMarketValue 216 */ 217 public void setPrincipalChangeInMarketValue(BigDecimal principalChangeInMarketValue) { 218 this.principalChangeInMarketValue = principalChangeInMarketValue; 219 } 220 221 /** 222 * gets total market value by adding incomeChangeInMarketValue and 223 * principalChangeInMarketValue 224 * @return sum 225 */ 226 public BigDecimal getTotalChangeInMarketValue() { 227 return this.getIncomeChangeInMarketValue().add(this.getPrincipalChangeInMarketValue()); 228 } 229 230 /** 231 * gets attribute incomeEndingMarketValue 232 * @return incomeEndingMarketValue 233 */ 234 public BigDecimal getIncomeEndingMarketValue() { 235 if (ObjectUtils.isNull(incomeEndingMarketValue)) { 236 return BigDecimal.ZERO; 237 } 238 239 return incomeEndingMarketValue; 240 } 241 242 /** 243 * sets attribute incomeEndingMarketValue 244 */ 245 public void setIncomeEndingMarketValue(BigDecimal incomeEndingMarketValue) { 246 this.incomeEndingMarketValue = incomeEndingMarketValue; 247 } 248 249 250 /** 251 * gets attribute kemid 252 * @return kemid 253 */ 254 public String getKemid() { 255 return kemid; 256 } 257 258 /** 259 * sets attribute kemid 260 */ 261 public void setKemid(String kemid) { 262 this.kemid = kemid; 263 } 264 265 /** 266 * gets attribute kemidLongTitle 267 * @return kemidLongTitle 268 */ 269 public String getKemidLongTitle() { 270 return kemidLongTitle; 271 } 272 273 /** 274 * sets attribute kemidLongTitle 275 */ 276 public void setKemidLongTitle(String kemidLongTitle) { 277 this.kemidLongTitle = kemidLongTitle; 278 } 279 280 /** 281 * gets attribute reportGroupsForExpenses 282 * @return reportGroupsForExpenses 283 */ 284 public List<ExpensesDataHolder> getReportGroupsForExpenses() { 285 return reportGroupsForExpenses; 286 } 287 288 /** 289 * sets attribute reportGroupsForExpenses 290 */ 291 public void setReportGroupsForExpenses(List<ExpensesDataHolder> reportGroupsForExpenses) { 292 this.reportGroupsForExpenses = reportGroupsForExpenses; 293 } 294 295 /** 296 * gets attribute principalEndingMarketValue 297 * @return principalEndingMarketValue 298 */ 299 public BigDecimal getPrincipalEndingMarketValue() { 300 if (ObjectUtils.isNull(principalEndingMarketValue)) { 301 return BigDecimal.ZERO; 302 } 303 304 return principalEndingMarketValue; 305 } 306 307 /** 308 * sets attribute principalEndingMarketValue 309 */ 310 public void setPrincipalEndingMarketValue(BigDecimal principalEndingMarketValue) { 311 this.principalEndingMarketValue = principalEndingMarketValue; 312 } 313 314 /** 315 * gets total ending market value by adding incomeEndingMarketValue and 316 * principalEndingMarketValue 317 * @return sum 318 */ 319 public BigDecimal getTotalEndingMarketValue() { 320 return this.getIncomeEndingMarketValue().add(this.getPrincipalEndingMarketValue()); 321 } 322 323 /** 324 * gets attribute next12MonthsEstimatedIncome 325 * @return next12MonthsEstimatedIncome 326 */ 327 public BigDecimal getNext12MonthsEstimatedIncome() { 328 if (ObjectUtils.isNull(next12MonthsEstimatedIncome)) { 329 return BigDecimal.ZERO; 330 } 331 332 return next12MonthsEstimatedIncome; 333 } 334 335 /** 336 * sets attribute next12MonthsEstimatedIncome 337 */ 338 public void setNext12MonthsEstimatedIncome(BigDecimal next12MonthsEstimatedIncome) { 339 this.next12MonthsEstimatedIncome = next12MonthsEstimatedIncome; 340 } 341 342 /** 343 * gets attribute remainderOfFYEstimatedIncome 344 * @return remainderOfFYEstimatedIncome 345 */ 346 public BigDecimal getRemainderOfFYEstimatedIncome() { 347 if (ObjectUtils.isNull(remainderOfFYEstimatedIncome)) { 348 return BigDecimal.ZERO; 349 } 350 351 return remainderOfFYEstimatedIncome; 352 } 353 354 /** 355 * sets attribute remainderOfFYEstimatedIncome 356 */ 357 public void setRemainderOfFYEstimatedIncome(BigDecimal remainderOfFYEstimatedIncome) { 358 this.remainderOfFYEstimatedIncome = remainderOfFYEstimatedIncome; 359 } 360 361 /** 362 * gets attribute nextFYEstimatedIncome 363 * @return nextFYEstimatedIncome 364 */ 365 public BigDecimal getNextFYEstimatedIncome() { 366 if (ObjectUtils.isNull(nextFYEstimatedIncome)) { 367 return BigDecimal.ZERO; 368 } 369 370 return nextFYEstimatedIncome; 371 } 372 373 /** 374 * sets attribute nextFYEstimatedIncome 375 */ 376 public void setNextFYEstimatedIncome(BigDecimal nextFYEstimatedIncome) { 377 this.nextFYEstimatedIncome = nextFYEstimatedIncome; 378 } 379 380 /** 381 * gets attribute reportGroupsForContributions 382 * @return reportGroupsForContributions 383 */ 384 public List<ContributionsDataHolder> getReportGroupsForContributions() { 385 return reportGroupsForContributions; 386 } 387 388 389 /** 390 * gets attribute reportGroupsForCashTransfers 391 * @return reportGroupsForCashTransfers 392 */ 393 public List<CashTransfersDataHolder> getReportGroupsForCashTransfers() { 394 return reportGroupsForCashTransfers; 395 } 396 /** 397 * sets attribute reportGroupsForCashTransfers 398 */ 399 public void setReportGroupsForCashTransfers(List<CashTransfersDataHolder> reportGroupsForCashTransfers) { 400 this.reportGroupsForCashTransfers = reportGroupsForCashTransfers; 401 } 402 403 /** 404 * gets attribute reportGroupsForSecurityTransfers 405 * @return reportGroupsForSecurityTransfers 406 */ 407 public List<SecurityTransfersDataHolder> getReportGroupsForSecurityTransfers() { 408 return reportGroupsForSecurityTransfers; 409 } 410 /** 411 * sets attribute reportGroupsForSecurityTransfers 412 */ 413 public void setReportGroupsForSecurityTransfers(List<SecurityTransfersDataHolder> reportGroupsForSecurityTransfers) { 414 this.reportGroupsForSecurityTransfers = reportGroupsForSecurityTransfers; 415 } 416 417 /** 418 * sets attribute reportGroupsForContributions 419 */ 420 public void setReportGroupsForContributions(List<ContributionsDataHolder> reportGroupsForContributions) { 421 this.reportGroupsForContributions = reportGroupsForContributions; 422 } 423 424 /** 425 * gets attribute footer 426 * @return footer 427 */ 428 protected EndowmentReportFooterDataHolder getFooter() { 429 return footer; 430 } 431 /** 432 * sets attribute footer 433 */ 434 public void setFooter(EndowmentReportFooterDataHolder footer) { 435 this.footer = footer; 436 } 437 438 /** 439 * public class to hold contributions and Other income totals. 440 */ 441 public class ContributionsDataHolder { 442 protected String contributionsDescription; 443 protected BigDecimal incomeContributions = BigDecimal.ZERO; 444 protected BigDecimal principalContributions = BigDecimal.ZERO; 445 446 /** 447 * gets attribute contributionsDescription 448 * @return contributionsDescription 449 */ 450 public String getContributionsDescription() { 451 return contributionsDescription; 452 } 453 /** 454 * sets attribute contributionsDescription 455 */ 456 public void setContributionsDescription(String contributionsDescription) { 457 this.contributionsDescription = contributionsDescription; 458 } 459 /** 460 * gets attribute incomeContributions 461 * @return incomeContributions 462 */ 463 public BigDecimal getIncomeContributions() { 464 if (ObjectUtils.isNull(incomeContributions)) { 465 return BigDecimal.ZERO; 466 } 467 468 return incomeContributions; 469 } 470 /** 471 * sets attribute incomeContributions 472 */ 473 public void setIncomeContributions(BigDecimal incomeContributions) { 474 this.incomeContributions = incomeContributions; 475 } 476 /** 477 * gets attribute principalContributions 478 * @return principalContributions 479 */ 480 public BigDecimal getPrincipalContributions() { 481 if (ObjectUtils.isNull(principalContributions)) { 482 return BigDecimal.ZERO; 483 } 484 485 return principalContributions; 486 } 487 /** 488 * sets attribute principalContributions 489 */ 490 public void setPrincipalContributions(BigDecimal principalContributions) { 491 this.principalContributions = principalContributions; 492 } 493 /** 494 * gets sum of incomeContributions and principalContributions 495 * @return sum 496 */ 497 protected BigDecimal getTotalContributions() { 498 return this.getIncomeContributions().add(this.getPrincipalContributions()); 499 } 500 } 501 502 /** 503 * public class to hold Expenses data 504 */ 505 public class ExpensesDataHolder { 506 protected String expensesDescription; 507 protected BigDecimal incomeExpenses = BigDecimal.ZERO; 508 protected BigDecimal principalExpenses = BigDecimal.ZERO; 509 510 /** 511 * gets attribute expensesDescription 512 * @return expensesDescription 513 */ 514 public String getExpensesDescription() { 515 return expensesDescription; 516 } 517 518 /** 519 * sets attribute expensesDescription 520 */ 521 public void setExpensesDescription(String expensesDescription) { 522 this.expensesDescription = expensesDescription; 523 } 524 525 /** 526 * gets attribute incomeExpenses 527 * @return incomeExpenses 528 */ 529 public BigDecimal getIncomeExpenses() { 530 if (ObjectUtils.isNull(incomeExpenses)) { 531 return BigDecimal.ZERO; 532 } 533 534 return incomeExpenses; 535 } 536 537 /** 538 * sets attribute incomeExpenses 539 */ 540 public void setIncomeExpenses(BigDecimal incomeExpenses) { 541 this.incomeExpenses = incomeExpenses; 542 } 543 544 /** 545 * gets attribute principalExpenses 546 * @return principalExpenses 547 */ 548 public BigDecimal getPrincipalExpenses() { 549 if (ObjectUtils.isNull(principalExpenses)) { 550 return BigDecimal.ZERO; 551 } 552 553 return principalExpenses; 554 } 555 556 /** 557 * sets attribute principalExpenses 558 */ 559 public void setPrincipalExpenses(BigDecimal principalExpenses) { 560 this.principalExpenses = principalExpenses; 561 } 562 563 /** 564 * gets sum of incomeExpenses and principalExpenses 565 * @return totalExpenses 566 */ 567 public BigDecimal getTotalExpenses() { 568 return this.getIncomeExpenses().add(this.getPrincipalExpenses()); 569 } 570 } 571 572 /** 573 * public class to hold cash transfers data 574 */ 575 public class CashTransfersDataHolder { 576 protected String cashTransfersDescription; 577 protected BigDecimal incomeCashTransfers = BigDecimal.ZERO; 578 protected BigDecimal principalCashTransfers = BigDecimal.ZERO; 579 580 /** 581 * gets attribute cashTransfersDescription 582 * @return cashTransfersDescription 583 */ 584 public String getCashTransfersDescription() { 585 return cashTransfersDescription; 586 } 587 588 /** 589 * sets attribute cashTransfersDescription 590 */ 591 public void setCashTransfersDescription(String cashTransfersDescription) { 592 this.cashTransfersDescription = cashTransfersDescription; 593 } 594 595 /** 596 * gets attribute incomeCashTransfers 597 * @return incomeCashTransfers 598 */ 599 public BigDecimal getIncomeCashTransfers() { 600 if (ObjectUtils.isNull(incomeCashTransfers)) { 601 return BigDecimal.ZERO; 602 } 603 604 return incomeCashTransfers; 605 } 606 607 /** 608 * sets attribute incomeCashTransfers 609 */ 610 public void setIncomeCashTransfers(BigDecimal incomeCashTransfers) { 611 this.incomeCashTransfers = incomeCashTransfers; 612 } 613 614 /** 615 * gets attribute principalCashTransfers 616 * @return principalCashTransfers 617 */ 618 public BigDecimal getPrincipalCashTransfers() { 619 if (ObjectUtils.isNull(principalCashTransfers)) { 620 return BigDecimal.ZERO; 621 } 622 623 return principalCashTransfers; 624 } 625 626 /** 627 * sets attribute principalCashTransfers 628 */ 629 public void setPrincipalCashTransfers(BigDecimal principalCashTransfers) { 630 this.principalCashTransfers = principalCashTransfers; 631 } 632 633 /** 634 * gets sum of incomeExpenses and principalExpenses 635 * @return totalExpenses 636 */ 637 public BigDecimal getTotalCashTransfers() { 638 return this.getIncomeCashTransfers().add(this.getPrincipalCashTransfers()); 639 } 640 } 641 642 /** 643 * public class to hold Security transfers data 644 */ 645 public class SecurityTransfersDataHolder { 646 protected String securityTransfersDescription; 647 protected BigDecimal incomeSecurityTransfers = BigDecimal.ZERO; 648 protected BigDecimal principalSecurityTransfers = BigDecimal.ZERO; 649 650 /** 651 * gets attribute securityTransfersDescription 652 * @return securityTransfersDescription 653 */ 654 public String getSecurityTransfersDescription() { 655 return securityTransfersDescription; 656 } 657 658 /** 659 * sets attribute securityTransfersDescription 660 */ 661 public void setSecurityTransfersDescription(String securityTransfersDescription) { 662 this.securityTransfersDescription = securityTransfersDescription; 663 } 664 665 /** 666 * gets attribute incomeSecurityTransfers 667 * @return incomeSecurityTransfers 668 */ 669 public BigDecimal getIncomeSecurityTransfers() { 670 if (ObjectUtils.isNull(incomeSecurityTransfers)) { 671 return BigDecimal.ZERO; 672 } 673 674 return incomeSecurityTransfers; 675 } 676 677 /** 678 * sets attribute incomeSecurityTransfers 679 */ 680 public void setIncomeSecurityTransfers(BigDecimal incomeSecurityTransfers) { 681 this.incomeSecurityTransfers = incomeSecurityTransfers; 682 } 683 684 /** 685 * gets attribute principalSecurityTransfers 686 * @return principalSecurityTransfers 687 */ 688 public BigDecimal getPrincipalSecurityTransfers() { 689 if (ObjectUtils.isNull(principalSecurityTransfers)) { 690 return BigDecimal.ZERO; 691 } 692 693 return principalSecurityTransfers; 694 } 695 696 /** 697 * sets attribute principalSecurityTransfers 698 */ 699 public void setPrincipalSecurityTransfers(BigDecimal principalSecurityTransfers) { 700 this.principalSecurityTransfers = principalSecurityTransfers; 701 } 702 703 /** 704 * gets sum of incomeSecurityTransferS and principalSecurityTransfers 705 * @return totalExpenses 706 */ 707 public BigDecimal getTotalSecurityTransfers() { 708 return this.getIncomeSecurityTransfers().add(this.getPrincipalSecurityTransfers()); 709 } 710 } 711 712 }