Hi,
I understand your situation. Reservations are free and cannot be based on locations which makes this very tricky in D365.
To solve this you need to create a difference between stock which is just received and stock still not completed with QC. I have handled this in many projects as I am sharing below.
The idea is that the inventory status of the just received item should not be available. As soon as items are registered their inventory status changes to "QA" (Quality assurance)
Only after the quality orders are processed the status changes from QA > Available in case quality order was passed and QA > Blocked in case the quality order was failed.
Now as stock which is still not through quality inspection is having a different inventory status than production orders there is no way production orders will reserve this stock and this solves the issue. All the best production orders with reservations :P Haha
Not only this solution solves the issue it creates more realistic picture in the system by creating a clear distinction between QC passed items which have inventory status "Available' and items which are just received and pending QC checks thus having status QA.
Setups looks like below
1 - Mobile menu and disposition codes brought into picture like this
2 - Now you receive the item and system will automatically give it inventory status as QA and only after quality order processing it will change either to available or blocked depending on the quality order status.
3 - Setup quality management module to give proper status post quality order processing.
Regards,