@Service(value="blOfferServiceUtilities") public class OfferServiceUtilitiesImpl extends Object implements OfferServiceUtilities
Modifier and Type | Field and Description |
---|---|
protected OfferServiceExtensionManager |
extensionManager |
protected static org.apache.commons.logging.Log |
LOG |
protected OfferDao |
offerDao |
protected PromotableItemFactory |
promotableItemFactory |
Constructor and Description |
---|
OfferServiceUtilitiesImpl() |
Modifier and Type | Method and Description |
---|---|
protected boolean |
adjustmentIsNotGoodEnoughToBeApplied(PromotableCandidateItemOffer itemOffer,
PromotableOrderItemPriceDetail detail)
The adjustment might not be better than the sale price.
|
void |
applyAdjustmentsForItemPriceDetails(PromotableCandidateItemOffer itemOffer,
List<PromotableOrderItemPriceDetail> itemPriceDetails)
Takes in a list of
PromotableOrderItemPriceDetail s and applies adjustments for all of the
discounts that match the passed in offer. |
void |
applyOrderItemAdjustment(PromotableCandidateItemOffer itemOffer,
PromotableOrderItemPriceDetail itemPriceDetail)
Used by applyAdjustments to create an OrderItemAdjustment from a CandidateOrderOffer
and associates the OrderItemAdjustment to the OrderItem.
|
Map<Long,OrderItemPriceDetailAdjustment> |
buildItemDetailAdjustmentMap(OrderItemPriceDetail itemDetail)
Builds a map from itemDetails for adjustment processing.
|
List<OrderItem> |
buildOrderItemList(Order order)
Builds the list of order-items at the level they are being priced which includes splitting bundles that are
being priced at the item level.
|
Map<OrderItem,PromotableOrderItem> |
buildPromotableItemMap(PromotableOrder promotableOrder)
Builds a map from orderItem to promotableOrderItem.
|
OrderItem |
findRelatedQualifierRoot(OrderItem relatedQualifier)
Given an orderItem, finds the top most parent order item.
|
OfferDao |
getOfferDao() |
protected Comparator<PromotableOrderItemPriceDetail> |
getPromotableItemComparator(boolean applyToSalePrice) |
PromotableItemFactory |
getPromotableItemFactory() |
boolean |
isAddOnOrderItem(OrderItem orderItem)
Determines whether or not the
OrderItem was added by a Product Add-On |
boolean |
itemOfferCanBeApplied(PromotableCandidateItemOffer itemOffer,
List<PromotableOrderItemPriceDetail> details)
Return false if a totalitarian or non-combinable offer has already been applied or if this offer is
totalitarian or non-combinable and this order already has adjustments applied.
|
int |
markQualifiersForCriteria(PromotableCandidateItemOffer itemOffer,
OfferItemCriteria itemCriteria,
List<PromotableOrderItemPriceDetail> priceDetails)
Returns the number of qualifiers marked for the passed in itemCriteria
|
int |
markRelatedQualifiersAndTargetsForItemCriteria(PromotableCandidateItemOffer itemOffer,
PromotableOrder order,
OrderItemHolder orderItemHolder,
OfferItemCriteria itemCriteria,
List<PromotableOrderItemPriceDetail> priceDetails,
ItemOfferMarkTargets itemOfferMarkTargets)
Returns the number of targets marked for the passed in itemCriteria
|
int |
markTargetsForCriteria(PromotableCandidateItemOffer itemOffer,
OrderItem relatedQualifier,
boolean checkOnly,
Offer promotion,
OrderItem relatedQualifierRoot,
OfferItemCriteria itemCriteria,
List<PromotableOrderItemPriceDetail> priceDetails,
int targetQtyNeeded)
Returns the number of targets marked for the passed in itemCriteria
|
protected boolean |
orderMeetsProvidedSubtotalRequirement(Offer offer,
HashMap<OfferItemCriteria,List<PromotableOrderItem>> promotableOrderItems,
Money minSubTotal) |
boolean |
orderMeetsQualifyingSubtotalRequirements(PromotableOrder order,
Offer offer,
HashMap<OfferItemCriteria,List<PromotableOrderItem>> qualifiersMap)
Determines whether or not an
PromotableOrder meets the qualifying subtotal requirement of an Offer |
boolean |
orderMeetsSubtotalRequirements(PromotableOrder order,
Offer offer)
Determines whether or not an
PromotableOrder meets the subtotal requirement of an Offer |
boolean |
orderMeetsTargetSubtotalRequirements(PromotableOrder order,
Offer offer,
HashMap<OfferItemCriteria,List<PromotableOrderItem>> targetsMap)
Determines whether or not an
PromotableOrder meets the target subtotal requirement of an Offer |
void |
removeUnmatchedPriceDetails(Map<Long,? extends OrderItemPriceDetail> unmatchedDetailsMap,
Iterator<? extends OrderItemPriceDetail> pdIterator)
Removes price details from the iterator that are contained in the passed in map.
|
void |
removeUnmatchedQualifiers(Map<Long,? extends OrderItemQualifier> unmatchedQualifiersMap,
Iterator<? extends OrderItemQualifier> qIterator)
Removes qualifiers from the iterator that are contained in the passed in map.
|
void |
setOfferDao(OfferDao offerDao) |
void |
setPromotableItemFactory(PromotableItemFactory promotableItemFactory) |
void |
sortQualifierItemDetails(List<PromotableOrderItemPriceDetail> itemPriceDetails,
boolean applyToSalePrice)
Used in
ItemOfferProcessorImpl.applyItemQualifiersAndTargets(PromotableCandidateItemOffer, PromotableOrder)
Allow for customized sorting for which qualifier items should be attempted to be used first for a promotion. |
void |
sortTargetItemDetails(List<PromotableOrderItemPriceDetail> itemPriceDetails,
boolean applyToSalePrice)
Used in
ItemOfferProcessorImpl.applyItemQualifiersAndTargets(PromotableCandidateItemOffer, PromotableOrder)
Allow for customized sorting for which qualifier items should be attempted to be used first for a promotion. |
protected void |
updateItemAdjustment(OrderItemPriceDetailAdjustment itemAdjustment,
PromotableOrderItemPriceDetailAdjustment promotableAdjustment) |
void |
updatePriceDetail(OrderItemPriceDetail itemDetail,
PromotableOrderItemPriceDetail promotableDetail)
Updates the passed in price detail and its associated adjustments.
|
protected static final org.apache.commons.logging.Log LOG
protected PromotableItemFactory promotableItemFactory
protected OfferDao offerDao
protected OfferServiceExtensionManager extensionManager
public void sortTargetItemDetails(List<PromotableOrderItemPriceDetail> itemPriceDetails, boolean applyToSalePrice)
OfferServiceUtilities
ItemOfferProcessorImpl.applyItemQualifiersAndTargets(PromotableCandidateItemOffer, PromotableOrder)
Allow for customized sorting for which qualifier items should be attempted to be used first for a promotion.
Default behavior is to sort descending, so higher-value items are attempted to be discounted first.sortTargetItemDetails
in interface OfferServiceUtilities
public void sortQualifierItemDetails(List<PromotableOrderItemPriceDetail> itemPriceDetails, boolean applyToSalePrice)
OfferServiceUtilities
ItemOfferProcessorImpl.applyItemQualifiersAndTargets(PromotableCandidateItemOffer, PromotableOrder)
Allow for customized sorting for which qualifier items should be attempted to be used first for a promotion.
Default behavior is to sort descending, so higher-value items are attempted to be qualified first.sortQualifierItemDetails
in interface OfferServiceUtilities
protected Comparator<PromotableOrderItemPriceDetail> getPromotableItemComparator(boolean applyToSalePrice)
public OrderItem findRelatedQualifierRoot(OrderItem relatedQualifier)
OfferServiceUtilities
findRelatedQualifierRoot
in interface OfferServiceUtilities
public boolean itemOfferCanBeApplied(PromotableCandidateItemOffer itemOffer, List<PromotableOrderItemPriceDetail> details)
OfferServiceUtilities
itemOfferCanBeApplied
in interface OfferServiceUtilities
public int markQualifiersForCriteria(PromotableCandidateItemOffer itemOffer, OfferItemCriteria itemCriteria, List<PromotableOrderItemPriceDetail> priceDetails)
OfferServiceUtilities
markQualifiersForCriteria
in interface OfferServiceUtilities
public int markTargetsForCriteria(PromotableCandidateItemOffer itemOffer, OrderItem relatedQualifier, boolean checkOnly, Offer promotion, OrderItem relatedQualifierRoot, OfferItemCriteria itemCriteria, List<PromotableOrderItemPriceDetail> priceDetails, int targetQtyNeeded)
OfferServiceUtilities
markTargetsForCriteria
in interface OfferServiceUtilities
public int markRelatedQualifiersAndTargetsForItemCriteria(PromotableCandidateItemOffer itemOffer, PromotableOrder order, OrderItemHolder orderItemHolder, OfferItemCriteria itemCriteria, List<PromotableOrderItemPriceDetail> priceDetails, ItemOfferMarkTargets itemOfferMarkTargets)
OfferServiceUtilities
markRelatedQualifiersAndTargetsForItemCriteria
in interface OfferServiceUtilities
public void applyAdjustmentsForItemPriceDetails(PromotableCandidateItemOffer itemOffer, List<PromotableOrderItemPriceDetail> itemPriceDetails)
OfferServiceUtilities
PromotableOrderItemPriceDetail
s and applies adjustments for all of the
discounts that match the passed in offer.applyAdjustmentsForItemPriceDetails
in interface OfferServiceUtilities
public boolean isAddOnOrderItem(OrderItem orderItem)
OfferServiceUtilities
OrderItem
was added by a Product Add-OnisAddOnOrderItem
in interface OfferServiceUtilities
protected boolean adjustmentIsNotGoodEnoughToBeApplied(PromotableCandidateItemOffer itemOffer, PromotableOrderItemPriceDetail detail)
itemOffer
- detail
- public void applyOrderItemAdjustment(PromotableCandidateItemOffer itemOffer, PromotableOrderItemPriceDetail itemPriceDetail)
OfferServiceUtilities
applyOrderItemAdjustment
in interface OfferServiceUtilities
public List<OrderItem> buildOrderItemList(Order order)
OfferServiceUtilities
buildOrderItemList
in interface OfferServiceUtilities
public Map<OrderItem,PromotableOrderItem> buildPromotableItemMap(PromotableOrder promotableOrder)
OfferServiceUtilities
buildPromotableItemMap
in interface OfferServiceUtilities
public Map<Long,OrderItemPriceDetailAdjustment> buildItemDetailAdjustmentMap(OrderItemPriceDetail itemDetail)
OfferServiceUtilities
buildItemDetailAdjustmentMap
in interface OfferServiceUtilities
public void updatePriceDetail(OrderItemPriceDetail itemDetail, PromotableOrderItemPriceDetail promotableDetail)
OfferServiceUtilities
updatePriceDetail
in interface OfferServiceUtilities
protected void updateItemAdjustment(OrderItemPriceDetailAdjustment itemAdjustment, PromotableOrderItemPriceDetailAdjustment promotableAdjustment)
public void removeUnmatchedPriceDetails(Map<Long,? extends OrderItemPriceDetail> unmatchedDetailsMap, Iterator<? extends OrderItemPriceDetail> pdIterator)
OfferServiceUtilities
removeUnmatchedPriceDetails
in interface OfferServiceUtilities
public void removeUnmatchedQualifiers(Map<Long,? extends OrderItemQualifier> unmatchedQualifiersMap, Iterator<? extends OrderItemQualifier> qIterator)
OfferServiceUtilities
removeUnmatchedQualifiers
in interface OfferServiceUtilities
public boolean orderMeetsQualifyingSubtotalRequirements(PromotableOrder order, Offer offer, HashMap<OfferItemCriteria,List<PromotableOrderItem>> qualifiersMap)
OfferServiceUtilities
PromotableOrder
meets the qualifying subtotal requirement of an Offer
orderMeetsQualifyingSubtotalRequirements
in interface OfferServiceUtilities
public boolean orderMeetsTargetSubtotalRequirements(PromotableOrder order, Offer offer, HashMap<OfferItemCriteria,List<PromotableOrderItem>> targetsMap)
OfferServiceUtilities
PromotableOrder
meets the target subtotal requirement of an Offer
orderMeetsTargetSubtotalRequirements
in interface OfferServiceUtilities
protected boolean orderMeetsProvidedSubtotalRequirement(Offer offer, HashMap<OfferItemCriteria,List<PromotableOrderItem>> promotableOrderItems, Money minSubTotal)
public boolean orderMeetsSubtotalRequirements(PromotableOrder order, Offer offer)
OfferServiceUtilities
PromotableOrder
meets the subtotal requirement of an Offer
orderMeetsSubtotalRequirements
in interface OfferServiceUtilities
public PromotableItemFactory getPromotableItemFactory()
public void setPromotableItemFactory(PromotableItemFactory promotableItemFactory)
public OfferDao getOfferDao()
public void setOfferDao(OfferDao offerDao)
Copyright © 2019. All rights reserved.