@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
PromotableOrderItemPriceDetails 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 |
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
|
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)
OfferServiceUtilitiesItemOfferProcessorImpl.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 OfferServiceUtilitiespublic void sortQualifierItemDetails(List<PromotableOrderItemPriceDetail> itemPriceDetails, boolean applyToSalePrice)
OfferServiceUtilitiesItemOfferProcessorImpl.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 OfferServiceUtilitiesprotected Comparator<PromotableOrderItemPriceDetail> getPromotableItemComparator(boolean applyToSalePrice)
public OrderItem findRelatedQualifierRoot(OrderItem relatedQualifier)
OfferServiceUtilitiesfindRelatedQualifierRoot in interface OfferServiceUtilitiespublic boolean itemOfferCanBeApplied(PromotableCandidateItemOffer itemOffer, List<PromotableOrderItemPriceDetail> details)
OfferServiceUtilitiesitemOfferCanBeApplied in interface OfferServiceUtilitiespublic int markQualifiersForCriteria(PromotableCandidateItemOffer itemOffer, OfferItemCriteria itemCriteria, List<PromotableOrderItemPriceDetail> priceDetails)
OfferServiceUtilitiesmarkQualifiersForCriteria in interface OfferServiceUtilitiespublic int markTargetsForCriteria(PromotableCandidateItemOffer itemOffer, OrderItem relatedQualifier, boolean checkOnly, Offer promotion, OrderItem relatedQualifierRoot, OfferItemCriteria itemCriteria, List<PromotableOrderItemPriceDetail> priceDetails, int targetQtyNeeded)
OfferServiceUtilitiesmarkTargetsForCriteria in interface OfferServiceUtilitiespublic int markRelatedQualifiersAndTargetsForItemCriteria(PromotableCandidateItemOffer itemOffer, PromotableOrder order, OrderItemHolder orderItemHolder, OfferItemCriteria itemCriteria, List<PromotableOrderItemPriceDetail> priceDetails, ItemOfferMarkTargets itemOfferMarkTargets)
OfferServiceUtilitiesmarkRelatedQualifiersAndTargetsForItemCriteria in interface OfferServiceUtilitiespublic void applyAdjustmentsForItemPriceDetails(PromotableCandidateItemOffer itemOffer, List<PromotableOrderItemPriceDetail> itemPriceDetails)
OfferServiceUtilitiesPromotableOrderItemPriceDetails and applies adjustments for all of the
discounts that match the passed in offer.applyAdjustmentsForItemPriceDetails in interface OfferServiceUtilitiesprotected boolean adjustmentIsNotGoodEnoughToBeApplied(PromotableCandidateItemOffer itemOffer, PromotableOrderItemPriceDetail detail)
itemOffer - detail - public void applyOrderItemAdjustment(PromotableCandidateItemOffer itemOffer, PromotableOrderItemPriceDetail itemPriceDetail)
OfferServiceUtilitiesapplyOrderItemAdjustment in interface OfferServiceUtilitiespublic List<OrderItem> buildOrderItemList(Order order)
OfferServiceUtilitiesbuildOrderItemList in interface OfferServiceUtilitiespublic Map<OrderItem,PromotableOrderItem> buildPromotableItemMap(PromotableOrder promotableOrder)
OfferServiceUtilitiesbuildPromotableItemMap in interface OfferServiceUtilitiespublic Map<Long,OrderItemPriceDetailAdjustment> buildItemDetailAdjustmentMap(OrderItemPriceDetail itemDetail)
OfferServiceUtilitiesbuildItemDetailAdjustmentMap in interface OfferServiceUtilitiespublic void updatePriceDetail(OrderItemPriceDetail itemDetail, PromotableOrderItemPriceDetail promotableDetail)
OfferServiceUtilitiesupdatePriceDetail in interface OfferServiceUtilitiesprotected void updateItemAdjustment(OrderItemPriceDetailAdjustment itemAdjustment, PromotableOrderItemPriceDetailAdjustment promotableAdjustment)
public void removeUnmatchedPriceDetails(Map<Long,? extends OrderItemPriceDetail> unmatchedDetailsMap, Iterator<? extends OrderItemPriceDetail> pdIterator)
OfferServiceUtilitiesremoveUnmatchedPriceDetails in interface OfferServiceUtilitiespublic void removeUnmatchedQualifiers(Map<Long,? extends OrderItemQualifier> unmatchedQualifiersMap, Iterator<? extends OrderItemQualifier> qIterator)
OfferServiceUtilitiesremoveUnmatchedQualifiers in interface OfferServiceUtilitiespublic PromotableItemFactory getPromotableItemFactory()
public void setPromotableItemFactory(PromotableItemFactory promotableItemFactory)
public OfferDao getOfferDao()
public void setOfferDao(OfferDao offerDao)
Copyright © 2015. All Rights Reserved.