RMA does not allow repeat returns on same shipment.

Description

During Customer RMA, the Shipment selected if has previous RMA still shows the same MovementQty/Delivered Qty for selection and then will give error during adding due to returned been higher than shipped before even though it was not completely returned in partial cases

With this patch, it shows original and moved qty so that when adding the balance, it goes through without issue. Testing with Customer Returns and then Invoice (Customer) AR Credit Memo goes through OK. First screenshot showing start to return

Then after returning 7 and trying to return again showing 3 instead of still 10.

Tested if it is a normal case without issue. Screenshot showing a normal case of Shipped 2 units been all returned and when trying to return again showing non as delivered.

This is part of work documented here http://red1.org/adempiere/viewtopic.php?f=45&t=1807

Environment

None

Attachments

7

is duplicated by

Activity

Show:

RedhuanO April 27, 2015 at 8:14 AM

including check for previous RMA is not VOID or DRAFT as advised by Carlos Ruiz. The Env.ZERO check replace with Env.ONE is a workaround to avoid init() restoring MovementQty of zero to full Qty which doesn't trigger header exception of over shipment qty. If not, it still works but on the line exception which is less exciting. Of course solving why init() does that can help but there is fear of unforeseen impact and this workaround is isolated to CreateRMA only. My testing shows it worked well.

RedhuanO April 24, 2015 at 7:10 PM
Edited

Carlos Ruiz gave the following single word change:

diff -r 1861093d9de8 org.adempiere.ui/src/org/compiere/grid/CreateFromRMA.java
— a/org.adempiere.ui/src/org/compiere/grid/CreateFromRMA.java Fri Apr 24 12:08:56 2015 -0500
+++ b/org.adempiere.ui/src/org/compiere/grid/CreateFromRMA.java Fri Apr 24 12:32:57 2015 -0500
@@ -136,7 +136,7 @@
miniTable.setColumnClass(2, String.class, true); // 2-Product
miniTable.setColumnClass(3, String.class, true); // 3-ASI
miniTable.setColumnClass(4, BigDecimal.class, true); // 4-Qty

  • miniTable.setColumnClass(5, BigDecimal.class, true); // 5-Delivered Qty
    + miniTable.setColumnClass(5, BigDecimal.class, false); // 5-Delivered Qty


// Table UI
miniTable.autoSize();

that allows the value to be edited without going to the row level

He also advised that i did not check against void or closed RMAs.

RedhuanO April 24, 2015 at 5:11 PM

Finally solved it and tested in multi line partial triple returns. Dirty hack seems to hold against the checkQty doing an init() to overwrite the returning balance. At least this fills such feature hole of RMA.

RedhuanO April 24, 2015 at 8:40 AM

Testing with multi lines fail. Needing some more work

RedhuanO April 24, 2015 at 8:10 AM
Edited

Better patch - Added non zero trigger for checkQty to disallow proceeding when balance is zero. More aesthetic to use than not which allows passing thru of full qty and then stopping it.

Fixed

Details

Assignee

Reporter

Priority

Created April 24, 2015 at 4:49 AM
Updated July 1, 2015 at 10:58 PM
Resolved May 20, 2015 at 11:44 PM