java.lang.Object | +--CacheableCommandImpl | +--com.ibm.commerce.command.AbstractECTargetableCommand | +--com.ibm.commerce.command.TaskCommandImpl | +--com.ibm.commerce.couponredemption.commands.CheckApplicabilityCmdImpl
The purpose of this command is to check for applicability of the coupons on the shopping cart. The purchase condition are evaluated and the information is put in applicable variable which is used by the calling command.
First the order amount is calculated. Then the cppmnId is found out by using
corresponding cpwalletId for that eCoupon. If the purchase order condition type
for an eCoupon promotion is of product type, then the required products and
their minumum quantities are found out from PromoProdAccessBean
.
If all the required products are present in the order with the required
quantities, then the applicable eCoupons are found out.If the purchase order
condition type for an eCoupon promotion is of type order, then the required
amount for that order is found from PromoOrderAccessBean
and the
currency from CouponPromotionAccessBean
. If the order amount
satisfies the conditions, then the eCoupon is applicable. These above steps are
performed for each cpwalletId.
Field Summary | |
---|---|
protected
java.util.Vector[] |
applicableItems The nth element of this array is the Vector of order items that satisfy the purchase conditions of the nth coupon. |
protected
java.lang.Long[] |
bcIds The IDs of the coupons to be applied to this order |
protected
java.sql.Timestamp |
currentTimeStamp The current system time. |
protected
TypedProperty |
inParam The request properties. |
protected
java.lang.Long |
orderId ID of the order |
protected
TypedProperty |
outParam The response properties. |
protected
CommandContext |
processingContext The command context holder |
protected
TypedProperty |
reqParam The request properties. |
protected
boolean[] |
validCoupons The nth element denotes if the nth coupon is applicable. |
Fields inherited from class com.ibm.commerce.command. AbstractECTargetableCommand |
commandContext |
Fields inherited from interface com.ibm.commerce.couponredemption.commands. CheckApplicabilityCmd |
COPYRIGHT,
defaultCommandClassName,
Name |
Fields inherited from interface com.ibm.commerce.command. ECTargetableCommand |
COPYRIGHT |
Fields inherited from interface com.ibm.commerce.command. ECCommand |
defaultCommandClassName |
Constructor Summary | |
---|---|
CheckApplicabilityCmdImpl() CheckValidityCmdImpl constructor calls super. |
Method Summary | |
---|---|
java.math.BigDecimal |
calculateTotalOrderAmt(java.util.Vector vecoiAB,
StoreAccessBean sAB,
CurrencyManager cm,
java.lang.String curCurrency) Calculates the total order amount. |
boolean |
checkParentCatEntryIds(java.lang.Long oiCatEntryId,
java.lang.Long walletCatEntryId) Checks the parent catalog entry. |
java.util.Vector[] |
getApplicableItems() Gets applicable items. |
java.lang.Long[] |
getBcIds() Gets the eCoupon IDs. |
java.sql.Timestamp |
getCurrentTimeStamp() Gets current time from system. |
java.lang.Long |
getOrderId() Gets order ID. |
CommandContext |
getProcessingContext() Gets the processing context. |
TypedProperty |
getRequestProperties() Gets the request properties. |
TypedProperty |
getResponseProperties() Gets the response properties. |
boolean[] |
getValidCoupons() Gets the array indicating whether the Coupons are applicable or not. |
void |
performExecute() First the order amount is calculated. |
void |
setApplicableItems(java.util.Vector[] newApplicableItems) Sets the applicable items. |
void |
setBcIds(java.lang.Long[] newBcIds) Sets eCoupon IDs. |
void |
setCurrentTimeStamp(java.sql.Timestamp newCurrentTimeStamp) Sets the current time from system. |
void |
setOrderId(java.lang.Long newOrderId) Sets the order ID. |
void |
setProcessingContext(
CommandContext newProcessingContext) Sets the processing context. |
void |
setRequestProperties(
TypedProperty param) Sets the request properties. |
void |
setValidCoupons(boolean[] newValidCoupons) Sets the array indicating whether the Coupons are applicable or not. |
void |
validateParameters() It checks the parameters. |
Methods inherited from class com.ibm.commerce.command. AbstractECTargetableCommand |
accessControlCheck,
checkIsAllowed,
checkParameters,
checkResourcePermission,
createCommandExecutionEvent,
execute,
finalize,
getAccCheck,
getCommandContext,
getCommandIfName,
getCommandName,
getCommandStoreId,
getDefaultProperties,
getResources,
getStoreId,
getUser,
getUserId,
isReadyToCallExecute,
reset,
setAccCheck,
setCommandContext,
setCommandIfName,
setCommandStoreId,
setDefaultProperties |
Methods inherited from class java.lang.Object |
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait,
wait, wait |
Field Detail |
---|
protected TypedProperty outParam
protected TypedProperty reqParam
protected java.lang.Long[] bcIds
protected java.sql.Timestamp currentTimeStamp
protected TypedProperty inParam
protected java.lang.Long orderId
protected CommandContext processingContext
protected java.util.Vector[] applicableItems
protected boolean[] validCoupons
Constructor Detail |
---|
public CheckApplicabilityCmdImpl()
Method Detail |
---|
public java.math.BigDecimal calculateTotalOrderAmt(java.util.Vector vecoiAB, StoreAccessBean sAB, CurrencyManager cm, java.lang.String curCurrency) throws ECSystemException, javax.naming.NamingException, java.rmi.RemoteException, javax.ejb.CreateException, javax.ejb.FinderException
ECSystemException
javax.naming.NamingException
java.rmi.RemoteException
javax.ejb.CreateException
javax.ejb.FinderException
public boolean checkParentCatEntryIds(java.lang.Long oiCatEntryId, java.lang.Long walletCatEntryId) throws ECSystemException
oiCatEntryId
- The child catalog entry ID.walletCatEntryId
- The parent catalog entry ID.
ECSystemException
public java.util.Vector[] getApplicableItems()
getApplicableItems
in interface
CheckApplicabilityCmd
public java.lang.Long[] getBcIds()
public java.sql.Timestamp getCurrentTimeStamp()
public java.lang.Long getOrderId()
public CommandContext getProcessingContext()
public TypedProperty getRequestProperties()
public TypedProperty getResponseProperties()
getResponseProperties
in interface
CheckApplicabilityCmd
public boolean[] getValidCoupons()
getValidCoupons
in interface
CheckApplicabilityCmd
public void performExecute() throws ECException
First the order amount is calculated. Then the cppmnId is found out by using
corresponding cpwalletId for that eCoupon. If the purchase order condition type
for an eCoupon promotion is of product type, then the required products and
their minumum quantities are found out from PromoProdAccessBean
.
If all the required products are present in the order with the required
quantities, then the applicable eCoupons are found out. If the purchase order
condition type for an eCoupon promotion is of type order, then the required
amount for that order is found from PromoOrderAccessBean
and the
currency from CouponPromotionAccessBean
. If the order amount
satisfies the conditions, then the eCoupon is applicable. These above steps are
performed for each cpwalletId.
performExecute
in interface
ECCommand
performExecute
in class
AbstractECTargetableCommand
:
- ECException.ECException
public void setApplicableItems(java.util.Vector[] newApplicableItems)
setApplicableItems
in interface
CheckApplicabilityCmd
newApplicableItems
- the applicable items.public void setBcIds(java.lang.Long[] newBcIds)
setBcIds
in interface
CheckApplicabilityCmd
public void setCurrentTimeStamp(java.sql.Timestamp newCurrentTimeStamp)
newCurrentTimeStamp
- the current timepublic void setOrderId(java.lang.Long newOrderId)
setOrderId
in interface
CheckApplicabilityCmd
newOrderId
- the order ID.public void setProcessingContext(CommandContext newProcessingContext)
setProcessingContext
in interface
CheckApplicabilityCmd
newProcessingContext
- the command context to be
used.public void setRequestProperties(TypedProperty param)
setRequestProperties
in interface
CheckApplicabilityCmd
param
- the request properties.public void setValidCoupons(boolean[] newValidCoupons)
newValidCoupons
- array whose nth element indicates if the nth
coupon is applicablepublic void validateParameters() throws ECException
validateParameters
in interface
ECCommand
validateParameters
in class
AbstractECTargetableCommand
ECException