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.fp.businessobject; 018 019 import java.sql.Timestamp; 020 import java.text.ParseException; 021 import java.util.Iterator; 022 import java.util.LinkedHashMap; 023 import java.util.List; 024 025 import org.kuali.kfs.sys.KFSPropertyConstants; 026 import org.kuali.kfs.sys.context.SpringContext; 027 import org.kuali.rice.kns.bo.PersistableBusinessObjectBase; 028 import org.kuali.rice.kns.service.DateTimeService; 029 import org.kuali.rice.kns.util.KualiDecimal; 030 import org.kuali.rice.kns.util.ObjectUtils; 031 import org.kuali.rice.kns.util.TypedArrayList; 032 033 /** 034 * This class is used to represent a non-employee trip for a disbursement voucher . 035 */ 036 public class DisbursementVoucherNonEmployeeTravel extends PersistableBusinessObjectBase { 037 038 private String documentNumber; 039 private String disbVchrTravelFromCityName; 040 private String disbVchrTravelFromStateCode; 041 private String dvTravelFromCountryCode; 042 private String disbVchrTravelToCityName; 043 private String disbVchrTravelToStateCode; 044 private String disbVchrTravelToCountryCode; 045 private Timestamp dvPerdiemStartDttmStamp; 046 private Timestamp dvPerdiemEndDttmStamp; 047 private KualiDecimal disbVchrPerdiemCalculatedAmt; 048 private KualiDecimal disbVchrPerdiemActualAmount; 049 private String dvPerdiemChangeReasonText; 050 private String disbVchrServicePerformedDesc; 051 private String dvServicePerformedLocName; 052 private String dvServiceRegularEmprName; 053 private String disbVchrAutoFromCityName; 054 private String disbVchrAutoFromStateCode; 055 private String disbVchrAutoToCityName; 056 private String disbVchrAutoToStateCode; 057 private boolean disbVchrAutoRoundTripCode; 058 private Integer dvPersonalCarMileageAmount; 059 private KualiDecimal disbVchrPersonalCarRate; 060 private KualiDecimal disbVchrPersonalCarAmount; 061 private boolean disbVchrExceptionCode; 062 private Integer financialDocumentNextLineNbr; 063 private String disbVchrNonEmpTravelerName; 064 private KualiDecimal disbVchrPerdiemRate; 065 private String disbVchrPerdiemCategoryName; 066 private KualiDecimal disbVchrMileageCalculatedAmt; 067 068 private KualiDecimal totalTravelAmount; 069 070 private List dvNonEmployeeExpenses; 071 private List dvPrePaidEmployeeExpenses; 072 073 /** 074 * Default no-arg constructor. 075 */ 076 public DisbursementVoucherNonEmployeeTravel() { 077 dvNonEmployeeExpenses = new TypedArrayList(DisbursementVoucherNonEmployeeExpense.class); 078 dvPrePaidEmployeeExpenses = new TypedArrayList(DisbursementVoucherNonEmployeeExpense.class); 079 financialDocumentNextLineNbr = new Integer(1); 080 } 081 082 /** 083 * Gets the documentNumber attribute. 084 * 085 * @return Returns the documentNumber 086 */ 087 public String getDocumentNumber() { 088 return documentNumber; 089 } 090 091 092 /** 093 * Sets the documentNumber attribute. 094 * 095 * @param documentNumber The documentNumber to set. 096 */ 097 public void setDocumentNumber(String documentNumber) { 098 this.documentNumber = documentNumber; 099 } 100 101 /** 102 * Gets the disbVchrTravelFromCityName attribute. 103 * 104 * @return Returns the disbVchrTravelFromCityName 105 */ 106 public String getDisbVchrTravelFromCityName() { 107 return disbVchrTravelFromCityName; 108 } 109 110 111 /** 112 * Sets the disbVchrTravelFromCityName attribute. 113 * 114 * @param disbVchrTravelFromCityName The disbVchrTravelFromCityName to set. 115 */ 116 public void setDisbVchrTravelFromCityName(String disbVchrTravelFromCityName) { 117 this.disbVchrTravelFromCityName = disbVchrTravelFromCityName; 118 } 119 120 /** 121 * Gets the disbVchrTravelFromStateCode attribute. 122 * 123 * @return Returns the disbVchrTravelFromStateCode 124 */ 125 public String getDisbVchrTravelFromStateCode() { 126 return disbVchrTravelFromStateCode; 127 } 128 129 130 /** 131 * Sets the disbVchrTravelFromStateCode attribute. 132 * 133 * @param disbVchrTravelFromStateCode The disbVchrTravelFromStateCode to set. 134 */ 135 public void setDisbVchrTravelFromStateCode(String disbVchrTravelFromStateCode) { 136 this.disbVchrTravelFromStateCode = disbVchrTravelFromStateCode; 137 } 138 139 /** 140 * Gets the dvTravelFromCountryCode attribute. 141 * 142 * @return Returns the dvTravelFromCountryCode 143 */ 144 public String getDvTravelFromCountryCode() { 145 return dvTravelFromCountryCode; 146 } 147 148 149 /** 150 * Sets the dvTravelFromCountryCode attribute. 151 * 152 * @param dvTravelFromCountryCode The dvTravelFromCountryCode to set. 153 */ 154 public void setDvTravelFromCountryCode(String dvTravelFromCountryCode) { 155 this.dvTravelFromCountryCode = dvTravelFromCountryCode; 156 } 157 158 /** 159 * Gets the disbVchrTravelToCityName attribute. 160 * 161 * @return Returns the disbVchrTravelToCityName 162 */ 163 public String getDisbVchrTravelToCityName() { 164 return disbVchrTravelToCityName; 165 } 166 167 168 /** 169 * Sets the disbVchrTravelToCityName attribute. 170 * 171 * @param disbVchrTravelToCityName The disbVchrTravelToCityName to set. 172 */ 173 public void setDisbVchrTravelToCityName(String disbVchrTravelToCityName) { 174 this.disbVchrTravelToCityName = disbVchrTravelToCityName; 175 } 176 177 /** 178 * Gets the disbVchrTravelToStateCode attribute. 179 * 180 * @return Returns the disbVchrTravelToStateCode 181 */ 182 public String getDisbVchrTravelToStateCode() { 183 return disbVchrTravelToStateCode; 184 } 185 186 187 /** 188 * Sets the disbVchrTravelToStateCode attribute. 189 * 190 * @param disbVchrTravelToStateCode The disbVchrTravelToStateCode to set. 191 */ 192 public void setDisbVchrTravelToStateCode(String disbVchrTravelToStateCode) { 193 this.disbVchrTravelToStateCode = disbVchrTravelToStateCode; 194 } 195 196 /** 197 * Gets the disbVchrTravelToCountryCode attribute. 198 * 199 * @return Returns the disbVchrTravelToCountryCode 200 */ 201 public String getDisbVchrTravelToCountryCode() { 202 return disbVchrTravelToCountryCode; 203 } 204 205 206 /** 207 * Sets the disbVchrTravelToCountryCode attribute. 208 * 209 * @param disbVchrTravelToCountryCode The disbVchrTravelToCountryCode to set. 210 */ 211 public void setDisbVchrTravelToCountryCode(String disbVchrTravelToCountryCode) { 212 this.disbVchrTravelToCountryCode = disbVchrTravelToCountryCode; 213 } 214 215 /** 216 * Gets the dvPerdiemStartDttmStamp attribute. 217 * 218 * @return Returns the dvPerdiemStartDttmStamp 219 */ 220 public Timestamp getDvPerdiemStartDttmStamp() { 221 return dvPerdiemStartDttmStamp; 222 } 223 224 225 /** 226 * Sets the dvPerdiemStartDttmStamp attribute. 227 * 228 * @param dvPerdiemStartDttmStamp The dvPerdiemStartDttmStamp to set. 229 */ 230 public void setDvPerdiemStartDttmStamp(Timestamp dvPerdiemStartDttmStamp) { 231 this.dvPerdiemStartDttmStamp = dvPerdiemStartDttmStamp; 232 } 233 234 /** 235 * Gets the dvPerdiemEndDttmStamp attribute. 236 * 237 * @return Returns the dvPerdiemEndDttmStamp 238 */ 239 public Timestamp getDvPerdiemEndDttmStamp() { 240 return dvPerdiemEndDttmStamp; 241 } 242 243 244 /** 245 * Sets the dvPerdiemEndDttmStamp attribute. 246 * 247 * @param dvPerdiemEndDttmStamp The dvPerdiemEndDttmStamp to set. 248 */ 249 public void setDvPerdiemEndDttmStamp(Timestamp dvPerdiemEndDttmStamp) { 250 this.dvPerdiemEndDttmStamp = dvPerdiemEndDttmStamp; 251 } 252 253 /** 254 * Gets the disbVchrPerdiemCalculatedAmt attribute. 255 * 256 * @return Returns the disbVchrPerdiemCalculatedAmt 257 */ 258 public KualiDecimal getDisbVchrPerdiemCalculatedAmt() { 259 return disbVchrPerdiemCalculatedAmt; 260 } 261 262 263 /** 264 * Sets the disbVchrPerdiemCalculatedAmt attribute. 265 * 266 * @param disbVchrPerdiemCalculatedAmt The disbVchrPerdiemCalculatedAmt to set. 267 */ 268 public void setDisbVchrPerdiemCalculatedAmt(KualiDecimal disbVchrPerdiemCalculatedAmt) { 269 this.disbVchrPerdiemCalculatedAmt = disbVchrPerdiemCalculatedAmt; 270 } 271 272 /** 273 * Gets the disbVchrPerdiemActualAmount attribute. 274 * 275 * @return Returns the disbVchrPerdiemActualAmount 276 */ 277 public KualiDecimal getDisbVchrPerdiemActualAmount() { 278 return disbVchrPerdiemActualAmount; 279 } 280 281 282 /** 283 * Sets the disbVchrPerdiemActualAmount attribute. 284 * 285 * @param disbVchrPerdiemActualAmount The disbVchrPerdiemActualAmount to set. 286 */ 287 public void setDisbVchrPerdiemActualAmount(KualiDecimal disbVchrPerdiemActualAmount) { 288 this.disbVchrPerdiemActualAmount = disbVchrPerdiemActualAmount; 289 } 290 291 /** 292 * Gets the dvPerdiemChangeReasonText attribute. 293 * 294 * @return Returns the dvPerdiemChangeReasonText 295 */ 296 public String getDvPerdiemChangeReasonText() { 297 return dvPerdiemChangeReasonText; 298 } 299 300 301 /** 302 * Sets the dvPerdiemChangeReasonText attribute. 303 * 304 * @param dvPerdiemChangeReasonText The dvPerdiemChangeReasonText to set. 305 */ 306 public void setDvPerdiemChangeReasonText(String dvPerdiemChangeReasonText) { 307 this.dvPerdiemChangeReasonText = dvPerdiemChangeReasonText; 308 } 309 310 /** 311 * Gets the disbVchrServicePerformedDesc attribute. 312 * 313 * @return Returns the disbVchrServicePerformedDesc 314 */ 315 public String getDisbVchrServicePerformedDesc() { 316 return disbVchrServicePerformedDesc; 317 } 318 319 320 /** 321 * Sets the disbVchrServicePerformedDesc attribute. 322 * 323 * @param disbVchrServicePerformedDesc The disbVchrServicePerformedDesc to set. 324 */ 325 public void setDisbVchrServicePerformedDesc(String disbVchrServicePerformedDesc) { 326 this.disbVchrServicePerformedDesc = disbVchrServicePerformedDesc; 327 } 328 329 /** 330 * Gets the dvServicePerformedLocName attribute. 331 * 332 * @return Returns the dvServicePerformedLocName 333 */ 334 public String getDvServicePerformedLocName() { 335 return dvServicePerformedLocName; 336 } 337 338 339 /** 340 * Sets the dvServicePerformedLocName attribute. 341 * 342 * @param dvServicePerformedLocName The dvServicePerformedLocName to set. 343 */ 344 public void setDvServicePerformedLocName(String dvServicePerformedLocName) { 345 this.dvServicePerformedLocName = dvServicePerformedLocName; 346 } 347 348 /** 349 * Gets the dvServiceRegularEmprName attribute. 350 * 351 * @return Returns the dvServiceRegularEmprName 352 */ 353 public String getDvServiceRegularEmprName() { 354 return dvServiceRegularEmprName; 355 } 356 357 358 /** 359 * Sets the dvServiceRegularEmprName attribute. 360 * 361 * @param dvServiceRegularEmprName The dvServiceRegularEmprName to set. 362 */ 363 public void setDvServiceRegularEmprName(String dvServiceRegularEmprName) { 364 this.dvServiceRegularEmprName = dvServiceRegularEmprName; 365 } 366 367 /** 368 * Gets the disbVchrAutoFromCityName attribute. 369 * 370 * @return Returns the disbVchrAutoFromCityName 371 */ 372 public String getDisbVchrAutoFromCityName() { 373 return disbVchrAutoFromCityName; 374 } 375 376 377 /** 378 * Sets the disbVchrAutoFromCityName attribute. 379 * 380 * @param disbVchrAutoFromCityName The disbVchrAutoFromCityName to set. 381 */ 382 public void setDisbVchrAutoFromCityName(String disbVchrAutoFromCityName) { 383 this.disbVchrAutoFromCityName = disbVchrAutoFromCityName; 384 } 385 386 /** 387 * Gets the disbVchrAutoFromStateCode attribute. 388 * 389 * @return Returns the disbVchrAutoFromStateCode 390 */ 391 public String getDisbVchrAutoFromStateCode() { 392 return disbVchrAutoFromStateCode; 393 } 394 395 396 /** 397 * Sets the disbVchrAutoFromStateCode attribute. 398 * 399 * @param disbVchrAutoFromStateCode The disbVchrAutoFromStateCode to set. 400 */ 401 public void setDisbVchrAutoFromStateCode(String disbVchrAutoFromStateCode) { 402 this.disbVchrAutoFromStateCode = disbVchrAutoFromStateCode; 403 } 404 405 /** 406 * Gets the disbVchrAutoToCityName attribute. 407 * 408 * @return Returns the disbVchrAutoToCityName 409 */ 410 public String getDisbVchrAutoToCityName() { 411 return disbVchrAutoToCityName; 412 } 413 414 415 /** 416 * Sets the disbVchrAutoToCityName attribute. 417 * 418 * @param disbVchrAutoToCityName The disbVchrAutoToCityName to set. 419 */ 420 public void setDisbVchrAutoToCityName(String disbVchrAutoToCityName) { 421 this.disbVchrAutoToCityName = disbVchrAutoToCityName; 422 } 423 424 /** 425 * Gets the disbVchrAutoToStateCode attribute. 426 * 427 * @return Returns the disbVchrAutoToStateCode 428 */ 429 public String getDisbVchrAutoToStateCode() { 430 return disbVchrAutoToStateCode; 431 } 432 433 434 /** 435 * Sets the disbVchrAutoToStateCode attribute. 436 * 437 * @param disbVchrAutoToStateCode The disbVchrAutoToStateCode to set. 438 */ 439 public void setDisbVchrAutoToStateCode(String disbVchrAutoToStateCode) { 440 this.disbVchrAutoToStateCode = disbVchrAutoToStateCode; 441 } 442 443 /** 444 * Gets the disbVchrAutoRoundTripCode attribute. 445 * 446 * @return Returns the disbVchrAutoRoundTripCode 447 */ 448 public boolean getDisbVchrAutoRoundTripCode() { 449 return disbVchrAutoRoundTripCode; 450 } 451 452 453 /** 454 * Sets the disbVchrAutoRoundTripCode attribute. 455 * 456 * @param disbVchrAutoRoundTripCode The disbVchrAutoRoundTripCode to set. 457 */ 458 public void setDisbVchrAutoRoundTripCode(boolean disbVchrAutoRoundTripCode) { 459 this.disbVchrAutoRoundTripCode = disbVchrAutoRoundTripCode; 460 } 461 462 /** 463 * Gets the dvPersonalCarMileageAmount attribute. 464 * 465 * @return Returns the dvPersonalCarMileageAmount 466 */ 467 public Integer getDvPersonalCarMileageAmount() { 468 return dvPersonalCarMileageAmount; 469 } 470 471 472 /** 473 * Sets the dvPersonalCarMileageAmount attribute. 474 * 475 * @param dvPersonalCarMileageAmount The dvPersonalCarMileageAmount to set. 476 */ 477 public void setDvPersonalCarMileageAmount(Integer dvPersonalCarMileageAmount) { 478 this.dvPersonalCarMileageAmount = dvPersonalCarMileageAmount; 479 } 480 481 /** 482 * Gets the disbVchrPersonalCarRate attribute. 483 * 484 * @return Returns the disbVchrPersonalCarRate 485 */ 486 public KualiDecimal getDisbVchrPersonalCarRate() { 487 return disbVchrPersonalCarRate; 488 } 489 490 491 /** 492 * Sets the disbVchrPersonalCarRate attribute. 493 * 494 * @param disbVchrPersonalCarRate The disbVchrPersonalCarRate to set. 495 */ 496 public void setDisbVchrPersonalCarRate(KualiDecimal disbVchrPersonalCarRate) { 497 this.disbVchrPersonalCarRate = disbVchrPersonalCarRate; 498 } 499 500 /** 501 * Gets the disbVchrPersonalCarAmount attribute. 502 * 503 * @return Returns the disbVchrPersonalCarAmount 504 */ 505 public KualiDecimal getDisbVchrPersonalCarAmount() { 506 return dvPersonalCarMileageAmount == null ? null : disbVchrPersonalCarAmount; 507 } 508 509 510 /** 511 * Sets the disbVchrPersonalCarAmount attribute. 512 * 513 * @param disbVchrPersonalCarAmount The disbVchrPersonalCarAmount to set. 514 */ 515 public void setDisbVchrPersonalCarAmount(KualiDecimal disbVchrPersonalCarAmount) { 516 this.disbVchrPersonalCarAmount = disbVchrPersonalCarAmount; 517 } 518 519 /** 520 * Gets the disbVchrExceptionCode attribute. 521 * 522 * @return Returns the disbVchrExceptionCode 523 */ 524 public boolean getDisbVchrExceptionCode() { 525 return disbVchrExceptionCode; 526 } 527 528 529 /** 530 * Sets the disbVchrExceptionCode attribute. 531 * 532 * @param disbVchrExceptionCode The disbVchrExceptionCode to set. 533 */ 534 public void setDisbVchrExceptionCode(boolean disbVchrExceptionCode) { 535 this.disbVchrExceptionCode = disbVchrExceptionCode; 536 } 537 538 /** 539 * Gets the financialDocumentNextLineNbr attribute. 540 * 541 * @return Returns the financialDocumentNextLineNbr 542 */ 543 public Integer getFinancialDocumentNextLineNbr() { 544 return financialDocumentNextLineNbr; 545 } 546 547 548 /** 549 * Sets the financialDocumentNextLineNbr attribute. 550 * 551 * @param financialDocumentNextLineNbr The financialDocumentNextLineNbr to set. 552 */ 553 public void setFinancialDocumentNextLineNbr(Integer financialDocumentNextLineNbr) { 554 this.financialDocumentNextLineNbr = financialDocumentNextLineNbr; 555 } 556 557 /** 558 * Gets the disbVchrNonEmpTravelerName attribute. 559 * 560 * @return Returns the disbVchrNonEmpTravelerName 561 */ 562 public String getDisbVchrNonEmpTravelerName() { 563 return disbVchrNonEmpTravelerName; 564 } 565 566 567 /** 568 * Sets the disbVchrNonEmpTravelerName attribute. 569 * 570 * @param disbVchrNonEmpTravelerName The disbVchrNonEmpTravelerName to set. 571 */ 572 public void setDisbVchrNonEmpTravelerName(String disbVchrNonEmpTravelerName) { 573 this.disbVchrNonEmpTravelerName = disbVchrNonEmpTravelerName; 574 } 575 576 /** 577 * Gets the disbVchrPerdiemRate attribute. 578 * 579 * @return Returns the disbVchrPerdiemRate 580 */ 581 public KualiDecimal getDisbVchrPerdiemRate() { 582 return disbVchrPerdiemRate; 583 } 584 585 586 /** 587 * Sets the disbVchrPerdiemRate attribute. 588 * 589 * @param disbVchrPerdiemRate The disbVchrPerdiemRate to set. 590 */ 591 public void setDisbVchrPerdiemRate(KualiDecimal disbVchrPerdiemRate) { 592 this.disbVchrPerdiemRate = disbVchrPerdiemRate; 593 } 594 595 /** 596 * Gets the disbVchrPerdiemCategoryName attribute. 597 * 598 * @return Returns the disbVchrPerdiemCategoryName 599 */ 600 public String getDisbVchrPerdiemCategoryName() { 601 return disbVchrPerdiemCategoryName; 602 } 603 604 605 /** 606 * Sets the disbVchrPerdiemCategoryName attribute. 607 * 608 * @param disbVchrPerdiemCategoryName The disbVchrPerdiemCategoryName to set. 609 */ 610 public void setDisbVchrPerdiemCategoryName(String disbVchrPerdiemCategoryName) { 611 this.disbVchrPerdiemCategoryName = disbVchrPerdiemCategoryName; 612 } 613 614 /** 615 * Gets the disbVchrMileageCalculatedAmt attribute. 616 * 617 * @return Returns the disbVchrMileageCalculatedAmt 618 */ 619 public KualiDecimal getDisbVchrMileageCalculatedAmt() { 620 return dvPersonalCarMileageAmount == null ? null : disbVchrMileageCalculatedAmt; 621 } 622 623 624 /** 625 * Sets the disbVchrMileageCalculatedAmt attribute. 626 * 627 * @param disbVchrMileageCalculatedAmt The disbVchrMileageCalculatedAmt to set. 628 */ 629 public void setDisbVchrMileageCalculatedAmt(KualiDecimal disbVchrMileageCalculatedAmt) { 630 this.disbVchrMileageCalculatedAmt = disbVchrMileageCalculatedAmt; 631 } 632 633 /** 634 * Gets the dvNonEmployeeExpenses attribute. 635 * 636 * @return Returns the dvNonEmployeeExpenses. 637 */ 638 public List getDvNonEmployeeExpenses() { 639 return dvNonEmployeeExpenses; 640 } 641 642 /** 643 * Sets the dvNonEmployeeExpenses attribute value. 644 * 645 * @param dvNonEmployeeExpenses The dvNonEmployeeExpenses to set. 646 */ 647 public void setDvNonEmployeeExpenses(List dvNonEmployeeExpenses) { 648 this.dvNonEmployeeExpenses = dvNonEmployeeExpenses; 649 } 650 651 /** 652 * @return Returns the dvPrePaidEmployeeExpenses. 653 */ 654 public List getDvPrePaidEmployeeExpenses() { 655 return dvPrePaidEmployeeExpenses; 656 } 657 658 /** 659 * @param dvPrePaidEmployeeExpenses The dvPrePaidEmployeeExpenses to set. 660 */ 661 public void setDvPrePaidEmployeeExpenses(List dvPrePaidEmployeeExpenses) { 662 this.dvPrePaidEmployeeExpenses = dvPrePaidEmployeeExpenses; 663 } 664 665 /** 666 * Adds a dv non employee expense line 667 * 668 * @param line 669 */ 670 public void addDvNonEmployeeExpenseLine(DisbursementVoucherNonEmployeeExpense line) { 671 line.setFinancialDocumentLineNumber(getFinancialDocumentNextLineNbr()); 672 this.dvNonEmployeeExpenses.add(line); 673 this.financialDocumentNextLineNbr = new Integer(getFinancialDocumentNextLineNbr().intValue() + 1); 674 } 675 676 /** 677 * Adds a dv pre paid expense line 678 * 679 * @param line 680 */ 681 public void addDvPrePaidEmployeeExpenseLine(DisbursementVoucherNonEmployeeExpense line) { 682 line.setFinancialDocumentLineNumber(getFinancialDocumentNextLineNbr()); 683 this.dvPrePaidEmployeeExpenses.add(line); 684 this.financialDocumentNextLineNbr = new Integer(getFinancialDocumentNextLineNbr().intValue() + 1); 685 } 686 687 /** 688 * Returns the per diem start date time as a string representation. 689 * 690 * @return 691 */ 692 public String getPerDiemStartDateTime() { 693 return SpringContext.getBean(DateTimeService.class).toDateTimeString(dvPerdiemStartDttmStamp); 694 } 695 696 /** 697 * Sets the per diem start timestamp from the string representation. 698 * 699 * @param perDiemStartDateTime 700 */ 701 public void setPerDiemStartDateTime(String perDiemStartDateTime) { 702 try { 703 this.dvPerdiemStartDttmStamp = SpringContext.getBean(DateTimeService.class).convertToSqlTimestamp(perDiemStartDateTime); 704 } 705 catch (ParseException e) { 706 this.dvPerdiemStartDttmStamp = null; 707 } 708 } 709 710 /** 711 * Returns the per diem end date time as a string representation. 712 * 713 * @return String 714 */ 715 public String getPerDiemEndDateTime() { 716 return SpringContext.getBean(DateTimeService.class).toDateTimeString(dvPerdiemEndDttmStamp); 717 } 718 719 /** 720 * Sets the per diem start timestamp from the string representation. 721 * 722 * @param perDiemEndDateTime 723 */ 724 public void setPerDiemEndDateTime(String perDiemEndDateTime) { 725 try { 726 this.dvPerdiemEndDttmStamp = SpringContext.getBean(DateTimeService.class).convertToSqlTimestamp(perDiemEndDateTime); 727 } 728 catch (ParseException e) { 729 this.dvPerdiemEndDttmStamp = null; 730 } 731 } 732 733 /** 734 * Calculates the total pre paid expense amount 735 * 736 * @return KualiDecimal 737 */ 738 public KualiDecimal getTotalPrePaidAmount() { 739 KualiDecimal totalPrePaidAmount = KualiDecimal.ZERO; 740 if (dvPrePaidEmployeeExpenses != null) { 741 for (Iterator iter = dvPrePaidEmployeeExpenses.iterator(); iter.hasNext();) { 742 DisbursementVoucherNonEmployeeExpense element = (DisbursementVoucherNonEmployeeExpense) iter.next(); 743 if (ObjectUtils.isNotNull(element.getDisbVchrExpenseAmount())) { 744 totalPrePaidAmount = totalPrePaidAmount.add(element.getDisbVchrExpenseAmount()); 745 } 746 } 747 } 748 749 return totalPrePaidAmount; 750 } 751 752 /** 753 * Calculates the total expense amount 754 * 755 * @return KualiDecimal 756 */ 757 public KualiDecimal getTotalExpenseAmount() { 758 KualiDecimal totalExpenseAmount = KualiDecimal.ZERO; 759 if (dvNonEmployeeExpenses != null) { 760 for (Iterator iter = dvNonEmployeeExpenses.iterator(); iter.hasNext();) { 761 DisbursementVoucherNonEmployeeExpense element = (DisbursementVoucherNonEmployeeExpense) iter.next(); 762 if (ObjectUtils.isNotNull(element.getDisbVchrExpenseAmount())) { 763 totalExpenseAmount = totalExpenseAmount.add(element.getDisbVchrExpenseAmount()); 764 } 765 } 766 } 767 return totalExpenseAmount; 768 } 769 770 /** 771 * Calculates the total travel amount. 772 * 773 * @return KualiDecimal 774 */ 775 public KualiDecimal getTotalTravelAmount() { 776 KualiDecimal travelAmount = KualiDecimal.ZERO; 777 778 // get non paid expenses first 779 travelAmount = travelAmount.add(getTotalExpenseAmount()); 780 781 // add in per diem amount 782 if (disbVchrPerdiemActualAmount != null) { 783 travelAmount = travelAmount.add(disbVchrPerdiemActualAmount); 784 } 785 // add in personnal car amount 786 if (disbVchrPersonalCarAmount != null) { 787 travelAmount = travelAmount.add(disbVchrPersonalCarAmount); 788 } 789 790 return travelAmount; 791 } 792 793 /** 794 * @param totalTravelAmount The totalTravelAmount to set. 795 */ 796 public void setTotalTravelAmount(KualiDecimal totalTravelAmount) { 797 this.totalTravelAmount = totalTravelAmount; 798 } 799 800 /** 801 * @see org.kuali.rice.kns.bo.BusinessObjectBase#toStringMapper() 802 */ 803 @Override 804 protected LinkedHashMap toStringMapper() { 805 LinkedHashMap m = new LinkedHashMap(); 806 m.put(KFSPropertyConstants.DOCUMENT_NUMBER, this.documentNumber); 807 return m; 808 } 809 }