org.broadleafcommerce.core.offer.service.processor
Class FulfillmentGroupOfferProcessorImpl

java.lang.Object
  extended by org.broadleafcommerce.core.offer.service.processor.AbstractBaseProcessor
      extended by org.broadleafcommerce.core.offer.service.processor.OrderOfferProcessorImpl
          extended by org.broadleafcommerce.core.offer.service.processor.FulfillmentGroupOfferProcessorImpl
All Implemented Interfaces:
BaseProcessor, FulfillmentGroupOfferProcessor, OrderOfferProcessor

@Service(value="blFulfillmentGroupOfferProcessor")
public class FulfillmentGroupOfferProcessorImpl
extends OrderOfferProcessorImpl
implements FulfillmentGroupOfferProcessor

Author:
jfischer

Field Summary
 
Fields inherited from class org.broadleafcommerce.core.offer.service.processor.OrderOfferProcessorImpl
cartService, fulfillmentGroupItemDao, offerDao, orderItemService
 
Constructor Summary
FulfillmentGroupOfferProcessorImpl()
           
 
Method Summary
 boolean applyAllFulfillmentGroupOffers(java.util.List<CandidateFulfillmentGroupOffer> qualifiedFGOffers, Order order)
          Private method that 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 applyFulfillmentGroupOffer(CandidateFulfillmentGroupOffer fulfillmentGroupOffer)
           
 void calculateFulfillmentGroupTotal(Order order)
           
protected  boolean compareAndAdjustFulfillmentGroupOffers(Order order, boolean fgOfferApplied)
           
protected  boolean couldOfferApplyToFulfillmentGroup(Offer offer, FulfillmentGroup fulfillmentGroup)
           
protected  CandidateFulfillmentGroupOffer createCandidateFulfillmentGroupOffer(Offer offer, java.util.List<CandidateFulfillmentGroupOffer> qualifiedFGOffers, FulfillmentGroup fulfillmentGroup)
           
 void filterFulfillmentGroupLevelOffer(Order order, java.util.List<CandidateFulfillmentGroupOffer> qualifiedFGOffers, java.util.List<DiscreteOrderItem> discreteOrderItems, Offer offer)
           
 
Methods inherited from class org.broadleafcommerce.core.offer.service.processor.OrderOfferProcessorImpl
applyAllOrderOffers, applyOrderOffer, compareAndAdjustOrderAndItemOffers, compileOrderTotal, couldOfferApplyToOrder, couldOfferApplyToOrder, couldOfferApplyToOrder, couldOfferApplyToOrder, createCandidateOrderOffer, filterOrderLevelOffer, gatherCart, getAllSplitItems, getCartService, getFulfillmentGroupItemDao, getOfferDao, getOrderItemService, initializeSplitItems, mergeSplitItems, removeTrailingNotCombinableOrderOffers, setCartService, setFulfillmentGroupItemDao, setOfferDao, setOrderItemService
 
Methods inherited from class org.broadleafcommerce.core.offer.service.processor.AbstractBaseProcessor
checkForItemRequirements, clearAllNonFinalizedQuantities, clearOffersandAdjustments, couldOfferApplyToCustomer, couldOfferApplyToOrderItems, couldOrderItemMeetOfferRequirement, executeExpression, filterOffers, finalizeQuantities, removeInvalidCustomerOffers, removeOutOfDateOffers
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.broadleafcommerce.core.offer.service.processor.OrderOfferProcessor
applyAllOrderOffers, compileOrderTotal, couldOfferApplyToOrder, executeExpression, filterOrderLevelOffer, gatherCart, getAllSplitItems, getCartService, getFulfillmentGroupItemDao, getOfferDao, getOrderItemService, initializeSplitItems, removeTrailingNotCombinableOrderOffers, setCartService, setFulfillmentGroupItemDao, setOfferDao, setOrderItemService
 
Methods inherited from interface org.broadleafcommerce.core.offer.service.processor.BaseProcessor
clearOffersandAdjustments, filterOffers
 

Constructor Detail

FulfillmentGroupOfferProcessorImpl

public FulfillmentGroupOfferProcessorImpl()
Method Detail

filterFulfillmentGroupLevelOffer

public void filterFulfillmentGroupLevelOffer(Order order,
                                             java.util.List<CandidateFulfillmentGroupOffer> qualifiedFGOffers,
                                             java.util.List<DiscreteOrderItem> discreteOrderItems,
                                             Offer offer)
Specified by:
filterFulfillmentGroupLevelOffer in interface FulfillmentGroupOfferProcessor

calculateFulfillmentGroupTotal

public void calculateFulfillmentGroupTotal(Order order)
Specified by:
calculateFulfillmentGroupTotal in interface FulfillmentGroupOfferProcessor

couldOfferApplyToFulfillmentGroup

protected boolean couldOfferApplyToFulfillmentGroup(Offer offer,
                                                    FulfillmentGroup fulfillmentGroup)

createCandidateFulfillmentGroupOffer

protected CandidateFulfillmentGroupOffer createCandidateFulfillmentGroupOffer(Offer offer,
                                                                              java.util.List<CandidateFulfillmentGroupOffer> qualifiedFGOffers,
                                                                              FulfillmentGroup fulfillmentGroup)

applyAllFulfillmentGroupOffers

public boolean applyAllFulfillmentGroupOffers(java.util.List<CandidateFulfillmentGroupOffer> qualifiedFGOffers,
                                              Order order)
Private method that 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. OrderAdjustments are create on the Order for each applied CandidateOrderOffer. An offer with stackable equals false cannot be applied to an Order that already contains an OrderAdjustment. An offer with combinable equals false cannot be applied to the Order if the Order already contains an OrderAdjustment.

Specified by:
applyAllFulfillmentGroupOffers in interface FulfillmentGroupOfferProcessor
Parameters:
orderOffers - a sorted list of CandidateOrderOffer
order - the Order to apply the CandidateOrderOffers
Returns:
true if order offer applied; otherwise false

compareAndAdjustFulfillmentGroupOffers

protected boolean compareAndAdjustFulfillmentGroupOffers(Order order,
                                                         boolean fgOfferApplied)

applyFulfillmentGroupOffer

protected void applyFulfillmentGroupOffer(CandidateFulfillmentGroupOffer fulfillmentGroupOffer)


Copyright © 2011. All Rights Reserved.