001/*
002 * Copyright 2005-2006 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 */
016package org.kuali.ole.fp.businessobject;
017
018import java.sql.Timestamp;
019import java.util.LinkedHashMap;
020
021import org.kuali.rice.core.api.util.type.KualiDecimal;
022import org.kuali.rice.krad.bo.PersistableBusinessObjectBase;
023
024/**
025 * This class represents an Internal Billing Item business object.
026 */
027public class InternalBillingItem extends PersistableBusinessObjectBase {
028
029    private static final long serialVersionUID = -2830091652446423539L;
030    private String documentNumber;
031    private Integer itemSequenceId;
032    private String itemStockNumber;
033    private String itemStockDescription;
034    private Timestamp itemServiceDate;
035    private Integer itemQuantity;
036    private KualiDecimal itemUnitAmount;
037    private String unitOfMeasureCode;
038
039    /**
040     * Constructs a InternalBillingItem.
041     */
042    public InternalBillingItem() {
043        setItemUnitAmount(KualiDecimal.ZERO);
044    }
045
046
047    /**
048     * Gets the documentNumber attribute.
049     * 
050     * @return Returns the documentNumber.
051     */
052    public String getDocumentNumber() {
053        return documentNumber;
054    }
055
056
057    /**
058     * Sets the documentNumber attribute value.
059     * 
060     * @param documentNumber The documentNumber to set.
061     */
062    public void setDocumentNumber(String documentNumber) {
063        this.documentNumber = documentNumber;
064    }
065
066
067    /**
068     * Gets the itemQuantity attribute.
069     * 
070     * @return Returns the itemQuantity.
071     */
072    public Integer getItemQuantity() {
073        return itemQuantity;
074    }
075
076
077    /**
078     * Sets the itemQuantity attribute value.
079     * 
080     * @param itemQuantity The itemQuantity to set.
081     */
082    public void setItemQuantity(Integer itemQuantity) {
083        this.itemQuantity = itemQuantity;
084    }
085
086
087    /**
088     * Gets the itemSequenceId attribute.
089     * 
090     * @return Returns the itemSequenceId.
091     */
092    public Integer getItemSequenceId() {
093        return itemSequenceId;
094    }
095
096
097    /**
098     * Sets the itemSequenceId attribute value.
099     * 
100     * @param itemSequenceId The itemSequenceId to set.
101     */
102    public void setItemSequenceId(Integer itemSequenceId) {
103        this.itemSequenceId = itemSequenceId;
104    }
105
106
107    /**
108     * Gets the itemServiceDate attribute.
109     * 
110     * @return Returns the itemServiceDate.
111     */
112    public Timestamp getItemServiceDate() {
113        return itemServiceDate;
114    }
115
116
117    /**
118     * Sets the itemServiceDate attribute value.
119     * 
120     * @param itemServiceDate The itemServiceDate to set.
121     */
122    public void setItemServiceDate(Timestamp itemServiceDate) {
123        this.itemServiceDate = itemServiceDate;
124    }
125
126
127    /**
128     * Gets the itemStockDescription attribute.
129     * 
130     * @return Returns the itemStockDescription.
131     */
132    public String getItemStockDescription() {
133        return itemStockDescription;
134    }
135
136
137    /**
138     * Sets the itemStockDescription attribute value.
139     * 
140     * @param itemStockDescription The itemStockDescription to set.
141     */
142    public void setItemStockDescription(String itemStockDescription) {
143        this.itemStockDescription = itemStockDescription;
144    }
145
146
147    /**
148     * Gets the itemStockNumber attribute.
149     * 
150     * @return Returns the itemStockNumber.
151     */
152    public String getItemStockNumber() {
153        return itemStockNumber;
154    }
155
156
157    /**
158     * Sets the itemStockNumber attribute value.
159     * 
160     * @param itemStockNumber The itemStockNumber to set.
161     */
162    public void setItemStockNumber(String itemStockNumber) {
163        this.itemStockNumber = itemStockNumber;
164    }
165
166
167    /**
168     * Gets the itemUnitAmount attribute.
169     * 
170     * @return Returns the itemUnitAmount.
171     */
172    public KualiDecimal getItemUnitAmount() {
173        return itemUnitAmount;
174    }
175
176
177    /**
178     * Sets the itemUnitAmount attribute value.
179     * 
180     * @param itemUnitAmount The itemUnitAmount to set.
181     */
182    public void setItemUnitAmount(KualiDecimal itemUnitAmount) {
183        this.itemUnitAmount = itemUnitAmount;
184    }
185
186
187    /**
188     * Gets the unitOfMeasureCode attribute.
189     * 
190     * @return Returns the unitOfMeasureCode.
191     */
192    public String getUnitOfMeasureCode() {
193        return unitOfMeasureCode;
194    }
195
196
197    /**
198     * Sets the unitOfMeasureCode attribute value.
199     * 
200     * @param unitOfMeasureCode The unitOfMeasureCode to set.
201     */
202    public void setUnitOfMeasureCode(String unitOfMeasureCode) {
203        this.unitOfMeasureCode = unitOfMeasureCode;
204    }
205
206
207    /**
208     * @return the total amount for this item
209     */
210    public KualiDecimal getTotal() {
211        KualiDecimal total = new KualiDecimal(itemQuantity.toString());
212        return total.multiply(itemUnitAmount);
213    }
214
215
216    /**
217     * @see org.kuali.rice.krad.bo.BusinessObjectBase#toStringMapper()
218     */
219    protected LinkedHashMap toStringMapper_RICE20_REFACTORME() {
220        LinkedHashMap m = new LinkedHashMap();
221
222        m.put("docHeaderId", getDocumentNumber());
223        m.put("itemSequenceId", getItemSequenceId());
224
225        return m;
226    }
227}