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.pdp.businessobject;
017
018 import java.sql.Date;
019 import java.sql.Timestamp;
020 import java.text.ParseException;
021 import java.util.ArrayList;
022 import java.util.Iterator;
023 import java.util.LinkedHashMap;
024 import java.util.List;
025
026 import org.apache.commons.lang.StringUtils;
027 import org.kuali.kfs.pdp.PdpConstants;
028 import org.kuali.kfs.pdp.PdpKeyConstants;
029 import org.kuali.kfs.pdp.PdpPropertyConstants;
030 import org.kuali.kfs.sys.KFSConstants;
031 import org.kuali.kfs.sys.KFSPropertyConstants;
032 import org.kuali.kfs.sys.businessobject.Bank;
033 import org.kuali.kfs.sys.businessobject.TimestampedBusinessObjectBase;
034 import org.kuali.kfs.sys.context.SpringContext;
035 import org.kuali.rice.kns.service.DateTimeService;
036 import org.kuali.rice.kns.service.KeyValuesService;
037 import org.kuali.rice.kns.service.KualiConfigurationService;
038 import org.kuali.rice.kns.service.ParameterService;
039 import org.kuali.rice.kns.util.KualiDecimal;
040 import org.kuali.rice.kns.util.KualiInteger;
041
042 /**
043 * This class represents the PaymentGroup
044 */
045 public class PaymentGroup extends TimestampedBusinessObjectBase {
046 private static KualiDecimal zero = KualiDecimal.ZERO;
047
048 private KualiInteger id; // PMT_GRP_ID
049 private String payeeName; // PMT_PAYEE_NM
050 private String payeeId; // PAYEE_ID
051 private String payeeIdTypeCd; // PAYEE_ID_TYP_CD
052 private String alternatePayeeId; // ALTRNT_PAYEE_ID
053 private String alternatePayeeIdTypeCd; // ALTRNT_PAYEE_ID_TYP_CD
054 private String payeeOwnerCd; // PAYEE_OWNR_CD
055 private String customerInstitutionNumber; // CUST_IU_NBR
056 private String line1Address; // PMT_LN1_ADDR
057 private String line2Address; // PMT_LN2_ADDR
058 private String line3Address; // PMT_LN3_ADDR
059 private String line4Address; // PMT_LN4_ADDR
060 private String city; // PMT_CTY_NM
061 private String state; // PMT_ST_NM
062 private String country; // PMT_CNTRY_NM
063 private String zipCd; // PMT_ZIP_CD
064 private Boolean campusAddress; // CMP_ADDR_IND
065 private Date paymentDate; // PMT_DT DATE
066 private Boolean pymtAttachment; // PMT_ATTCHMNT_IND
067 private Boolean pymtSpecialHandling; // PMT_SPCL_HANDLG_IND
068 private Boolean taxablePayment; // PMT_TXBL_IND
069 private Boolean nraPayment; // NRA_PMT_IND
070 private Boolean processImmediate; // PROC_IMD_IND
071 private boolean combineGroups; // PMT_GRP_CMB_IND
072 private String achBankRoutingNbr; // ACH_BNK_RTNG_NBR
073 private String adviceEmailAddress; // ADV_EMAIL_ADDR
074 private Boolean employeeIndicator; // EMP_IND
075 private String creditMemoNbr; // PMT_CRDT_MEMO_NBR
076 private KualiDecimal creditMemoAmount; // PMT_CRDT_MEMO_AMT
077 private KualiInteger disbursementNbr; // DISB_NBR
078 private Date disbursementDate; // DISB_TS
079 private String physCampusProcessCd; // PHYS_CMP_PROC_CD
080 private String sortValue; // PMT_SORT_ORD_VAL
081 private String achAccountType; // CUST_ACCT_TYP_CD
082 private Timestamp epicPaymentCancelledExtractedDate; // PDP_EPIC_PMT_CNCL_EXTRT_TS
083 private Timestamp epicPaymentPaidExtractedDate; // PDP_EPIC_PMT_PD_EXTRT_TS
084 private Timestamp adviceEmailSentDate; // ADV_EMAIL_SNT_TS
085
086 private KualiInteger batchId;
087 private Batch batch; // PMT_BATCH_ID
088
089 private KualiInteger processId;
090 private PaymentProcess process; // PROC_ID
091
092 private String paymentStatusCode;
093 private PaymentStatus paymentStatus; // PMT_STAT_CD
094
095 private String disbursementTypeCode;
096 private DisbursementType disbursementType; // DISB_TYP_CD
097
098 private String bankCode;
099 private Bank bank; // BNK_ID
100
101 private AchAccountNumber achAccountNumber;
102
103 private List<PaymentGroupHistory> paymentGroupHistory = new ArrayList<PaymentGroupHistory>();
104 private List<PaymentDetail> paymentDetails = new ArrayList<PaymentDetail>();
105
106 /**
107 * Constructs a PaymentGroup.java.
108 */
109 public PaymentGroup() {
110 super();
111 }
112
113 /**
114 * This method gets the dailyReportSpecialHandling
115 * @return dailyReportSpecialHandling
116 */
117 public boolean isDailyReportSpecialHandling() {
118 return pymtSpecialHandling && !processImmediate;
119 }
120
121 /**
122 * This method gets the dailyReportAttachment
123 * @return dailyReportAttachment
124 */
125 public boolean isDailyReportAttachment() {
126 return !pymtSpecialHandling && !processImmediate && pymtAttachment;
127 }
128
129 /**
130 * This method gets the paymentStatusCode
131 * @return paymentStatusCode
132 */
133 public String getPaymentStatusCode() {
134 return paymentStatusCode;
135 }
136
137 /**
138 * @return String containing the payment status code and indication or cancel/reissued payments or stale payments
139 */
140 public String getPaymentStatusCodeWithHistory() {
141 if (paymentStatus == null) {
142 this.refreshReferenceObject(PdpPropertyConstants.PAYMENT_STATUS);
143 }
144
145 // check for canceled and reissued
146 String paymentStatusWithHistory = "";
147 if (paymentStatus != null) {
148 paymentStatusWithHistory += paymentStatus.getName();
149 }
150
151 boolean isCanceledReissued = false;
152 for (PaymentGroupHistory paymentGroupHistory : getPaymentGroupHistory()) {
153 if (PdpConstants.PaymentChangeCodes.CANCEL_REISSUE_DISBURSEMENT.equals(paymentGroupHistory.getPaymentChangeCode())) {
154 isCanceledReissued = true;
155 }
156 }
157
158 if (isCanceledReissued) {
159 paymentStatusWithHistory += " (Reissued)";
160 }
161
162 // check for stale payments, if one payment detail is stale then they all are
163 PaymentDetail paymentDetail = getPaymentDetails().get(0);
164 if (!paymentDetail.isDisbursementActionAllowed()) {
165 paymentStatusWithHistory += " (Stale)";
166 }
167
168 return paymentStatusWithHistory;
169 }
170
171 /**
172 * WIDTH MUST BE LESS THAN THE # OF SPACES
173 *
174 * @param width
175 * @param val
176 * @return
177 */
178 private String getWidthString(int width, String val) {
179 return (val + " ").substring(0, width - 1);
180 }
181
182 /**
183 * This method gets the boolean valuse of a Boolean object.
184 * @param b the boolean object
185 * @return the boolean value
186 */
187 private boolean booleanValue(Boolean b) {
188 boolean bv = false;
189 if (b != null) {
190 bv = b.booleanValue();
191 }
192 return bv;
193 }
194
195 /**
196 * This method gets the notle lines
197 * @return the note lines
198 */
199 public int getNoteLines() {
200 int count = 0;
201 for (Iterator iter = this.getPaymentDetails().iterator(); iter.hasNext();) {
202 PaymentDetail element = (PaymentDetail) iter.next();
203 count++; // Add a line for the invoice #
204 count = count + element.getNotes().size();
205 }
206 return count;
207 }
208
209 /**
210 * Get the total of all the detail items
211 *
212 * @return
213 */
214 public KualiDecimal getNetPaymentAmount() {
215 KualiDecimal amt = KualiDecimal.ZERO;
216 for (Iterator iter = this.getPaymentDetails().iterator(); iter.hasNext();) {
217 PaymentDetail element = (PaymentDetail) iter.next();
218 amt = amt.add(element.getNetPaymentAmount());
219 }
220 return amt;
221 }
222
223 /**
224 * @hibernate.set name="paymentDetail"
225 * @hibernate.collection-key column="pmt_grp_id"
226 * @hibernate.collection-one-to-many class="edu.iu.uis.pdp.bo.PaymentDetail"
227 */
228 public List<PaymentDetail> getPaymentDetails() {
229 return paymentDetails;
230 }
231
232 /**
233 * This method sets the payment details list
234 * @param paymentDetail
235 */
236 public void setPaymentDetails(List<PaymentDetail> paymentDetail) {
237 this.paymentDetails = paymentDetail;
238 }
239
240 /**
241 * This method adds a paymentDetail
242 * @param pgh the payments detail to be added
243 */
244 public void addPaymentDetails(PaymentDetail pgh) {
245 pgh.setPaymentGroup(this);
246 paymentDetails.add(pgh);
247 }
248
249 public void deletePaymentDetails(PaymentDetail pgh) {
250 paymentDetails.remove(pgh);
251 }
252
253 /**
254 * @hibernate.set name="paymentGroupHistory"
255 * @hibernate.collection-key column="pmt_grp_id"
256 * @hibernate.collection-one-to-many class="edu.iu.uis.pdp.bo.PaymentGroupHistory"
257 */
258 public List<PaymentGroupHistory> getPaymentGroupHistory() {
259 return paymentGroupHistory;
260 }
261
262 /**
263 * This method sets the payment group history list
264 * @param paymentGroupHistory
265 */
266 public void setPaymentGroupHistory(List<PaymentGroupHistory> paymentGroupHistory) {
267 this.paymentGroupHistory = paymentGroupHistory;
268 }
269
270 /**
271 * This method adds a paymentGroupHistory
272 * @param pd the paymentGroupHistory to be added
273 */
274 public void addPaymentGroupHistory(PaymentGroupHistory pd) {
275 pd.setPaymentGroup(this);
276 paymentGroupHistory.add(pd);
277 }
278
279 /**
280 * This method deletes a paymentGroupHistory
281 * @param pd the paymentGroupHistory to be deleted
282 */
283 public void deletePaymentGroupHistory(PaymentGroupHistory pd) {
284 paymentGroupHistory.remove(pd);
285 }
286
287 /**
288 * @hibernate.id column="PMT_GRP_ID" generator-class="sequence"
289 * @hibernate.generator-param name="sequence" value="PDP.PDP_PMT_GRP_ID_SEQ"
290 * @return
291 */
292 public KualiInteger getId() {
293 return id;
294 }
295
296 /**
297 * @hibernate.one-to-one class="edu.iu.uis.pdp.bo.AchAccountNumber"
298 * @return
299 */
300 public AchAccountNumber getAchAccountNumber() {
301 return achAccountNumber;
302 }
303
304 /**
305 * This method sets the achAccountNumber
306 * @param aan
307 */
308 public void setAchAccountNumber(AchAccountNumber aan) {
309 this.achAccountNumber = aan;
310 }
311
312 /**
313 * This method gets the sortValue
314 * @return sortValue
315 */
316 public String getSortValue() {
317 return sortValue;
318 }
319
320 /**
321 * This method sets the sort value
322 * @param sortGroupId
323 */
324 public void setSortValue(int sortGroupId) {
325 String defaultSortOrderParameterName = SpringContext.getBean(KualiConfigurationService.class).getPropertyString(PdpKeyConstants.DEFAULT_SORT_GROUP_ID_PARAMETER);
326 String defaultSortOrderParameterValue = SpringContext.getBean(ParameterService.class).getParameterValue(PaymentGroup.class, defaultSortOrderParameterName);
327
328 StringBuffer sb = new StringBuffer();
329
330 sb.append(sortGroupId);
331
332 CustomerProfile cp = this.getBatch().getCustomerProfile();
333 sb.append(cp.getChartCode());
334 sb.append(getWidthString(4, cp.getUnitCode()));
335 sb.append(getWidthString(4, cp.getSubUnitCode()));
336
337 if (defaultSortOrderParameterValue.equals(String.valueOf(sortGroupId))) {
338 sb.append(this.getPayeeId());
339 sb.append(this.getPayeeIdTypeCd());
340 }
341 else {
342 sb.append(this.getPayeeName());
343 }
344 this.sortValue = sb.toString();
345 }
346
347 /**
348 * @hibernate.property column="PMT_CTY_NM" length="30"
349 * @return Returns the city.
350 */
351 public String getCity() {
352 return city;
353 }
354
355 /**
356 * @param city The city to set.
357 */
358 public void setCity(String city) {
359 this.city = city;
360 }
361
362 public boolean getCombineGroups() {
363 return combineGroups;
364 }
365
366 public void setCombineGroups(boolean combineGroups) {
367 this.combineGroups = combineGroups;
368 }
369
370 /**
371 * @hibernate.property column="PMT_CNTRY_NM" length="30"
372 * @return Returns the country.
373 */
374 public String getCountry() {
375 return country;
376 }
377
378 /**
379 * @param country The country to set.
380 */
381 public void setCountry(String country) {
382 this.country = country;
383 }
384
385 /**
386 * @hibernate.property column="PMT_ST_NM" length="30"
387 * @return Returns the state.
388 */
389 public String getState() {
390 return state;
391 }
392
393 /**
394 * @param state The state to set.
395 */
396 public void setState(String state) {
397 this.state = state;
398 }
399
400 /**
401 * @return
402 * @hibernate.property column="ACH_BNK_RTNG_NBR" length="9"
403 */
404 public String getAchBankRoutingNbr() {
405 return achBankRoutingNbr;
406 }
407
408 /**
409 * @return
410 * @hibernate.property column="ADV_EMAIL_ADDR" length="50"
411 */
412 public String getAdviceEmailAddress() {
413 return adviceEmailAddress;
414 }
415
416 /**
417 * @return
418 * @hibernate.property column="ALTRNT_PAYEE_ID" length="25"
419 */
420 public String getAlternatePayeeId() {
421 return alternatePayeeId;
422 }
423
424 /**
425 * @return
426 * @hibernate.property column="ALTRNT_PAYEE_ID_TYP_CD" length="2"
427 */
428 public String getAlternatePayeeIdTypeCd() {
429 return alternatePayeeIdTypeCd;
430 }
431
432 /**
433 * @return
434 * @hibernate.many-to-one column="BNK_ID" class="edu.iu.uis.pdp.bo.Bank" not-null="false"
435 */
436 public Bank getBank() {
437 return bank;
438 }
439
440 /**
441 * @return
442 * @hibernate.many-to-one column="PMT_BATCH_ID" class="edu.iu.uis.pdp.bo.Batch" not-null="true"
443 */
444 public Batch getBatch() {
445 return batch;
446 }
447
448 /**
449 * Gets the bankCode attribute.
450 *
451 * @return Returns the bankCode.
452 */
453 public String getBankCode() {
454 return bankCode;
455 }
456
457 /**
458 * Sets the bankCode attribute value.
459 *
460 * @param bankCode The bankCode to set.
461 */
462 public void setBankCode(String bankCode) {
463 this.bankCode = bankCode;
464 }
465
466 /**
467 * @return
468 * @hibernate.property column="CMP_ADDR_IND" type="yes_no"
469 */
470 public Boolean getCampusAddress() {
471 return campusAddress;
472 }
473
474 /**
475 * @return
476 * @hibernate.property column="PMT_CRDT_MEMO_AMT" length="14"
477 */
478 public KualiDecimal getCreditMemoAmount() {
479 return creditMemoAmount;
480 }
481
482 /**
483 * @return
484 * @hibernate.property column="PMT_CRDT_MEMO_NBR" length="14"
485 */
486 public String getCreditMemoNbr() {
487 return creditMemoNbr;
488 }
489
490 public String getCustomerInstitutionNumber() {
491 return customerInstitutionNumber;
492 }
493
494 /**
495 * This method gets the disbursementDate.
496 * @return disbursementDate
497 */
498 public Date getDisbursementDate() {
499 return disbursementDate;
500 }
501
502 /**
503 * @return
504 * @hibernate.property column="DISB_NBR" length="9"
505 */
506 public KualiInteger getDisbursementNbr() {
507 return disbursementNbr;
508 }
509
510 /**
511 * @return
512 * @hibernate.many-to-one column="DISB_TYP_CD" class="edu.iu.uis.pdp.bo.DisbursementType" not-null="false"
513 */
514 public DisbursementType getDisbursementType() {
515 return disbursementType;
516 }
517
518 public Boolean getEmployeeIndicator() {
519 return employeeIndicator;
520 }
521
522 /**
523 * @return
524 * @hibernate.property column="PMT_LN1_ADDR" length="45"
525 */
526 public String getLine1Address() {
527 return line1Address;
528 }
529
530 /**
531 * @return
532 * @hibernate.property column="PMT_LN2_ADDR" length="45"
533 */
534 public String getLine2Address() {
535 return line2Address;
536 }
537
538 /**
539 * @return
540 * @hibernate.property column="PMT_LN3_ADDR" length="45"
541 */
542 public String getLine3Address() {
543 return line3Address;
544 }
545
546 /**
547 * @return
548 * @hibernate.property column="PMT_LN4_ADDR" length="45"
549 */
550 public String getLine4Address() {
551 return line4Address;
552 }
553
554 /**
555 * @return
556 * @hibernate.property column="NRA_PMT_IND" type="yes_no"
557 */
558 public Boolean getNraPayment() {
559 return nraPayment;
560 }
561
562 /**
563 * @return
564 * @hibernate.property column="PAYEE_ID" length="25"
565 */
566 public String getPayeeId() {
567 return payeeId;
568 }
569
570 /**
571 * @return
572 * @hibernate.property column="PAYEE_ID_TYP_CD" length="1"
573 */
574 public String getPayeeIdTypeCd() {
575 return payeeIdTypeCd;
576 }
577
578 /**
579 * @return
580 * @hibernate.property column="PMT_PAYEE_NM" length="40"
581 */
582 public String getPayeeName() {
583 return payeeName;
584 }
585
586 /**
587 * @return
588 * @hibernate.property column="PAYEE_OWNR_CD" length="2"
589 */
590 public String getPayeeOwnerCd() {
591 return payeeOwnerCd;
592 }
593
594 /**
595 * @return
596 * @hibernate.property column="PMT_DT"
597 */
598 public Date getPaymentDate() {
599 return paymentDate;
600 }
601
602 /**
603 * @return
604 * @hibernate.many-to-one column="PMT_STAT_CD" class="edu.iu.uis.pdp.bo.PaymentStatus" not-null="true"
605 */
606 public PaymentStatus getPaymentStatus() {
607 return paymentStatus;
608 }
609
610 /**
611 * @return
612 * @hibernate.property column="PHYS_CMP_PROC_CD" length="2"
613 */
614 public String getPhysCampusProcessCd() {
615 return physCampusProcessCd;
616 }
617
618 /**
619 * @return
620 * @hibernate.many-to-one column="PROC_ID" class="edu.iu.uis.pdp.bo.PaymentProcess" not-null="false"
621 */
622 public PaymentProcess getProcess() {
623 return process;
624 }
625
626 /**
627 * @return
628 * @hibernate.property column="PROC_IMD_IND" type="yes_no" length="1"
629 */
630 public Boolean getProcessImmediate() {
631 return processImmediate;
632 }
633
634 /**
635 * @return
636 * @hibernate.property column="PMT_ATTCHMNT_IND" type="yes_no" length="1"
637 */
638 public Boolean getPymtAttachment() {
639 return pymtAttachment;
640 }
641
642 /**
643 * @return
644 * @hibernate.property column="PMT_SPCL_HANDLG_IND" type="yes_no" length="1"
645 */
646 public Boolean getPymtSpecialHandling() {
647 return pymtSpecialHandling;
648 }
649
650 /**
651 * @return
652 * @hibernate.property column="PMT_TXBL_IND" type="yes_no" length="1"
653 */
654 public Boolean getTaxablePayment() {
655 return taxablePayment;
656 }
657
658 /**
659 * @return
660 * @hibernate.property column="PMT_ZIP_CD" length="2"
661 */
662 public String getZipCd() {
663 return zipCd;
664 }
665
666 /**
667 * @param integer
668 */
669 public void setAchBankRoutingNbr(String s) {
670 achBankRoutingNbr = s;
671 }
672
673 /**
674 * @param string
675 */
676 public void setAdviceEmailAddress(String string) {
677 adviceEmailAddress = string;
678 }
679
680 /**
681 * @param string
682 */
683 public void setAlternatePayeeId(String string) {
684 alternatePayeeId = string;
685 }
686
687 /**
688 * @param string
689 */
690 public void setAlternatePayeeIdTypeCd(String string) {
691 alternatePayeeIdTypeCd = string;
692 }
693
694 /**
695 * @param integer
696 */
697 public void setBank(Bank bank) {
698 this.bank = bank;
699 }
700
701 /**
702 * @param integer
703 */
704 public void setBatch(Batch b) {
705 batch = b;
706 }
707
708 /**
709 * @param boolean1
710 */
711 public void setCampusAddress(Boolean boolean1) {
712 campusAddress = boolean1;
713 }
714
715 /**
716 * @param decimal
717 */
718 public void setCreditMemoAmount(KualiDecimal decimal) {
719 creditMemoAmount = decimal;
720 }
721
722 public void setCreditMemoAmount(String decimal) {
723 creditMemoAmount = new KualiDecimal(decimal);
724 }
725
726 /**
727 * @param string
728 */
729 public void setCreditMemoNbr(String string) {
730 creditMemoNbr = string;
731 }
732
733 /**
734 * @param string
735 */
736 public void setCustomerInstitutionNumber(String string) {
737 customerInstitutionNumber = string;
738 }
739
740 /**
741 * @param timestamp
742 */
743 public void setDisbursementDate(Date timestamp) {
744 disbursementDate = timestamp;
745 }
746
747 /**
748 * This method sets disbursementDate.
749 * @param disbursementDate a string representing the disbursementDate
750 * @throws ParseException
751 */
752 public void setDisbursementDate(String disbursementDate) throws ParseException {
753 this.disbursementDate = SpringContext.getBean(DateTimeService.class).convertToSqlDate(disbursementDate);
754 }
755
756 /**
757 * @param integer
758 */
759 public void setDisbursementNbr(KualiInteger integer) {
760 disbursementNbr = integer;
761 }
762
763 public void setDisbursementNbr(String integer) {
764 disbursementNbr = new KualiInteger(integer);
765 }
766
767 /**
768 * @param string
769 */
770 public void setDisbursementType(DisbursementType dt) {
771 disbursementType = dt;
772 }
773
774 /**
775 * @param integer
776 */
777 public void setId(KualiInteger integer) {
778 id = integer;
779 }
780
781 /**
782 * @param boolean1
783 */
784 public void setEmployeeIndicator(Boolean boolean1) {
785 employeeIndicator = boolean1;
786 }
787
788 /**
789 * @param string
790 */
791 public void setLine1Address(String string) {
792 line1Address = string;
793 }
794
795 /**
796 * @param string
797 */
798 public void setLine2Address(String string) {
799 line2Address = string;
800 }
801
802 /**
803 * @param string
804 */
805 public void setLine3Address(String string) {
806 line3Address = string;
807 }
808
809 /**
810 * @param string
811 */
812 public void setLine4Address(String string) {
813 line4Address = string;
814 }
815
816 /**
817 * @param boolean1
818 */
819 public void setNraPayment(Boolean boolean1) {
820 nraPayment = boolean1;
821 }
822
823 /**
824 * @param string
825 */
826 public void setPayeeId(String string) {
827 payeeId = string;
828 }
829
830 /**
831 * @param string
832 */
833 public void setPayeeIdTypeCd(String string) {
834 payeeIdTypeCd = string;
835 }
836
837 /**
838 * @param string
839 */
840 public void setPayeeName(String string) {
841 payeeName = string;
842 }
843
844 /**
845 * @param string
846 */
847 public void setPayeeOwnerCd(String string) {
848 payeeOwnerCd = string;
849 }
850
851 /**
852 * @param timestamp
853 */
854 public void setPaymentDate(Date timestamp) {
855 paymentDate = timestamp;
856 }
857
858 /**
859 * Takes a <code>String</code> and attempt to format as <code>Timestamp</code for setting the
860 * paymentDate field
861 *
862 * @param paymentDate Timestamp as string
863 */
864 public void setPaymentDate(String paymentDate) throws ParseException {
865 this.paymentDate = SpringContext.getBean(DateTimeService.class).convertToSqlDate(paymentDate);
866 }
867
868 /**
869 * @param string
870 */
871 public void setPaymentStatus(PaymentStatus stat) {
872 paymentStatus = stat;
873 }
874
875 /**
876 * @param string
877 */
878 public void setPhysCampusProcessCd(String string) {
879 physCampusProcessCd = string;
880 }
881
882 /**
883 * @param integer
884 */
885 public void setProcess(PaymentProcess p) {
886 if (p != null) {
887 processId = p.getId();
888 }
889 else {
890 processId = null;
891 }
892 this.process = p;
893 }
894
895 /**
896 * @param boolean1
897 */
898 public void setProcessImmediate(Boolean boolean1) {
899 processImmediate = boolean1;
900 }
901
902 /**
903 * @param boolean1
904 */
905 public void setPymtAttachment(Boolean boolean1) {
906 pymtAttachment = boolean1;
907 }
908
909 /**
910 * @param boolean1
911 */
912 public void setTaxablePayment(Boolean boolean1) {
913 taxablePayment = boolean1;
914 }
915
916 /**
917 * @param string
918 */
919 public void setZipCd(String string) {
920 zipCd = string;
921 }
922
923 /**
924 * @param string
925 */
926 public void setPymtSpecialHandling(Boolean pymtSpecialHandling) {
927 this.pymtSpecialHandling = pymtSpecialHandling;
928 }
929
930 public String toStringKey() {
931 StringBuffer buffer = new StringBuffer();
932 CustomerProfile customerProfile = batch.getCustomerProfile();
933
934 buffer.append(PdpPropertyConstants.CustomerProfile.CUSTOMER_PROFILE_CHART_CODE);
935 buffer.append("=");
936 buffer.append(customerProfile.getChartCode());
937 buffer.append(PdpPropertyConstants.CustomerProfile.CUSTOMER_PROFILE_UNIT_CODE);
938 buffer.append("=");
939 buffer.append(customerProfile.getUnitCode());
940 buffer.append(PdpPropertyConstants.CustomerProfile.CUSTOMER_PROFILE_SUB_UNIT_CODE);
941 buffer.append("=");
942 buffer.append(customerProfile.getSubUnitCode());
943 buffer.append(PdpPropertyConstants.PaymentGroup.PAYMENT_GROUP_PAYEE_NAME);
944 buffer.append("=");
945 buffer.append(payeeName);
946 buffer.append(PdpPropertyConstants.PaymentGroup.PAYMENT_GROUP_LINE1_ADDRESS);
947 buffer.append("=");
948 buffer.append(line1Address);
949 buffer.append(PdpPropertyConstants.PaymentGroup.PAYMENT_GROUP_PAYEE_ID);
950 buffer.append("=");
951 buffer.append(payeeId);
952 buffer.append(PdpPropertyConstants.PaymentGroup.PAYMENT_GROUP_PAYEE_ID_TYPE_CODE);
953 buffer.append("=");
954 buffer.append(payeeIdTypeCd);
955 buffer.append(PdpPropertyConstants.PaymentGroup.PAYMENT_GROUP_BANK_CODE);
956 buffer.append("=");
957 buffer.append(bankCode);
958
959 return buffer.toString();
960 }
961
962 /**
963 * @return Returns the achAccountType.
964 */
965 public String getAchAccountType() {
966 return achAccountType;
967 }
968
969 /**
970 * @param achAccountType The achAccountType to set.
971 */
972 public void setAchAccountType(String achAccountType) {
973 this.achAccountType = achAccountType;
974 }
975
976 public Timestamp getEpicPaymentCancelledExtractedDate() {
977 return epicPaymentCancelledExtractedDate;
978 }
979
980 public void setEpicPaymentCancelledExtractedDate(Timestamp epicPaymentCancelledExtractedDate) {
981 this.epicPaymentCancelledExtractedDate = epicPaymentCancelledExtractedDate;
982 }
983
984 public Timestamp getEpicPaymentPaidExtractedDate() {
985 return epicPaymentPaidExtractedDate;
986 }
987
988 public void setEpicPaymentPaidExtractedDate(Timestamp epicPaymentPaidExtractedDate) {
989 this.epicPaymentPaidExtractedDate = epicPaymentPaidExtractedDate;
990 }
991
992 /**
993 * Gets the batchId attribute.
994 *
995 * @return Returns the batchId.
996 */
997 public KualiInteger getBatchId() {
998 return batchId;
999 }
1000
1001 /**
1002 * Sets the batchId attribute value.
1003 *
1004 * @param batchId The batchId to set.
1005 */
1006 public void setBatchId(KualiInteger batchId) {
1007 this.batchId = batchId;
1008 }
1009
1010 @Override
1011 protected LinkedHashMap toStringMapper() {
1012 LinkedHashMap m = new LinkedHashMap();
1013
1014 m.put(KFSPropertyConstants.ID, this.id);
1015
1016 return m;
1017 }
1018
1019 public String getDisbursementTypeCode() {
1020 return disbursementTypeCode;
1021 }
1022
1023 public void setDisbursementTypeCode(String disbursementTypeCode) {
1024 this.disbursementTypeCode = disbursementTypeCode;
1025 }
1026
1027 public KualiInteger getProcessId() {
1028 return processId;
1029 }
1030
1031 public void setProcessId(KualiInteger processId) {
1032 this.processId = processId;
1033 }
1034
1035 public void setPaymentStatusCode(String paymentStatusCode) {
1036 this.paymentStatusCode = paymentStatusCode;
1037 }
1038
1039 public void setId_type(String idType) {
1040 this.payeeIdTypeCd = idType;
1041 }
1042
1043 /**
1044 * Gets the adviceEmailSentDate attribute.
1045 *
1046 * @return Returns the adviceEmailSentDate.
1047 */
1048 public Timestamp getAdviceEmailSentDate() {
1049 return adviceEmailSentDate;
1050 }
1051
1052 /**
1053 * Sets the adviceEmailSentDate attribute value.
1054 *
1055 * @param adviceEmailSentDate The adviceEmailSentDate to set.
1056 */
1057 public void setAdviceEmailSentDate(Timestamp adviceEmailSentDate) {
1058 this.adviceEmailSentDate = adviceEmailSentDate;
1059 }
1060
1061 /**
1062 * This method gets a string representation of the address lines
1063 * @return the street as a combined representation of the address lines
1064 */
1065 public String getStreet() {
1066 StringBuffer street = new StringBuffer();
1067
1068 street.append(StringUtils.isNotBlank(line1Address) ? (line1Address + KFSConstants.NEWLINE) : KFSConstants.EMPTY_STRING);
1069 street.append(StringUtils.isNotBlank(line2Address) ? (line2Address + KFSConstants.NEWLINE) : KFSConstants.EMPTY_STRING);
1070 street.append(StringUtils.isNotBlank(line3Address) ? (line3Address + KFSConstants.NEWLINE) : KFSConstants.EMPTY_STRING);
1071 street.append(StringUtils.isNotBlank(line4Address) ? (line4Address + KFSConstants.NEWLINE) : KFSConstants.EMPTY_STRING);
1072
1073 return street.toString();
1074 }
1075
1076 /**
1077 * This method gets the payeeIdTypeDesc
1078 * @return the payeeIdTypeDesc
1079 */
1080 public String getPayeeIdTypeDesc() {
1081 String payeeIdTypeCd = getPayeeIdTypeCd();
1082 List<PayeeType> boList = (List) SpringContext.getBean(KeyValuesService.class).findAll(PayeeType.class);
1083 for (PayeeType payeeType : boList) {
1084 if (payeeType.getCode().equalsIgnoreCase(payeeIdTypeCd)) {
1085 return payeeType.getName();
1086 }
1087 }
1088 return KFSConstants.EMPTY_STRING;
1089 }
1090 }