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, promotableItemFactory
 
Constructor Summary
FulfillmentGroupOfferProcessorImpl()
           
 
Method Summary
 boolean applyAllFulfillmentGroupOffers(java.util.List<PromotableCandidateFulfillmentGroupOffer> qualifiedFGOffers, PromotableOrder 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(PromotableCandidateFulfillmentGroupOffer fulfillmentGroupOffer)
           
 void calculateFulfillmentGroupTotal(PromotableOrder order)
           
protected  boolean compareAndAdjustFulfillmentGroupOffers(PromotableOrder order, boolean fgOfferApplied)
           
protected  boolean couldOfferApplyToFulfillmentGroup(Offer offer, PromotableFulfillmentGroup fulfillmentGroup)
           
protected  PromotableCandidateFulfillmentGroupOffer createCandidateFulfillmentGroupOffer(Offer offer, java.util.List<PromotableCandidateFulfillmentGroupOffer> qualifiedFGOffers, PromotableFulfillmentGroup fulfillmentGroup)
           
 void filterFulfillmentGroupLevelOffer(PromotableOrder order, java.util.List<PromotableCandidateFulfillmentGroupOffer> qualifiedFGOffers, Offer offer)
           
 java.util.List<FulfillmentGroupOfferPotential> removeTrailingNotCombinableFulfillmentGroupOffers(java.util.List<FulfillmentGroupOfferPotential> candidateOffers)
           
 
Methods inherited from class org.broadleafcommerce.core.offer.service.processor.OrderOfferProcessorImpl
applyAllOrderOffers, applyOrderOffer, compareAndAdjustOrderAndItemOffers, compileOrderTotal, couldOfferApplyToOrder, couldOfferApplyToOrder, couldOfferApplyToOrder, couldOfferApplyToOrder, createCandidateOrderOffer, filterOrderLevelOffer, gatherCart, getCartService, getFulfillmentGroupItemDao, getOfferDao, getOrderItemService, getPromotableItemFactory, initializeSplitItems, mergeSplitItems, removeTrailingNotCombinableOrderOffers, setCartService, setFulfillmentGroupItemDao, setOfferDao, setOrderItemService, setPromotableItemFactory
 
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, getCartService, getFulfillmentGroupItemDao, getOfferDao, getOrderItemService, getPromotableItemFactory, initializeSplitItems, removeTrailingNotCombinableOrderOffers, setCartService, setFulfillmentGroupItemDao, setOfferDao, setOrderItemService, setPromotableItemFactory
 
Methods inherited from interface org.broadleafcommerce.core.offer.service.processor.BaseProcessor
clearOffersandAdjustments, filterOffers
 

Constructor Detail

FulfillmentGroupOfferProcessorImpl

public FulfillmentGroupOfferProcessorImpl()
Method Detail

filterFulfillmentGroupLevelOffer

public void filterFulfillmentGroupLevelOffer(PromotableOrder order,
                                             java.util.List<PromotableCandidateFulfillmentGroupOffer> qualifiedFGOffers,
                                             Offer offer)
Specified by:
filterFulfillmentGroupLevelOffer in interface FulfillmentGroupOfferProcessor

calculateFulfillmentGroupTotal

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

couldOfferApplyToFulfillmentGroup

protected boolean couldOfferApplyToFulfillmentGroup(Offer offer,
                                                    PromotableFulfillmentGroup fulfillmentGroup)

createCandidateFulfillmentGroupOffer

protected PromotableCandidateFulfillmentGroupOffer createCandidateFulfillmentGroupOffer(Offer offer,
                                                                                        java.util.List<PromotableCandidateFulfillmentGroupOffer> qualifiedFGOffers,
                                                                                        PromotableFulfillmentGroup fulfillmentGroup)

applyAllFulfillmentGroupOffers

public boolean applyAllFulfillmentGroupOffers(java.util.List<PromotableCandidateFulfillmentGroupOffer> qualifiedFGOffers,
                                              PromotableOrder 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:
qualifiedFGOffers - a sorted list of CandidateOrderOffer
order - the Order to apply the CandidateOrderOffers
Returns:
true if order offer applied; otherwise false

compareAndAdjustFulfillmentGroupOffers

protected boolean compareAndAdjustFulfillmentGroupOffers(PromotableOrder order,
                                                         boolean fgOfferApplied)

applyFulfillmentGroupOffer

protected void applyFulfillmentGroupOffer(PromotableCandidateFulfillmentGroupOffer fulfillmentGroupOffer)

removeTrailingNotCombinableFulfillmentGroupOffers

public java.util.List<FulfillmentGroupOfferPotential> removeTrailingNotCombinableFulfillmentGroupOffers(java.util.List<FulfillmentGroupOfferPotential> candidateOffers)
Specified by:
removeTrailingNotCombinableFulfillmentGroupOffers in interface FulfillmentGroupOfferProcessor


Copyright © 2012. All Rights Reserved.