Class DefaultTravelCommerceStockService
java.lang.Object
de.hybris.platform.commerceservices.stock.impl.DefaultCommerceStockService
de.hybris.platform.travelservices.stock.impl.DefaultTravelCommerceStockService
- All Implemented Interfaces:
de.hybris.platform.commerceservices.stock.CommerceStockService,TravelCommerceStockService
- Direct Known Subclasses:
DefaultShoppingTravelCommerceStockService
public class DefaultTravelCommerceStockService
extends de.hybris.platform.commerceservices.stock.impl.DefaultCommerceStockService
implements TravelCommerceStockService
Service implementation for retrieving stock levels related to transport offering (warehouse)
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidadjustStockReservation(List<StockReservationData> stockToReserve, List<StockReservationData> stockToRelease) Method responsible for adjusting stock reservation.voidadjustStockReservationForAmmendment(AbstractOrderModel newOrder, AbstractOrderModel originalOrder) Method compares the newOrder with the originalOrder and reserves stock accordingly.protected booleanEnable stock reservation boolean.protected voidfindMatchingProduct(List<StockReservationData> stockToReserve, List<StockReservationData> stockToRelease, Iterator<StockReservationData> newStockReservationData, StockReservationData item1, Iterator<StockReservationData> oldStockReservationData) Find matching product.protected de.hybris.platform.servicelayer.config.ConfigurationServiceGets configuration service.Gets manage stock by entry type strategy map.protected de.hybris.platform.servicelayer.model.ModelServiceGets model service.protected List<StockReservationData>getProductsPerTransportOffering(AbstractOrderModel abstractOrder) Deprecated.Deprecated since version 2.0.protected List<StockReservationData>getProductsPerWarehouse(AbstractOrderModel abstractOrder) Method to build stock data objects according with entry type, using warehouses for extensibilitygetStockForDate(ProductModel product, Date date, Collection<WarehouseModel> warehouses) This method returns the product availability for a given dategetStockLevel(ProductModel product, Collection<TransportOfferingModel> transportOfferings) Deprecated.Deprecated since version 2.0.protected StockLevelModelgetStockLevelModelForDate(ProductModel product, Date date, Collection<WarehouseModel> warehouses) Gets stock level model for date.getStockLevelQuantity(ProductModel product, Collection<WarehouseModel> warehouses) This method calculates availability for a given productGets stock reservation creation strategy map.Gets stock reservation release by entry type strategy map.protected TravelManageStockByEntryTypeStrategyGets strategy for entry type.protected TravelRestrictionServiceGets travel restriction service.protected TravelStockServiceprotected de.hybris.platform.ordersplitting.WarehouseServiceGets warehouse service.protected booleanisSameDate(Date date1, Date date2) Is same date boolean.booleanisStockSystemEnabled(BaseStoreModel baseStore) voidrelease(AbstractOrderModel abstractOrder) Release products in the specified warehouse for a given Order.voidreleasePerDateProduct(ProductModel product, Date date, int quantity, Collection<WarehouseModel> warehouses) This method performs stock releasing for an accommodation for a given datevoidreserve(AbstractOrderModel abstractOrder) Reserves products in the specified warehouse for a given Order.voidreservePerDateProduct(ProductModel product, Date date, int quantity, Collection<WarehouseModel> warehouses) This method performs reservation for an accommodation for a given datevoidsetConfigurationService(de.hybris.platform.servicelayer.config.ConfigurationService configurationService) Sets configuration service.voidsetManageStockByEntryTypeStrategyMap(Map<OrderEntryType, TravelManageStockByEntryTypeStrategy> manageStockByEntryTypeStrategyMap) Sets manage stock by entry type strategy map.voidsetModelService(de.hybris.platform.servicelayer.model.ModelService modelService) Sets model service.voidsetStockReservationCreationStrategyMap(Map<AddToCartCriteriaType, StockReservationCreationStrategy> stockReservationCreationStrategyMap) Sets stock reservation creation strategy map.voidsetStockReservationReleaseByEntryTypeStrategyMap(Map<OrderEntryType, StockReservationReleaseByEntryTypeStrategy> stockReservationReleaseByEntryTypeStrategyMap) Sets stock reservation release by entry type strategy map.voidsetTravelRestrictionService(TravelRestrictionService travelRestrictionService) Sets travel restriction service.voidsetTravelStockService(TravelStockService travelStockService) voidsetWarehouseService(de.hybris.platform.ordersplitting.WarehouseService warehouseService) Sets warehouse service.Methods inherited from class de.hybris.platform.commerceservices.stock.impl.DefaultCommerceStockService
getCommerceStockLevelCalculationStrategy, getPosAndStockLevelStatusForProduct, getStockLevelForProductAndBaseStore, getStockLevelForProductAndPointOfService, getStockLevelProductStrategy, getStockLevelStatusForProductAndBaseStore, getStockLevelStatusForProductAndPointOfService, getStockLevelStatusStrategy, getStockService, getStorePickupDao, getWarehouseSelectionStrategy, setCommerceStockLevelCalculationStrategy, setStockLevelProductStrategy, setStockLevelStatusStrategy, setStockService, setStorePickupDao, setWarehouseSelectionStrategyMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface de.hybris.platform.commerceservices.stock.CommerceStockService
getPosAndStockLevelStatusForProduct, getStockLevelForProductAndBaseStore, getStockLevelForProductAndPointOfService, getStockLevelStatusForProductAndBaseStore, getStockLevelStatusForProductAndPointOfService
-
Constructor Details
-
DefaultTravelCommerceStockService
public DefaultTravelCommerceStockService()
-
-
Method Details
-
getStockLevel
@Deprecated public Long getStockLevel(ProductModel product, Collection<TransportOfferingModel> transportOfferings) Deprecated.Deprecated since version 2.0. UsegetStockLevelQuantity(ProductModel, Collection)insteadDescription copied from interface:TravelCommerceStockServiceGets stock level.- Specified by:
getStockLevelin interfaceTravelCommerceStockService- Parameters:
product- the product for which the stock level is checkedtransportOfferings- the collection of transport offering model for the given product.- Returns:
- Long stock level
-
reserve
public void reserve(AbstractOrderModel abstractOrder) throws de.hybris.platform.stock.exception.InsufficientStockLevelException Description copied from interface:TravelCommerceStockServiceReserves products in the specified warehouse for a given Order. This method is wrapped in a transaction and so will only commit once the transaction completes without errors.- Specified by:
reservein interfaceTravelCommerceStockService- Parameters:
abstractOrder- the current order- Throws:
de.hybris.platform.stock.exception.InsufficientStockLevelException- the insufficient stock level exception
-
release
Description copied from interface:TravelCommerceStockServiceRelease products in the specified warehouse for a given Order.- Specified by:
releasein interfaceTravelCommerceStockService- Parameters:
abstractOrder- the current order
-
getStrategyForEntryType
protected TravelManageStockByEntryTypeStrategy getStrategyForEntryType(AbstractOrderEntryModel entry) Gets strategy for entry type.- Parameters:
entry- the entry- Returns:
- the strategy associated to the type the given entry belongs to
-
adjustStockReservationForAmmendment
public void adjustStockReservationForAmmendment(AbstractOrderModel newOrder, AbstractOrderModel originalOrder) throws de.hybris.platform.stock.exception.InsufficientStockLevelException Description copied from interface:TravelCommerceStockServiceMethod compares the newOrder with the originalOrder and reserves stock accordingly.- Specified by:
adjustStockReservationForAmmendmentin interfaceTravelCommerceStockService- Parameters:
newOrder- the new orderoriginalOrder- the original order- Throws:
de.hybris.platform.stock.exception.InsufficientStockLevelException- the insufficient stock level exception
-
getProductsPerWarehouse
Method to build stock data objects according with entry type, using warehouses for extensibility- Parameters:
abstractOrder- the abstract order- Returns:
- the list of reservation data object to release/reserve stocks
-
adjustStockReservation
protected void adjustStockReservation(List<StockReservationData> stockToReserve, List<StockReservationData> stockToRelease) throws de.hybris.platform.stock.exception.InsufficientStockLevelException Method responsible for adjusting stock reservation. Method is wrapped in a transaction and will only commit if the transaction completes without errors.- Parameters:
stockToReserve- the stock to reservestockToRelease- the stock to release- Throws:
de.hybris.platform.stock.exception.InsufficientStockLevelException- the insufficient stock level exception
-
findMatchingProduct
protected void findMatchingProduct(List<StockReservationData> stockToReserve, List<StockReservationData> stockToRelease, Iterator<StockReservationData> newStockReservationData, StockReservationData item1, Iterator<StockReservationData> oldStockReservationData) Find matching product.- Parameters:
stockToReserve- the stock to reservestockToRelease- the stock to releasenewStockReservationData- the new stock reservation dataitem1- the item 1oldStockReservationData- the old stock reservation data
-
isSameDate
Is same date boolean.- Parameters:
date1- the date 1date2- the date 2- Returns:
- true if dates are equal or both null
-
getProductsPerTransportOffering
@Deprecated protected List<StockReservationData> getProductsPerTransportOffering(AbstractOrderModel abstractOrder) Deprecated.Deprecated since version 2.0. UsegetProductsPerWarehouse(AbstractOrderModel)instead.Gets products per transport offering.- Parameters:
abstractOrder- the abstract order- Returns:
- products per transport offering
-
enableStockReservation
protected boolean enableStockReservation()Enable stock reservation boolean.- Returns:
- the boolean
-
getStockForDate
public Integer getStockForDate(ProductModel product, Date date, Collection<WarehouseModel> warehouses) Description copied from interface:TravelCommerceStockServiceThis method returns the product availability for a given date- Specified by:
getStockForDatein interfaceTravelCommerceStockService- Parameters:
product- the productdate- the datewarehouses- the warehouses- Returns:
- the availability
-
getStockLevelQuantity
Description copied from interface:TravelCommerceStockServiceThis method calculates availability for a given product- Specified by:
getStockLevelQuantityin interfaceTravelCommerceStockService- Parameters:
product- the productwarehouses- the warehouses- Returns:
- a long value representing the stock level
-
isStockSystemEnabled
- Specified by:
isStockSystemEnabledin interfacede.hybris.platform.commerceservices.stock.CommerceStockService- Overrides:
isStockSystemEnabledin classde.hybris.platform.commerceservices.stock.impl.DefaultCommerceStockService
-
reservePerDateProduct
public void reservePerDateProduct(ProductModel product, Date date, int quantity, Collection<WarehouseModel> warehouses) throws de.hybris.platform.stock.exception.InsufficientStockLevelException Description copied from interface:TravelCommerceStockServiceThis method performs reservation for an accommodation for a given date- Specified by:
reservePerDateProductin interfaceTravelCommerceStockService- Parameters:
product- the productdate- the datequantity- the quantitywarehouses- the warehouses- Throws:
de.hybris.platform.stock.exception.InsufficientStockLevelException- the insufficient stock level exception
-
releasePerDateProduct
public void releasePerDateProduct(ProductModel product, Date date, int quantity, Collection<WarehouseModel> warehouses) Description copied from interface:TravelCommerceStockServiceThis method performs stock releasing for an accommodation for a given date- Specified by:
releasePerDateProductin interfaceTravelCommerceStockService- Parameters:
product- the productdate- the datequantity- the quantitywarehouses- the warehouses
-
getStockLevelModelForDate
protected StockLevelModel getStockLevelModelForDate(ProductModel product, Date date, Collection<WarehouseModel> warehouses) Gets stock level model for date.- Parameters:
product- the productdate- the datewarehouses- the warehouses- Returns:
- the stock level model for date
-
getConfigurationService
protected de.hybris.platform.servicelayer.config.ConfigurationService getConfigurationService()Gets configuration service.- Returns:
- the configurationService
-
setConfigurationService
public void setConfigurationService(de.hybris.platform.servicelayer.config.ConfigurationService configurationService) Sets configuration service.- Parameters:
configurationService- the configurationService to set
-
getWarehouseService
protected de.hybris.platform.ordersplitting.WarehouseService getWarehouseService()Gets warehouse service.- Returns:
- the warehouseService
-
setWarehouseService
public void setWarehouseService(de.hybris.platform.ordersplitting.WarehouseService warehouseService) Sets warehouse service.- Parameters:
warehouseService- the warehouseService to set
-
getStockReservationCreationStrategyMap
protected Map<AddToCartCriteriaType,StockReservationCreationStrategy> getStockReservationCreationStrategyMap()Gets stock reservation creation strategy map.- Returns:
- the stockReservationCreationStrategyMap
-
setStockReservationCreationStrategyMap
public void setStockReservationCreationStrategyMap(Map<AddToCartCriteriaType, StockReservationCreationStrategy> stockReservationCreationStrategyMap) Sets stock reservation creation strategy map.- Parameters:
stockReservationCreationStrategyMap- the stockReservationCreationStrategyMap to set
-
getManageStockByEntryTypeStrategyMap
protected Map<OrderEntryType,TravelManageStockByEntryTypeStrategy> getManageStockByEntryTypeStrategyMap()Gets manage stock by entry type strategy map.- Returns:
- manageStockByEntryTypeStreategyMap manage stock by entry type strategy map
-
setManageStockByEntryTypeStrategyMap
public void setManageStockByEntryTypeStrategyMap(Map<OrderEntryType, TravelManageStockByEntryTypeStrategy> manageStockByEntryTypeStrategyMap) Sets manage stock by entry type strategy map.- Parameters:
manageStockByEntryTypeStrategyMap- the manage stock by entry type strategy map
-
getTravelRestrictionService
Gets travel restriction service.- Returns:
- the travel restriction service
-
setTravelRestrictionService
Sets travel restriction service.- Parameters:
travelRestrictionService- the travel restriction service
-
getStockReservationReleaseByEntryTypeStrategyMap
protected Map<OrderEntryType,StockReservationReleaseByEntryTypeStrategy> getStockReservationReleaseByEntryTypeStrategyMap()Gets stock reservation release by entry type strategy map.- Returns:
- the stock reservation release by entry type strategy map
-
setStockReservationReleaseByEntryTypeStrategyMap
public void setStockReservationReleaseByEntryTypeStrategyMap(Map<OrderEntryType, StockReservationReleaseByEntryTypeStrategy> stockReservationReleaseByEntryTypeStrategyMap) Sets stock reservation release by entry type strategy map.- Parameters:
stockReservationReleaseByEntryTypeStrategyMap- the stock reservation release by entry type strategy map
-
getModelService
protected de.hybris.platform.servicelayer.model.ModelService getModelService()Gets model service.- Returns:
- the model service
-
setModelService
public void setModelService(de.hybris.platform.servicelayer.model.ModelService modelService) Sets model service.- Parameters:
modelService- the model service
-
getTravelStockService
-
setTravelStockService
-