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 }