public class DetailedItemPriceTools extends ApplicationLoggingImpl
Created: Tue Jul 24 10:37:24 2001| Modifier and Type | Field and Description | 
|---|---|
static java.lang.String | 
CLASS_VERSION
Class version string 
 | 
DEFAULT_LOG_TRACE_STATUSDEFAULT_LOG_DEBUG_STATUS, DEFAULT_LOG_ERROR_STATUS, DEFAULT_LOG_INFO_STATUS, DEFAULT_LOG_WARNING_STATUS| Constructor and Description | 
|---|
DetailedItemPriceTools(PricingTools pPricingTools)
Constructs an instance of DetailedItemPriceTools 
 | 
| Modifier and Type | Method and Description | 
|---|---|
void | 
adjustDetailedItemPriceInfos(java.util.List pDetailedItemPriceInfos,
                            double pUnitAdjustment,
                            double pTotalAdjustment,
                            ItemPriceInfo pPriceQuote,
                            CommerceItem pItem,
                            RepositoryItem pPricingModel,
                            java.util.Locale pLocale,
                            RepositoryItem pProfile,
                            java.util.Map pExtraParameters,
                            java.lang.String pAdjustmentDescription)
This method will modify the price of each given DetailedItemPriceInfo by the
 given unit adjustment. 
 | 
void | 
adjustDetailedItemPriceInfos(java.util.List pDetailedItemPriceInfos,
                            double pUnitAdjustment,
                            ItemPriceInfo pPriceQuote,
                            CommerceItem pItem,
                            RepositoryItem pPricingModel,
                            java.util.Locale pLocale,
                            RepositoryItem pProfile,
                            java.util.Map pExtraParameters,
                            java.lang.String pAdjustmentDescription)
This method will modify the price of each given DetailedItemPriceInfo by the
 given unit adjustment. 
 | 
void | 
assignSalePriceToDetails(java.util.List pDetailedItemPriceInfos,
                        double pUnitSalePrice,
                        ItemPriceInfo pPriceQuote,
                        CommerceItem pItem,
                        RepositoryItem pPricingModel,
                        java.util.Locale pLocale,
                        RepositoryItem pProfile,
                        java.util.Map pExtraParameters,
                        java.lang.String pAdjustmentDescription)
This method will assign the given sales price to each of the given details. 
 | 
java.util.List | 
createInitialDetailedItemPriceInfos(double pTotalPrice,
                                   ItemPriceInfo pPriceQuote,
                                   CommerceItem pItem,
                                   RepositoryItem pPricingModel,
                                   java.util.Locale pLocale,
                                   RepositoryItem pProfile,
                                   java.util.Map pExtraParameters,
                                   java.lang.String pAdjustmentDescription)
Create the initial DetailedItemPriceInfos with the given price
 This method will create one DetailedItemPriceInfo for each ShippingGroupCommerceItemRelationship
 in the order. 
 | 
java.util.List | 
createInitialDetailedItemPriceInfos(double pTotalPrice,
                                   ItemPriceInfo pPriceQuote,
                                   CommerceItem pItem,
                                   RepositoryItem pPricingModel,
                                   java.util.Locale pLocale,
                                   RepositoryItem pProfile,
                                   java.util.Map pExtraParameters,
                                   java.lang.String pAdjustmentDescription,
                                   atg.core.util.Range pRange)
Create the initial DetailedItemPriceInfos with the given price for the given range
 This method will create one DetailedItemPriceInfo for each ShippingGroupCommerceItemRelationship
 in the order whose range falls within the given range. 
 | 
atg.core.util.Range | 
createRange()
Instantiates a new  
Range object based on the configured
 range type in PricingTools | 
void | 
distributeAmountAcrossDetails(java.util.List pShipItemRels,
                             double pAmountOfContainer,
                             double pAmountToDistribute,
                             java.lang.String pDetailProperty)
This method will distribute pAmountToDistribute across all the
 detailedItemPriceInfos for each relationship in pShipItemRels. 
 | 
void | 
distributeAmountAcrossDetails(java.util.List pShipItemRels,
                             double pAmountOfContainer,
                             double pAmountToDistribute,
                             java.lang.String pDetailProperty,
                             boolean pAccumulate)
This method will distribute pAmountToDistribute across all teh
 detailedItemPriceInfos for each relationship in pShipItemRels. 
 | 
void | 
distributeAmountAcrossDetails(java.util.List pShipItemRels,
                             double pAmountOfContainer,
                             double pAmountToDistribute,
                             java.lang.String pDetailProperty,
                             boolean pAccumulate,
                             java.lang.String pCurrencyCode)
This method will distribute pAmountToDistribute across all the
 detailedItemPriceInfos for each relationship in pShipItemRels. 
 | 
protected java.util.List | 
getDetailsToReceiveDiscountShare(ItemPriceInfo pItemPriceInfo,
                                atg.core.util.Range pRange)
This will return the price details in an item price info that will be marked as receiving a share of the 
 order discount. 
 | 
PricingTools | 
getPricingTools()
The PricingTools object 
 | 
boolean | 
isLoggingDebug()
This method returns whether or not an debug log event should be
 broadcast. 
 | 
boolean | 
isLoggingError()
This method returns whether or not an error log event should be
 broadcast. 
 | 
boolean | 
isLoggingInfo()
This method returns whether or not an info log event should be
 broadcast. 
 | 
boolean | 
isLoggingWarning()
This method returns whether or not an warning log event should be
 broadcast. 
 | 
void | 
logDebug(java.lang.String pMessage)
Logs an debug event with the specified message 
 | 
void | 
logDebug(java.lang.String pMessage,
        java.lang.Throwable pThrowable)
Logs an debug event with the specified message and Throwable 
 | 
void | 
logDebug(java.lang.Throwable pThrowable)
Logs an debug event with the specified Throwable 
 | 
void | 
logError(java.lang.String pMessage)
Logs an error event with the specified message 
 | 
void | 
logError(java.lang.String pMessage,
        java.lang.Throwable pThrowable)
Logs an error event with the specified message and Throwable 
 | 
void | 
logError(java.lang.Throwable pThrowable)
Logs an error event with the specified Throwable 
 | 
void | 
logInfo(java.lang.String pMessage)
Logs an info event with the specified message 
 | 
void | 
logInfo(java.lang.String pMessage,
       java.lang.Throwable pThrowable)
Logs an info event with the specified message and Throwable 
 | 
void | 
logInfo(java.lang.Throwable pThrowable)
Logs an info event with the specified Throwable 
 | 
void | 
logWarning(java.lang.String pMessage)
Logs an warning event with the specified message 
 | 
void | 
logWarning(java.lang.String pMessage,
          java.lang.Throwable pThrowable)
Logs an warning event with the specified message and Throwable 
 | 
void | 
logWarning(java.lang.Throwable pThrowable)
Logs an warning event with the specified Throwable 
 | 
void | 
setPricingTools(PricingTools pPricingTools)  | 
java.util.List | 
splitDetailsAccordingToRanges(DetailedItemPriceInfo pDetail,
                             java.util.List pRanges)
Create a detail with the same information as the given detail, 1 for each range. 
 | 
addGlobalLogListeners, addLogListener, getLoggingForVlogging, getLoggingIdentifer, getLoggingIdentifier, getLogListenerCount, getLogListeners, initializeFromServiceEvent, isAutoInitListeners, isLoggingTrace, logTrace, logTrace, logTrace, removeLogListener, sendLogEvent, setAutoInitListeners, setLoggingDebug, setLoggingError, setLoggingIdentifier, setLoggingInfo, setLoggingTrace, setLoggingWarningvlogDebug, vlogDebug, vlogDebug, vlogDebug, vlogDebugTrace, vlogError, vlogError, vlogError, vlogError, vlogInfo, vlogInfo, vlogInfo, vlogInfo, vlogTrace, vlogTrace, vlogTrace, vlogTrace, vlogWarning, vlogWarning, vlogWarning, vlogWarningpublic static final java.lang.String CLASS_VERSION
public DetailedItemPriceTools(PricingTools pPricingTools)
public void setPricingTools(PricingTools pPricingTools)
public PricingTools getPricingTools()
public java.util.List createInitialDetailedItemPriceInfos(double pTotalPrice,
                                                          ItemPriceInfo pPriceQuote,
                                                          CommerceItem pItem,
                                                          RepositoryItem pPricingModel,
                                                          java.util.Locale pLocale,
                                                          RepositoryItem pProfile,
                                                          java.util.Map pExtraParameters,
                                                          java.lang.String pAdjustmentDescription)
                                                   throws PricingException
pTotalPrice - The total price that the new DetailedItemPriceInfos must account forpPriceQuote - The current working price of pItem.pItem - The item that is currently being priced.pPricingModel - the discount that will be set in the PricingAdjustment (usually null)pProfile - the person for whom the items are to be discounted (currently ignored)pLocale - the locale in which the items are to be discounted (currently ignored)pExtraParameters - any extra information that this method might need to set the
        prices of a number of the qualifying item (currently ignored)pAdjustmentDescription - This is the adjustment description used when creating all new PricingAdjustmentsPricingExceptionpublic java.util.List createInitialDetailedItemPriceInfos(double pTotalPrice,
                                                          ItemPriceInfo pPriceQuote,
                                                          CommerceItem pItem,
                                                          RepositoryItem pPricingModel,
                                                          java.util.Locale pLocale,
                                                          RepositoryItem pProfile,
                                                          java.util.Map pExtraParameters,
                                                          java.lang.String pAdjustmentDescription,
                                                          atg.core.util.Range pRange)
                                                   throws PricingException
pTotalPrice - The total price that the new DetailedItemPriceInfos must account forpPriceQuote - The current working price of pItem.pItem - The item that is currently being priced.pPricingModel - the discount that will be set in the PricingAdjustment (usually null)pProfile - the person for whom the items are to be discounted (currently ignored)pLocale - the locale in which the items are to be discounted (currently ignored)pExtraParameters - any extra information that this method might need to set the
        prices of a number of the qualifying item (currently ignored)pAdjustmentDescription - This is the adjustment description used when creating all new PricingAdjustmentsPricingExceptionpublic void assignSalePriceToDetails(java.util.List pDetailedItemPriceInfos,
                                     double pUnitSalePrice,
                                     ItemPriceInfo pPriceQuote,
                                     CommerceItem pItem,
                                     RepositoryItem pPricingModel,
                                     java.util.Locale pLocale,
                                     RepositoryItem pProfile,
                                     java.util.Map pExtraParameters,
                                     java.lang.String pAdjustmentDescription)
                              throws PricingException
amount property of 
 each detail as well as add a new PricingAdjustment for the entire
 quantity of the detail, with the given adjustment description.pDetailedItemPriceInfos - The list of DetailedItemPriceInfo objects that should be adjustedpUnitSalePrice - The sale price for 1 of the given item.  The total adjustment for each
                       detail is this amount times the quantity of the detailpPriceQuote - The current working price of pItem.  This is also ignored.pItem - The item that contains the details.  This is ignored in the default implementationpPricingModel - the discount that will be set in the PricingAdjustment (usually null)pProfile - the person for whom the items are to be discounted (currently ignored)pLocale - the locale in which the items are to be discounted (currently ignored)pExtraParameters - any extra information that this method might need to set the
        prices of a number of the qualifying itempAdjustmentDescription - This is the adjustment description used when creating all new PricingAdjustmentsPricingExceptionpublic void adjustDetailedItemPriceInfos(java.util.List pDetailedItemPriceInfos,
                                         double pUnitAdjustment,
                                         ItemPriceInfo pPriceQuote,
                                         CommerceItem pItem,
                                         RepositoryItem pPricingModel,
                                         java.util.Locale pLocale,
                                         RepositoryItem pProfile,
                                         java.util.Map pExtraParameters,
                                         java.lang.String pAdjustmentDescription)
                                  throws PricingException
pDetailedItemPriceInfos - The list of details that will be adjustedpUnitAdjustment - The adjustment made to the unit price (Total adjustment for
                        each detail will be this amount times the quantity of the detail)pPricingModel - the discount that will be set in the PricingAdjustment (usually null)pProfile - the person for whom the items are to be discounted (currently ignored)pLocale - the locale in which the items are to be discounted (currently ignored)pExtraParameters - any extra information that this method might need to set the
        prices of a number of the qualifying itempAdjustmentDescription - This is the adjustment description used when creating all new PricingAdjustmentsPricingExceptionpublic void adjustDetailedItemPriceInfos(java.util.List pDetailedItemPriceInfos,
                                         double pUnitAdjustment,
                                         double pTotalAdjustment,
                                         ItemPriceInfo pPriceQuote,
                                         CommerceItem pItem,
                                         RepositoryItem pPricingModel,
                                         java.util.Locale pLocale,
                                         RepositoryItem pProfile,
                                         java.util.Map pExtraParameters,
                                         java.lang.String pAdjustmentDescription)
                                  throws PricingException
This method makes sure that the sum of the new detailed adjustments is the same as the input total adjustment. Fractional quantities and rounding can cause an accumulated error if there are multiple details.
pDetailedItemPriceInfos - The list of details that will be adjustedpUnitAdjustment - The adjustment made to the unit price (Total adjustment for
                        each detail will be this amount times the quantity of the detail)pTotalAdjustment - The total adjustment summed over all the detailspPricingModel - the discount that will be set in the PricingAdjustment (usually null)pProfile - the person for whom the items are to be discounted (currently ignored)pLocale - the locale in which the items are to be discounted (currently ignored)pExtraParameters - any extra information that this method might need to set the
        prices of a number of the qualifying itempAdjustmentDescription - This is the adjustment description used when creating all new PricingAdjustmentsPricingExceptionpublic java.util.List splitDetailsAccordingToRanges(DetailedItemPriceInfo pDetail, java.util.List pRanges)
pDetail - The original DetailedItemPriceInfo to split apartpRanges - The list of Ranges that should have a DetailedItemPriceInfo.  The size of
                these must equal the quantity of pDetailpublic void distributeAmountAcrossDetails(java.util.List pShipItemRels,
                                          double pAmountOfContainer,
                                          double pAmountToDistribute,
                                          java.lang.String pDetailProperty)
                                   throws PricingException
pShipItemRels - The list of relationships whose details will be updatedpAmountOfContainer - If the relationships are in a specific shipping group, this is 
                           the amount of the shipping group.  If the relationships are all
                           the relationships in an order, then this would be the order amount.pAmountToDistribute - The amount that will be distributed across the details.pDetailProperty - The name of the property that will be updated.  Old values will be ignored.PricingExceptionpublic void distributeAmountAcrossDetails(java.util.List pShipItemRels,
                                          double pAmountOfContainer,
                                          double pAmountToDistribute,
                                          java.lang.String pDetailProperty,
                                          boolean pAccumulate)
                                   throws PricingException
pShipItemRels - The list of relationships whose details will be updatedpAmountOfContainer - If the relationships are in a specific shipping group, this is 
                           the amount of the shipping group.  If the relationships are all
                           the relationships in an order, then this would be the order amount.pAmountToDistribute - The amount that will be distributed across the details.pDetailProperty - The name of the property that will be updated.pAccumulate - If true, then the new value will be added to any existing value.PricingExceptionpublic void distributeAmountAcrossDetails(java.util.List pShipItemRels,
                                          double pAmountOfContainer,
                                          double pAmountToDistribute,
                                          java.lang.String pDetailProperty,
                                          boolean pAccumulate,
                                          java.lang.String pCurrencyCode)
                                   throws PricingException
pShipItemRels - The list of relationships whose details will be updatedpAmountOfContainer - If the relationships are in a specific shipping group, this is 
                           the amount of the shipping group.  If the relationships are all
                           the relationships in an order, then this would be the order amount.pAmountToDistribute - The amount that will be distributed across the details.pDetailProperty - The name of the property that will be updated.pAccumulate - If true, then the new value will be added to any existing value.pCurrencyCode - currency code which is used for rounding operationPricingExceptionprotected java.util.List getDetailsToReceiveDiscountShare(ItemPriceInfo pItemPriceInfo, atg.core.util.Range pRange)
pItemPriceInfo - The item price infopRange - Optional. Limits the results to the details for this range.public boolean isLoggingInfo()
isLoggingInfo in interface atg.core.logging.LoggingisLoggingInfo in interface ApplicationLoggingisLoggingInfo in class ApplicationLoggingImplpublic boolean isLoggingWarning()
isLoggingWarning in interface atg.core.logging.LoggingisLoggingWarning in interface ApplicationLoggingisLoggingWarning in class ApplicationLoggingImplpublic boolean isLoggingError()
isLoggingError in interface atg.core.logging.LoggingisLoggingError in interface ApplicationLoggingisLoggingError in class ApplicationLoggingImplpublic boolean isLoggingDebug()
isLoggingDebug in interface atg.core.logging.LoggingisLoggingDebug in interface ApplicationLoggingisLoggingDebug in class ApplicationLoggingImplpublic void logInfo(java.lang.String pMessage)
logInfo in interface atg.core.logging.LogginglogInfo in interface ApplicationLogginglogInfo in class ApplicationLoggingImplpublic void logInfo(java.lang.Throwable pThrowable)
logInfo in interface atg.core.logging.LogginglogInfo in interface ApplicationLogginglogInfo in class ApplicationLoggingImplpublic void logInfo(java.lang.String pMessage,
                    java.lang.Throwable pThrowable)
logInfo in interface atg.core.logging.LogginglogInfo in interface ApplicationLogginglogInfo in class ApplicationLoggingImplpublic void logWarning(java.lang.String pMessage)
logWarning in interface atg.core.logging.LogginglogWarning in interface ApplicationLogginglogWarning in class ApplicationLoggingImplpublic void logWarning(java.lang.Throwable pThrowable)
logWarning in interface atg.core.logging.LogginglogWarning in interface ApplicationLogginglogWarning in class ApplicationLoggingImplpublic void logWarning(java.lang.String pMessage,
                       java.lang.Throwable pThrowable)
logWarning in interface atg.core.logging.LogginglogWarning in interface ApplicationLogginglogWarning in class ApplicationLoggingImplpublic void logError(java.lang.String pMessage)
logError in interface atg.core.logging.LogginglogError in interface ApplicationLogginglogError in class ApplicationLoggingImplpublic void logError(java.lang.Throwable pThrowable)
logError in interface atg.core.logging.LogginglogError in interface ApplicationLogginglogError in class ApplicationLoggingImplpublic void logError(java.lang.String pMessage,
                     java.lang.Throwable pThrowable)
logError in interface atg.core.logging.LogginglogError in interface ApplicationLogginglogError in class ApplicationLoggingImplpublic void logDebug(java.lang.String pMessage)
logDebug in interface atg.core.logging.LogginglogDebug in interface ApplicationLogginglogDebug in class ApplicationLoggingImplpublic void logDebug(java.lang.Throwable pThrowable)
logDebug in interface atg.core.logging.LogginglogDebug in interface ApplicationLogginglogDebug in class ApplicationLoggingImplpublic void logDebug(java.lang.String pMessage,
                     java.lang.Throwable pThrowable)
logDebug in interface atg.core.logging.LogginglogDebug in interface ApplicationLogginglogDebug in class ApplicationLoggingImplpublic atg.core.util.Range createRange()
Range object based on the configured
 range type in PricingTools