org.broadleafcommerce.core.offer.service.discount.domain
Interface PromotableOrderItemPriceDetail

All Known Implementing Classes:
PromotableOrderItemPriceDetailImpl

public interface PromotableOrderItemPriceDetail


Method Summary
 void addCandidateItemPriceDetailAdjustment(PromotableOrderItemPriceDetailAdjustment itemAdjustment)
          Adds the adjustment to the item's adjustment list and discounts the item's prices by the value of the adjustment.
 void addPromotionDiscount(PromotableCandidateItemOffer itemOffer, Set<OfferItemCriteria> itemCriteria, int qtyToMarkAsTarget)
          Adds a promotionDiscount entry to this itemDetail.
 void addPromotionQualifier(PromotableCandidateItemOffer itemOffer, OfferItemCriteria itemCriteria, int qtyToMarkAsQualifier)
          Adds a promotionQualifier entry to this itemDetail.
 String buildDetailKey()
          Creates a key that represents a unique priceDetail
 Money calculateItemUnitPriceWithAdjustments(boolean allowSalePrice)
          Returns the price to be used for this priceDetail taking into account whether or not the sales price can be used.
 Money calculateTotalAdjustmentValue()
          Returns the total adjustment value as the sum of the adjustments times the quantity represented by this PriceDetail
 void chooseSaleOrRetailAdjustments()
          This method will check to see if the salePriceAdjustments or retailPriceAdjustments are better and remove those that should not apply.
 void clearAllNonFinalizedQuantities()
          Clears target and qualifier quantities that were marked for a promotion that did not have enough qualifiers or targets to get applied.
 void finalizeQuantities()
          Updates the target and qualifier quantities to indicate the number that are being used.
 List<PromotableOrderItemPriceDetailAdjustment> getCandidateItemAdjustments()
           
 Money getFinalizedTotalWithAdjustments()
          Returns the final total for this item taking into account the finalized adjustments.
 PromotableOrderItem getPromotableOrderItem()
          Return the parent promotableOrderItem
 List<PromotionDiscount> getPromotionDiscounts()
          Returns the promotion discounts applied to this detail object.
 List<PromotionQualifier> getPromotionQualifiers()
          Returns the times this item is being used as a promotionQualifier
 int getQuantity()
          Returns the quantity associated with this priceDetail.
 int getQuantityAvailableToBeUsedAsQualifier(PromotableCandidateItemOffer itemOffer)
          Returns the quantity of this item that can be used as a qualifier for the passed in itemOffer
 int getQuantityAvailableToBeUsedAsTarget(PromotableCandidateItemOffer itemOffer)
          Returns the quantity of this item that can be used as a target for the passed in itemOffer
 boolean hasNonCombinableAdjustments()
          Returns true if this detail has nonCombinable adjustments.
 boolean isAdjustmentsFinalized()
           
 boolean isNonCombinableOfferApplied()
          Returns true if a non-combinable offer has been applied to this item.
 boolean isTotalitarianOfferApplied()
          Returns true if a notCombinableOffer or totalitarian offer was applied to this priceDetail.
 void removeAllAdjustments()
          Removes all adjustments from this detail.
 void setAdjustmentsFinalized(boolean adjustmentsFinalized)
           
 void setQuantity(int quantity)
          Sets the quantity for this price detail.
 PromotableOrderItemPriceDetail splitIfNecessary()
          Checks to see that the discount quantities match the target quantities.
 boolean useSaleAdjustments()
          Returns true if the sale adjustments should be used.
 

Method Detail

addCandidateItemPriceDetailAdjustment

void addCandidateItemPriceDetailAdjustment(PromotableOrderItemPriceDetailAdjustment itemAdjustment)
Adds the adjustment to the item's adjustment list and discounts the item's prices by the value of the adjustment.

Parameters:
itemAdjustment -

getCandidateItemAdjustments

List<PromotableOrderItemPriceDetailAdjustment> getCandidateItemAdjustments()
Returns:

hasNonCombinableAdjustments

boolean hasNonCombinableAdjustments()
Returns true if this detail has nonCombinable adjustments. Used primarily with legacy offers (prior to 2.0)

Returns:

isTotalitarianOfferApplied

boolean isTotalitarianOfferApplied()
Returns true if a notCombinableOffer or totalitarian offer was applied to this priceDetail.

Returns:

isNonCombinableOfferApplied

boolean isNonCombinableOfferApplied()
Returns true if a non-combinable offer has been applied to this item.


chooseSaleOrRetailAdjustments

void chooseSaleOrRetailAdjustments()
This method will check to see if the salePriceAdjustments or retailPriceAdjustments are better and remove those that should not apply.


removeAllAdjustments

void removeAllAdjustments()
Removes all adjustments from this detail. Typically called when it has been determined that another "totalitarian" offer has been applied.


getPromotionDiscounts

List<PromotionDiscount> getPromotionDiscounts()
Returns the promotion discounts applied to this detail object.

Returns:

getPromotionQualifiers

List<PromotionQualifier> getPromotionQualifiers()
Returns the times this item is being used as a promotionQualifier

Returns:

getQuantity

int getQuantity()
Returns the quantity associated with this priceDetail.

Returns:

setQuantity

void setQuantity(int quantity)
Sets the quantity for this price detail.

Parameters:
quantity -

getPromotableOrderItem

PromotableOrderItem getPromotableOrderItem()
Return the parent promotableOrderItem


getQuantityAvailableToBeUsedAsQualifier

int getQuantityAvailableToBeUsedAsQualifier(PromotableCandidateItemOffer itemOffer)
Returns the quantity of this item that can be used as a qualifier for the passed in itemOffer

Parameters:
itemOffer -
Returns:

getQuantityAvailableToBeUsedAsTarget

int getQuantityAvailableToBeUsedAsTarget(PromotableCandidateItemOffer itemOffer)
Returns the quantity of this item that can be used as a target for the passed in itemOffer

Parameters:
itemOffer -
Returns:

addPromotionQualifier

void addPromotionQualifier(PromotableCandidateItemOffer itemOffer,
                           OfferItemCriteria itemCriteria,
                           int qtyToMarkAsQualifier)
Adds a promotionQualifier entry to this itemDetail. PromotionQualifiers record the fact that this item has been marked to be used as a qualifier for other items to receive a discount. If other conditions are met this qualifier will be finalized.

Parameters:
itemOffer -
itemCriteria -
qtyToMarkAsQualifier -

addPromotionDiscount

void addPromotionDiscount(PromotableCandidateItemOffer itemOffer,
                          Set<OfferItemCriteria> itemCriteria,
                          int qtyToMarkAsTarget)
Adds a promotionDiscount entry to this itemDetail. PromotionDiscounts record the fact that this item has been targeted to receive a discount. If other conditions are met this discount will be finalized so that it can then be set on the underlying orderItem.

Parameters:
itemOffer -
itemCriteria -
qtyToMarkAsTarget -

calculateItemUnitPriceWithAdjustments

Money calculateItemUnitPriceWithAdjustments(boolean allowSalePrice)
Returns the price to be used for this priceDetail taking into account whether or not the sales price can be used.

Parameters:
allowSalePrice -
Returns:

finalizeQuantities

void finalizeQuantities()
Updates the target and qualifier quantities to indicate the number that are being used.


clearAllNonFinalizedQuantities

void clearAllNonFinalizedQuantities()
Clears target and qualifier quantities that were marked for a promotion that did not have enough qualifiers or targets to get applied.


buildDetailKey

String buildDetailKey()
Creates a key that represents a unique priceDetail

Returns:

getFinalizedTotalWithAdjustments

Money getFinalizedTotalWithAdjustments()
Returns the final total for this item taking into account the finalized adjustments. Intended to be called after the adjustments have been finalized with a call chooseSaleOrRetailAdjustments().


calculateTotalAdjustmentValue

Money calculateTotalAdjustmentValue()
Returns the total adjustment value as the sum of the adjustments times the quantity represented by this PriceDetail

Returns:

splitIfNecessary

PromotableOrderItemPriceDetail splitIfNecessary()
Checks to see that the discount quantities match the target quantities. If not, splits this item into two.

Returns:

useSaleAdjustments

boolean useSaleAdjustments()
Returns true if the sale adjustments should be used.

Returns:

isAdjustmentsFinalized

boolean isAdjustmentsFinalized()

setAdjustmentsFinalized

void setAdjustmentsFinalized(boolean adjustmentsFinalized)


Copyright © 2013. All Rights Reserved.