Validate change of Attribute set instance on order lines when the qty reserved > 0


Currently the system is letting the user change the attribute set instance after the order is prepared, which creates a qty reservation that is not linked to any document.

Steps to reproduce:

  1. Create an order

  2. Create an order line with a product with ASI and set an existing instance

  3. Prepare the order

  4. You see a reservation in storage detail with the qty set in the order line

  5. Go back to the order line and update the instance field selecting a different one

  6. Complete the order

  7. Create a Shipment for that order line

  8. Observe in Storage Detail that the records created in #2 are still present.

The solution is to extend the existing validation that does not allow to update the product or delete an order line when qtyReserved > 0, to not allow the change of the ASI value.




Carlos Ruiz
March 24, 2019, 6:32 PM

Backed out the inital fix. This requires a more complex solution, maybe when releasing the reservation we would need to check what is the ASI that had the reservation and release from there.


Carlos Ruiz

Carlos Ruiz
March 21, 2019, 8:20 PM

Reopening as there is a broken use case explained at:

My tests:

  • following the instructions provided in forum effectively doesn't allow to complete the material receipt

  • reverted the commit here and the material receipt can be completed - and the reservation is released properly

BUT: then the bug fixed here is reopened, the following test case failed after reverting the commit:

  • create purchase order without ASI

  • create material receipt with ASI not connected to the purchase order

  • match the PO with the MR

  • then two reservations are left in inventory +1 and -1 (That's the bugs fixed here)

Even WITH the commit here the case is failing on MatchPO - so, solution is working for sales, but purchase will require a different treatment.

Diego Ruiz
February 8, 2019, 7:42 PM

Hi ,

Attached you can find the patch that solves this ticket.

Kind Regards,
Diego Ruiz


Diego Ruiz


Diego Ruiz


Tested By