[ 
https://issues.apache.org/jira/browse/OFBIZ-12264?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17442529#comment-17442529
 ] 

Giulio Speri commented on OFBIZ-12264:
--------------------------------------

Hello Pierre, Jacques,

I rewrote the patch as suggested by you and how reported in the wiki for the 
trunk branch.

 

I slightly modified it:
 * in _reserveStoreInventory_ when ProductStore flag oneInventoryFacility is N 
and the ProductStoreFacilities are looped to find where inventory available 
could be, if no facility is found I directly return from the service with a 
specific error, instead of picking the first facility in the list above.
 * I added a filterByDate filter also to service 
{_}isStoreInventoryAvailable{_}: that service returns Y or N whether a product 
is available in some facilities. This filtering also avoid products in this 
scenario to be added to the cart with the following error:

!Screenshot from 2021-11-12 01-58-45.png|width=674,height=288!

 

This prevents an item to be added to the cart if no stock is available in one 
of the "enabled" ProductStore facilities. 

I tested different situations (facility enabled/disabled, service 
isStoreInventoryAvailable filtered/non-filtered) and I think that these two 
combined fixes solve the original issue.

Here is the updated patch for trunk.  

[^OFBIZ-12264_trunk.patch]

 

Thanks and good night,

Giulio

> Multiple Facility Inventory reservation does not consider store facility thru 
> date
> ----------------------------------------------------------------------------------
>
>                 Key: OFBIZ-12264
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-12264
>             Project: OFBiz
>          Issue Type: Bug
>          Components: ecommerce, product
>    Affects Versions: 17.12.03, 17.12.04, 17.12.05, 17.12.06, 17.12.07
>         Environment: Linux/Ubuntu 18.04 LTS, Java jdk 8, OFBiz v13.07.03
>  
>            Reporter: Giulio Speri
>            Assignee: Giulio Speri
>            Priority: Major
>         Attachments: OFBIZ-12264_trunk.patch, OFBIZ-12264_v130703.patch, 
> OFBIZ-12264_v17.patch, Screenshot from 2021-11-12 01-58-45.png, 
> image-2021-06-24-00-35-10-392.png, image-2021-06-24-00-37-21-890.png, 
> image-2021-06-24-00-40-41-737.png, image-2021-06-24-00-41-56-344.png, 
> image-2021-06-24-00-43-33-640.png, image-2021-06-24-00-46-17-924.png, 
> image-2021-06-24-00-49-23-904.png
>
>
> The ProductStore is set up to reserve inventory from more than one facility, 
> so the flag oneInventoryFacility is set to N. 
>  The we have 8 different facilities configured (each with a specific sequence 
> num from 1 to 8) in the entity ProductStoreFacility.
>   
>  Due to customer requests I had to disable 6 out of 8 facilities associated 
> with the store, so basically only facilities with (sequence) numbers 1 and 2 
> are left. To achieve this I set the thruDate on the other six records.
>   
>  After that, an order came in with a variant product that had only 1 quantity 
> left available in one of the disabled facilities and 0 in both the two 
> facilities left enabled, but despite this the system reserved inventory from 
> the disabled facility: I wouldn't expect that.
>   
>  The service responsible for the reservation is reserveStoreInventory that in 
> our ofbiz version (13.07.03) is minilang and is implemented in 
> ProductStoreServices.xml: I checked that service and I noticed that when the 
> ProductStore is set to multi facility (oneInventoryFacility to N) and the 
> list of productStoreFacility records are retrieved, they are not filtered by 
> date, and this lead to a "bad" reservation.
>  I took a look also at the current revision of ofbiz and the code (groovy 
> script) is basically the same, so the issue is present there also.
>  
> ADDITIONAL NOTE:
> The the reservation should not be done for this product, but this part is 
> only the last step of the ecommerce sales order flow.
> I think that with a scenario like the one above, the specific product variant 
> should not even be added to the cart, so in the item page (productdetail) 
> this particular variant should not have been visible/selected by the user.
> But I have to take a better look at this part.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to