Package de.hybris.platform.europe1.jalo
Class PriceRow
- All Implemented Interfaces:
Serializable,Comparable
- Direct Known Subclasses:
GeneratedSubscriptionPricePlan
PriceRow defines price rules in the Europe1 Price Factory. A single price is qualified by product, product
price group, user, user group, currency, unit, min quanitty and a daterange. In addition the price itself can be seen
as net or gross. A unit factor makes handling of small prices easier:
Since allways one price must be found, but multiple rows may match there must be some kind of ordering. This can be expressed simply by stating the value of matching fields:
return_price =
price / unitFactor . Since allways one price must be found, but multiple rows may match there must be some kind of ordering. This can be expressed simply by stating the value of matching fields:
P + C > P + UG > PG + C > PG + UG > PG > UG .
The best value have rules where both product and user match, the least the rule which does not match directly but
with all-fields. - 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 StringDeprecated.since agesstatic final Stringstatic final StringDeprecated.since agesFields inherited from class de.hybris.platform.europe1.jalo.GeneratedPriceRow
CATALOGVERSION, CHANNEL, CURRENCY, DEFAULT_INITIAL_ATTRIBUTES, GIVEAWAYPRICE, MATCHVALUE, MINQTD, NET, PRICE, PRODUCTHANDLER, UNIT, UNITFACTORFields inherited from class de.hybris.platform.europe1.jalo.PDTRow
ALL_PRODUCT_GROUPS, ALL_PRODUCTS, ALL_USER_GROUPS, ALL_USERS, DATE_RANGE, DATERANGE, END_TIME, START_TIMEFields inherited from class de.hybris.platform.europe1.jalo.GeneratedPDTRow
ENDTIME, PG, PRODUCT, PRODUCTID, PRODUCTMATCHQUALIFIER, STARTTIME, UG, USER, USERMATCHQUALIFIERFields 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 TypeMethodDescriptionprotected intcalculateMatchValue(Product product, EnumerationValue productGroup, User user, EnumerationValue userGroup) Deprecated.since ages - please usecalculateMatchValue(Product, String, EnumerationValue, User, EnumerationValue)insteadprotected intcalculateMatchValue(Product product, String productCode, EnumerationValue productGroup, User user, EnumerationValue userGroup) protected ItemcreateItem(SessionContext ctx, ComposedType type, Item.ItemAttributeMap allAttributes) Has to be implemented for each concrete subtype of item.longThe minimal quantity of products for which this rule applies the first time.longSeegetMinQuantity().voidsetCurrency(SessionContext ctx, Currency value) Generated method - Setter of thePriceRow.currencyattribute.voidsetMinqtd(SessionContext ctx, Long value) Generated method - Setter of thePriceRow.minqtdattribute.voidsetMinQuantity(long minQtd) Sets the minimal quantity of products for which this rule applies for the first time.If more than one rule matches and have the same value, the one with the greatest quantity is chosen.voidsetMinQuantity(SessionContext ctx, long minQtd) Same assetMinQuantity(long)but with specific SessionContext.protected voidsetPg(SessionContext ctx, EnumerationValue value) Whenever a non-null PG is set the product attribute is cleared.voidsetPrice(SessionContext ctx, Double value) Generated method - Setter of thePriceRow.priceattribute.protected voidsetProduct(SessionContext ctx, Product value) Whenever a non-null product is set the PG attribute is cleared.voidsetProductId(SessionContext ctx, String value) Generated method - Setter of thePDTRow.productIdattribute.voidsetUg(SessionContext ctx, EnumerationValue value) Whenever a non-null UG is set the user attribute is cleared.voidsetUnit(SessionContext ctx, Unit value) Generated method - Setter of thePriceRow.unitattribute.voidsetUnitFactor(SessionContext ctx, Integer value) Generated method - Setter of thePriceRow.unitFactorattribute.voidsetUser(SessionContext ctx, User value) Whenever a non-null user is set the UG attribute is cleared.protected voidMethods inherited from class de.hybris.platform.europe1.jalo.GeneratedPriceRow
getCatalogVersion, getCatalogVersion, getChannel, getChannel, getCurrency, getCurrency, getDefaultAttributeModes, getMatchValue, getMatchValue, getMatchValueAsPrimitive, getMatchValueAsPrimitive, getMinqtd, getMinqtd, getMinqtdAsPrimitive, getMinqtdAsPrimitive, getPrice, getPrice, getPriceAsPrimitive, getPriceAsPrimitive, getUnit, getUnit, getUnitFactor, getUnitFactor, getUnitFactorAsPrimitive, getUnitFactorAsPrimitive, isGiveAwayPrice, isGiveAwayPrice, isGiveAwayPriceAsPrimitive, isGiveAwayPriceAsPrimitive, isNet, isNet, isNetAsPrimitive, isNetAsPrimitive, setCatalogVersion, setCatalogVersion, setChannel, setChannel, setCurrency, setGiveAwayPrice, setGiveAwayPrice, setGiveAwayPrice, setGiveAwayPrice, setMatchValue, setMatchValue, setMatchValue, setMatchValue, setMinqtd, setMinqtd, setMinqtd, setNet, setNet, setNet, setNet, setPrice, setPrice, setPrice, setUnit, setUnitFactor, setUnitFactor, setUnitFactorMethods inherited from class de.hybris.platform.europe1.jalo.PDTRow
getCustomer, getCustomer, getCustomerGroup, getCustomerGroup, getCustomerPriceGroup, getCustomerPriceGroup, getDateRange, getDateRange, getInitialProductMatchField, getInitialUserMatchField, getProductGroup, getProductPriceGroup, getProductPriceGroup, getUserGroup, markProductModified, remove, removeLinks, setDateRange, setDateRange, setProductMatchQualifier, setProperty, setUserMatchQualifier, updateProductMatchField, updateUserMatchFieldMethods inherited from class de.hybris.platform.europe1.jalo.GeneratedPDTRow
getEndTime, getEndTime, getPg, getPg, getProduct, getProduct, getProductId, getProductId, getProductMatchQualifier, getProductMatchQualifier, getProductMatchQualifierAsPrimitive, getProductMatchQualifierAsPrimitive, getStartTime, getStartTime, getUg, getUg, getUser, getUser, getUserMatchQualifier, getUserMatchQualifier, getUserMatchQualifierAsPrimitive, getUserMatchQualifierAsPrimitive, setEndTime, setEndTime, setPg, setProduct, setProductId, setProductMatchQualifier, setProductMatchQualifier, setProductMatchQualifier, setStartTime, setStartTime, setUg, setUser, setUserMatchQualifier, setUserMatchQualifier, setUserMatchQualifierMethods 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, 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, removeItemCollection, removeItemCollection, removeLinkedItems, removeLinkedItems, removeLinkedItems, removeLinkedItems, 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
-
MIN_QUANTITY
Deprecated.since ages- See Also:
-
UNIT_FACTOR
Deprecated.since ages- See Also:
-
PRICEROW
- See Also:
-
-
Constructor Details
-
PriceRow
public PriceRow()
-
-
Method Details
-
calculateMatchValue
@Deprecated(since="ages", forRemoval=false) protected int calculateMatchValue(Product product, EnumerationValue productGroup, User user, EnumerationValue userGroup) Deprecated.since ages - please usecalculateMatchValue(Product, String, EnumerationValue, User, EnumerationValue)instead -
calculateMatchValue
protected int calculateMatchValue(Product product, String productCode, EnumerationValue productGroup, User user, EnumerationValue userGroup) -
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 classGeneratedPriceRow- 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
-
getProductGroup
Description copied from class:PDTRow- Overrides:
getProductGroupin classPDTRow
-
getUserGroup
Description copied from class:PDTRow- Overrides:
getUserGroupin classPDTRow
-
updateMatchValue
protected void updateMatchValue() -
setPg
Description copied from class:PDTRowWhenever a non-null PG is set the product attribute is cleared. -
setUg
Description copied from class:PDTRowWhenever a non-null UG is set the user attribute is cleared. -
setProduct
Description copied from class:PDTRowWhenever a non-null product is set the PG attribute is cleared.- Overrides:
setProductin classPDTRowvalue- the product
-
setUser
Description copied from class:PDTRowWhenever a non-null user is set the UG attribute is cleared. -
setProductId
Description copied from class:GeneratedPDTRowGenerated method - Setter of thePDTRow.productIdattribute.- Overrides:
setProductIdin classPDTRowvalue- the productId
-
setCurrency
Description copied from class:GeneratedPriceRowGenerated method - Setter of thePriceRow.currencyattribute.- Overrides:
setCurrencyin classGeneratedPriceRowvalue- the currency
-
getMinQuantity
public long getMinQuantity()The minimal quantity of products for which this rule applies the first time. If more than one rule matches and have the same value, the one with the greatest quantity is chosen. -
getMinQuantity
SeegetMinQuantity().- Parameters:
ctx-
-
setMinQuantity
Sets the minimal quantity of products for which this rule applies for the first time.If more than one rule matches and have the same value, the one with the greatest quantity is chosen.- Parameters:
minQtd-- Throws:
JaloPriceFactoryException
-
setMinQuantity
Same assetMinQuantity(long)but with specific SessionContext.- Parameters:
ctx-minQtd-- Throws:
JaloPriceFactoryException
-
setMinqtd
Description copied from class:GeneratedPriceRowGenerated method - Setter of thePriceRow.minqtdattribute.- Overrides:
setMinqtdin classGeneratedPriceRowvalue- the minqtd
-
setPrice
Description copied from class:GeneratedPriceRowGenerated method - Setter of thePriceRow.priceattribute.- Overrides:
setPricein classGeneratedPriceRowvalue- the price
-
setUnitFactor
Description copied from class:GeneratedPriceRowGenerated method - Setter of thePriceRow.unitFactorattribute.- Overrides:
setUnitFactorin classGeneratedPriceRowvalue- the unitFactor
-
setUnit
Description copied from class:GeneratedPriceRowGenerated method - Setter of thePriceRow.unitattribute.- Overrides:
setUnitin classGeneratedPriceRowvalue- the unit
-