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.purap.businessobject; 017 018 import java.sql.Date; 019 import java.sql.Timestamp; 020 import java.util.List; 021 022 import org.apache.commons.lang.StringUtils; 023 import org.kuali.kfs.module.purap.PurapPropertyConstants; 024 import org.kuali.kfs.module.purap.document.PaymentRequestDocument; 025 import org.kuali.kfs.sys.KFSConstants; 026 import org.kuali.kfs.sys.businessobject.FinancialSystemDocumentHeader; 027 import org.kuali.kfs.sys.context.SpringContext; 028 import org.kuali.rice.kns.bo.Note; 029 import org.kuali.rice.kns.service.DataDictionaryService; 030 import org.kuali.rice.kns.util.ObjectUtils; 031 import org.kuali.rice.kns.web.format.CurrencyFormatter; 032 import org.kuali.rice.kns.web.format.DateFormatter; 033 034 /** 035 * Payment Request View Business Object. 036 */ 037 public class PaymentRequestView extends AbstractRelatedView { 038 039 private String invoiceNumber; 040 private Integer purchaseOrderIdentifier; 041 private String statusCode; 042 private boolean paymentHoldIndicator; 043 private boolean paymentRequestedCancelIndicator; 044 private String vendorName; 045 private String vendorCustomerNumber; 046 private Date paymentRequestPayDate; 047 private Timestamp paymentExtractedTimestamp; 048 private Timestamp paymentPaidTimestamp; 049 050 // REFERENCE OBJECTS 051 private Status status; 052 private FinancialSystemDocumentHeader documentHeader; 053 054 055 // GETTERS & SETTERS 056 public Object getTotalAmount() { 057 return (new CurrencyFormatter()).format(documentHeader.getFinancialDocumentTotalAmount()); 058 } 059 060 public String getInvoiceNumber() { 061 return invoiceNumber; 062 } 063 064 public void setInvoiceNumber(String invoiceNumber) { 065 this.invoiceNumber = invoiceNumber; 066 } 067 068 public Timestamp getPaymentExtractedTimestamp() { 069 return paymentExtractedTimestamp; 070 } 071 072 public void setPaymentExtractedTimestamp(Timestamp paymentExtractedTimestamp) { 073 this.paymentExtractedTimestamp = paymentExtractedTimestamp; 074 } 075 076 public boolean isPaymentHoldIndicator() { 077 return paymentHoldIndicator; 078 } 079 080 public void setPaymentHoldIndicator(boolean paymentHoldIndicator) { 081 this.paymentHoldIndicator = paymentHoldIndicator; 082 } 083 084 public Timestamp getPaymentPaidTimestamp() { 085 return paymentPaidTimestamp; 086 } 087 088 public void setPaymentPaidTimestamp(Timestamp paymentPaidTimestamp) { 089 this.paymentPaidTimestamp = paymentPaidTimestamp; 090 } 091 092 public boolean isPaymentRequestedCancelIndicator() { 093 return paymentRequestedCancelIndicator; 094 } 095 096 public void setPaymentRequestedCancelIndicator(boolean paymentRequestedCancelIndicator) { 097 this.paymentRequestedCancelIndicator = paymentRequestedCancelIndicator; 098 } 099 100 public Object getPaymentRequestPayDate() { 101 return new DateFormatter().format(paymentRequestPayDate); 102 } 103 104 public void setPaymentRequestPayDate(Date paymentRequestPayDate) { 105 this.paymentRequestPayDate = paymentRequestPayDate; 106 } 107 108 public Integer getPurchaseOrderIdentifier() { 109 return purchaseOrderIdentifier; 110 } 111 112 public void setPurchaseOrderIdentifier(Integer purchaseOrderIdentifier) { 113 this.purchaseOrderIdentifier = purchaseOrderIdentifier; 114 } 115 116 public String getStatusCode() { 117 return statusCode; 118 } 119 120 public void setStatusCode(String statusCode) { 121 this.statusCode = statusCode; 122 } 123 124 public Status getStatus() { 125 if (ObjectUtils.isNull(this.status) && StringUtils.isNotEmpty(this.getStatusCode())) { 126 this.refreshReferenceObject(PurapPropertyConstants.STATUS); 127 } 128 return status; 129 } 130 131 public void setStatus(Status status) { 132 this.status = status; 133 } 134 135 public String getVendorCustomerNumber() { 136 return vendorCustomerNumber; 137 } 138 139 public void setVendorCustomerNumber(String vendorCustomerNumber) { 140 this.vendorCustomerNumber = vendorCustomerNumber; 141 } 142 143 public String getVendorName() { 144 return vendorName; 145 } 146 147 public void setVendorName(String vendorName) { 148 this.vendorName = vendorName; 149 } 150 151 /** 152 * @return workflow document type for the PaymentRequestDocument 153 */ 154 public String getDocumentType() { 155 return KFSConstants.FinancialDocumentTypeCodes.PAYMENT_REQUEST; 156 } 157 158 /** 159 * The next three methods are overridden but shouldnt be! If they arent overridden, they dont show up in the tag, not sure why 160 * at this point! (AAP) 161 */ 162 @Override 163 public Integer getPurapDocumentIdentifier() { 164 return super.getPurapDocumentIdentifier(); 165 } 166 167 @Override 168 public String getDocumentIdentifierString() { 169 return super.getDocumentIdentifierString(); 170 } 171 172 /** 173 * @see org.kuali.kfs.module.purap.businessobject.AbstractRelatedView#getNotes() 174 */ 175 @Override 176 public List<Note> getNotes() { 177 return super.getNotes(); 178 } 179 180 /** 181 * @see org.kuali.kfs.module.purap.businessobject.AbstractRelatedView#getUrl() 182 */ 183 @Override 184 public String getUrl() { 185 return super.getUrl(); 186 } 187 }