com.ibm.commerce.price.commands
Class SelectContractPricesCmdImpl

java.lang.Object
  |
  +--com.ibm.commerce.command.AbstractECCommand
        |
        +--com.ibm.commerce.command.TaskCommandImpl
              |
              +--com.ibm.commerce.price.commands.SelectContractPricesCmdImpl
All Implemented Interfaces:
ECCommand, SelectContractPricesCmd, TaskCommand

public class SelectContractPricesCmdImpl
extends TaskCommandImpl
implements SelectContractPricesCmd

This SelectContractPricesCmd Task Command Implementation selects the best offer among all the qualified offers for the input catalog entry.

If the command is successful retrieving the price, it will return the best price, the offer id and access bean, the T&C id and the trading agreement id that determined the price.

If unsuccessful, the command throws the ECApplicationException specifying an Error Message (ERR_RETRIEVE_PRICE), an Error Code (ERR_CODE_NO_PRICE) and the Error View (RetrievePriceErrorView).

Behaviour The best offer will be selected based on the following criteria:

Exception Conditions

If ErrorMode is false, these errors will be ignored and a null value price will be passed back to the caller.


Field Summary
static java.lang.String COPYRIGHT
           
 
Fields inherited from class com.ibm.commerce.command.AbstractECCommand
commandContext
 
Fields inherited from interface com.ibm.commerce.price.commands.SelectContractPricesCmd
defaultCommandClassName, NAME
 
Constructor Summary
SelectContractPricesCmdImpl()
           
 
Method Summary
protected  QualifyingOfferInfo findBestOffer(java.util.Hashtable aOfferInfoHash, ItemPriceInfo aItemPriceInfo)
          Finds the best offer for a catalog entry.
 ItemPriceInfo[] getItemPriceInfo()
          Returns the internal item info structure.
 void performExecute()
          Executes main business logic of the command.
protected  void selectOffer()
          Selects the best offer for a catalog entry.
protected  void selectTradingOffers()
          Selects the best offer for a catalog entry for each trading agreement.
 void setCurrency(java.lang.String astrCurrency)
          Sets the currency to be used for finding the price (Optional).
 void setErrorMode(boolean aErrorMode)
          Sets the flag to indicate if exception will be thrown when the price cannot be found for the input catentry (Optional).
 void setItemPriceInfo(ItemPriceInfo[] aItemPriceInfo)
          Sets the item info structure for internal use on calculating the prices.
 void setStoreId(java.lang.Integer aStoreId)
          Sets the id of the input store to be used for calculating the price (Optional).
 void validateParameters()
          Checks mandatory parameters.
 
Methods inherited from class com.ibm.commerce.command.AbstractECCommand
accessControlCheck, checkIsAllowed, checkResourcePermission, execute, finalize, getAccCheck, getCommandContext, getCommandIfName, getCommandName, getDefaultProperties, getResources, getStoreId, getUser, getUserId, isReadyToCallExecute, reset, setAccCheck, setCommandContext, setCommandIfName, setDefaultProperties
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.ibm.commerce.command.ECCommand
checkIsAllowed, checkResourcePermission, execute, getAccCheck, getCommandContext, getCommandIfName, getCommandName, getDefaultProperties, getResources, getStoreId, getUser, getUserId, setAccCheck, setCommandContext, setCommandIfName, setDefaultProperties
 

Field Detail

COPYRIGHT

public static final java.lang.String COPYRIGHT
Constructor Detail

SelectContractPricesCmdImpl

public SelectContractPricesCmdImpl()
Method Detail

findBestOffer

protected QualifyingOfferInfo findBestOffer(java.util.Hashtable aOfferInfoHash,
                                            ItemPriceInfo aItemPriceInfo)
                                     throws ECException
Finds the best offer for a catalog entry.

Parameters:
aOfferInfoHash - the list of offers for selection.
aItemPriceInfo - the item price info.

Returns:
The best qualified offer.

getItemPriceInfo

public ItemPriceInfo[] getItemPriceInfo()
Returns the internal item info structure.
Specified by:
getItemPriceInfo in interface SelectContractPricesCmd
Following copied from interface: com.ibm.commerce.price.commands.SelectContractPricesCmd
Returns:
The item info structure for storing information such as the trading agreements, price lists that will be used for calculating the prices of the items.

performExecute

public void performExecute()
                    throws ECException
Executes main business logic of the command.
Specified by:
performExecute in interface ECCommand
Overrides:
performExecute in class AbstractECCommand
Following copied from interface: com.ibm.commerce.command.ECCommand
Throws:
com.ibm.commerce.command.CommandException - The superclass for all ECExceptions.

selectOffer

protected void selectOffer()
                    throws ECException
Selects the best offer for a catalog entry.

selectTradingOffers

protected void selectTradingOffers()
                            throws ECException
Selects the best offer for a catalog entry for each trading agreement.

setCurrency

public void setCurrency(java.lang.String astrCurrency)
Sets the currency to be used for finding the price (Optional).
Specified by:
setCurrency in interface SelectContractPricesCmd
Following copied from interface: com.ibm.commerce.price.commands.SelectContractPricesCmd
Parameters:
astrCurrency - The currency to look up the price. If the currency is not specified then the "negotiated" currency is used for the store Id and shopper's preferred currency. (The negotiated currency is the currency returned from the getCurrency() method of the currency manager).

setErrorMode

public void setErrorMode(boolean aErrorMode)
Sets the flag to indicate if exception will be thrown when the price cannot be found for the input catentry (Optional).
Specified by:
setErrorMode in interface SelectContractPricesCmd
Following copied from interface: com.ibm.commerce.price.commands.SelectContractPricesCmd
Parameters:
aErrorMode - The indicator to decide if an exception will be thrown when the price cannot be found. A true value (default) means throw exception. A false value means do not throw exception and returns a null value price

setItemPriceInfo

public void setItemPriceInfo(ItemPriceInfo[] aItemPriceInfo)
Sets the item info structure for internal use on calculating the prices.
Specified by:
setItemPriceInfo in interface SelectContractPricesCmd
Following copied from interface: com.ibm.commerce.price.commands.SelectContractPricesCmd
Parameters:
aItemPriceInfo - the item info structure for storing information such as the trading agreements, price lists that will be used for calculating the prices of the items.

setStoreId

public void setStoreId(java.lang.Integer aStoreId)
Sets the id of the input store to be used for calculating the price (Optional).
Specified by:
setStoreId in interface SelectContractPricesCmd
Following copied from interface: com.ibm.commerce.price.commands.SelectContractPricesCmd
Parameters:
aStoreId - The reference number of a store to be used for calculating the price. If the store id is not specified then the store id of the command context will be used.

validateParameters

public void validateParameters()
                        throws ECException
Checks mandatory parameters.
Specified by:
validateParameters in interface ECCommand
Overrides:
validateParameters in class AbstractECCommand
Following copied from interface: com.ibm.commerce.command.ECCommand
Throws:
ECException. -