com.ibm.commerce.couponredemption.commands
Class UseCouponIdTaskCmdImpl

java.lang.Object
  |
  +--CacheableCommandImpl
        |
        +--com.ibm.commerce.command.AbstractECTargetableCommand
              |
              +--com.ibm.commerce.command.TaskCommandImpl
                    |
                    +--com.ibm.commerce.couponredemption.commands.UseCouponIdTaskCmdImpl
All Implemented Interfaces:
ECCommand, ECTargetableCommand, TaskCommand, UseCouponIdTaskCmd

public class UseCouponIdTaskCmdImpl
extends TaskCommandImpl
implements UseCouponIdTaskCmd

This command is invoked when the shopper specifies a set of eCoupon codes explicitly while checking out. First, this command check whether the specified coupons belong to the shopper. If yes, then the CheckValidityCmd command is called to find the eCoupons that are not expired. For the not expired eCoupons, CheckApplicabilityCmd command is called to find out which eCoupons are applicable for this order. For applicable coupons, CalculateDiscountAmtCmd command is called to calculate the discount amount and CouponDSSTaskCmd command is called to check for any conflict.

See Also:
Serialized Form

Field Summary
protected  java.lang.Integer calculationUsage
          The calculation usage code.
protected  java.util.Hashtable conflicts
          This hashtable stores the information about the conflict in the coupon selection.
protected  java.lang.Long[] couponIds
          The couponIds to be processed.
protected  java.lang.String currency
          The currency for this order.
protected  java.lang.Integer errorCode
          Error code to indicate what was wrong with the selection.
protected  java.util.Vector invalidCoupons
          IDs of the coupons that can not be applied to this order.
protected  int numCoupons
          The number of coupons to be processed.
protected  java.lang.Long orderId
          The order for which the coupons are to be found out
protected  CommandContext processingContext
          The command context holder
protected  TypedProperty requestProperties
          The request properties.
protected  java.lang.Long shopperId
          ID of the shopper invoking the command.
protected  java.lang.Integer storeId
          The store ID.
protected  boolean validSelection
          True if coupons selected can be used together.
protected  java.util.Vector vecInpCouponId
           
protected  boolean virtualShopperMail
          The e-mail ID of the virtual shopper.
 
Fields inherited from class com.ibm.commerce.command. AbstractECTargetableCommand
commandContext
 
Fields inherited from interface com.ibm.commerce.couponredemption.commands. UseCouponIdTaskCmd
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
UseCouponIdTaskCmdImpl()
          UseCouponIdCmdImpl constructor calls super.
 
Method Summary
 boolean checkCouponIdShopperState()
          Returns true if the CouponId are for this shopper and in Usable state.
 java.lang.Integer getCalculationUsage()
          Returns the calculation usage code.
 java.util.Hashtable getConflicts()
          Returns the conflicts information.
 java.lang.Long[] getCouponIds()
          Returns the couponIds.
 java.lang.String getCurrency()
          Gets the currency.
 java.lang.Integer getErrorCode()
          Returns the error code.
 java.util.Vector getInvalidCoupons()
          Returns the invalid coupons.
 int getNumCoupons()
          Returns the number of coupons.
 java.lang.Long getOrderId()
          Gets the order ID.
  CommandContext getProcessingContext()
          Returns the processing context.
  TypedProperty getRequestProperties()
          Returns the request properties.
 java.lang.Long getShopperId()
          Gets the shopperId.
 void insertIntoDB(java.lang.Long orderId, java.util.Hashtable couponHashtable)
          Inserts the coupon related information in the database.
 boolean isValidSelection()
          Returns true if the selection was valid.
 void performExecute()
          First, this this command check whether the specified coupons belong to the shopper.
 void removeExistingAdjustments(java.lang.Long anOrderId)
          Removes the existing adjustments for this order.
 void removeOldEntries()
          It removes the old entries from the TORCPMAP and TCPITMAP tables.
 void setCalculationUsage(java.lang.Integer newCalculationUsage)
          Sets the calculation usage.
 void setConflicts(java.util.Hashtable newConflicts)
          Sets the conflicts information.
 void setCouponIds(java.lang.Long[] newCouponIds)
          Sets the couponIds.
 void setCurrency(java.lang.String newCurrency)
          Sets the currency.
 void setErrorCode(java.lang.Integer newErrorCode)
          Sets the errorcode.
 void setInvalidCoupons(java.util.Vector newInvalidCoupons)
          Sets the invalidCoupons.
 void setKeepPrevious(boolean keepPrevious)
          Sets the removePrevious.
 void setNumCoupons(int newNumCoupons)
          Sets the number of coupons.
 void setOrderId(java.lang.Long newOrderId)
          Sets the order ID.
 void setProcessingContext( CommandContext newProcessingContext)
          Sets the processing context.
 void setRequestProperties( TypedProperty newRequestProperties)
          Sets the request properties.
 void setShopperId(java.lang.Long newShopperId)
          Sets the shopperId.
 void setValidSelection(boolean newValidSelection)
          Sets the validSelect field.
 void validateParameters()
          Extracts the couponIds to be used in the command from the request.
 
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

vecInpCouponId

protected java.util.Vector vecInpCouponId

conflicts

protected java.util.Hashtable conflicts
This hashtable stores the information about the conflict in the coupon selection. The key is the first coupon and value is the vector of other coupons conflicting with this coupon.

processingContext

protected CommandContext processingContext
The command context holder

shopperId

protected java.lang.Long shopperId
ID of the shopper invoking the command.

storeId

protected java.lang.Integer storeId
The store ID.

currency

protected java.lang.String currency
The currency for this order.

calculationUsage

protected java.lang.Integer calculationUsage
The calculation usage code.

orderId

protected java.lang.Long orderId
The order for which the coupons are to be found out

numCoupons

protected int numCoupons
The number of coupons to be processed.

couponIds

protected java.lang.Long[] couponIds
The couponIds to be processed.

errorCode

protected java.lang.Integer errorCode
Error code to indicate what was wrong with the selection.

validSelection

protected boolean validSelection
True if coupons selected can be used together.

invalidCoupons

protected java.util.Vector invalidCoupons
IDs of the coupons that can not be applied to this order.

requestProperties

protected TypedProperty requestProperties
The request properties.

virtualShopperMail

protected boolean virtualShopperMail
The e-mail ID of the virtual shopper.
Constructor Detail

UseCouponIdTaskCmdImpl

public UseCouponIdTaskCmdImpl()
UseCouponIdCmdImpl constructor calls super.
Method Detail

checkCouponIdShopperState

public boolean checkCouponIdShopperState()
                                  throws ECSystemException
Returns true if the CouponId are for this shopper and in Usable state. If the user is virtual coupon user, then and entry is created in the CouponEmailMapAccessBean for cpwalletId and shopperEmailId fields.
Returns:
true if the coupon belongs to this user and is in usable state.
ECSystemException

getCalculationUsage

public java.lang.Integer getCalculationUsage()
Returns the calculation usage code.
Returns:
the calculation usage code.

getConflicts

public java.util.Hashtable getConflicts()
Returns the conflicts information.
Specified by:
getConflicts in interface UseCouponIdTaskCmd
Returns:
Hashtable containing conflict information.

getCouponIds

public java.lang.Long[] getCouponIds()
Returns the couponIds.
Returns:
the array of coupon ids.

getCurrency

public java.lang.String getCurrency()
Gets the currency.
Returns:
the currency used.

getErrorCode

public java.lang.Integer getErrorCode()
Returns the error code.
Specified by:
getErrorCode in interface UseCouponIdTaskCmd
Returns:
the error code indicating what was the reason for the coupons to not be applicable.

getInvalidCoupons

public java.util.Vector getInvalidCoupons()
Returns the invalid coupons.
Specified by:
getInvalidCoupons in interface UseCouponIdTaskCmd
Returns:
vector containing informatoin about which coupons are invalid.

getNumCoupons

public int getNumCoupons()
Returns the number of coupons.
Specified by:
getNumCoupons in interface UseCouponIdTaskCmd
Returns:
the number of coupons.

getOrderId

public java.lang.Long getOrderId()
Gets the order ID.
Returns:
the order ID.

getProcessingContext

public CommandContext getProcessingContext()
Returns the processing context.
Returns:
the command context.

getRequestProperties

public TypedProperty getRequestProperties()
Returns the request properties.
Returns:
the request properties.

getShopperId

public java.lang.Long getShopperId()
Gets the shopperId.
Returns:
the shopperId.

insertIntoDB

public void insertIntoDB(java.lang.Long orderId,
                         java.util.Hashtable couponHashtable)
                  throws ECSystemException
Inserts the coupon related information in the database. First create the TempOrderCouponMapAccessBean for each coupon used for this order. Then, create the TempCouponItemMapAccessBean for each item for coupon, with the discount amount information.
Parameters:
orderId - The order for which the coupons are being applied.
Throws:
com.ibm.commerce.exception.ECException.
ECSystemException

isValidSelection

public boolean isValidSelection()
Returns true if the selection was valid.
Specified by:
isValidSelection in interface UseCouponIdTaskCmd
Returns:
boolean

performExecute

public void performExecute()
                    throws ECException
First, this this command check whether the specified coupons belong to the shopper. If yes, then the CheckValidityCmd command is called to find the eCoupons that are not expired. For the not expired eCoupons, CheckApplicabilityCmd command is called to find out which eCoupons are applicable for this order. For applicable coupons, CalculateDiscountAmtCmd command is called to calculate the discount amount and CouponDSSTaskCmd command is called to check for any conflict.
Specified by:
performExecute in interface ECCommand
Overrides:
performExecute in class AbstractECTargetableCommand
Throws:
ECException

removeExistingAdjustments

public void removeExistingAdjustments(java.lang.Long anOrderId)
                               throws ECSystemException
Removes the existing adjustments for this order.
Parameters:
anOrderId - the order ID for which the adjustments are removed.
ECSystemException

removeOldEntries

public void removeOldEntries()
                      throws ECSystemException
It removes the old entries from the TORCPMAP and TCPITMAP tables.
Throws:
com.ibm.commerce.exception.ECException.
ECSystemException

setCalculationUsage

public void setCalculationUsage(java.lang.Integer newCalculationUsage)
Sets the calculation usage.
Parameters:
newCalculationUsage - the calculation code.

setConflicts

public void setConflicts(java.util.Hashtable newConflicts)
Sets the conflicts information.
Parameters:
newConflicts - hashtable containing the conflict information.

setCouponIds

public void setCouponIds(java.lang.Long[] newCouponIds)
Sets the couponIds.
Specified by:
setCouponIds in interface UseCouponIdTaskCmd
Parameters:
newCouponIds - the coupon IDs.

setCurrency

public void setCurrency(java.lang.String newCurrency)
Sets the currency.
Parameters:
newCurrency - the currency to be used.

setErrorCode

public void setErrorCode(java.lang.Integer newErrorCode)
Sets the errorcode.
Parameters:
newErrorCode - the error code indicating the reason for the coupons to be not applicable.

setInvalidCoupons

public void setInvalidCoupons(java.util.Vector newInvalidCoupons)
Sets the invalidCoupons.
Parameters:
newInvalidCoupons - vector containing information about which coupons are invalid.

setNumCoupons

public void setNumCoupons(int newNumCoupons)
Sets the number of coupons.
Parameters:
newNumCoupons - number of coupons.

setOrderId

public void setOrderId(java.lang.Long newOrderId)
Sets the order ID.
Specified by:
setOrderId in interface UseCouponIdTaskCmd
Parameters:
newOrderId - the order ID.

setProcessingContext

public void setProcessingContext(CommandContext newProcessingContext)
Sets the processing context.
Parameters:
newProcessingContext - command context to be used.

setRequestProperties

public void setRequestProperties(TypedProperty newRequestProperties)
Sets the request properties.
Specified by:
setRequestProperties in interface UseCouponIdTaskCmd
Parameters:
newRequestProperties - the request properties.

setShopperId

public void setShopperId(java.lang.Long newShopperId)
Sets the shopperId.
Specified by:
setShopperId in interface UseCouponIdTaskCmd
Parameters:
newShopperId - the shopper ID.

setValidSelection

public void setValidSelection(boolean newValidSelection)
Sets the validSelect field.
Parameters:
newValidSelection - true if the selection is valid.

validateParameters

public void validateParameters()
                        throws ECException
Extracts the couponIds to be used in the command from the request.
Specified by:
validateParameters in interface ECCommand
Overrides:
validateParameters in class AbstractECTargetableCommand
Throws:
ECException.
ECException

setKeepPrevious

public void setKeepPrevious(boolean keepPrevious)
Sets the removePrevious.
Specified by:
setKeepPrevious in interface UseCouponIdTaskCmd
Parameters:
keepPrevious - The keepPrevious to set