/**
*
*/
package com.salesmanager.core.business.services.shoppingcart;
import com.salesmanager.core.business.exception.ServiceException;
import com.salesmanager.core.model.customer.Customer;
import com.salesmanager.core.model.merchant.MerchantStore;
import com.salesmanager.core.model.order.OrderTotalSummary;
import com.salesmanager.core.model.reference.language.Language;
import com.salesmanager.core.model.shoppingcart.ShoppingCart;
/**
* Interface declaring various methods used to calculate {@link ShoppingCart}
* object details.
*
* @author Umesh Awasthi
* @since 1.2
*
*/
public interface ShoppingCartCalculationService {
/**
* Method which will be used to calculate price for each line items as well
* Total and Sub-total for {@link ShoppingCart}.
*
* @param cartModel
* ShoopingCart mode representing underlying DB object
* @param customer
* @param store
* @param language
* @throws ServiceException
*/
public OrderTotalSummary calculate(final ShoppingCart cartModel, final Customer customer, final MerchantStore store,
final Language language) throws ServiceException;
/**
* Method which will be used to calculate price for each line items as well
* Total and Sub-total for {@link ShoppingCart}.
*
* @param cartModel
* ShoopingCart mode representing underlying DB object
* @param store
* @param language
* @throws ServiceException
*/
public OrderTotalSummary calculate(final ShoppingCart cartModel, final MerchantStore store, final Language language)
throws ServiceException;
}