From 4d45c2eb8a0dd4558685e09daae93b6110d59962 Mon Sep 17 00:00:00 2001 From: Heng Sin Low Date: Thu, 17 Jan 2008 06:10:33 +0000 Subject: [PATCH] [ 1756793 ] RMA Feature - Incorporate bug fix from client production site. --- .../adempiere/process/InvoiceGenerateRMA.java | 45 +------------------ base/src/org/compiere/model/MInOut.java | 6 +-- base/src/org/compiere/model/MInvoice.java | 34 ++++++++++++++ base/src/org/compiere/model/MInvoiceLine.java | 23 ++++++++++ base/src/org/compiere/model/MRMA.java | 2 +- 5 files changed, 63 insertions(+), 47 deletions(-) diff --git a/base/src/org/adempiere/process/InvoiceGenerateRMA.java b/base/src/org/adempiere/process/InvoiceGenerateRMA.java index 63324e6501..ae516d6e5f 100644 --- a/base/src/org/adempiere/process/InvoiceGenerateRMA.java +++ b/base/src/org/adempiere/process/InvoiceGenerateRMA.java @@ -145,35 +145,9 @@ public class InvoiceGenerateRMA extends SvrProcess } MInvoice invoice = new MInvoice(getCtx(), 0, get_TrxName()); + invoice.setRMA(rma); - invoice.setM_RMA_ID(rma.getM_RMA_ID()); - invoice.setAD_Org_ID(rma.getAD_Org_ID()); - invoice.setDescription(rma.getDescription()); - invoice.setC_BPartner_ID(rma.getC_BPartner_ID()); - invoice.setSalesRep_ID(rma.getSalesRep_ID()); invoice.setC_DocTypeTarget_ID(docTypeId); - invoice.setGrandTotal(rma.getAmt()); - invoice.setIsSOTrx(rma.isSOTrx()); - invoice.setTotalLines(rma.getAmt()); - - MInvoice originalInvoice = rma.getOriginalInvoice(); - - if (originalInvoice == null) - { - throw new IllegalStateException("Not invoiced - RMA: " + rma.getDocumentNo()); - } - - invoice.setC_BPartner_Location_ID(originalInvoice.getC_BPartner_Location_ID()); - invoice.setAD_User_ID(originalInvoice.getAD_User_ID()); - invoice.setC_Currency_ID(originalInvoice.getC_Currency_ID()); - invoice.setIsTaxIncluded(originalInvoice.isTaxIncluded()); - invoice.setM_PriceList_ID(originalInvoice.getM_PriceList_ID()); - invoice.setC_Project_ID(originalInvoice.getC_Project_ID()); - invoice.setC_Activity_ID(originalInvoice.getC_Activity_ID()); - invoice.setC_Campaign_ID(originalInvoice.getC_Campaign_ID()); - invoice.setUser1_ID(originalInvoice.getUser1_ID()); - invoice.setUser2_ID(originalInvoice.getUser2_ID()); - if (!invoice.save()) { throw new IllegalStateException("Could not create invoice"); @@ -197,22 +171,7 @@ public class InvoiceGenerateRMA extends SvrProcess } MInvoiceLine invLine = new MInvoiceLine(invoice); - invLine.setAD_Org_ID(rmaLine.getAD_Org_ID()); - invLine.setM_RMALine_ID(rmaLine.getM_RMALine_ID()); - invLine.setDescription(rmaLine.getDescription()); - invLine.setLine(rmaLine.getLine()); - invLine.setC_Charge_ID(rmaLine.getC_Charge_ID()); - invLine.setM_Product_ID(rmaLine.getM_Product_ID()); - invLine.setC_UOM_ID(rmaLine.getC_UOM_ID()); - invLine.setC_Tax_ID(rmaLine.getC_Tax_ID()); - invLine.setPrice(rmaLine.getAmt()); - invLine.setQty(rmaLine.getQty()); - invLine.setLineNetAmt(); - invLine.setTaxAmt(); - invLine.setLineTotalAmt(rmaLine.getLineNetAmt()); - invLine.setC_Project_ID(rmaLine.getC_Project_ID()); - invLine.setC_Activity_ID(rmaLine.getC_Activity_ID()); - invLine.setC_Campaign_ID(rmaLine.getC_Campaign_ID()); + invLine.setRMALine(rmaLine); if (!invLine.save()) { diff --git a/base/src/org/compiere/model/MInOut.java b/base/src/org/compiere/model/MInOut.java index 5c4c97effe..30b9bfb1fc 100644 --- a/base/src/org/compiere/model/MInOut.java +++ b/base/src/org/compiere/model/MInOut.java @@ -947,7 +947,7 @@ public class MInOut extends X_M_InOut implements DocAction return false; } - if (!isSOTrx() && getM_RMA_ID() != 0) + if (isSOTrx() && getM_RMA_ID() != 0) { // Set Document and Movement type for this Receipt MRMA rma = new MRMA(getCtx(), getM_RMA_ID(), get_TrxName()); @@ -1348,11 +1348,11 @@ public class MInOut extends X_M_InOut implements DocAction { if (isSOTrx()) { - rmaLine.setQtyDelivered(rmaLine.getQtyDelivered().subtract(Qty)); + rmaLine.setQtyDelivered(rmaLine.getQtyDelivered().add(Qty)); } else { - rmaLine.setQtyDelivered(rmaLine.getQtyDelivered().add(Qty)); + rmaLine.setQtyDelivered(rmaLine.getQtyDelivered().subtract(Qty)); } if (!rmaLine.save()) { diff --git a/base/src/org/compiere/model/MInvoice.java b/base/src/org/compiere/model/MInvoice.java index a4a41402ba..a1dad8acfb 100644 --- a/base/src/org/compiere/model/MInvoice.java +++ b/base/src/org/compiere/model/MInvoice.java @@ -2319,5 +2319,39 @@ public class MInvoice extends X_C_Invoice implements DocAction return getGrandTotal(); } // getApprovalAmt + /** + * + * @param rma + */ + public void setRMA(MRMA rma) + { + setM_RMA_ID(rma.getM_RMA_ID()); + setAD_Org_ID(rma.getAD_Org_ID()); + setDescription(rma.getDescription()); + setC_BPartner_ID(rma.getC_BPartner_ID()); + setSalesRep_ID(rma.getSalesRep_ID()); + + setGrandTotal(rma.getAmt()); + setIsSOTrx(rma.isSOTrx()); + setTotalLines(rma.getAmt()); + + MInvoice originalInvoice = rma.getOriginalInvoice(); + + if (originalInvoice == null) + { + throw new IllegalStateException("Not invoiced - RMA: " + rma.getDocumentNo()); + } + + setC_BPartner_Location_ID(originalInvoice.getC_BPartner_Location_ID()); + setAD_User_ID(originalInvoice.getAD_User_ID()); + setC_Currency_ID(originalInvoice.getC_Currency_ID()); + setIsTaxIncluded(originalInvoice.isTaxIncluded()); + setM_PriceList_ID(originalInvoice.getM_PriceList_ID()); + setC_Project_ID(originalInvoice.getC_Project_ID()); + setC_Activity_ID(originalInvoice.getC_Activity_ID()); + setC_Campaign_ID(originalInvoice.getC_Campaign_ID()); + setUser1_ID(originalInvoice.getUser1_ID()); + setUser2_ID(originalInvoice.getUser2_ID()); + } } // MInvoice diff --git a/base/src/org/compiere/model/MInvoiceLine.java b/base/src/org/compiere/model/MInvoiceLine.java index 5fc9b526ee..48ae75b266 100644 --- a/base/src/org/compiere/model/MInvoiceLine.java +++ b/base/src/org/compiere/model/MInvoiceLine.java @@ -1169,4 +1169,27 @@ public class MInvoiceLine extends X_C_InvoiceLine return count; } // copyLinesFrom // end MZ + + /** + * @param rmaline + */ + public void setRMALine(MRMALine rmaLine) + { + setAD_Org_ID(rmaLine.getAD_Org_ID()); + setM_RMALine_ID(rmaLine.getM_RMALine_ID()); + setDescription(rmaLine.getDescription()); + setLine(rmaLine.getLine()); + setC_Charge_ID(rmaLine.getC_Charge_ID()); + setM_Product_ID(rmaLine.getM_Product_ID()); + setC_UOM_ID(rmaLine.getC_UOM_ID()); + setC_Tax_ID(rmaLine.getC_Tax_ID()); + setPrice(rmaLine.getAmt()); + setQty(rmaLine.getQty()); + setLineNetAmt(); + setTaxAmt(); + setLineTotalAmt(rmaLine.getLineNetAmt()); + setC_Project_ID(rmaLine.getC_Project_ID()); + setC_Activity_ID(rmaLine.getC_Activity_ID()); + setC_Campaign_ID(rmaLine.getC_Campaign_ID()); + } } // MInvoiceLine diff --git a/base/src/org/compiere/model/MRMA.java b/base/src/org/compiere/model/MRMA.java index 677133348f..47ad6b2375 100644 --- a/base/src/org/compiere/model/MRMA.java +++ b/base/src/org/compiere/model/MRMA.java @@ -134,7 +134,7 @@ public class MRMA extends X_M_RMA implements DocAction public MOrder getOriginalOrder() { MInOut shipment = getShipment(); - if (shipment == null) + if (shipment == null || shipment.getC_Order_ID() == 0) { return null; }