atg.commerce.csr.pricing.calculators
Class ExchangeOrderAdjustmentCalculator

java.lang.Object
  extended by atg.nucleus.logging.VariableArgumentApplicationLoggingImpl
      extended by atg.nucleus.GenericService
          extended by atg.commerce.pricing.DiscountCalculatorService
              extended by atg.commerce.pricing.OrderDiscountCalculator
                  extended by atg.commerce.pricing.OrderAdjustmentCalculator
                      extended by atg.commerce.csr.pricing.calculators.ExchangeOrderAdjustmentCalculator
All Implemented Interfaces:
atg.commerce.pricing.OrderPricingCalculator, atg.naming.NameContextBindingListener, atg.naming.NameContextElement, atg.naming.NameResolver, atg.nucleus.AdminableService, atg.nucleus.logging.ApplicationLogging, atg.nucleus.logging.ApplicationLoggingSender, atg.nucleus.logging.TraceApplicationLogging, atg.nucleus.logging.VariableArgumentApplicationLogging, atg.nucleus.naming.ComponentNameResolver, atg.nucleus.Service, atg.nucleus.ServiceListener, java.util.EventListener

public class ExchangeOrderAdjustmentCalculator
extends atg.commerce.pricing.OrderAdjustmentCalculator

This calculator is used when pricing the exchange replacement order to apply manual adjustments to the exchange order.

It applies the manual adjustments that have been applied the promotion evaluation order to the exchange order. The value of each manual adjustment is pre-calculated based on the manual adjustment share calculated against the replacement items in the promotion evaluation order. This calculator extends adjustOrderSubtotalAmount to adjust the order subtotal by the pre-calculated adjustment value.

This calculator extends getManualAdjustments to return the manual adjustments applied to the promotion evaluation order.

See Also:
getManualAdjustments(OrderPriceInfo, Order, RepositoryItem, Map), adjustOrderSubtotalAmount(RepositoryItem, OrderPriceInfo, Order, Locale, RepositoryItem, Map)

Field Summary
static java.lang.String CLASS_VERSION
           
protected  ReturnManager mReturnManager
           
 
Fields inherited from class atg.commerce.pricing.DiscountCalculatorService
AMOUNT_INCREASE_TYPE, AMOUNT_OFF_TYPE, FIXED_PRICE_TYPE, ILLEGAL_TYPE, mPromotionTools, PERCENT_OFF_TYPE
 
Fields inherited from class atg.nucleus.GenericService
SERVICE_INFO_KEY
 
Fields inherited from interface atg.nucleus.logging.TraceApplicationLogging
DEFAULT_LOG_TRACE_STATUS
 
Fields inherited from interface atg.nucleus.logging.ApplicationLogging
DEFAULT_LOG_DEBUG_STATUS, DEFAULT_LOG_ERROR_STATUS, DEFAULT_LOG_INFO_STATUS, DEFAULT_LOG_WARNING_STATUS
 
Constructor Summary
ExchangeOrderAdjustmentCalculator()
           
 
Method Summary
protected  double adjustOrderSubtotalAmount(atg.repository.RepositoryItem pOrderFixedAmountAdjustment, atg.commerce.pricing.OrderPriceInfo pPriceQuote, atg.commerce.order.Order pOrder, java.util.Locale pLocale, atg.repository.RepositoryItem pProfile, java.util.Map pExtraParameters)
          Adjusts the order subtotal based on the manual adjustment value stored in the ReturnRequest's exchangeItemManualAdjustmentValue property.
protected  java.util.Collection getManualAdjustments(atg.commerce.pricing.OrderPriceInfo pPriceQuote, atg.commerce.order.Order pOrder, atg.repository.RepositoryItem pProfile, java.util.Map pExtraParameters)
          Overrides the base behavior to return the manual adjustments applied to the Promotion Evaluation Order in the ReturnRequest provided in the extra parameter map.
 ReturnManager getReturnManager()
           
 void priceOrder(atg.commerce.pricing.OrderPriceInfo pPriceQuote, atg.commerce.order.Order pOrder, atg.repository.RepositoryItem pPricingModel, java.util.Locale pLocale, atg.repository.RepositoryItem pProfile, java.util.Map pExtraParameters)
          When pricing the replacement order for the ReturnRequest in the extra parameter map, it will calculate the appropriate value of each manual adjustment based on the share applied to the replacement items in the promotion evaluation order.
 void setReturnManager(ReturnManager pReturnManager)
          Sets the ReturnManager
 
Methods inherited from class atg.commerce.pricing.OrderAdjustmentCalculator
applyAdjustmentToNonTaxablePriceInfo, applyAdjustmentToSubtotalPriceInfo, applyAdjustmentToTaxablePriceInfo, calculateManualAdjustment, calculateOrderFixedAmountAdjustment, getManualAdjustmentAdjuster, getTotalAdjustmentShareForShippingGroup, updateItemsManualAdjustmentShare, updateShippingGroupSubTotalMaps
 
Methods inherited from class atg.commerce.pricing.OrderDiscountCalculator
adjustOrderSubTotal, adjustShippingGroupSubtotalPriceInfos, computeGroupSubtotal, computeGroupSubtotal, computeGroupSubtotal, createCurrentShareMap, doStartService, findMatchingObject, getAmountToDiscount, getDetailsToReceiveDiscountShare, getItemsToReceiveDiscountShare, getNonTaxableShippingGroupTotal, getPricingTools, getTaxableShippingGroupTotal, getTotalForShippingGroups, getTotalShareValueForShippingGroup, isSaveDetailsOrderDiscountShare, isSaveItemsOrderDiscountShare, setPricingTools, setSaveDetailsOrderDiscountShare, setSaveItemsOrderDiscountShare, updateItemsDiscountShare, updateShippingItemsSubtotalMaps
 
Methods inherited from class atg.commerce.pricing.DiscountCalculatorService
adjust, adjustAmount, getAdjuster, getDiscountType, getDiscountType, getPricingModelProperties, getPromotionTools, getQualifierService, getQualifierService, isNegativeAmountException, setNegativeAmountException, setPricingModelProperties, setPromotionTools, setQualifierService
 
Methods inherited from class atg.nucleus.GenericService
addLogListener, createAdminServlet, doStopService, getAbsoluteName, getAdminServlet, getAdminServletOutputStreamEncoding, getLoggingForVlogging, getLogListenerCount, getLogListeners, getName, getNameContext, getNucleus, getRoot, getServiceConfiguration, getServiceInfo, isAdminServletUseServletOutputStream, isLoggingDebug, isLoggingError, isLoggingInfo, isLoggingTrace, isLoggingWarning, isRunning, logDebug, logDebug, logDebug, logError, logError, logError, logInfo, logInfo, logInfo, logTrace, logTrace, logTrace, logWarning, logWarning, logWarning, nameContextElementBound, nameContextElementUnbound, removeLogListener, reResolveThis, resolveName, resolveName, resolveName, resolveName, sendLogEvent, setAdminServletOutputStreamEncoding, setAdminServletUseServletOutputStream, setLoggingDebug, setLoggingError, setLoggingInfo, setLoggingTrace, setLoggingWarning, setNucleus, setServiceInfo, startService, stopService
 
Methods inherited from class atg.nucleus.logging.VariableArgumentApplicationLoggingImpl
vlogDebug, vlogDebug, vlogDebug, vlogDebug, vlogDebugTrace, vlogError, vlogError, vlogError, vlogError, vlogInfo, vlogInfo, vlogInfo, vlogInfo, vlogTrace, vlogTrace, vlogTrace, vlogTrace, vlogWarning, vlogWarning, vlogWarning, vlogWarning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CLASS_VERSION

public static final java.lang.String CLASS_VERSION
See Also:
Constant Field Values

mReturnManager

protected ReturnManager mReturnManager
Constructor Detail

ExchangeOrderAdjustmentCalculator

public ExchangeOrderAdjustmentCalculator()
Method Detail

setReturnManager

public void setReturnManager(ReturnManager pReturnManager)
Sets the ReturnManager

Parameters:
pReturnTools - the ReturnManagers

getReturnManager

public ReturnManager getReturnManager()
Returns:
the ReturnManager

priceOrder

public void priceOrder(atg.commerce.pricing.OrderPriceInfo pPriceQuote,
                       atg.commerce.order.Order pOrder,
                       atg.repository.RepositoryItem pPricingModel,
                       java.util.Locale pLocale,
                       atg.repository.RepositoryItem pProfile,
                       java.util.Map pExtraParameters)
                throws atg.commerce.pricing.PricingException
When pricing the replacement order for the ReturnRequest in the extra parameter map, it will calculate the appropriate value of each manual adjustment based on the share applied to the replacement items in the promotion evaluation order.

Specified by:
priceOrder in interface atg.commerce.pricing.OrderPricingCalculator
Overrides:
priceOrder in class atg.commerce.pricing.OrderAdjustmentCalculator
Throws:
atg.commerce.pricing.PricingException

getManualAdjustments

protected java.util.Collection getManualAdjustments(atg.commerce.pricing.OrderPriceInfo pPriceQuote,
                                                    atg.commerce.order.Order pOrder,
                                                    atg.repository.RepositoryItem pProfile,
                                                    java.util.Map pExtraParameters)
                                             throws atg.commerce.pricing.PricingException
Overrides the base behavior to return the manual adjustments applied to the Promotion Evaluation Order in the ReturnRequest provided in the extra parameter map.

Overrides:
getManualAdjustments in class atg.commerce.pricing.OrderAdjustmentCalculator
Throws:
atg.commerce.pricing.PricingException

adjustOrderSubtotalAmount

protected double adjustOrderSubtotalAmount(atg.repository.RepositoryItem pOrderFixedAmountAdjustment,
                                           atg.commerce.pricing.OrderPriceInfo pPriceQuote,
                                           atg.commerce.order.Order pOrder,
                                           java.util.Locale pLocale,
                                           atg.repository.RepositoryItem pProfile,
                                           java.util.Map pExtraParameters)
                                    throws atg.commerce.pricing.PricingException
Adjusts the order subtotal based on the manual adjustment value stored in the ReturnRequest's exchangeItemManualAdjustmentValue property. The values are precalculated based on the manual adjustment share applied to the replacement items in the promotion evaluation order.

Overrides:
adjustOrderSubtotalAmount in class atg.commerce.pricing.OrderAdjustmentCalculator
Throws:
atg.commerce.pricing.PricingException