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 }