Class PromotionOrderEntryAdjustAction
java.lang.Object
de.hybris.platform.util.BridgeAbstraction
de.hybris.platform.jalo.Item
de.hybris.platform.jalo.ExtensibleItem
de.hybris.platform.jalo.c2l.LocalizableItem
de.hybris.platform.jalo.GenericItem
de.hybris.platform.promotions.jalo.GeneratedAbstractPromotionAction
de.hybris.platform.promotions.jalo.AbstractPromotionAction
de.hybris.platform.promotions.jalo.GeneratedPromotionOrderEntryAdjustAction
de.hybris.platform.promotions.jalo.PromotionOrderEntryAdjustAction
- All Implemented Interfaces:
Serializable,Comparable
- Direct Known Subclasses:
GeneratedCachedPromotionOrderEntryAdjustAction
PromotionOrderEntryAdjustAction. Action to create a fixed price adjustment to a specific quantity of products. The
adjustment is applied against the unit price of the OrderEntry. For this reason if the OrderEntry quantity is
different from the number to adjust we need to evenly distribute the discount so that the cart is correctly
calculated. The only other way to deal with this would be to split the OrderEntry into two, one with the already used
items and one with the discounted items, but this would mean invalidating the promotion context as it wraps all of
the OrderEntry objects Applying this action creates an order entry discount value for the first order entry with
sufficient quantity of products. Undoing this action removes the order entry discount value created.
If there is no single order entry with at least
GeneratedPromotionOrderEntryAdjustAction.getOrderEntryQuantity(de.hybris.platform.jalo.SessionContext) quantity of product
GeneratedPromotionOrderEntryAdjustAction.getOrderEntryProduct(de.hybris.platform.jalo.SessionContext) then this action will fail to apply. This can happen if the product quantity is split
across multiple order entries.- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static final classNested classes/interfaces inherited from class de.hybris.platform.jalo.GenericItem
GenericItem.GenericItemImplNested classes/interfaces inherited from class de.hybris.platform.jalo.c2l.LocalizableItem
LocalizableItem.LocalizableItemImplNested classes/interfaces inherited from class de.hybris.platform.jalo.ExtensibleItem
ExtensibleItem.ExtensibleItemImplNested classes/interfaces inherited from class de.hybris.platform.jalo.Item
Item.AttributeFilter, Item.AttributeMode, Item.CachedGetter, Item.CachedSetter, Item.ItemAttributeMap, Item.ItemConstraint, Item.ItemImpl, Item.JaloCachedComputationException -
Field Summary
Fields inherited from class de.hybris.platform.promotions.jalo.GeneratedPromotionOrderEntryAdjustAction
AMOUNT, DEFAULT_INITIAL_ATTRIBUTES, ORDERENTRYNUMBER, ORDERENTRYPRODUCT, ORDERENTRYQUANTITYFields inherited from class de.hybris.platform.promotions.jalo.GeneratedAbstractPromotionAction
GUID, MARKEDAPPLIED, PROMOTIONRESULT, PROMOTIONRESULTHANDLERFields inherited from class de.hybris.platform.jalo.c2l.LocalizableItem
LANGUAGE_FALLBACK_ENABLEDFields inherited from class de.hybris.platform.jalo.Item
_CREATION_TIME_INTERNAL, _MODIFIED_TIME_INTERNAL, accessorLog, CREATION_TIME, DISABLE_ATTRIBUTE_CHECK, DISABLE_ITEMCHECK_BEFORE_REMOVABLE, EVEN, FEATURE_ACCESSMAP_QUALIFIER, HJMPTS, INITIAL_CREATION_FLAG, isJaloOnly, MODIFIED_TIME, NEGATIVE, NOT_FOUND, OWNER, PK, POSITIVE, SAVE_FROM_SERVICE_LAYER, staticTransientObjects, TYPEFields inherited from class de.hybris.platform.util.BridgeAbstraction
impl, tenant -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanapply(SessionContext ctx) Apply the action to the order.protected AbstractOrderEntryfindOrderEntry(AbstractOrder order, SessionContext ctx, Integer orderEntryNumber) protected static DiscountValuefindOrderEntryDiscountValue(SessionContext ctx, AbstractOrderEntry orderEntry, String discountValueCode) protected static PromotionOrderEntryAdjustAction.OrderEntryAndDiscountValuefindOrderEntryDiscountValue(SessionContext ctx, AbstractOrder order, String discountValueCode) doublegetValue(SessionContext ctx) Get the total value of this action.booleanTest if this action is applied to the order.booleanundo(SessionContext ctx) Unapply the action from the order.Methods inherited from class de.hybris.platform.promotions.jalo.GeneratedPromotionOrderEntryAdjustAction
getAmount, getAmount, getAmountAsPrimitive, getAmountAsPrimitive, getDefaultAttributeModes, getOrderEntryNumber, getOrderEntryNumber, getOrderEntryNumberAsPrimitive, getOrderEntryNumberAsPrimitive, getOrderEntryProduct, getOrderEntryProduct, getOrderEntryQuantity, getOrderEntryQuantity, getOrderEntryQuantityAsPrimitive, getOrderEntryQuantityAsPrimitive, setAmount, setAmount, setAmount, setAmount, setOrderEntryNumber, setOrderEntryNumber, setOrderEntryNumber, setOrderEntryNumber, setOrderEntryProduct, setOrderEntryProduct, setOrderEntryQuantity, setOrderEntryQuantity, setOrderEntryQuantity, setOrderEntryQuantityMethods inherited from class de.hybris.platform.promotions.jalo.AbstractPromotionAction
apply, deepClone, deepCloneAttributes, getGuid, insertFirstGlobalDiscountValue, insertFirstOrderEntryDiscountValue, isAppliedToOrder, undoMethods inherited from class de.hybris.platform.promotions.jalo.GeneratedAbstractPromotionAction
createItem, getGuid, getPromotionResult, getPromotionResult, isMarkedApplied, isMarkedApplied, isMarkedAppliedAsPrimitive, isMarkedAppliedAsPrimitive, setGuid, setGuid, setMarkedApplied, setMarkedApplied, setMarkedApplied, setMarkedApplied, setPromotionResult, setPromotionResultMethods inherited from class de.hybris.platform.jalo.GenericItem
getImplementation, getInitialProperties, getNonInitialAttributes, getRelatedItems, getRelatedItems, setRelatedItemsMethods inherited from class de.hybris.platform.jalo.c2l.LocalizableItem
getAllLocalizedProperties, getAllLocalizedProperties, getAllLocalizedProperties, getAllLocalizedProperties, getAllValuesSessionContext, getLocalizedProperty, getLocalizedProperty, getLocalizedPropertyInternal, getLocalizedPropertyNames, getLocalizedPropertyNames, hasLanguage, isEmptyValue, isFallbackEnabled, removeLocalizedProperty, removeLocalizedProperty, setAllLocalizedProperties, setAllLocalizedProperties, setLocalizedProperty, setLocalizedPropertyMethods inherited from class de.hybris.platform.jalo.ExtensibleItem
createNonClassAccessor, getAllProperties, getAllProperties, getProperty, getProperty, getPropertyNames, getPropertyNames, removeProperty, removeProperty, setAllProperties, setAllProperties, setProperty, setPropertyMethods inherited from class de.hybris.platform.jalo.Item
addLinkedItems, addLinkedItems, addLinkedItems, addLinkedItems, addLinkedItems, addLinkedItems, addLinkedItems, addLinkedItems, addLinkedItems, addNegativePermission, addPermission, addPositivePermission, assureExtensionsLoaded, changeTypeAfterCreation, checkConstraint, checkItemPermission, checkMandatoryAttribute, checkMandatoryAttribute, checkPermission, checkPermission, checkRemovable, clearPermission, compareTo, ctx, doAfterRemove, doBeforeRemove, equals, getAccessorFor, getAllAttributes, getAllAttributes, getAllAttributes, getAllAttributes, getAllAttributesInternal, getAllLinkedItems, getAndCheckCacheBoundItem, getAttribute, getAttribute, getCacheBoundItem, getComposedType, getComposedTypePK, getCreationTime, getCurrentlyRemovingCount, getLinkedItems, getLinkedItems, getLinkedItems, getLinkedItems, getLinkedItems, getLinkedItems, getLinkedItems, getLinkedItemsCount, getLinkedItemsCount, getLinkedItemsCount, getModificationTime, getNegativePermissions, getOwner, getPartOfRemovedSessionMarker, getPermissionMap, getPermissions, getPersistenceVersion, getPK, getPositivePermissions, getRestrictedPrincipals, getSession, getSyncObject, getTenant, getTransientObject, getTransientObjectMap, hashCode, hasRegisteredClassAccessorFor, internal_registerClassAccessorFor, internal_registerNonClassAccessorFor, invalidateLocalCaches, isAlive, isCacheBound, isCurrentlyRemoving, isCurrentlyRemoving, isEmptyRelationValue, isInCreate, isInstanceOf, isItemCheckBeforeRemoveableDisabled, isMarkModifiedDisabled, isRelationLocalizationFallbackEnabled, newInstance, notifyExtensionsAfterItemCreation, notifyExtensionsBeforeItemCreation, notifyItemRemoval, notifyManagerAboutItemRemoval, readResolve, registerAccessFor, registerAccessFor, registerJaloInvalidationListeners, remove, remove, removeItemCollection, removeItemCollection, removeLinkedItems, removeLinkedItems, removeLinkedItems, removeLinkedItems, removeLinks, removePartOfItems, removePartOfItems, setAllAttributes, setAllAttributes, setAllAttributesInternal, setAllLinkedItems, setAllLinkedItems, setAllLinkedItems, setAllLinkedItems, setAttribute, setAttribute, setAttributeFromString, setAttributeFromString, setCacheBound, setComposedType, setCreationTime, setImplementation, setLinkedItems, setLinkedItems, setLinkedItems, setLinkedItems, setLinkedItems, setLinkedItems, setLinkedItems, setLinkedItems, setModificationTime, setNonInitialAttributes, setOwner, setPermissionsByMap, setTransientObject, setUseTA, suppressRelation, toString, useTA, writeReplaceMethods inherited from class de.hybris.platform.util.BridgeAbstraction
setTenant
-
Constructor Details
-
PromotionOrderEntryAdjustAction
public PromotionOrderEntryAdjustAction()
-
-
Method Details
-
apply
Description copied from class:AbstractPromotionActionApply the action to the order. Do not callAbstractOrder.recalculate()to update the totals as this disposes of all applied discounts and the promotions engine is unable to intercept the recalculate call to reinstate these.- Specified by:
applyin classAbstractPromotionAction- Parameters:
ctx- The hybris context- Returns:
- true if discounts have been applied and calculateTotals needs to be called, false otherwise.
-
findOrderEntry
protected AbstractOrderEntry findOrderEntry(AbstractOrder order, SessionContext ctx, Integer orderEntryNumber) -
undo
Description copied from class:AbstractPromotionActionUnapply the action from the order.- Specified by:
undoin classAbstractPromotionAction- Parameters:
ctx- The hybris context- Returns:
- true if discounts have been removed and calculateTotals needs to be called, false otherwise.
-
isAppliedToOrder
Description copied from class:AbstractPromotionActionTest if this action is applied to the order.- Specified by:
isAppliedToOrderin classAbstractPromotionAction- Parameters:
ctx- The hybris context- Returns:
- true if the action is applied, false otherwise.
-
getValue
Description copied from class:AbstractPromotionActionGet the total value of this action. For actions providing a discount this should be a positive value.- Specified by:
getValuein classAbstractPromotionAction- Parameters:
ctx- The hybris context- Returns:
- The double value that is the value of this action
-
findOrderEntryDiscountValue
protected static PromotionOrderEntryAdjustAction.OrderEntryAndDiscountValue findOrderEntryDiscountValue(SessionContext ctx, AbstractOrder order, String discountValueCode) -
findOrderEntryDiscountValue
protected static DiscountValue findOrderEntryDiscountValue(SessionContext ctx, AbstractOrderEntry orderEntry, String discountValueCode)
-