public class PercentOffVolumeDiscountAdjustment extends java.lang.Object implements MonetaryAdjustment
PercentOffVolumeDiscountAdjustment offers different percent
discounts based on the total purchase amount. This adjustment deals
with the PercentOffPriceAdjustment or the
PercentOffAdjustment type of discounts based on the adjustment type.
XML Snippet for PercentOffVolumeDiscountAdjustment:
<Adjustment impl="com.ibm.commerce.marketing.promotion.reward.PercentOffVolumeDiscountAdjustment">
<!-- wholeOrder or IndividualAffectedItems or AllAffectedItems -->
<AdjustmentType>wholeOrder</AdjustmentType>
<!-- Possible values are:
-1: Standard offer price
-2: Contract price
-3: Discounted price
-->
<PriceAdjustmentBase>-3</PriceAdjustmentBase>
<Range>
<AmountOff>10</AmountOff>
<Currency>CAD</Currency>
<LowerBound>1</LowerBound>
<UpperBound>5</UpperBound>
<LowerBoundIncluded>true</LowerBoundIncluded>
<UpperBoundIncluded>true</UpperBoundIncluded>
</Range>
<Range>
<AmountOff>25</AmountOff>
<Currency>CAD</Currency>
<LowerBound>6</LowerBound>
<!-- -1 indicates unlimited -->
<UpperBound>-1</UpperBound>
<LowerBoundIncluded>true</LowerBoundIncluded>
<UpperBoundIncluded>false</UpperBoundIncluded>
</Range>
</Adjustment>
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
COPYRIGHT
IBM copyright notice field.
|
MAX_SCALE_FOR_DIVIDE, PRICE, SHIPPING, SHIPPING_TAX, TAX, ZEROALL_AFFECTED_ITEMS, INDIVIDUAL_AFFECTED_ITEMS, WHOLE_ORDER| Constructor and Description |
|---|
PercentOffVolumeDiscountAdjustment()
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
apply(LineItemSet targeted,
java.math.BigDecimal targetedAmount,
int targetedAmountTypes,
LineItemSet affected,
java.util.Vector affectedVector,
java.util.Vector adjustmentVector,
PromotionContext context)
This method evaluates the targeted order items to see if they fulfill the
conditions of this adjustment ( for example, if the quantity of the order
items falls into one of the ranges of the adjustment).
|
java.lang.Object |
clone()
Returns null if the
CloneNotSupportedException is thrown. |
void |
fromXML(org.w3c.dom.Node anXMLNode)
Transforms the XML node into its corresponding real Object.
|
java.lang.Integer |
getAdjustmentType()
This method gets the type of Adjustment.
|
java.math.BigDecimal |
getPerUnitAdjustment(AssociatedOrderItem one,
AssociatedOrderItem[] all,
PromotionContext context)
Returns 0.
|
int |
getPriceAdjustmentBasis()
Returns the basis for price adjustment.
|
Range[] |
getRanges()
Gets the ranges
|
int |
getTheTypeOfMonetaryValueToBeAdjusted()
Returns the target as PRICE=1.
|
void |
setAdjustmentType(java.lang.Integer _adjustmentType)
This method sets the type of Adjustment.
|
void |
setPriceAdjustmentBasis(int i)
Sets the basis for price adjustment.
|
void |
setRanges(Range[] ranges)
Sets ranges
|
java.lang.String |
toXML()
Converts the object into its corresponding XML format representation.
|
public static final java.lang.String COPYRIGHT
public PercentOffVolumeDiscountAdjustment()
public int getTheTypeOfMonetaryValueToBeAdjusted()
getTheTypeOfMonetaryValueToBeAdjusted in interface MonetaryAdjustmentMonetaryAdjustment.getTheTypeOfMonetaryValueToBeAdjusted()public java.math.BigDecimal getPerUnitAdjustment(AssociatedOrderItem one, AssociatedOrderItem[] all, PromotionContext context)
getPerUnitAdjustment in interface MonetaryAdjustmentone - the order item or portion of an order item for which a per unit adjustment
amount needs to be calculated.all - all of the AssociatedOrderItems to which this adjustment applies.context - PromotionContextMonetaryAdjustment.getPerUnitAdjustment(com.ibm.commerce.marketing.promotion.runtime.AssociatedOrderItem,
com.ibm.commerce.marketing.promotion.runtime.AssociatedOrderItem[],
com.ibm.commerce.marketing.promotion.runtime.PromotionContext)public java.lang.Integer getAdjustmentType()
AdjustmentgetAdjustmentType in interface AdjustmentWHOLE_ORDER, ALL_AFFECTED_ITEMS or INDIVIDUAL_AFFECTED_ITEMS.Adjustment.getAdjustmentType()public void setAdjustmentType(java.lang.Integer _adjustmentType)
AdjustmentWHOLE_ORDER, ALL_AFFECTED_ITEMS or INDIVIDUAL_AFFECTED_ITEMS.setAdjustmentType in interface AdjustmentAdjustment.setAdjustmentType(java.lang.Integer)public boolean apply(LineItemSet targeted, java.math.BigDecimal targetedAmount, int targetedAmountTypes, LineItemSet affected, java.util.Vector affectedVector, java.util.Vector adjustmentVector, PromotionContext context) throws PromotionRuntimeException
AdjustmentadjustmentVector Vector object passed as a parameter. The
affectedVector Vector object passed as a parameter is
updated by adding the affected order items. This method is called in the
invoke(LineItemSet, BigDecimal, int, Vector, Vector, PromotionContext)
method of AdjustmentFunction.apply in interface Adjustmenttargeted - The targeted order items. This is a set of order items (or
portions of order items) that are used to qualify for the
promotion of which this adjustment is a part.affected - The affected order items. This is a set of order items,
identified by the promotion, to which this adjustment will be
attached.affectedVector - A Vector which contains the affected LineItemSets.adjustmentVector - A Vector which contains the Adjustment objects.context - The PromotionContext object which may be used to build
the Adjustment to add to the adjustmentVector parameter.PromotionRuntimeException - when the computation encounters a problem.com.ibm.commerce.marketing.promotion.reward.Adjustment#apply(com.ibm.commerce.marketing.promotion.runtime.LineItemSet,
com.ibm.commerce.marketing.promotion.runtime.LineItemSet,
java.util.Vector, java.util.Vector,
com.ibm.commerce.marketing.promotion.runtime.PromotionContext)public java.lang.String toXML()
throws XMLizationException
XMLizabletoXML in interface XMLizableXMLizationException - when this process failsXMLizable.toXML()public java.lang.Object clone()
CloneNotSupportedException is thrown.clone in interface Adjustmentclone in class java.lang.ObjectObject.clone()public void fromXML(org.w3c.dom.Node anXMLNode)
throws DeXMLizationException
XMLizablefromXML in interface XMLizableanXMLNode - The node that represents an XMLizable objectDeXMLizationException - when this process failsXMLizable.fromXML(org.w3c.dom.Node)public Range[] getRanges()
public void setRanges(Range[] ranges)
ranges - Ranges to set.public int getPriceAdjustmentBasis()
public void setPriceAdjustmentBasis(int i)
i - new basis for price adjustment.