/*
* The Kuali Financial System, a comprehensive financial management system for higher education.
*
* Copyright 2005-2014 The Kuali Foundation
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.kuali.kfs.module.purap.businessobject;
import java.util.LinkedHashMap;
import org.apache.commons.lang.StringUtils;
import org.kuali.kfs.module.purap.PurapPropertyConstants;
import org.kuali.kfs.sys.businessobject.UnitOfMeasure;
import org.kuali.rice.core.api.util.type.KualiDecimal;
import org.kuali.rice.krad.bo.PersistableBusinessObjectBase;
import org.kuali.rice.krad.util.ObjectUtils;
/**
* This class...
*/
public abstract class ReceivingItemBase extends PersistableBusinessObjectBase implements PurapEnterableItem, ReceivingItem {
private Integer receivingItemIdentifier;
private String documentNumber;
private Integer purchaseOrderIdentifier;
private Integer itemLineNumber;
private String itemTypeCode;
private String itemUnitOfMeasureCode;
private String itemCatalogNumber;
private String itemDescription;
private KualiDecimal itemReceivedTotalQuantity;
private KualiDecimal itemReturnedTotalQuantity;
private KualiDecimal itemDamagedTotalQuantity;
private String itemReasonAddedCode;
protected KualiDecimal itemOriginalReceivedTotalQuantity;
protected KualiDecimal itemOriginalReturnedTotalQuantity;
protected KualiDecimal itemOriginalDamagedTotalQuantity;
private ItemReasonAdded itemReasonAdded;
private ItemType itemType;
private UnitOfMeasure itemUnitOfMeasure;
/**
* @see org.kuali.rice.krad.bo.BusinessObjectBase#toStringMapper()
*/
protected LinkedHashMap toStringMapper_RICE20_REFACTORME() {
LinkedHashMap m = new LinkedHashMap();
if (this.receivingItemIdentifier != null) {
m.put("receivingItemIdentifier", this.receivingItemIdentifier.toString());
}
return m;
}
public boolean isConsideredEntered() {
//if all are not null then return true
return !((ObjectUtils.isNull(this.getItemReceivedTotalQuantity()) || this.getItemReceivedTotalQuantity().isZero()) &&
(ObjectUtils.isNull(this.getItemDamagedTotalQuantity()) || this.getItemDamagedTotalQuantity().isZero()) &&
(ObjectUtils.isNull(this.getItemReturnedTotalQuantity()) || this.getItemReturnedTotalQuantity().isZero()));
}
public Integer getReceivingItemIdentifier() {
return receivingItemIdentifier;
}
public void setReceivingItemIdentifier(Integer receivingItemIdentifier) {
this.receivingItemIdentifier = receivingItemIdentifier;
}
public String getDocumentNumber() {
return documentNumber;
}
public void setDocumentNumber(String documentNumber) {
this.documentNumber = documentNumber;
}
public Integer getPurchaseOrderIdentifier() {
return purchaseOrderIdentifier;
}
public void setPurchaseOrderIdentifier(Integer purchaseOrderIdentifier) {
this.purchaseOrderIdentifier = purchaseOrderIdentifier;
}
public Integer getItemLineNumber() {
return itemLineNumber;
}
public void setItemLineNumber(Integer itemLineNumber) {
this.itemLineNumber = itemLineNumber;
}
public String getItemTypeCode() {
return itemTypeCode;
}
public void setItemTypeCode(String itemTypeCode) {
this.itemTypeCode = itemTypeCode;
}
public String getItemUnitOfMeasureCode() {
return itemUnitOfMeasureCode;
}
public void setItemUnitOfMeasureCode(String itemUnitOfMeasureCode) {
this.itemUnitOfMeasureCode = (StringUtils.isNotBlank(itemUnitOfMeasureCode) ? itemUnitOfMeasureCode.toUpperCase() : itemUnitOfMeasureCode);
}
public String getItemCatalogNumber() {
return itemCatalogNumber;
}
public void setItemCatalogNumber(String itemCatalogNumber) {
this.itemCatalogNumber = itemCatalogNumber;
}
public String getItemDescription() {
return itemDescription;
}
public void setItemDescription(String itemDescription) {
this.itemDescription = itemDescription;
}
public KualiDecimal getItemReceivedTotalQuantity() {
return itemReceivedTotalQuantity;
}
public void setItemReceivedTotalQuantity(KualiDecimal itemReceivedTotalQuantity) {
this.itemReceivedTotalQuantity = itemReceivedTotalQuantity;
}
public KualiDecimal getItemReturnedTotalQuantity() {
return itemReturnedTotalQuantity;
}
public void setItemReturnedTotalQuantity(KualiDecimal itemReturnedTotalQuantity) {
this.itemReturnedTotalQuantity = itemReturnedTotalQuantity;
}
public KualiDecimal getItemDamagedTotalQuantity() {
return itemDamagedTotalQuantity;
}
public void setItemDamagedTotalQuantity(KualiDecimal itemDamagedTotalQuantity) {
this.itemDamagedTotalQuantity = itemDamagedTotalQuantity;
}
public String getItemReasonAddedCode() {
return itemReasonAddedCode;
}
public void setItemReasonAddedCode(String itemReasonAddedCode) {
this.itemReasonAddedCode = itemReasonAddedCode;
}
/**
* Gets the itemType attribute.
* @return Returns the itemType.
*/
public ItemType getItemType() {
if (ObjectUtils.isNull(itemType)) {
refreshReferenceObject(PurapPropertyConstants.ITEM_TYPE);
}
return itemType;
}
/**
* Sets the itemType attribute value.
* @param itemType The itemType to set.
* @deprecated
*/
public void setItemType(ItemType itemType) {
this.itemType = itemType;
}
public KualiDecimal getItemOriginalReceivedTotalQuantity() {
return itemOriginalReceivedTotalQuantity;
}
public void setItemOriginalReceivedTotalQuantity(KualiDecimal itemOriginalReceivedTotalQuantity) {
this.itemOriginalReceivedTotalQuantity = itemOriginalReceivedTotalQuantity;
}
public KualiDecimal getItemOriginalReturnedTotalQuantity() {
return itemOriginalReturnedTotalQuantity;
}
public void setItemOriginalReturnedTotalQuantity(KualiDecimal itemOriginalReturnedTotalQuantity) {
this.itemOriginalReturnedTotalQuantity = itemOriginalReturnedTotalQuantity;
}
public KualiDecimal getItemOriginalDamagedTotalQuantity() {
return itemOriginalDamagedTotalQuantity;
}
public void setItemOriginalDamagedTotalQuantity(KualiDecimal itemOriginalDamagedTotalQuantity) {
this.itemOriginalDamagedTotalQuantity = itemOriginalDamagedTotalQuantity;
}
public ItemReasonAdded getItemReasonAdded() {
if (itemReasonAdded != null) {
return itemReasonAdded;
}
else if (itemReasonAddedCode != null){
refreshReferenceObject(PurapPropertyConstants.ITEM_REASON_ADDED);
}
return itemReasonAdded;
}
public void setItemReasonAdded(ItemReasonAdded itemReasonAdded) {
this.itemReasonAdded = itemReasonAdded;
}
public UnitOfMeasure getItemUnitOfMeasure() {
if (ObjectUtils.isNull(itemUnitOfMeasure) || (!itemUnitOfMeasure.getItemUnitOfMeasureCode().equalsIgnoreCase(getItemUnitOfMeasureCode()))) {
refreshReferenceObject(PurapPropertyConstants.ITEM_UNIT_OF_MEASURE);
}
return itemUnitOfMeasure;
}
public void setItemUnitOfMeasure(UnitOfMeasure itemUnitOfMeasure) {
this.itemUnitOfMeasure = itemUnitOfMeasure;
}
}