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.math.BigDecimal;
019    import java.util.List;
020    
021    import org.apache.ojb.broker.PersistenceBrokerAware;
022    import org.kuali.kfs.integration.purap.ExternalPurApItem;
023    import org.kuali.kfs.module.purap.document.PurchasingAccountsPayableDocument;
024    import org.kuali.rice.kns.bo.ExternalizableBusinessObject;
025    import org.kuali.rice.kns.bo.PersistableBusinessObject;
026    import org.kuali.rice.kns.util.KualiDecimal;
027    
028    /**
029     * Purap Item Business Object.
030     */
031    public interface PurApItem extends PersistableBusinessObject, PersistenceBrokerAware, PurapEnterableItem, ExternalPurApItem {
032    
033        public abstract Integer getItemIdentifier();
034    
035        public abstract void setItemIdentifier(Integer ItemIdentifier);
036    
037        public abstract Integer getItemLineNumber();
038    
039        public abstract void setItemLineNumber(Integer itemLineNumber);
040    
041        public abstract String getItemUnitOfMeasureCode();
042    
043        public abstract void setItemUnitOfMeasureCode(String itemUnitOfMeasureCode);
044    
045        public abstract String getItemCatalogNumber();
046    
047        public abstract void setItemCatalogNumber(String itemCatalogNumber);
048    
049        public abstract String getItemDescription();
050    
051        public abstract void setItemDescription(String itemDescription);
052    
053        public abstract BigDecimal getItemUnitPrice();
054    
055        public abstract void setItemUnitPrice(BigDecimal itemUnitPrice);
056    
057        public abstract String getItemTypeCode();
058    
059        public abstract void setItemTypeCode(String itemTypeCode);
060    
061        public abstract String getItemAuxiliaryPartIdentifier();
062    
063        public abstract void setItemAuxiliaryPartIdentifier(String itemAuxiliaryPartIdentifier);
064    
065        public abstract String getExternalOrganizationB2bProductReferenceNumber();
066    
067        public abstract void setExternalOrganizationB2bProductReferenceNumber(String externalOrganizationB2bProductReferenceNumber);
068    
069        public abstract String getExternalOrganizationB2bProductTypeName();
070    
071        public abstract void setExternalOrganizationB2bProductTypeName(String externalOrganizationB2bProductTypeName);
072    
073        public abstract boolean getItemAssignedToTradeInIndicator();
074    
075        public abstract void setItemAssignedToTradeInIndicator(boolean itemAssignedToTradeInIndicator);
076    
077        public abstract ItemType getItemType();
078    
079        /**
080         * Sets the itemType attribute.
081         * 
082         * @param itemType The itemType to set.
083         * @deprecated
084         */
085        public abstract void setItemType(ItemType itemType);
086    
087        /**
088         * This method resets the transient new account method
089         */
090        public void resetAccount();
091    
092        public KualiDecimal getExtendedPrice();
093    
094        public KualiDecimal getTotalAmount();
095        
096        public void setTotalAmount(KualiDecimal totalAmount);
097    
098        /**
099         * gets the total amount to remit to a vendor
100         * @return pre tax total if use tax post tax if sales
101         */
102        public KualiDecimal getTotalRemitAmount();
103        
104        public KualiDecimal calculateExtendedPrice();
105    
106        public void setExtendedPrice(KualiDecimal extendedPrice);
107    
108        public KualiDecimal getItemTaxAmount();
109    
110        public void setItemTaxAmount(KualiDecimal itemTaxAmount);
111    
112        public PurApAccountingLine getNewSourceLine();
113    
114        public void setNewSourceLine(PurApAccountingLine newAccountingLine);
115    
116        public abstract Class getAccountingLineClass();
117    
118        public abstract Class getUseTaxClass();
119        
120        public List<PurApAccountingLine> getSourceAccountingLines();
121    
122        public void setSourceAccountingLines(List<PurApAccountingLine> purapAccountingLines);
123        
124        public List<PurApAccountingLine> getBaselineSourceAccountingLines();
125    
126        public List<PurApItemUseTax> getUseTaxItems();
127    
128        public void setUseTaxItems(List<PurApItemUseTax> useTaxItems);
129    
130        public KualiDecimal getItemQuantity();
131    
132        public void setItemQuantity(KualiDecimal itemQuantity);
133    
134        public String getItemIdentifierString();
135    
136        public PurApSummaryItem getSummaryItem();
137        
138        public <T extends PurchasingAccountsPayableDocument> T getPurapDocument();
139        
140        public void setPurapDocument(PurchasingAccountsPayableDocument purapDoc);
141        
142        public Integer getPurapDocumentIdentifier();
143        
144        public void setPurapDocumentIdentifier(Integer purapDocumentIdentifier);
145        
146        public void fixAccountReferences();
147    }