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:
java.io.Serializable,java.lang.Comparable
- Direct Known Subclasses:
GeneratedCachedPromotionOrderEntryAdjustAction
public class PromotionOrderEntryAdjustAction extends GeneratedPromotionOrderEntryAdjustAction
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 leastGeneratedPromotionOrderEntryAdjustAction.getOrderEntryQuantity(de.hybris.platform.jalo.SessionContext)quantity of productGeneratedPromotionOrderEntryAdjustAction.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:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classPromotionOrderEntryAdjustAction.OrderEntryAndDiscountValue-
Nested classes/interfaces inherited from class de.hybris.platform.jalo.GenericItem
GenericItem.GenericItemImpl
-
Nested classes/interfaces inherited from class de.hybris.platform.jalo.c2l.LocalizableItem
LocalizableItem.LocalizableItemImpl
-
Nested classes/interfaces inherited from class de.hybris.platform.jalo.ExtensibleItem
ExtensibleItem.ExtensibleItemImpl
-
Nested 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, ORDERENTRYQUANTITY
-
Fields inherited from class de.hybris.platform.promotions.jalo.GeneratedAbstractPromotionAction
GUID, MARKEDAPPLIED, PROMOTIONRESULT, PROMOTIONRESULTHANDLER
-
Fields inherited from class de.hybris.platform.jalo.c2l.LocalizableItem
LANGUAGE_FALLBACK_ENABLED
-
Fields 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, TYPE
-
Fields inherited from class de.hybris.platform.util.BridgeAbstraction
impl, tenant
-
-
Constructor Summary
Constructors Constructor Description PromotionOrderEntryAdjustAction()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanapply(SessionContext ctx)Apply the action to the order.protected AbstractOrderEntryfindOrderEntry(AbstractOrder order, SessionContext ctx, java.lang.Integer orderEntryNumber)protected static DiscountValuefindOrderEntryDiscountValue(SessionContext ctx, AbstractOrderEntry orderEntry, java.lang.String discountValueCode)protected static PromotionOrderEntryAdjustAction.OrderEntryAndDiscountValuefindOrderEntryDiscountValue(SessionContext ctx, AbstractOrder order, java.lang.String discountValueCode)doublegetValue(SessionContext ctx)Get the total value of this action.booleanisAppliedToOrder(SessionContext ctx)Test 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, setOrderEntryQuantity
-
Methods inherited from class de.hybris.platform.promotions.jalo.AbstractPromotionAction
apply, deepClone, deepCloneAttributes, getGuid, insertFirstGlobalDiscountValue, insertFirstOrderEntryDiscountValue, isAppliedToOrder, undo
-
Methods inherited from class de.hybris.platform.promotions.jalo.GeneratedAbstractPromotionAction
createItem, getGuid, getPromotionResult, getPromotionResult, isMarkedApplied, isMarkedApplied, isMarkedAppliedAsPrimitive, isMarkedAppliedAsPrimitive, setGuid, setGuid, setMarkedApplied, setMarkedApplied, setMarkedApplied, setMarkedApplied, setPromotionResult, setPromotionResult
-
Methods inherited from class de.hybris.platform.jalo.GenericItem
getImplementation, getInitialProperties, getNonInitialAttributes, getRelatedItems, setRelatedItems
-
Methods 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, setLocalizedProperty
-
Methods inherited from class de.hybris.platform.jalo.ExtensibleItem
createNonClassAccessor, getAllProperties, getAllProperties, getProperty, getProperty, getPropertyNames, getPropertyNames, removeProperty, removeProperty, setAllProperties, setAllProperties, setProperty, setProperty
-
Methods 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, 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, toString, useTA, writeReplace
-
Methods inherited from class de.hybris.platform.util.BridgeAbstraction
setTenant
-
-
-
-
Method Detail
-
apply
public boolean apply(SessionContext ctx)
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, java.lang.Integer orderEntryNumber)
-
undo
public boolean undo(SessionContext ctx)
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
public boolean isAppliedToOrder(SessionContext ctx)
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
public double getValue(SessionContext ctx)
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, java.lang.String discountValueCode)
-
findOrderEntryDiscountValue
protected static DiscountValue findOrderEntryDiscountValue(SessionContext ctx, AbstractOrderEntry orderEntry, java.lang.String discountValueCode)
-
-