com.ibm.commerce.price.commands
Class PriceCalculationHelper

java.lang.Object
  |
  +--com.ibm.commerce.price.commands.PriceCalculationHelper

public class PriceCalculationHelper
extends java.lang.Object

This PriceCalculationHelper Class provides utility methods for performing the price calculation.


Field Summary
static java.math.BigDecimal BIG_DECIMAL_ZERO
          String of big decimal "0"
static java.lang.String COPYRIGHT
          IBM copyright notice field.
static java.lang.Double DOUBLE_ZERO
          String of "0" for dboule type
static java.lang.String ERRTASK_NAME
          String of RetrievePriceErrorView
static java.lang.Integer INTEGER_ZERO
          String of "0" for integer type
static java.lang.Long LONG_ZERO
          String of "0" for Long type
static java.lang.Object NULL
          String of object NULL
 
Constructor Summary
PriceCalculationHelper()
          PriceCalculationHelper constructor comment.
 
Method Summary
 void createPriceBusinessPolicy(java.lang.String aPriceListName, java.lang.Long aPriceListOwner, java.lang.Integer aStoreEntityId, java.lang.String aPolicyName)
          Creates a price business policy.
 void deletePriceBusinessPolicy(java.lang.String aPriceListId, java.lang.Integer aStoreEntityId)
          Deletes a price business policy.
 java.lang.Long[] findAllMasterCatalogPriceLists( StoreAccessBean aStoreAB)
          Retrieves the price lists associated with master catalog (Fast Method).
 java.lang.String genMarkers(int num)
          Generates parameter markers for the IN search predicate.
 java.lang.Long[] getAllMasterCatalogPriceLists( StoreAccessBean aStoreAB)
          Retrieves the price lists associated with master catalog (Alternative Method).
 java.util.Hashtable getAllPolicyPriceLists( StoreAccessBean aStoreAB)
          Retrieves the price list business policies.
 java.util.Hashtable getAllPolicyPriceProperties( StoreAccessBean aStoreAB)
          Retrieves the price list business policy properties.
 java.util.Vector getAllStandardPriceListAccessBeans()
          Retrieves the standard price list access beans.
 java.util.Vector getAllStandardPriceLists()
          Retrieves the ids of standard price list.
 MonetaryAmount getDynamicKitPrice(java.lang.String aCurrency, CommandContext aCommandContext, java.lang.String astrConfigurationId, OrderItemAccessBean aabOrderItem)
          get dynamic kit price
 MonetaryAmount getDynamicKitPrice(java.lang.String aCurrency, CommandContext aCommandContext, java.lang.String astrConfigurationId, OrderItemAccessBean aabOrderItem, java.util.Vector avecOrderItemComponents)
          get dynamic kit price
 java.lang.String getInPredicate(java.lang.Object[] objects)
          Composes the IN search predicate.
static  PriceCalculationHelper getInstance()
          Get PriceCalculationHelper instance
 java.lang.Long getMemberIdFromPrcPolicyProperties( TypedProperty aparam)
          Get member Id from properties retrieved from price policy
 java.lang.String getPolicyPriceList(java.lang.String aPolicyProperties)
          Retrieves the price list associated with a policy.
 java.lang.String getPolicyProductSet(java.lang.String aPolicyProperties)
          Retrieves the product set associated with a policy.
 void handlePriceNotFoundException( ItemPriceInfo aItemPriceInfo, java.lang.String aCurrency, java.lang.String aClassName)
          Handles the price not found exception.
 boolean isBestPrice( QualifyingOfferInfo offerInfo, java.math.BigDecimal aPriceValue)
          Compares two prices for the best.
 boolean processOfferPricesVector( QualifyingOfferInfo offerInfo, java.util.Vector offerPricesVector, java.lang.String requestedCurrency, OfferAccessBean offer, StoreAccessBean storeAB)
          Process the prices for a specific offer.
 void setPriceListProductSetId(java.lang.String aPriceListId, java.lang.String aProductSetId)
          Sets the product set id in the price list.
 MonetaryAmount setRoundCustomizedPrice(MonetaryAmount aPrice, StoreAccessBean aStoreAB)
          Rounds up the input price.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail
public static final java.lang.String COPYRIGHT
IBM copyright notice field.
See Also:
Constant Field Values

NULL

public static final java.lang.Object NULL
String of object NULL

BIG_DECIMAL_ZERO

public static final java.math.BigDecimal BIG_DECIMAL_ZERO
String of big decimal "0"

DOUBLE_ZERO

public static final java.lang.Double DOUBLE_ZERO
String of "0" for dboule type

INTEGER_ZERO

public static final java.lang.Integer INTEGER_ZERO
String of "0" for integer type

LONG_ZERO

public static final java.lang.Long LONG_ZERO
String of "0" for Long type

ERRTASK_NAME

public static final java.lang.String ERRTASK_NAME
String of RetrievePriceErrorView
See Also:
Constant Field Values
Constructor Detail

PriceCalculationHelper

public PriceCalculationHelper()
PriceCalculationHelper constructor comment.
Method Detail

createPriceBusinessPolicy

public void createPriceBusinessPolicy(java.lang.String aPriceListName,
                                      java.lang.Long aPriceListOwner,
                                      java.lang.Integer aStoreEntityId,
                                      java.lang.String aPolicyName)
                               throws ECException,
                                      java.sql.SQLException
Creates a price business policy.
Parameters:
aPriceListName - the name of the price list for the policy.
aPriceListOwner - the owner id of the price list.
aStoreEntityId - the id the store.
aPolicyName - the name for the policy.
Throws:
ECException
java.sql.SQLException

deletePriceBusinessPolicy

public void deletePriceBusinessPolicy(java.lang.String aPriceListId,
                                      java.lang.Integer aStoreEntityId)
                               throws ECException
Deletes a price business policy.
Parameters:
aPriceListId - the id of the price list.
aStoreEntityId - the id the store.
Throws:
ECException

findAllMasterCatalogPriceLists

public java.lang.Long[] findAllMasterCatalogPriceLists(StoreAccessBean aStoreAB)
                                                throws ECException
Retrieves the price lists associated with master catalog (Fast Method).
Parameters:
aStoreAB - the access bean of the store which owns the master catalog.
Returns:
A list of price list ids for the master catalogs.
Throws:
ECException

getAllMasterCatalogPriceLists

public java.lang.Long[] getAllMasterCatalogPriceLists(StoreAccessBean aStoreAB)
                                               throws ECException
Retrieves the price lists associated with master catalog (Alternative Method).
Parameters:
aStoreAB - the access bean of the store which owns the master catalog.
Returns:
A list of price list ids for the master catalogs.
Throws:
ECException

getAllPolicyPriceLists

public java.util.Hashtable getAllPolicyPriceLists(StoreAccessBean aStoreAB)
                                           throws ECException
Retrieves the price list business policies.
Parameters:
aStoreAB - the access bean of the store which owns the policies.
Returns:
A list of price list policies.
Throws:
ECException

getAllPolicyPriceProperties

public java.util.Hashtable getAllPolicyPriceProperties(StoreAccessBean aStoreAB)
                                                throws ECException
Retrieves the price list business policy properties.
Parameters:
aStoreAB - the access bean of the store which owns the policies.
Returns:
A list of price list policy properties.
Throws:
ECException

getAllStandardPriceListAccessBeans

public java.util.Vector getAllStandardPriceListAccessBeans()
                                                    throws ECException
Retrieves the standard price list access beans.
Returns:
A list of standard price list access beans.
Throws:
ECException

getAllStandardPriceLists

public java.util.Vector getAllStandardPriceLists()
                                          throws ECException
Retrieves the ids of standard price list.
Returns:
A list of standard price list ids.
Throws:
ECException

getDynamicKitPrice

public MonetaryAmount getDynamicKitPrice(java.lang.String aCurrency,
CommandContext aCommandContext,
                                         java.lang.String astrConfigurationId,
OrderItemAccessBean aabOrderItem)
                                  throws ECException
get dynamic kit price
Parameters:
aCurrency - the currency
aCommandContext - the command context for this class
aabOrderItem - the orderItem accessbean
Returns:
MonetaryAmount the price for this dynamic kit
Throws:
ECException

getDynamicKitPrice

public MonetaryAmount getDynamicKitPrice(java.lang.String aCurrency,
CommandContext aCommandContext,
                                         java.lang.String astrConfigurationId,
OrderItemAccessBean aabOrderItem,
                                         java.util.Vector avecOrderItemComponents)
                                  throws ECException
get dynamic kit price
Parameters:
aCurrency - the currency
aCommandContext - the command context for this class
aabOrderItem - the orderItem accessbean
avecOrderItemComponents - a vector of orderItems
Returns:
MonetaryAmount the price for this dynamic kit
Throws:
ECException

getInPredicate

public java.lang.String getInPredicate(java.lang.Object[] objects)
Composes the IN search predicate.
Parameters:
objects -
Returns:
the inPrdicate clause

genMarkers

public java.lang.String genMarkers(int num)
Generates parameter markers for the IN search predicate.
Returns:
the parameter markers for inPrdicate clause

getInstance

public static PriceCalculationHelper getInstance()
Get PriceCalculationHelper instance
Returns:
an instance of PriceCalculationHelper

getMemberIdFromPrcPolicyProperties

public java.lang.Long getMemberIdFromPrcPolicyProperties(TypedProperty aparam)
                                                  throws ECException
Get member Id from properties retrieved from price policy
Parameters:
aparam - the TypedProperty
Returns:
the member ID
Throws:
ECException

getPolicyPriceList

public java.lang.String getPolicyPriceList(java.lang.String aPolicyProperties)
                                    throws ECException
Retrieves the price list associated with a policy.
Parameters:
aPolicyProperties - the properties defined in the policy.
Returns:
The id of the price list associated with the policy.
Throws:
ECException

getPolicyProductSet

public java.lang.String getPolicyProductSet(java.lang.String aPolicyProperties)
                                     throws ECException
Retrieves the product set associated with a policy.
Parameters:
aPolicyProperties - the properties defined in the policy.
Returns:
The id of the product set associated with the policy.
Throws:
ECException

handlePriceNotFoundException

public void handlePriceNotFoundException(ItemPriceInfo aItemPriceInfo,
                                         java.lang.String aCurrency,
                                         java.lang.String aClassName)
                                  throws ECException
Handles the price not found exception.
Parameters:
aItemPriceInfo - the item pricing info for a catalog entry.
aCurrency - the currency for the catalog entry.
aClassName - the name of the Class that detects the exception.
Throws:
ECException

isBestPrice

public boolean isBestPrice(QualifyingOfferInfo offerInfo,
                           java.math.BigDecimal aPriceValue)
Compares two prices for the best.
Parameters:
offerInfo - the offer info containing the price for comparison.
aPriceValue - the second price for comparison.
Returns:
true if second price is lower; false otherwise.

processOfferPricesVector

public boolean processOfferPricesVector(QualifyingOfferInfo offerInfo,
                                        java.util.Vector offerPricesVector,
                                        java.lang.String requestedCurrency,
OfferAccessBean offer,
StoreAccessBean storeAB)
                                 throws ECException
Process the prices for a specific offer. It is assumed that there is no price for the shopper's requested currency and therefore all prices are converted to the requested currency and the lowest one is chosen.
Parameters:
offerInfo - a qualified offer info.
offerPricesVector - a vector of prices for an offer.
requestedCurrency - the shopper's requested currency.
offer - offer access bean
storeAB - the store access bean.
Returns:
whether there was a successful conversion from any of the prices to the requested currency (and its the best yet).
Throws:
ECException

setPriceListProductSetId

public void setPriceListProductSetId(java.lang.String aPriceListId,
                                     java.lang.String aProductSetId)
                              throws ECException
Sets the product set id in the price list.
Parameters:
aPriceListId - the price list ID
aProductSetId - the product set ID
Throws:
ECException

setRoundCustomizedPrice

public MonetaryAmount setRoundCustomizedPrice(MonetaryAmount aPrice,
StoreAccessBean aStoreAB)
                                       throws ECSystemException
Rounds up the input price.
Parameters:
aPrice - the price monetary amount.
Returns:
The rounded up quantity amount for the catalog entry.
Throws:
ECSystemException