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.Timestamp;
019 import java.util.List;
020
021 import org.apache.commons.lang.StringUtils;
022 import org.kuali.kfs.module.purap.PurapPropertyConstants;
023 import org.kuali.kfs.sys.KFSConstants;
024 import org.kuali.kfs.sys.businessobject.FinancialSystemDocumentHeader;
025 import org.kuali.rice.kns.bo.Note;
026 import org.kuali.rice.kns.util.ObjectUtils;
027 import org.kuali.rice.kns.web.format.CurrencyFormatter;
028 import org.kuali.rice.kns.web.format.DateFormatter;
029
030
031 /**
032 * Credit Memo View Business Object.
033 */
034 public class CreditMemoView extends AbstractRelatedView {
035 private String creditMemoNumber;
036 private Integer paymentRequestIdentifier;
037 private Integer purchaseOrderIdentifier;
038 private String creditMemoStatusCode;
039 private boolean creditHoldIndicator;
040 private String vendorCustomerNumber;
041 private Timestamp accountsPayableApprovalTimestamp;
042 private Timestamp creditMemoExtractedTimestamp;
043 private Timestamp creditMemoPaidTimestamp;
044 private String vendorName;
045
046 // REFERENCE OBJECTS
047 private Status status;
048 private FinancialSystemDocumentHeader documentHeader;
049
050
051 // GETTERS & SETTERS
052 public Object getTotalAmount() {
053 return (new CurrencyFormatter()).format(documentHeader.getFinancialDocumentTotalAmount());
054 }
055
056 public Object getAccountsPayableApprovalTimestamp() {
057 return (new DateFormatter()).format(accountsPayableApprovalTimestamp);
058 }
059
060 public void setAccountsPayableApprovalTimestamp(Timestamp accountsPayableApprovalTimestamp) {
061 this.accountsPayableApprovalTimestamp = accountsPayableApprovalTimestamp;
062 }
063
064 public boolean isCreditHoldIndicator() {
065 return creditHoldIndicator;
066 }
067
068 public void setCreditHoldIndicator(boolean creditHoldIndicator) {
069 this.creditHoldIndicator = creditHoldIndicator;
070 }
071
072 public Timestamp getCreditMemoExtractedTimestamp() {
073 return creditMemoExtractedTimestamp;
074 }
075
076 public void setCreditMemoExtractedTimestamp(Timestamp creditMemoExtractedTimestamp) {
077 this.creditMemoExtractedTimestamp = creditMemoExtractedTimestamp;
078 }
079
080 public String getCreditMemoNumber() {
081 return creditMemoNumber;
082 }
083
084 public void setCreditMemoNumber(String creditMemoNumber) {
085 this.creditMemoNumber = creditMemoNumber;
086 }
087
088 public Timestamp getCreditMemoPaidTimestamp() {
089 return creditMemoPaidTimestamp;
090 }
091
092 public void setCreditMemoPaidTimestamp(Timestamp creditMemoPaidTimestamp) {
093 this.creditMemoPaidTimestamp = creditMemoPaidTimestamp;
094 }
095
096 public String getCreditMemoStatusCode() {
097 return creditMemoStatusCode;
098 }
099
100 public void setCreditMemoStatusCode(String creditMemoStatusCode) {
101 this.creditMemoStatusCode = creditMemoStatusCode;
102 }
103
104 public Status getStatus() {
105 if (ObjectUtils.isNull(this.status) && StringUtils.isNotEmpty(this.getCreditMemoStatusCode())) {
106 this.refreshReferenceObject(PurapPropertyConstants.STATUS);
107 }
108 return status;
109 }
110
111 public void setStatus(Status status) {
112 this.status = status;
113 }
114
115 public Integer getPaymentRequestIdentifier() {
116 return paymentRequestIdentifier;
117 }
118
119 public void setPaymentRequestIdentifier(Integer paymentRequestIdentifier) {
120 this.paymentRequestIdentifier = paymentRequestIdentifier;
121 }
122
123 public Integer getPurchaseOrderIdentifier() {
124 return purchaseOrderIdentifier;
125 }
126
127 public void setPurchaseOrderIdentifier(Integer purchaseOrderIdentifier) {
128 this.purchaseOrderIdentifier = purchaseOrderIdentifier;
129 }
130
131 public String getVendorCustomerNumber() {
132 return vendorCustomerNumber;
133 }
134
135 public void setVendorCustomerNumber(String vendorCustomerNumber) {
136 this.vendorCustomerNumber = vendorCustomerNumber;
137 }
138
139 public String getVendorName() {
140 return vendorName;
141 }
142
143 public void setVendorName(String vendorName) {
144 this.vendorName = vendorName;
145 }
146
147 /**
148 * @return workflow document type for the VendorCreditMemoDocument
149 */
150 public String getDocumentType() {
151 return KFSConstants.FinancialDocumentTypeCodes.VENDOR_CREDIT_MEMO;
152 }
153
154 /**
155 * The next three methods are overridden but shouldnt be! If they arent overridden, they dont show up in the tag, not sure why
156 * at this point! (AAP)
157 */
158 @Override
159 public Integer getPurapDocumentIdentifier() {
160 return super.getPurapDocumentIdentifier();
161 }
162
163 @Override
164 public String getDocumentIdentifierString() {
165 return super.getDocumentIdentifierString();
166 }
167
168 @Override
169 public List<Note> getNotes() {
170 return super.getNotes();
171 }
172
173 @Override
174 public String getUrl() {
175 return super.getUrl();
176 }
177 }