Package de.hybris.platform.europe1.jalo
Class PriceRow
- java.lang.Object
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Comparable
- Direct Known Subclasses:
GeneratedSubscriptionPricePlan
public class PriceRow extends GeneratedPriceRow
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: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:
- Serialized Form
-
-
Nested Class Summary
-
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 Modifier and Type Field Description static java.lang.String
MIN_QUANTITY
Deprecated.since agesstatic java.lang.String
PRICEROW
static java.lang.String
UNIT_FACTOR
Deprecated.since ages-
Fields inherited from class de.hybris.platform.europe1.jalo.GeneratedPriceRow
CATALOGVERSION, CHANNEL, CURRENCY, DEFAULT_INITIAL_ATTRIBUTES, GIVEAWAYPRICE, MATCHVALUE, MINQTD, NET, PRICE, PRODUCTHANDLER, UNIT, UNITFACTOR
-
Fields 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_TIME
-
Fields inherited from class de.hybris.platform.europe1.jalo.GeneratedPDTRow
ENDTIME, PG, PRODUCT, PRODUCTID, PRODUCTMATCHQUALIFIER, STARTTIME, UG, USER, USERMATCHQUALIFIER
-
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 PriceRow()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected int
calculateMatchValue(Product product, EnumerationValue productGroup, User user, EnumerationValue userGroup)
Deprecated.since ages - please usecalculateMatchValue(Product, String, EnumerationValue, User, EnumerationValue)
insteadprotected int
calculateMatchValue(Product product, java.lang.String productCode, EnumerationValue productGroup, User user, EnumerationValue userGroup)
protected Item
createItem(SessionContext ctx, ComposedType type, Item.ItemAttributeMap allAttributes)
Has to be implemented for each concrete subtype of item.long
getMinQuantity()
The minimal quantity of products for which this rule applies the first time.long
getMinQuantity(SessionContext ctx)
SeegetMinQuantity()
.EnumerationValue
getProductGroup(SessionContext ctx)
EnumerationValue
getUserGroup(SessionContext ctx)
void
setCurrency(SessionContext ctx, Currency value)
Generated method - Setter of thePriceRow.currency
attribute.void
setMinqtd(SessionContext ctx, java.lang.Long value)
Generated method - Setter of thePriceRow.minqtd
attribute.void
setMinQuantity(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.void
setMinQuantity(SessionContext ctx, long minQtd)
Same assetMinQuantity(long)
but with specific SessionContext.protected void
setPg(SessionContext ctx, EnumerationValue value)
Whenever a non-null PG is set the product attribute is cleared.void
setPrice(SessionContext ctx, java.lang.Double value)
Generated method - Setter of thePriceRow.price
attribute.protected void
setProduct(SessionContext ctx, Product value)
Whenever a non-null product is set the PG attribute is cleared.void
setProductId(SessionContext ctx, java.lang.String value)
Generated method - Setter of thePDTRow.productId
attribute.void
setUg(SessionContext ctx, EnumerationValue value)
Whenever a non-null UG is set the user attribute is cleared.void
setUnit(SessionContext ctx, Unit value)
Generated method - Setter of thePriceRow.unit
attribute.void
setUnitFactor(SessionContext ctx, java.lang.Integer value)
Generated method - Setter of thePriceRow.unitFactor
attribute.void
setUser(SessionContext ctx, User value)
Whenever a non-null user is set the UG attribute is cleared.protected void
updateMatchValue()
-
Methods 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, setUnitFactor
-
Methods 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, updateUserMatchField
-
Methods 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, setUserMatchQualifier
-
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
-
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, 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, toString, useTA, writeReplace
-
Methods inherited from class de.hybris.platform.util.BridgeAbstraction
setTenant
-
-
-
-
Field Detail
-
MIN_QUANTITY
@Deprecated public static final java.lang.String MIN_QUANTITY
Deprecated.since ages- See Also:
- Constant Field Values
-
UNIT_FACTOR
@Deprecated public static final java.lang.String UNIT_FACTOR
Deprecated.since ages- See Also:
- Constant Field Values
-
PRICEROW
public static final java.lang.String PRICEROW
- See Also:
- Constant Field Values
-
-
Method Detail
-
calculateMatchValue
@Deprecated 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, java.lang.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:Item
Has 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:
createItem
in 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
public EnumerationValue getProductGroup(SessionContext ctx)
Description copied from class:PDTRow
- Overrides:
getProductGroup
in classPDTRow
-
getUserGroup
public EnumerationValue getUserGroup(SessionContext ctx)
Description copied from class:PDTRow
- Overrides:
getUserGroup
in classPDTRow
-
updateMatchValue
protected void updateMatchValue()
-
setPg
protected void setPg(SessionContext ctx, EnumerationValue value)
Description copied from class:PDTRow
Whenever a non-null PG is set the product attribute is cleared.
-
setUg
public void setUg(SessionContext ctx, EnumerationValue value)
Description copied from class:PDTRow
Whenever a non-null UG is set the user attribute is cleared.
-
setProduct
protected void setProduct(SessionContext ctx, Product value)
Description copied from class:PDTRow
Whenever a non-null product is set the PG attribute is cleared.- Overrides:
setProduct
in classPDTRow
value
- the product
-
setUser
public void setUser(SessionContext ctx, User value)
Description copied from class:PDTRow
Whenever a non-null user is set the UG attribute is cleared.
-
setProductId
public void setProductId(SessionContext ctx, java.lang.String value)
Description copied from class:GeneratedPDTRow
Generated method - Setter of thePDTRow.productId
attribute.- Overrides:
setProductId
in classPDTRow
value
- the productId
-
setCurrency
public void setCurrency(SessionContext ctx, Currency value)
Description copied from class:GeneratedPriceRow
Generated method - Setter of thePriceRow.currency
attribute.- Overrides:
setCurrency
in classGeneratedPriceRow
value
- 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
public long getMinQuantity(SessionContext ctx)
SeegetMinQuantity()
.- Parameters:
ctx
-
-
setMinQuantity
public void setMinQuantity(long minQtd) throws JaloPriceFactoryException
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
public void setMinQuantity(SessionContext ctx, long minQtd) throws JaloPriceFactoryException
Same assetMinQuantity(long)
but with specific SessionContext.- Parameters:
ctx
-minQtd
-- Throws:
JaloPriceFactoryException
-
setMinqtd
public void setMinqtd(SessionContext ctx, java.lang.Long value)
Description copied from class:GeneratedPriceRow
Generated method - Setter of thePriceRow.minqtd
attribute.- Overrides:
setMinqtd
in classGeneratedPriceRow
value
- the minqtd
-
setPrice
public void setPrice(SessionContext ctx, java.lang.Double value)
Description copied from class:GeneratedPriceRow
Generated method - Setter of thePriceRow.price
attribute.- Overrides:
setPrice
in classGeneratedPriceRow
value
- the price
-
setUnitFactor
public void setUnitFactor(SessionContext ctx, java.lang.Integer value)
Description copied from class:GeneratedPriceRow
Generated method - Setter of thePriceRow.unitFactor
attribute.- Overrides:
setUnitFactor
in classGeneratedPriceRow
value
- the unitFactor
-
setUnit
public void setUnit(SessionContext ctx, Unit value)
Description copied from class:GeneratedPriceRow
Generated method - Setter of thePriceRow.unit
attribute.- Overrides:
setUnit
in classGeneratedPriceRow
value
- the unit
-
-