If multiple items were ordered and only a part of those are received, the order line is split into 2, received and pending. When you work with multi-receive and switch back and forth between entries, things get confused and you end up with a broken partial receive where the received items have not been re-linked to the new order line. This might also have other bad side effects. Sorry for the somewhat complicated test plan: To test: * Create a new basket, create items on placing the order * Create an order line with 4 items * Create another order line with 2 items * Close the basket * Receive shipment and create an invoice * Select both orders via the checkboxes got multi-receive * Click "receive selected" * Edit first order line, quantity received = 1 (1 out of 4) * Verify that one item is also selected in the table * Switch to "next order" * Quantity received is 0, no items checked in the second order * Switch to "Previous order" * ERROR: Item checkbox was lost, quantity received still correct * Switch to next order * ERROR: item is now checked, quantity received 0 * Note: We see a mix up of the information entered, one has the checkbox now, the other the quantity. * Save changes * Click confirm * Continue (complaint about the second order left unchanged) You are back on the summary: * pending order: quantity changed from 4 to 3 - correct * received order: quantity shows 1 - correct * Click on receive for your updated order line (with 3 items) * 4 items show to be received (should be 3)
Created attachment 155342 [details] [review] Bug 34736: Don't trigger quantity change on loading order We have a change event to automatically check or uncheck the first items on a list when the value is changed directly. The code is calling this when setting the quantity when loading an order, but this is causing a problem in that we are setting the quantity to load.switch orders and triggering the checkboxes wrongly To test: 1 - Create a new basket, create items on placing the order 2 - Create an order line with 4 items 3 - Create another order line with 2 items 4 - Close the basket 5 - Receive shipment and create an invoice 6 - Select both orders via the checkboxes got multi-receive 7 - Click "receive selected" 8 - Edit first order line, quantity received = 1 (1 out of 4) 9 - Verify that one item is also selected in the table 10 - Switch to "next order" 11 - Quantity received is 0, no items checked in the second order 12 - Switch to "Previous order" 13 - ERROR: Item checkbox was lost, quantity received still correct 14 - Switch to next order 15 - ERROR: item is now checked, quantity received 0 16 - Note: We see a mix up of the information entered, one has the checkbox now, the other the quantity. 17 - Save changes 18 - Click confirm 19 - Continue (complaint about the second order left unchanged) 20 - You are back on the summary: * pending order: quantity changed from 4 to 3 - correct * received order: quantity shows 1 - correct 21 - Click on receive for your updated order line (with 3 items) * 4 items show to be received (should be 3) 22 - Apply patch 23 - Cancel receipt of items 24 - Repeat 1-12 25 - Items are loaded correctly 26 - Try with various checkboxes and switch back and forth 27 - Confirm that manually adjusting quantity received checks the first n boxes 28 - Confirm setting quantity to 0 unchecks the boxes
Created attachment 155384 [details] [review] Bug 34736: Don't trigger quantity change on loading order We have a change event to automatically check or uncheck the first items on a list when the value is changed directly. The code is calling this when setting the quantity when loading an order, but this is causing a problem in that we are setting the quantity to load.switch orders and triggering the checkboxes wrongly To test: 1 - Create a new basket, create items on placing the order 2 - Create an order line with 4 items 3 - Create another order line with 2 items 4 - Close the basket 5 - Receive shipment and create an invoice 6 - Select both orders via the checkboxes got multi-receive 7 - Click "receive selected" 8 - Edit first order line, quantity received = 1 (1 out of 4) 9 - Verify that one item is also selected in the table 10 - Switch to "next order" 11 - Quantity received is 0, no items checked in the second order 12 - Switch to "Previous order" 13 - ERROR: Item checkbox was lost, quantity received still correct 14 - Switch to next order 15 - ERROR: item is now checked, quantity received 0 16 - Note: We see a mix up of the information entered, one has the checkbox now, the other the quantity. 17 - Save changes 18 - Click confirm 19 - Continue (complaint about the second order left unchanged) 20 - You are back on the summary: * pending order: quantity changed from 4 to 3 - correct * received order: quantity shows 1 - correct 21 - Click on receive for your updated order line (with 3 items) * 4 items show to be received (should be 3) 22 - Apply patch 23 - Cancel receipt of items 24 - Repeat 1-12 25 - Items are loaded correctly 26 - Try with various checkboxes and switch back and forth 27 - Confirm that manually adjusting quantity received checks the first n boxes 28 - Confirm setting quantity to 0 unchecks the boxes Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Bad bug, small fix - just how I like it. Thanks a lot Nick!
Created attachment 155579 [details] [review] Bug 34736: Don't trigger quantity change on loading order We have a change event to automatically check or uncheck the first items on a list when the value is changed directly. The code is calling this when setting the quantity when loading an order, but this is causing a problem in that we are setting the quantity to load.switch orders and triggering the checkboxes wrongly To test: 1 - Create a new basket, create items on placing the order 2 - Create an order line with 4 items 3 - Create another order line with 2 items 4 - Close the basket 5 - Receive shipment and create an invoice 6 - Select both orders via the checkboxes got multi-receive 7 - Click "receive selected" 8 - Edit first order line, quantity received = 1 (1 out of 4) 9 - Verify that one item is also selected in the table 10 - Switch to "next order" 11 - Quantity received is 0, no items checked in the second order 12 - Switch to "Previous order" 13 - ERROR: Item checkbox was lost, quantity received still correct 14 - Switch to next order 15 - ERROR: item is now checked, quantity received 0 16 - Note: We see a mix up of the information entered, one has the checkbox now, the other the quantity. 17 - Save changes 18 - Click confirm 19 - Continue (complaint about the second order left unchanged) 20 - You are back on the summary: * pending order: quantity changed from 4 to 3 - correct * received order: quantity shows 1 - correct 21 - Click on receive for your updated order line (with 3 items) * 4 items show to be received (should be 3) 22 - Apply patch 23 - Cancel receipt of items 24 - Repeat 1-12 25 - Items are loaded correctly 26 - Try with various checkboxes and switch back and forth 27 - Confirm that manually adjusting quantity received checks the first n boxes 28 - Confirm setting quantity to 0 unchecks the boxes Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de> Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Works, makes sense, QA script happy, code looks good, passing QA :) It was a nasty one, well done all ^^
Pushed to master for 23.11. Nice work everyone, thanks!
Pushed to 23.05.x for 23.05.04
I am afraid we have an unwanted side-effect here if my git-bisect is correct :( Bug 34880 - Receive impossible if items created 'in cataloguing'
oh no, very weird it did that. Thanks for finding it out.
Dependency missing for 22.11.x - not backporting