Class Discount
- All Implemented Interfaces:
Serializable,Comparable
- Direct Known Subclasses:
GeneratedVoucher
The discount class.
There are different kinds of discounts: absolute or relative, and global and non-global. Absolute discounts contain a
real price value (price and currency), whereas relative discounts are discounts in percent. Global discounts are
applied on order level, which means that they can not be applied to a single entry. Non-global discounts are only
applicable on entry - level.
Since all price calculation is done be the currently installed pricefactory refer to it for maybe differing
behaviour.
- See Also:
-
Nested Class Summary
Nested 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
FieldsModifier and TypeFieldDescriptionstatic final StringThe external key - search constant forOrderManager.searchDiscounts(de.hybris.platform.jalo.SearchContext).static final StringThe isGlobal - search constant forOrderManager.searchDiscounts(de.hybris.platform.jalo.SearchContext).static final StringThe value range end - search constant forOrderManager.searchDiscounts(de.hybris.platform.jalo.SearchContext).static final StringThe value range start - search constant forOrderManager.searchDiscounts(de.hybris.platform.jalo.SearchContext).Fields inherited from class de.hybris.platform.jalo.order.price.GeneratedDiscount
ABSOLUTE, CODE, CURRENCY, DEFAULT_INITIAL_ATTRIBUTES, DISCOUNTSTRING, NAME, ORDERDISCOUNTRELATION_MARKMODIFIED, ORDERDISCOUNTRELATION_SRC_ORDERED, ORDERDISCOUNTRELATION_TGT_ORDERED, ORDERS, PRIORITY, VALUEFields 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 TypeMethodDescriptionvoidaddOrder(AbstractOrder order) Deprecated.protected ItemcreateItem(SessionContext ctx, ComposedType type, Item.ItemAttributeMap allAttributes) Has to be implemented for each concrete subtype of item.Deprecated.since ages - useGeneratedDiscount.getAllName(SessionContext)protected StringDeprecated.since ages - useGeneratedDiscount.getDiscountString()Generated method - Getter of theDiscount.discountStringattribute.getDiscountValue(AbstractOrder order) Calculates avaluewhich should be applied to the given order during (re)calculation.Generated method - Getter of theDiscount.priorityattribute.getValue(SessionContext ctx) Generated method - Getter of theDiscount.valueattribute.isAbsolute(SessionContext ctx) Generated method - Getter of theDiscount.absoluteattribute.voidNotifies this discount if an order which it is assigned to has been calculated.voidnotifyOrderRemoval(AbstractOrder order) Called just before a order is about to be removed.voidremoveOrder(AbstractOrder order) Deprecated.since ages - useGeneratedDiscount.removeFromOrders(AbstractOrder)voidsetAllNames(SessionContext ctx, Map names) Deprecated.since ages - useGeneratedDiscount.setAllName(SessionContext, Map)voidsetCode(SessionContext ctx, String code) Changes the code of this discount object.Methods inherited from class de.hybris.platform.jalo.order.price.GeneratedDiscount
addToOrders, addToOrders, getAllName, getAllName, getCode, getCode, getCurrency, getCurrency, getDefaultAttributeModes, getDiscountString, getName, getName, getOrders, getOrders, getOrdersCount, getOrdersCount, getPriority, getPriorityAsPrimitive, getPriorityAsPrimitive, getValue, getValueAsPrimitive, getValueAsPrimitive, isAbsolute, isAbsoluteAsPrimitive, isAbsoluteAsPrimitive, isGlobal, isGlobal, isGlobalAsPrimitive, isGlobalAsPrimitive, isMarkModifiedDisabled, removeFromOrders, removeFromOrders, setAllName, setAllName, setCode, setCurrency, setCurrency, setGlobal, setGlobal, setGlobal, setGlobal, setName, setName, setOrders, setOrders, setPriority, setPriority, setPriority, setPriority, setValue, setValue, setValue, setValueMethods 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, 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
-
Field Details
-
EXTERNAL_KEY
The external key - search constant forOrderManager.searchDiscounts(de.hybris.platform.jalo.SearchContext).- See Also:
-
GLOBAL
The isGlobal - search constant forOrderManager.searchDiscounts(de.hybris.platform.jalo.SearchContext).- See Also:
-
VALUE_START
The value range start - search constant forOrderManager.searchDiscounts(de.hybris.platform.jalo.SearchContext).- See Also:
-
VALUE_END
The value range end - search constant forOrderManager.searchDiscounts(de.hybris.platform.jalo.SearchContext).- See Also:
-
-
Constructor Details
-
Discount
public Discount()
-
-
Method Details
-
createItem
protected Item createItem(SessionContext ctx, ComposedType type, Item.ItemAttributeMap allAttributes) throws JaloBusinessException Description copied from class:ItemHas to be implemented for each concrete subtype of item. This method is responsible for creating a new item instance ( by calling managers, ejb homes, etc. ) duringComposedType.newInstance(Map).In case this method uses any of the attribute values during creation it is required to override
Item.getNonInitialAttributes(SessionContext, ItemAttributeMap)too.
Sn example:public static final String MY_ATTRIBUTE = "someAttribute"; ... protected Item createItem(SessionContext ctx, ComposedType type, Map allAttributes ) throws JaloBusinessException { MyManager man = ... return man.createMyItem( (String)allAttributes.get(MY_ATTRIBUTE) ); // here MY_ATTRIBUTE is used for creation, so it must not be set again } protected Map getNonInitialAttributes( SessionContext ctx, Map allAttributes ) { // let superclass remove its own initial attributes Map ret = super.getNonInitialAttributes( ctx, allAttributes ); // remove MY_ATTRIBUTE from all attributes since if has already been set ret.remove(MY_ATTRIBUTE); return ret; }- Overrides:
createItemin classGenericItem- Parameters:
ctx- the current session context which this item is created withintype- the actual item type ( since subtypes may not provide a own jalo class this may be different from the type which this method was implemented for )- Returns:
- the new item instance
- Throws:
JaloBusinessException- indicates an error during creation - any changes will be rollbacked
-
getAllNames
Deprecated.since ages - useGeneratedDiscount.getAllName(SessionContext)Gives all names (in all languages)- Parameters:
ctx- A SessionContext object- Returns:
- map with following combination key:language, value:name
-
setAllNames
Deprecated.since ages - useGeneratedDiscount.setAllName(SessionContext, Map)Sets names (in all languages)- Parameters:
ctx- A SessionContext objectnames- map with following combination key:language, value:name
-
setCode
Changes the code of this discount object.- Overrides:
setCodein classGeneratedDiscount- Parameters:
code-- Throws:
ConsistencyCheckException
-
getValue
Description copied from class:GeneratedDiscountGenerated method - Getter of theDiscount.valueattribute.- Overrides:
getValuein classGeneratedDiscount- Returns:
- the value
-
getPriority
Description copied from class:GeneratedDiscountGenerated method - Getter of theDiscount.priorityattribute.- Overrides:
getPriorityin classGeneratedDiscount- Returns:
- the priority
-
addOrder
Deprecated.since ages - useGeneratedDiscount.addToOrders(AbstractOrder)Assigns this discount to the given order. All previously assigned orders will stay assigned.- Parameters:
order- the order to assign this discount to
-
removeOrder
Deprecated.since ages - useGeneratedDiscount.removeFromOrders(AbstractOrder)Removes this discount from the given order. All other order assignments stay unchanged.- Parameters:
order- the order to remove this discount from
-
getDiscountValue
Calculates avaluewhich should be applied to the given order during (re)calculation.- Parameters:
order- the order which is currently being calculated
-
notifyOrderCalculated
Notifies this discount if an order which it is assigned to has been calculated.This method does nothing by default and is intended to be overridden to implement e.g. discount tracking.
- Parameters:
order- the order which owns the applied value of this discount
-
notifyOrderRemoval
Called just before a order is about to be removed. This method does nothing by default and is intended to be overridden to implement e.g. discount tracking.- Parameters:
order- the order which is going to be removed
-
isAbsolute
Description copied from class:GeneratedDiscountGenerated method - Getter of theDiscount.absoluteattribute.- Specified by:
isAbsolutein classGeneratedDiscount- Returns:
- the absolute
-
getDiscountString
Description copied from class:GeneratedDiscountGenerated method - Getter of theDiscount.discountStringattribute.- Specified by:
getDiscountStringin classGeneratedDiscount- Returns:
- the discountString
-
getDiscountstring
Deprecated.since ages - useGeneratedDiscount.getDiscountString()
-
GeneratedDiscount.addToOrders(AbstractOrder)