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.util.LinkedHashMap; 019 020 import org.apache.commons.lang.StringUtils; 021 import org.kuali.kfs.module.purap.PurapPropertyConstants; 022 import org.kuali.kfs.sys.businessobject.UnitOfMeasure; 023 import org.kuali.rice.kns.bo.PersistableBusinessObjectBase; 024 import org.kuali.rice.kns.util.KualiDecimal; 025 import org.kuali.rice.kns.util.ObjectUtils; 026 027 /** 028 * This class... 029 */ 030 public abstract class ReceivingItemBase extends PersistableBusinessObjectBase implements PurapEnterableItem, ReceivingItem { 031 032 private Integer receivingItemIdentifier; 033 private String documentNumber; 034 private Integer purchaseOrderIdentifier; 035 private Integer itemLineNumber; 036 private String itemTypeCode; 037 private String itemUnitOfMeasureCode; 038 private String itemCatalogNumber; 039 private String itemDescription; 040 private KualiDecimal itemReceivedTotalQuantity; 041 private KualiDecimal itemReturnedTotalQuantity; 042 private KualiDecimal itemDamagedTotalQuantity; 043 private String itemReasonAddedCode; 044 protected KualiDecimal itemOriginalReceivedTotalQuantity; 045 protected KualiDecimal itemOriginalReturnedTotalQuantity; 046 protected KualiDecimal itemOriginalDamagedTotalQuantity; 047 048 private ItemReasonAdded itemReasonAdded; 049 private ItemType itemType; 050 private UnitOfMeasure itemUnitOfMeasure; 051 052 053 /** 054 * @see org.kuali.rice.kns.bo.BusinessObjectBase#toStringMapper() 055 */ 056 protected LinkedHashMap toStringMapper() { 057 LinkedHashMap m = new LinkedHashMap(); 058 if (this.receivingItemIdentifier != null) { 059 m.put("receivingItemIdentifier", this.receivingItemIdentifier.toString()); 060 } 061 return m; 062 } 063 064 public boolean isConsideredEntered() { 065 //if all are not null then return true 066 return !((ObjectUtils.isNull(this.getItemReceivedTotalQuantity()) || this.getItemReceivedTotalQuantity().isZero()) && 067 (ObjectUtils.isNull(this.getItemDamagedTotalQuantity()) || this.getItemDamagedTotalQuantity().isZero()) && 068 (ObjectUtils.isNull(this.getItemReturnedTotalQuantity()) || this.getItemReturnedTotalQuantity().isZero())); 069 } 070 071 public Integer getReceivingItemIdentifier() { 072 return receivingItemIdentifier; 073 } 074 075 public void setReceivingItemIdentifier(Integer receivingItemIdentifier) { 076 this.receivingItemIdentifier = receivingItemIdentifier; 077 } 078 079 public String getDocumentNumber() { 080 return documentNumber; 081 } 082 083 public void setDocumentNumber(String documentNumber) { 084 this.documentNumber = documentNumber; 085 } 086 087 public Integer getPurchaseOrderIdentifier() { 088 return purchaseOrderIdentifier; 089 } 090 091 public void setPurchaseOrderIdentifier(Integer purchaseOrderIdentifier) { 092 this.purchaseOrderIdentifier = purchaseOrderIdentifier; 093 } 094 095 public Integer getItemLineNumber() { 096 return itemLineNumber; 097 } 098 099 public void setItemLineNumber(Integer itemLineNumber) { 100 this.itemLineNumber = itemLineNumber; 101 } 102 103 public String getItemTypeCode() { 104 return itemTypeCode; 105 } 106 107 public void setItemTypeCode(String itemTypeCode) { 108 this.itemTypeCode = itemTypeCode; 109 } 110 111 public String getItemUnitOfMeasureCode() { 112 return itemUnitOfMeasureCode; 113 } 114 115 public void setItemUnitOfMeasureCode(String itemUnitOfMeasureCode) { 116 this.itemUnitOfMeasureCode = (StringUtils.isNotBlank(itemUnitOfMeasureCode) ? itemUnitOfMeasureCode.toUpperCase() : itemUnitOfMeasureCode); 117 } 118 119 public String getItemCatalogNumber() { 120 return itemCatalogNumber; 121 } 122 123 public void setItemCatalogNumber(String itemCatalogNumber) { 124 this.itemCatalogNumber = itemCatalogNumber; 125 } 126 127 public String getItemDescription() { 128 return itemDescription; 129 } 130 131 public void setItemDescription(String itemDescription) { 132 this.itemDescription = itemDescription; 133 } 134 135 public KualiDecimal getItemReceivedTotalQuantity() { 136 return itemReceivedTotalQuantity; 137 } 138 139 public void setItemReceivedTotalQuantity(KualiDecimal itemReceivedTotalQuantity) { 140 this.itemReceivedTotalQuantity = itemReceivedTotalQuantity; 141 } 142 143 public KualiDecimal getItemReturnedTotalQuantity() { 144 return itemReturnedTotalQuantity; 145 } 146 147 public void setItemReturnedTotalQuantity(KualiDecimal itemReturnedTotalQuantity) { 148 this.itemReturnedTotalQuantity = itemReturnedTotalQuantity; 149 } 150 151 public KualiDecimal getItemDamagedTotalQuantity() { 152 return itemDamagedTotalQuantity; 153 } 154 155 public void setItemDamagedTotalQuantity(KualiDecimal itemDamagedTotalQuantity) { 156 this.itemDamagedTotalQuantity = itemDamagedTotalQuantity; 157 } 158 159 public String getItemReasonAddedCode() { 160 return itemReasonAddedCode; 161 } 162 163 public void setItemReasonAddedCode(String itemReasonAddedCode) { 164 this.itemReasonAddedCode = itemReasonAddedCode; 165 } 166 /** 167 * Gets the itemType attribute. 168 * @return Returns the itemType. 169 */ 170 public ItemType getItemType() { 171 if (ObjectUtils.isNull(itemType)) { 172 refreshReferenceObject(PurapPropertyConstants.ITEM_TYPE); 173 } 174 return itemType; 175 } 176 177 /** 178 * Sets the itemType attribute value. 179 * @param itemType The itemType to set. 180 * @deprecated 181 */ 182 public void setItemType(ItemType itemType) { 183 this.itemType = itemType; 184 } 185 186 public KualiDecimal getItemOriginalReceivedTotalQuantity() { 187 return itemOriginalReceivedTotalQuantity; 188 } 189 190 public void setItemOriginalReceivedTotalQuantity(KualiDecimal itemOriginalReceivedTotalQuantity) { 191 this.itemOriginalReceivedTotalQuantity = itemOriginalReceivedTotalQuantity; 192 } 193 194 public KualiDecimal getItemOriginalReturnedTotalQuantity() { 195 return itemOriginalReturnedTotalQuantity; 196 } 197 198 public void setItemOriginalReturnedTotalQuantity(KualiDecimal itemOriginalReturnedTotalQuantity) { 199 this.itemOriginalReturnedTotalQuantity = itemOriginalReturnedTotalQuantity; 200 } 201 202 public KualiDecimal getItemOriginalDamagedTotalQuantity() { 203 return itemOriginalDamagedTotalQuantity; 204 } 205 206 public void setItemOriginalDamagedTotalQuantity(KualiDecimal itemOriginalDamagedTotalQuantity) { 207 this.itemOriginalDamagedTotalQuantity = itemOriginalDamagedTotalQuantity; 208 } 209 210 public ItemReasonAdded getItemReasonAdded() { 211 if (itemReasonAdded != null) { 212 return itemReasonAdded; 213 } 214 else if (itemReasonAddedCode != null){ 215 refreshReferenceObject(PurapPropertyConstants.ITEM_REASON_ADDED); 216 } 217 return itemReasonAdded; 218 } 219 220 public void setItemReasonAdded(ItemReasonAdded itemReasonAdded) { 221 this.itemReasonAdded = itemReasonAdded; 222 } 223 224 public UnitOfMeasure getItemUnitOfMeasure() { 225 if (ObjectUtils.isNull(itemUnitOfMeasure) || (!itemUnitOfMeasure.getItemUnitOfMeasureCode().equalsIgnoreCase(getItemUnitOfMeasureCode()))) { 226 refreshReferenceObject(PurapPropertyConstants.ITEM_UNIT_OF_MEASURE); 227 } 228 return itemUnitOfMeasure; 229 } 230 231 public void setItemUnitOfMeasure(UnitOfMeasure itemUnitOfMeasure) { 232 this.itemUnitOfMeasure = itemUnitOfMeasure; 233 } 234 235 }