com.ibm.commerce.inventory.commands
Class AdjustInventoryReservationCmdImpl

java.lang.Object
  |
  +--CacheableCommandImpl
        |
        +--com.ibm.commerce.command.AbstractECTargetableCommand
              |
              +--com.ibm.commerce.command.TaskCommandImpl
                    |
                    +--com.ibm.commerce.inventory.commands.AdjustInventoryReservationCmdImpl
All Implemented Interfaces:
AdjustInventoryReservationCmd, ECCommand, ECTargetableCommand, TaskCommand

public class AdjustInventoryReservationCmdImpl
extends TaskCommandImpl
implements AdjustInventoryReservationCmd

Default implementation of the AdjustInventoryReservationCmd interface.

Adjusts the inventory for a given inventory reservation by the amount of the given quantity. Required arguments are inventory reservation number and adjustment quantity (which may be negative).

Behavior:

If quantity argument is negative it means we are releasing inventory. If this is the case, see if we have enough inventory reserved to satisfy the release amount.

If quantity argument is positive it means we are adding inventory to the reservation. If this is the case, see if we have enough inventory to satisfy the additional reservation amount.

Assuming the above edit checks are successful, adjust the quantity reserved by the amount of the quantity argument.

See Also:
Serialized Form

Field Summary
static java.lang.String INVRESERVE_ID
          Constant InvReserveId.
 
Fields inherited from class com.ibm.commerce.command. AbstractECTargetableCommand
commandContext
 
Fields inherited from interface com.ibm.commerce.inventory.commands. AdjustInventoryReservationCmd
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
AdjustInventoryReservationCmdImpl()
          Constructor for AdjustInventoryReservationCmdImpl.
 
Method Summary
 java.lang.Long getInvRsrvId()
          Gets the id of the inventory reservation being adjusted.
 java.lang.Integer getQuantity()
          Gets the number of inventory items to be adjusted in the reservation.
 boolean isGeneric()
          Checks if command can be run by a generic user.
 boolean isReadyToCallExecute()
          Checks if command is ready to be executed (run).
 void performExecute()
          Adjust the inventory reservation quantity.
 void reset()
          Resets the instance variables, quantity and reservation identifier.
 void setInvRsrvId(java.lang.Long argInvRsrvId)
          Identifies the inventory reservation to be adjusted.
 void setQuantity(java.lang.Integer argQuantity)
          Sets the adjustment quantity for the inventory reservation negatively or positively.
 void validateParameters()
          Validates the command 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, setAccCheck, setCommandContext, setCommandIfName, setCommandStoreId, setDefaultProperties
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

INVRESERVE_ID

public static final java.lang.String INVRESERVE_ID
Constant InvReserveId.
See Also:
Constant Field Values
Constructor Detail

AdjustInventoryReservationCmdImpl

public AdjustInventoryReservationCmdImpl()
Constructor for AdjustInventoryReservationCmdImpl. Calls super().
Method Detail

validateParameters

public void validateParameters()
                        throws ECException
Validates the command parameters.
Specified by:
validateParameters in interface ECCommand
Overrides:
validateParameters in class AbstractECTargetableCommand
Throws:
ECException - ECSystemException _ERR_CMD_MISSING_PARAM when one of the parameters is missing.

getInvRsrvId

public java.lang.Long getInvRsrvId()
Gets the id of the inventory reservation being adjusted.
Returns:
Reservation identifier.
See Also:
setInvRsrvId(java.lang.Long)

getQuantity

public java.lang.Integer getQuantity()
Gets the number of inventory items to be adjusted in the reservation.
Returns:
Inventory adjustment quantity.
See Also:
setQuantity(java.lang.Integer)

isGeneric

public boolean isGeneric()
Checks if command can be run by a generic user.
Returns:
Always false. Cannot be run by a generic user.

isReadyToCallExecute

public boolean isReadyToCallExecute()
Checks if command is ready to be executed (run).
Overrides:
isReadyToCallExecute in class AbstractECTargetableCommand
Returns:
Always true.

performExecute

public void performExecute()
                    throws ECException
Adjust the inventory reservation quantity. If itemffmctr.qtyreserved is greater than or equal to quantity and invreserve.quantity is greater than or equal to quantity then subtract the quantity from both itemffmctr.qtyreserved and invreserve.quantity.
Specified by:
performExecute in interface ECCommand
Overrides:
performExecute in class AbstractECTargetableCommand
Throws:
ECExecption - If there is not enough reserved to satisfy the release amount throw ECApplicationException specifying _ERR_RELEASE_QUANTITY_MORE_THAN_INVENTORY.
  • ECSystemException Naming error, _ERR_CREATE_EXCEPTION
  • ECSystemException Finder error, _ERR_FINDER_EXCEPTION
  • ECSystemException Naming error, _ERR_NAMING_EXCEPTION
ECException

reset

public void reset()
Resets the instance variables, quantity and reservation identifier.
Overrides:
reset in class AbstractECTargetableCommand

setInvRsrvId

public void setInvRsrvId(java.lang.Long argInvRsrvId)
Description copied from interface: AdjustInventoryReservationCmd
Identifies the inventory reservation to be adjusted.
Specified by:
setInvRsrvId in interface AdjustInventoryReservationCmd
Parameters:
argInvRsrvId - inventory reservation id
See Also:
AdjustInventoryReservationCmd.setInvRsrvId(java.lang.Long)

setQuantity

public void setQuantity(java.lang.Integer argQuantity)
Description copied from interface: AdjustInventoryReservationCmd
Sets the adjustment quantity for the inventory reservation negatively or positively.
Specified by:
setQuantity in interface AdjustInventoryReservationCmd
Parameters:
argQuantity - quantity to adjust
See Also:
AdjustInventoryReservationCmd.setQuantity(java.lang.Integer)