java.lang.ObjectCacheableCommandImpl
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 |
defaultCommandClassName, Name |
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
public boolean checkParentCatEntryIds(java.lang.Long oiCatEntryId, java.lang.Long walletCatEntryId) throws ECSystemException
public java.util.Vector[] getApplicableItems()
public java.lang.Long[] getBcIds()
public java.sql.Timestamp getCurrentTimeStamp()
public java.lang.Long getOrderId()
public CommandContext getProcessingContext()
public TypedProperty getRequestProperties()
public TypedProperty getResponseProperties()
public boolean[] getValidCoupons()
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.
public void setApplicableItems(java.util.Vector[] newApplicableItems)
public void setBcIds(java.lang.Long[] newBcIds)
public void setCurrentTimeStamp(java.sql.Timestamp newCurrentTimeStamp)
public void setOrderId(java.lang.Long newOrderId)
public void setProcessingContext(CommandContext newProcessingContext)
public void setRequestProperties(TypedProperty param)
public void setValidCoupons(boolean[] newValidCoupons)
public void validateParameters() throws ECException
(C) Copyright IBM Corporation 1996, 2005. All Rights Reserved.