Class EnhancedOrder
java.lang.Object
com.broadleafcommerce.promotion.offer.web.context.EnhancedOrder
- All Implemented Interfaces:
com.broadleafcommerce.promotion.offer.client.web.context.Order<EnhancedOrderLineItem,,EnhancedFulfillmentGroup> Serializable
public class EnhancedOrder
extends Object
implements com.broadleafcommerce.promotion.offer.client.web.context.Order<EnhancedOrderLineItem,EnhancedFulfillmentGroup>, Serializable
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddChildrenForItem(EnhancedOrderLineItem parent, Collection<EnhancedOrderLineItem> allPotentialChildren) protected voidbuildFulfillmentLineItem(EnhancedFulfillmentLineItem enhancedFulfillmentLineItem, EnhancedOrderLineItem orderLineItem, int remainingQty) voidjavax.money.MonetaryAmountcalculateItemAdjustmentsTotal(boolean isForFulfillment) javax.money.MonetaryAmountcalculateItemAdjustmentsValue(boolean isForFulfillment, boolean useSaleAdjustments) javax.money.MonetaryAmountjavax.money.MonetaryAmountprotected intcalculateRemainingQuantity(EnhancedOrderLineItem orderItem) javax.money.MonetaryAmountjavax.money.MonetaryAmountcalculateSubtotalWithAdjustments(boolean isForFulfillment) javax.money.MonetaryAmountjavax.money.MonetaryAmountprotected booleanprotected Optional<EnhancedFulfillmentGroup>protected intdeterminePossibleNumberOfCodesUsedPerOffer(List<OfferCode> codeList, int timesUsed) booleanvoidjavax.money.MonetaryAmountjavax.money.MonetaryAmountjavax.money.MonetaryAmountjavax.money.MonetaryAmountReturns the adjusted subtotal of the order by adding the adjusted subtotal with the adjusted fulfillment total.javax.money.MonetaryAmountMap of codes and reasons they were not applied.com.broadleafcommerce.promotion.offer.client.web.context.CodesgetCodes()javax.money.CurrencyUnitcom.broadleafcommerce.promotion.offer.client.web.context.CustomerContextjavax.money.MonetaryAmountgetFinalItemAdjustmentsValue(boolean isForFulfillment) List<com.broadleafcommerce.promotion.offer.client.web.context.info.FreeGiftItem>protected javax.money.MonetaryAmountjavax.money.MonetaryAmountgetItemFutureCredits(boolean isForFulfillment) getLineItemOfferDetails(boolean isForFulfillment) getLineItems(boolean isForFulfillment) List<com.broadleafcommerce.promotion.offer.client.web.context.OfferCodeDto>getOrderLineItemsForOfferSegment(String segment) javax.money.MonetaryAmountdoublejavax.money.MonetaryAmountjavax.money.MonetaryAmountjavax.money.MonetaryAmountjavax.money.MonetaryAmountjavax.money.MonetaryAmountList<com.broadleafcommerce.promotion.offer.client.web.context.info.Voucher>inthashCode()voidinitializeFulfillmentItemOfferDetails(com.broadleafcommerce.common.extension.TypeFactory offerFactory) voidinitializeFulfillmentItems(com.broadleafcommerce.common.extension.TypeFactory offerFactory) voidinitializeOrderItemOfferDetails(com.broadleafcommerce.common.extension.TypeFactory offerFactory) protected booleanbooleanWhether Offers of typeDiscountTargetType.FULFILLMENT_GROUPorDiscountTargetType.FULFILLMENT_GROUP_ITEMshould be run against this order's fulfillment groups and fulfillment items.booleanbooleanbooleanWhether any adjustment for this order or it's items is a result of a totalitarian offer, such that it'sOffer.getCombinabilityType()isCombinabilityType.NONE.booleanvoidPopulate each of theorder'sEnhancedFulfillmentGroup.getFulfillmentItems()fulfillment group's fulfillment items} with the correspondingorder's order itemsusingEnhancedFulfillmentLineItem.getRelatedOrderLineItemNumber().voidvoidvoidRemove allEnhancedFulfillmentGroup.getGroupAdjustments()for allfulfillment groups.voidremoveAllItemOfferAdjustments(boolean isForFulfillment) Remove all adjustments for allorder items.voidremoveCodeResponse(String code) voidremoveCodesResponses(Offer offer) voidremoveCodesResponses(Offer offer, int timesUsed) voidvoidsetAdjustedSubtotal(javax.money.MonetaryAmount adjustedSubtotal) voidsetAttributes(Map<String, Object> attributes) voidsetCartSubtotal(javax.money.MonetaryAmount cartSubtotal) voidsetCodeResponseMap(Map<String, com.broadleafcommerce.promotion.offer.client.web.context.discounts.CodeResponse> codeResponseMap) Map of codes and reasons they were not applied.voidsetCodes(com.broadleafcommerce.promotion.offer.client.web.context.Codes codes) voidsetCurrency(javax.money.CurrencyUnit currency) voidsetCustomerContext(com.broadleafcommerce.promotion.offer.client.web.context.CustomerContext customerContext) voidsetFreeGiftItems(List<com.broadleafcommerce.promotion.offer.client.web.context.info.FreeGiftItem> freeGiftItems) voidsetFulfillmentGroups(List<EnhancedFulfillmentGroup> fulfillmentGroups) voidvoidsetOfferCodeData(OfferCodeData offerCodeData) voidsetOfferCodes(List<com.broadleafcommerce.promotion.offer.client.web.context.OfferCodeDto> offerCodes) voidsetOrderAdjustments(List<OrderOfferAdjustment> orderAdjustments) voidsetOrderLineItems(List<EnhancedOrderLineItem> orderLineItems) voidsetOrderNumber(String orderNumber) voidsetOrderSubmitDate(Instant orderSubmitDate) voidsetRunOrderAndItemOffers(boolean runOrderAndItemOffers) voidsetSegmentLineItemsMap(Map<String, List<EnhancedOrderLineItem>> segmentLineItemsMap) voidsetSegments(Set<String> segments) voidsetTimeOfRequest(Instant timeOfRequest) voidsetTotalFufillmentCharges(javax.money.MonetaryAmount totalFufillmentCharges) voidsetVouchers(List<com.broadleafcommerce.promotion.offer.client.web.context.info.Voucher> vouchers) toString()voidupdateCodeResponse(String code, com.broadleafcommerce.promotion.offer.client.web.context.discounts.CodeResponse response) voidupdateCodesResponses(Offer offer, com.broadleafcommerce.promotion.offer.client.web.context.discounts.CodeResponse response) voidupdateCodesResponses(Offer offer, com.broadleafcommerce.promotion.offer.client.web.context.discounts.CodeResponse response, Set<String> immutableOfferCodes)
-
Constructor Details
-
EnhancedOrder
public EnhancedOrder()
-
-
Method Details
-
getTimeOfRequest
- Specified by:
getTimeOfRequestin interfacecom.broadleafcommerce.promotion.offer.client.web.context.Order<EnhancedOrderLineItem,EnhancedFulfillmentGroup>
-
getFulfillmentLineItems
-
getSubtotalAsDouble
public double getSubtotalAsDouble() -
getSubtotal
public javax.money.MonetaryAmount getSubtotal() -
getAdjustedSubtotalWithoutFutureCredits
public javax.money.MonetaryAmount getAdjustedSubtotalWithoutFutureCredits() -
getLineItems
- Parameters:
isForFulfillment- determines whether to getfulfillmentLineItemsinstead oforderLineItems- Returns:
- the line items of the specified type: Fulfillment or Order
-
getLineItemOfferDetails
-
getAllLineItemOfferDetails
-
initializeFulfillmentItems
public void initializeFulfillmentItems(com.broadleafcommerce.common.extension.TypeFactory offerFactory) -
buildFulfillmentLineItem
protected void buildFulfillmentLineItem(EnhancedFulfillmentLineItem enhancedFulfillmentLineItem, EnhancedOrderLineItem orderLineItem, int remainingQty) -
calculateRemainingQuantity
-
determineFulfillmentGroupForOrderItem
protected Optional<EnhancedFulfillmentGroup> determineFulfillmentGroupForOrderItem(EnhancedOrderLineItem orderItem) -
populateFulfillmentItemsWithOrderItems
public void populateFulfillmentItemsWithOrderItems()Populate each of theorder'sEnhancedFulfillmentGroup.getFulfillmentItems()fulfillment group's fulfillment items} with the correspondingorder's order itemsusingEnhancedFulfillmentLineItem.getRelatedOrderLineItemNumber(). -
populateItemCurrencies
public void populateItemCurrencies() -
buildOrderItemHierarchies
public void buildOrderItemHierarchies() -
initializeOrderItemOfferDetails
public void initializeOrderItemOfferDetails(@NonNull com.broadleafcommerce.common.extension.TypeFactory offerFactory) -
initializeFulfillmentItemOfferDetails
public void initializeFulfillmentItemOfferDetails(@NonNull com.broadleafcommerce.common.extension.TypeFactory offerFactory) -
calculateSubtotalWithAdjustments
public javax.money.MonetaryAmount calculateSubtotalWithAdjustments() -
calculateSubtotalWithAdjustmentsForSegment
-
calculateSubtotalWithAdjustments
public javax.money.MonetaryAmount calculateSubtotalWithAdjustments(boolean isForFulfillment) -
calculateItemAdjustmentsTotal
public javax.money.MonetaryAmount calculateItemAdjustmentsTotal(boolean isForFulfillment) -
calculateSubtotalWithoutAdjustments
public javax.money.MonetaryAmount calculateSubtotalWithoutAdjustments() -
getTotalAdjustmentsValue
public javax.money.MonetaryAmount getTotalAdjustmentsValue() -
getTotalFulfillmentGroupAdjustments
public javax.money.MonetaryAmount getTotalFulfillmentGroupAdjustments() -
getTotalFulfillmentAdjustments
public javax.money.MonetaryAmount getTotalFulfillmentAdjustments() -
getTotalFutureCredits
public javax.money.MonetaryAmount getTotalFutureCredits() -
getFulfillmentGroupFutureCredits
protected javax.money.MonetaryAmount getFulfillmentGroupFutureCredits() -
getFinalItemAdjustmentsValue
public javax.money.MonetaryAmount getFinalItemAdjustmentsValue(boolean isForFulfillment) -
getItemFutureCredits
public javax.money.MonetaryAmount getItemFutureCredits(boolean isForFulfillment) -
calculateItemAdjustmentsValue
public javax.money.MonetaryAmount calculateItemAdjustmentsValue(boolean isForFulfillment, boolean useSaleAdjustments) -
setAdjustedSubtotal
public void setAdjustedSubtotal() -
calculateOrderAdjustmentTotal
public javax.money.MonetaryAmount calculateOrderAdjustmentTotal() -
calculateOrderFutureCredits
public javax.money.MonetaryAmount calculateOrderFutureCredits() -
isTotalitarianItemOfferApplied
public boolean isTotalitarianItemOfferApplied() -
isTotalitarianOrderOfferApplied
public boolean isTotalitarianOrderOfferApplied() -
isTotalitarianOfferApplied
public boolean isTotalitarianOfferApplied()Whether any adjustment for this order or it's items is a result of a totalitarian offer, such that it'sOffer.getCombinabilityType()isCombinabilityType.NONE.- Returns:
- Whether any adjustment for this order or it's items is a result of a totalitarian
offer, such that it's
Offer.getCombinabilityType()isCombinabilityType.NONE.
-
finalizeOrderItemPrices
public void finalizeOrderItemPrices() -
addChildrenForItem
protected void addChildrenForItem(EnhancedOrderLineItem parent, Collection<EnhancedOrderLineItem> allPotentialChildren) -
isNonCombinableOrderOfferApplied
protected boolean isNonCombinableOrderOfferApplied() -
removeAllFulfillmentOfferAdjustments
public void removeAllFulfillmentOfferAdjustments()Remove allEnhancedFulfillmentGroup.getGroupAdjustments()for allfulfillment groups. -
removeAllItemOfferAdjustments
public void removeAllItemOfferAdjustments(boolean isForFulfillment) Remove all adjustments for allorder items. -
isRunFulfillmentAndItemOffers
public boolean isRunFulfillmentAndItemOffers()Whether Offers of typeDiscountTargetType.FULFILLMENT_GROUPorDiscountTargetType.FULFILLMENT_GROUP_ITEMshould be run against this order's fulfillment groups and fulfillment items.- Returns:
- Whether Offers of type
DiscountTargetType.FULFILLMENT_GROUPorDiscountTargetType.FULFILLMENT_GROUP_ITEMshould be run against this order's fulfillment groups and fulfillment items.
-
getAllLineItems
-
getAdjustedTotalWithoutFutureCredits
public javax.money.MonetaryAmount getAdjustedTotalWithoutFutureCredits()Returns the adjusted subtotal of the order by adding the adjusted subtotal with the adjusted fulfillment total.- Returns:
- the adjusted subtotal of the order
-
getAdjustedFulfillmentTotalWithoutFutureCredits
public javax.money.MonetaryAmount getAdjustedFulfillmentTotalWithoutFutureCredits() -
populateLineItemsBySegment
public void populateLineItemsBySegment() -
getOrderLineItemsForOfferSegment
-
removeCodesResponses
-
removeCodesResponses
-
determinePossibleNumberOfCodesUsedPerOffer
-
removeCodeResponse
-
updateCodesResponses
public void updateCodesResponses(Offer offer, com.broadleafcommerce.promotion.offer.client.web.context.discounts.CodeResponse response) -
updateCodesResponses
-
updateCodeResponse
public void updateCodeResponse(String code, com.broadleafcommerce.promotion.offer.client.web.context.discounts.CodeResponse response) -
getOrderNumber
- Specified by:
getOrderNumberin interfacecom.broadleafcommerce.promotion.offer.client.web.context.Order<EnhancedOrderLineItem,EnhancedFulfillmentGroup>
-
getOrderLineItems
- Specified by:
getOrderLineItemsin interfacecom.broadleafcommerce.promotion.offer.client.web.context.Order<EnhancedOrderLineItem,EnhancedFulfillmentGroup>
-
getFulfillmentGroups
- Specified by:
getFulfillmentGroupsin interfacecom.broadleafcommerce.promotion.offer.client.web.context.Order<EnhancedOrderLineItem,EnhancedFulfillmentGroup>
-
getFreeGiftItems
public List<com.broadleafcommerce.promotion.offer.client.web.context.info.FreeGiftItem> getFreeGiftItems() -
getVouchers
-
getCodes
public com.broadleafcommerce.promotion.offer.client.web.context.Codes getCodes()- Specified by:
getCodesin interfacecom.broadleafcommerce.promotion.offer.client.web.context.Order<EnhancedOrderLineItem,EnhancedFulfillmentGroup>
-
getOfferCodes
-
getCodeResponseMap
public Map<String,com.broadleafcommerce.promotion.offer.client.web.context.discounts.CodeResponse> getCodeResponseMap()Map of codes and reasons they were not applied. -
getSegmentLineItemsMap
-
getSegments
-
getOfferCodeData
-
isRunOrderAndItemOffers
public boolean isRunOrderAndItemOffers()- Specified by:
isRunOrderAndItemOffersin interfacecom.broadleafcommerce.promotion.offer.client.web.context.Order<EnhancedOrderLineItem,EnhancedFulfillmentGroup>
-
getAttributes
- Specified by:
getAttributesin interfacecom.broadleafcommerce.promotion.offer.client.web.context.Order<EnhancedOrderLineItem,EnhancedFulfillmentGroup>
-
getLocale
- Specified by:
getLocalein interfacecom.broadleafcommerce.promotion.offer.client.web.context.Order<EnhancedOrderLineItem,EnhancedFulfillmentGroup>
-
getCurrency
public javax.money.CurrencyUnit getCurrency()- Specified by:
getCurrencyin interfacecom.broadleafcommerce.promotion.offer.client.web.context.Order<EnhancedOrderLineItem,EnhancedFulfillmentGroup>
-
getCustomerContext
public com.broadleafcommerce.promotion.offer.client.web.context.CustomerContext getCustomerContext()- Specified by:
getCustomerContextin interfacecom.broadleafcommerce.promotion.offer.client.web.context.Order<EnhancedOrderLineItem,EnhancedFulfillmentGroup>
-
getOrderSubmitDate
-
getCartSubtotal
public javax.money.MonetaryAmount getCartSubtotal() -
getAdjustedSubtotal
public javax.money.MonetaryAmount getAdjustedSubtotal() -
getOrderAdjustments
-
getTotalFufillmentCharges
public javax.money.MonetaryAmount getTotalFufillmentCharges() -
setOrderNumber
- Specified by:
setOrderNumberin interfacecom.broadleafcommerce.promotion.offer.client.web.context.Order<EnhancedOrderLineItem,EnhancedFulfillmentGroup>
-
setOrderLineItems
- Specified by:
setOrderLineItemsin interfacecom.broadleafcommerce.promotion.offer.client.web.context.Order<EnhancedOrderLineItem,EnhancedFulfillmentGroup>
-
setFulfillmentGroups
- Specified by:
setFulfillmentGroupsin interfacecom.broadleafcommerce.promotion.offer.client.web.context.Order<EnhancedOrderLineItem,EnhancedFulfillmentGroup>
-
setFreeGiftItems
public void setFreeGiftItems(List<com.broadleafcommerce.promotion.offer.client.web.context.info.FreeGiftItem> freeGiftItems) -
setVouchers
public void setVouchers(List<com.broadleafcommerce.promotion.offer.client.web.context.info.Voucher> vouchers) -
setCodes
public void setCodes(com.broadleafcommerce.promotion.offer.client.web.context.Codes codes) - Specified by:
setCodesin interfacecom.broadleafcommerce.promotion.offer.client.web.context.Order<EnhancedOrderLineItem,EnhancedFulfillmentGroup>
-
setOfferCodes
public void setOfferCodes(List<com.broadleafcommerce.promotion.offer.client.web.context.OfferCodeDto> offerCodes) -
setCodeResponseMap
public void setCodeResponseMap(Map<String, com.broadleafcommerce.promotion.offer.client.web.context.discounts.CodeResponse> codeResponseMap) Map of codes and reasons they were not applied. -
setSegmentLineItemsMap
-
setSegments
-
setOfferCodeData
-
setRunOrderAndItemOffers
public void setRunOrderAndItemOffers(boolean runOrderAndItemOffers) - Specified by:
setRunOrderAndItemOffersin interfacecom.broadleafcommerce.promotion.offer.client.web.context.Order<EnhancedOrderLineItem,EnhancedFulfillmentGroup>
-
setAttributes
- Specified by:
setAttributesin interfacecom.broadleafcommerce.promotion.offer.client.web.context.Order<EnhancedOrderLineItem,EnhancedFulfillmentGroup>
-
setLocale
- Specified by:
setLocalein interfacecom.broadleafcommerce.promotion.offer.client.web.context.Order<EnhancedOrderLineItem,EnhancedFulfillmentGroup>
-
setCurrency
public void setCurrency(javax.money.CurrencyUnit currency) - Specified by:
setCurrencyin interfacecom.broadleafcommerce.promotion.offer.client.web.context.Order<EnhancedOrderLineItem,EnhancedFulfillmentGroup>
-
setCustomerContext
public void setCustomerContext(com.broadleafcommerce.promotion.offer.client.web.context.CustomerContext customerContext) - Specified by:
setCustomerContextin interfacecom.broadleafcommerce.promotion.offer.client.web.context.Order<EnhancedOrderLineItem,EnhancedFulfillmentGroup>
-
setTimeOfRequest
- Specified by:
setTimeOfRequestin interfacecom.broadleafcommerce.promotion.offer.client.web.context.Order<EnhancedOrderLineItem,EnhancedFulfillmentGroup>
-
setOrderSubmitDate
-
setCartSubtotal
public void setCartSubtotal(javax.money.MonetaryAmount cartSubtotal) -
setAdjustedSubtotal
public void setAdjustedSubtotal(javax.money.MonetaryAmount adjustedSubtotal) -
setOrderAdjustments
-
setTotalFufillmentCharges
public void setTotalFufillmentCharges(javax.money.MonetaryAmount totalFufillmentCharges) -
toString
-
equals
-
canEqual
-
hashCode
public int hashCode()
-