@Service(value="blOrderOfferProcessor") public class OrderOfferProcessorImpl extends AbstractBaseProcessor implements OrderOfferProcessor
| Modifier and Type | Field and Description |
|---|---|
protected OfferDao |
offerDao |
protected OfferServiceUtilities |
offerServiceUtilities |
protected OrderItemDao |
orderItemDao |
protected PromotableItemFactory |
promotableItemFactory |
extensionManager, offerTimeZoneProcessor| Constructor and Description |
|---|
OrderOfferProcessorImpl() |
| Modifier and Type | Method and Description |
|---|---|
void |
applyAllOrderOffers(List<PromotableCandidateOrderOffer> orderOffers,
PromotableOrder promotableOrder)
Takes a list of sorted CandidateOrderOffers and determines if each offer can be
applied based on the restrictions (stackable and/or combinable) on that offer.
|
protected void |
applyOrderOffer(PromotableOrder promotableOrder,
PromotableCandidateOrderOffer orderOffer)
Private method used by applyAllOrderOffers to create an OrderAdjustment from a CandidateOrderOffer
and associates the OrderAdjustment to the Order.
|
protected String |
buildItemPriceDetailKey(OrderItemPriceDetail itemDetail) |
protected Map<Long,PromotableFulfillmentGroupAdjustment> |
buildPromFulfillmentAdjMap(PromotableFulfillmentGroup fg) |
protected Map<String,PromotableOrderItemPriceDetail> |
buildPromotableDetailsMap(PromotableOrderItem item) |
protected Map<Long,PromotableFulfillmentGroup> |
buildPromotableFulfillmentGroupMap(PromotableOrder order) |
protected Map<Long,PromotableOrderAdjustment> |
buildPromotableOrderAdjustmentsMap(PromotableOrder promotableOrder) |
protected Map<Long,PromotionQualifier> |
buildPromotableQualifiersMap(PromotableOrderItem item) |
protected void |
compareAndAdjustOrderAndItemOffers(PromotableOrder promotableOrder)
Called when the system must determine whether to apply order or item adjustments.
|
boolean |
couldOfferApplyToOrder(Offer offer,
PromotableOrder promotableOrder)
Executes the appliesToOrderRules in the Offer to determine if this offer
can be applied to the Order, OrderItem, or FulfillmentGroup.
|
protected boolean |
couldOfferApplyToOrder(Offer offer,
PromotableOrder promotableOrder,
PromotableFulfillmentGroup fulfillmentGroup)
Private method which executes the appliesToOrderRules in the Offer to determine if this offer
can be applied to the Order, OrderItem, or FulfillmentGroup.
|
protected boolean |
couldOfferApplyToOrder(Offer offer,
PromotableOrder promotableOrder,
PromotableOrderItem orderItem)
Private method which executes the appliesToOrderRules in the Offer to determine if this offer
can be applied to the Order, OrderItem, or FulfillmentGroup.
|
protected boolean |
couldOfferApplyToOrder(Offer offer,
PromotableOrder promotableOrder,
PromotableOrderItem promotableOrderItem,
PromotableFulfillmentGroup promotableFulfillmentGroup)
Private method which executes the appliesToOrderRules in the Offer to determine if this offer
can be applied to the Order, OrderItem, or FulfillmentGroup.
|
protected PromotableCandidateOrderOffer |
createCandidateOrderOffer(PromotableOrder promotableOrder,
List<PromotableCandidateOrderOffer> qualifiedOrderOffers,
Offer offer) |
void |
filterOrderLevelOffer(PromotableOrder promotableOrder,
List<PromotableCandidateOrderOffer> qualifiedOrderOffers,
Offer offer) |
OfferServiceUtilities |
getOfferServiceUtilities() |
PromotableItemFactory |
getPromotableItemFactory() |
protected void |
processMatchingDetails(OrderItemPriceDetail itemDetail,
PromotableOrderItemPriceDetail promotableItemDetail) |
List<PromotableCandidateOrderOffer> |
removeTrailingNotCombinableOrderOffers(List<PromotableCandidateOrderOffer> candidateOffers) |
void |
setOfferDao(OfferDao offerDao)
Set the offerDao (primarily for unit testing)
|
void |
setOfferServiceUtilities(OfferServiceUtilities offerServiceUtilities) |
void |
setOrderItemDao(OrderItemDao orderItemDao)
Set the orderItemDao (primarily for unit testing)
|
void |
setPromotableItemFactory(PromotableItemFactory promotableItemFactory) |
void |
synchronizeAdjustmentsAndPrices(PromotableOrder promotableOrder)
Takes the adjustments and PriceDetails from the passed in PromotableOrder and transfers them to the
actual order first checking to see if they already exist.
|
protected void |
synchronizeFulfillmentGroupAdjustments(FulfillmentGroup fg,
PromotableFulfillmentGroup promotableFG) |
protected void |
synchronizeFulfillmentGroups(PromotableOrder promotableOrder) |
protected void |
synchronizeItemPriceDetails(OrderItem orderItem,
PromotableOrderItem promotableOrderItem) |
protected void |
synchronizeItemQualifiers(OrderItem orderItem,
PromotableOrderItem promotableOrderItem) |
protected void |
synchronizeOrderAdjustments(PromotableOrder promotableOrder) |
protected void |
synchronizeOrderItems(PromotableOrder promotableOrder) |
checkForItemRequirements, clearAllNonFinalizedQuantities, couldOfferApplyToCustomer, couldOfferApplyToOrderItems, couldOfferApplyToRequestDTO, couldOfferApplyToTimePeriod, couldOrderItemMeetOfferRequirement, executeExpression, filterOffers, finalizeQuantities, getOfferTimeZoneProcessor, meetsItemQualifierSubtotal, removeInvalidCustomerOffers, removeInvalidRequestOffers, removeOutOfDateOffers, removeTimePeriodOffers, setOfferTimeZoneProcessor, splitDetailsIfNecessaryclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitexecuteExpressionfilterOffersprotected PromotableItemFactory promotableItemFactory
protected OrderItemDao orderItemDao
protected OfferDao offerDao
protected OfferServiceUtilities offerServiceUtilities
public void filterOrderLevelOffer(PromotableOrder promotableOrder, List<PromotableCandidateOrderOffer> qualifiedOrderOffers, Offer offer)
filterOrderLevelOffer in interface OrderOfferProcessorpublic boolean couldOfferApplyToOrder(Offer offer, PromotableOrder promotableOrder)
OrderOfferProcessorcouldOfferApplyToOrder in interface OrderOfferProcessorprotected boolean couldOfferApplyToOrder(Offer offer, PromotableOrder promotableOrder, PromotableOrderItem orderItem)
offer - order - orderItem - protected boolean couldOfferApplyToOrder(Offer offer, PromotableOrder promotableOrder, PromotableFulfillmentGroup fulfillmentGroup)
offer - order - fulfillmentGroup - protected boolean couldOfferApplyToOrder(Offer offer, PromotableOrder promotableOrder, PromotableOrderItem promotableOrderItem, PromotableFulfillmentGroup promotableFulfillmentGroup)
offer - order - promotableOrderItem - promotableFulfillmentGroup - protected PromotableCandidateOrderOffer createCandidateOrderOffer(PromotableOrder promotableOrder, List<PromotableCandidateOrderOffer> qualifiedOrderOffers, Offer offer)
public List<PromotableCandidateOrderOffer> removeTrailingNotCombinableOrderOffers(List<PromotableCandidateOrderOffer> candidateOffers)
removeTrailingNotCombinableOrderOffers in interface OrderOfferProcessorpublic void applyAllOrderOffers(List<PromotableCandidateOrderOffer> orderOffers, PromotableOrder promotableOrder)
OrderOfferProcessorapplyAllOrderOffers in interface OrderOfferProcessororderOffers - a sorted list of CandidateOrderOfferprotected void compareAndAdjustOrderAndItemOffers(PromotableOrder promotableOrder)
promotableOrder - orderOffersApplied - protected void applyOrderOffer(PromotableOrder promotableOrder, PromotableCandidateOrderOffer orderOffer)
orderOffer - a CandidateOrderOffer to apply to an Orderpublic PromotableItemFactory getPromotableItemFactory()
getPromotableItemFactory in interface OrderOfferProcessorpublic void setPromotableItemFactory(PromotableItemFactory promotableItemFactory)
setPromotableItemFactory in interface OrderOfferProcessorprotected Map<Long,PromotableOrderAdjustment> buildPromotableOrderAdjustmentsMap(PromotableOrder promotableOrder)
protected void synchronizeOrderAdjustments(PromotableOrder promotableOrder)
protected void synchronizeOrderItems(PromotableOrder promotableOrder)
protected void synchronizeItemPriceDetails(OrderItem orderItem, PromotableOrderItem promotableOrderItem)
protected void synchronizeItemQualifiers(OrderItem orderItem, PromotableOrderItem promotableOrderItem)
protected void processMatchingDetails(OrderItemPriceDetail itemDetail, PromotableOrderItemPriceDetail promotableItemDetail)
protected String buildItemPriceDetailKey(OrderItemPriceDetail itemDetail)
protected Map<String,PromotableOrderItemPriceDetail> buildPromotableDetailsMap(PromotableOrderItem item)
protected Map<Long,PromotionQualifier> buildPromotableQualifiersMap(PromotableOrderItem item)
protected void synchronizeFulfillmentGroups(PromotableOrder promotableOrder)
protected Map<Long,PromotableFulfillmentGroup> buildPromotableFulfillmentGroupMap(PromotableOrder order)
protected Map<Long,PromotableFulfillmentGroupAdjustment> buildPromFulfillmentAdjMap(PromotableFulfillmentGroup fg)
protected void synchronizeFulfillmentGroupAdjustments(FulfillmentGroup fg, PromotableFulfillmentGroup promotableFG)
public void synchronizeAdjustmentsAndPrices(PromotableOrder promotableOrder)
OrderOfferProcessorsynchronizeAdjustmentsAndPrices in interface OrderOfferProcessorpublic void setOfferDao(OfferDao offerDao)
OrderOfferProcessorsetOfferDao in interface OrderOfferProcessorpublic void setOrderItemDao(OrderItemDao orderItemDao)
OrderOfferProcessorsetOrderItemDao in interface OrderOfferProcessorpublic OfferServiceUtilities getOfferServiceUtilities()
public void setOfferServiceUtilities(OfferServiceUtilities offerServiceUtilities)
Copyright © 2015. All Rights Reserved.