/*
* $Id: ProductBusiness.java,v 1.48 2005/10/10 10:51:23 gimmi Exp $
* Created on Aug 29, 2005
*
* Copyright (C) 2005 Idega Software hf. All Rights Reserved.
*
* This software is the proprietary information of Idega hf.
* Use is subject to license terms.
*/
package com.idega.block.trade.stockroom.business;
import java.rmi.RemoteException;
import java.sql.SQLException;
import java.util.Collection;
import java.util.List;
import javax.ejb.EJBException;
import javax.ejb.FinderException;
import com.idega.block.category.data.ICCategory;
import com.idega.block.trade.stockroom.data.Product;
import com.idega.block.trade.stockroom.data.ProductCategory;
import com.idega.block.trade.stockroom.data.ProductHome;
import com.idega.block.trade.stockroom.data.ProductPriceHome;
import com.idega.block.trade.stockroom.data.Timeframe;
import com.idega.block.trade.stockroom.data.TravelAddress;
import com.idega.business.IBOService;
import com.idega.core.location.data.Address;
import com.idega.data.IDOException;
import com.idega.data.IDOFinderException;
import com.idega.data.IDORelationshipException;
import com.idega.data.IDORemoveRelationshipException;
import com.idega.presentation.IWContext;
import com.idega.presentation.ui.DropdownMenu;
import com.idega.util.IWTimestamp;
/**
*
* Last modified: $Date: 2005/10/10 10:51:23 $ by $Author: gimmi $
*
* @author <a href="mailto:gimmi@idega.com">gimmi</a>
* @version $Revision: 1.48 $
*/
public interface ProductBusiness extends IBOService {
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#updateProduct
*/
public int updateProduct(int productId, int supplierId, Integer fileId, String productName, String number,
String productDescription, boolean isValid, int[] addressIds, int discountTypeId) throws Exception,
java.rmi.RemoteException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#updateProduct
*/
public int updateProduct(int productId, Integer fileId, String productName, String number,
String productDescription, boolean isValid, int localeId) throws Exception, java.rmi.RemoteException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#createProduct
*/
public int createProduct(Integer fileId, String productName, String number, String productDescription,
boolean isValid, int localeId) throws Exception, java.rmi.RemoteException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#createProduct
*/
public int createProduct(Integer fileId, String productName, String number, String productDescription,
boolean isValid) throws Exception, java.rmi.RemoteException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#createProduct
*/
public int createProduct(int supplierId, Integer fileId, String productName, String number,
String productDescription, boolean isValid, int[] addressIds, int discountTypeId) throws Exception,
java.rmi.RemoteException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#createProduct
*/
public int createProduct(int productId, int supplierId, Integer fileId, String productName, String number,
String productDescription, boolean isValid, int[] addressIds, int discountTypeId) throws Exception,
java.rmi.RemoteException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#createProduct
*/
public int createProduct(int productId, int supplierId, Integer fileId, String productName, String number,
String productDescription, boolean isValid, int[] addressIds, int discountTypeId, int localeId)
throws Exception, java.rmi.RemoteException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#addTravelAddress
*/
public void addTravelAddress(Product product, TravelAddress travelAddress) throws java.rmi.RemoteException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#addArrivalAddress
*/
public void addArrivalAddress(Product product, Address address) throws java.rmi.RemoteException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#removeTravelAddress
*/
public void removeTravelAddress(Product product, TravelAddress travelAddress)
throws IDORemoveRelationshipException, java.rmi.RemoteException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#removeAllTravelAddresses
*/
public void removeAllTravelAddresses(Product product) throws IDORemoveRelationshipException,
java.rmi.RemoteException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getProductIdParameter
*/
public String getProductIdParameter() throws java.rmi.RemoteException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getParameterLocaleDrop
*/
public String getParameterLocaleDrop() throws java.rmi.RemoteException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getProduct
*/
public Product getProduct(Integer productId) throws RemoteException, FinderException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getProduct
*/
public Product getProduct(int productId) throws RemoteException, FinderException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#deleteProduct
*/
public void deleteProduct(Product product) throws RemoteException, IDOException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#updateProduct
*/
public Product updateProduct(Product product) throws RemoteException, FinderException, IDOException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getProductCategory
*/
public ProductCategory getProductCategory(int categoryID) throws java.rmi.RemoteException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getProductNameWithNumber
*/
public String getProductNameWithNumber(Product product) throws RemoteException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getProductNameWithNumber
*/
public String getProductNameWithNumber(Product product, int localeID) throws RemoteException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getProductNameWithNumber
*/
public String getProductNameWithNumber(Product product, boolean numberInFront) throws RemoteException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getProductNameWithNumber
*/
public String getProductNameWithNumber(Product product, boolean numberInFront, int localeID) throws RemoteException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getSelectedLocaleId
*/
public int getSelectedLocaleId(IWContext iwc) throws java.rmi.RemoteException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getLocaleDropDown
*/
public DropdownMenu getLocaleDropDown(IWContext iwc) throws java.rmi.RemoteException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#clearProductCache
*/
public boolean clearProductCache(String supplierId) throws java.rmi.RemoteException;
public boolean clearProductCache(String supplierId, String remoteDomainToExclude) throws java.rmi.RemoteException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getProducts
*/
public List getProducts(IWContext iwc, int supplierId) throws RemoteException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getProducts
*/
public List getProducts(int supplierId) throws RemoteException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getProduct
*/
public Collection getProduct(int supplierId, int firstEntity, int lastEntity) throws FinderException,
RemoteException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getProducts
*/
public List getProducts() throws RemoteException, FinderException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getProducts
*/
public List getProducts(List productCategories) throws RemoteException, FinderException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getProducts
*/
public List getProducts(ICCategory category) throws RemoteException, FinderException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getProducts
*/
public List getProducts(ProductCategory productCategory) throws RemoteException, FinderException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getProducts
*/
public List getProducts(IWTimestamp stamp) throws RemoteException, FinderException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getProducts
*/
public List getProducts(IWTimestamp fromStamp, IWTimestamp toStamp) throws RemoteException, FinderException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getProducts
*/
public List getProducts(int supplierId, IWTimestamp stamp) throws RemoteException, FinderException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getProducts
*/
public List getProducts(int supplierId, IWTimestamp from, IWTimestamp to) throws RemoteException, FinderException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getProducts
*/
public List getProducts(int supplierId, int productCategoryId, IWTimestamp from, IWTimestamp to)
throws RemoteException, FinderException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getTimeframe
*/
public Timeframe getTimeframe(Product product, IWTimestamp stamp) throws RemoteException, EJBException,
FinderException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getTimeframes
*/
public Timeframe[] getTimeframes(Product product) throws SQLException, java.rmi.RemoteException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getTimeframe
*/
public Timeframe getTimeframe(Product product) throws SQLException, java.rmi.RemoteException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getTimeframe
*/
public Timeframe getTimeframe(Product product, IWTimestamp stamp, int travelAddressId) throws RemoteException,
EJBException, FinderException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getTimeframe
*/
public Timeframe getTimeframe(Product product, Timeframe[] timeframes, IWTimestamp stamp, int travelAddressId)
throws RemoteException, EJBException, FinderException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getDepartureAddresses
*/
public List getDepartureAddresses(Product product, IWTimestamp stamp, boolean ordered) throws RemoteException,
FinderException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getDepartureAddresses
*/
public List getDepartureAddresses(Product product, IWTimestamp stamp, boolean ordered, String key)
throws RemoteException, FinderException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getDepartureAddresses
*/
public List getDepartureAddresses(Product product, IWTimestamp stamp, boolean ordered, String key,
Timeframe[] timeframes) throws RemoteException, FinderException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getDepartureAddresses
*/
public List getDepartureAddresses(Product product, boolean ordered) throws RemoteException, IDOFinderException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getDepartureAddress
*/
public TravelAddress getDepartureAddress(Product product) throws RemoteException, IDOFinderException, SQLException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getArrivalAddresses
*/
public Address[] getArrivalAddresses(Product product) throws RemoteException, IDOFinderException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getArrivalAddress
*/
public Address getArrivalAddress(Product product) throws RemoteException, IDOFinderException, SQLException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getDropdownMenuWithProducts
*/
public DropdownMenu getDropdownMenuWithProducts(IWContext iwc, int supplierId) throws RemoteException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getDropdownMenuWithProducts
*/
public DropdownMenu getDropdownMenuWithProducts(IWContext iwc, int supplierId, String parameterName)
throws RemoteException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getDropdownMenuWithProducts
*/
public DropdownMenu getDropdownMenuWithProducts(IWContext iwc, List products, String parameterName)
throws RemoteException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getProductCategories
*/
public List getProductCategories() throws IDOFinderException, java.rmi.RemoteException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getProductCategories
*/
public List getProductCategories(Product product) throws RemoteException, IDORelationshipException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getProductHome
*/
public ProductHome getProductHome() throws RemoteException;
/**
* @see com.idega.block.trade.stockroom.business.ProductBusinessBean#getProductPriceHome
*/
public ProductPriceHome getProductPriceHome() throws RemoteException;
public boolean invalidateProductCache(String productID, String remoteDomainToExclude);
public boolean invalidateProductCache(String productID);
public boolean clearAddressMaps(String productID, String remoteDomainToExclude);
}