diff --git a/andromeida.midsuit.project/src/andromedia/midsuit/form/MID_CreateFromOrder.java b/andromeida.midsuit.project/src/andromedia/midsuit/form/MID_CreateFromOrder.java index c52ca19..4d20147 100644 --- a/andromeida.midsuit.project/src/andromedia/midsuit/form/MID_CreateFromOrder.java +++ b/andromeida.midsuit.project/src/andromedia/midsuit/form/MID_CreateFromOrder.java @@ -63,7 +63,7 @@ public class MID_CreateFromOrder extends CreateFrom { columnNames.add(Msg.translate(Env.getCtx(), "Quantity")); columnNames.add(Msg.translate(Env.getCtx(), "DateRequired")); columnNames.add(Msg.translate(Env.getCtx(), "C_UOM_ID")); -// columnNames.add(Msg.translate(Env.getCtx(), "SisaPO")); + columnNames.add(Msg.translate(Env.getCtx(), "SisaPO")); return columnNames; } @@ -189,7 +189,7 @@ public class MID_CreateFromOrder extends CreateFrom { Timestamp p_dateRequired = rs.getTimestamp(5); line.add(p_dateRequired); //5 - DateRequired line.add(rs.getString(6)); // 7 - UOM -// line.add((BigDecimal)rs.getBigDecimal(8)); //9 - SisaPO + line.add((BigDecimal)rs.getBigDecimal(8)); //9 - SisaPO data.add(line); } rs.close(); @@ -318,7 +318,7 @@ public class MID_CreateFromOrder extends CreateFrom { miniTable.setColumnClass(5, Timestamp.class, true); // 5-DateRequired miniTable.setColumnClass(6, String.class, true); // 7-UOM //miniTable.setColumnClass(8, BigDecimal.class, true); // 8-QtyRequired -// miniTable.setColumnClass(8, BigDecimal.class, false); // 9-SisaPO + miniTable.setColumnClass(8, BigDecimal.class, false); // 9-SisaPO // Table UI @@ -340,7 +340,7 @@ public class MID_CreateFromOrder extends CreateFrom { { MOrderLine orderLine = new MOrderLine(order); BigDecimal qty = (BigDecimal)miniTable.getValueAt(i, 4); // 4 - Qty -// BigDecimal sisapo = (BigDecimal)miniTable.getValueAt(i, 7); // 9 - SisaPO + BigDecimal sisapo = (BigDecimal)miniTable.getValueAt(i, 7); // 9 - SisaPO BigDecimal qtyOrdered = qty; // BigDecimal qtyOrdered = sisapo; KeyNamePair pp = (KeyNamePair)miniTable.getValueAt(i, 1); // 1-Line @@ -552,8 +552,8 @@ public class MID_CreateFromOrder extends CreateFrom { orderLine.set_ValueOfColumn("PriceRequisition", reqLine.getPriceActual()); orderLine.set_ValueOfColumn("DiscAmt", Env.ZERO); - orderLine.set_ValueOfColumn("MIDRequisition_ID", reqLine.getMID_Requisition_ID()); - orderLine.set_ValueOfColumn("MIDRequisitionLine_ID", reqLine.getMID_RequisitionLine_ID()); + orderLine.set_ValueOfColumn("MID_Requisition_ID", reqLine.getMID_Requisition_ID()); + orderLine.set_ValueOfColumn("MID_RequisitionLine_ID", reqLine.getMID_RequisitionLine_ID()); orderLine.set_ValueOfColumn("IsTrackAsAsset", reqLine.get_ValueAsBoolean("IsTrackAsAsset")); diff --git a/andromeida.midsuit.project/src/andromedia/midsuit/model/MID_MRequisitionTrx.java b/andromeida.midsuit.project/src/andromedia/midsuit/model/MID_MRequisitionTrx.java index dfbed82..733d318 100644 --- a/andromeida.midsuit.project/src/andromedia/midsuit/model/MID_MRequisitionTrx.java +++ b/andromeida.midsuit.project/src/andromedia/midsuit/model/MID_MRequisitionTrx.java @@ -83,7 +83,7 @@ public class MID_MRequisitionTrx extends X_MID_Requisition implements DocAction{ @Override public boolean closeIt() { // TODO Auto-generated method stub - return false; + return true; } @Override diff --git a/andromeida.midsuit.project/src/andromedia/midsuit/process/MID_CompleteRecord.java b/andromeida.midsuit.project/src/andromedia/midsuit/process/MID_CompleteRecord.java index 9cc1457..660e08d 100644 --- a/andromeida.midsuit.project/src/andromedia/midsuit/process/MID_CompleteRecord.java +++ b/andromeida.midsuit.project/src/andromedia/midsuit/process/MID_CompleteRecord.java @@ -2,6 +2,7 @@ package andromedia.midsuit.process; import java.util.logging.Level; +import org.adempiere.exceptions.AdempiereException; import org.compiere.model.MInOut; import org.compiere.model.MInvoice; import org.compiere.model.MOrder; @@ -40,47 +41,47 @@ public class MID_CompleteRecord extends SvrProcess{ case "C_Order" : MOrder o = new MOrder(getCtx(), record_ID, get_TrxName()); if(!o.processIt(DocAct)) - return o.getProcessMsg(); + throw new AdempiereException( "Failed to Complete Document !!!"); o.saveEx(); break; case "M_InOut" : MInOut io = new MInOut(getCtx(), record_ID, get_TrxName()); if(!io.processIt(DocAct)) - return "Failed to Complete Document !!!"; + throw new AdempiereException( "Failed to Complete Document !!!"); io.saveEx(); break; case "C_Invoice" : MInvoice inv = new MInvoice(getCtx(), record_ID, get_TrxName()); if(!inv.processIt(DocAct)) - return "Failed to Complete Document !!!"; + throw new AdempiereException( "Failed to Complete Document !!!"); inv.saveEx(); break; case "C_Payment" : MPayment p = new MPayment(getCtx(), record_ID, get_TrxName()); if(!p.processIt(DocAct)) - return "Failed to Complete Document !!!"; + throw new AdempiereException( "Failed to Complete Document !!!"); p.saveEx(); break; case "MID_Requisition" : MID_MRequisitionTrx rs = new MID_MRequisitionTrx(getCtx(), record_ID, get_TrxName()); if(!rs.processIt(DocAct)) - return "Failed to Complete Document !!!"; + throw new AdempiereException( "Failed to Complete Document !!!"); rs.saveEx(); break; case "M_Requisition" : MRequisition req = new MRequisition(getCtx(), record_ID, get_TrxName()); if(!req.processIt(DocAct)) - return "Failed to Complete Document !!!"; + throw new AdempiereException( "Failed to Complete Document !!!"); req.saveEx(); break; case "M_RMA" : MRMA rma = new MRMA(getCtx(), record_ID, get_TrxName()); if(!rma.processIt(DocAct)) - return "Failed to Complete Document !!!"; + throw new AdempiereException( "Failed to Complete Document !!!"); rma.saveEx(); break; - default : return "Table not defined by WS !!!"; + default : throw new AdempiereException( "Failed to Complete Document !!!"); } return "Document Process Complete !!!"; } diff --git a/andromeida.midsuit.project/src/andromedia/midsuit/validator/MID_RMAValidator.java b/andromeida.midsuit.project/src/andromedia/midsuit/validator/MID_RMAValidator.java index d135b98..93c4340 100644 --- a/andromeida.midsuit.project/src/andromedia/midsuit/validator/MID_RMAValidator.java +++ b/andromeida.midsuit.project/src/andromedia/midsuit/validator/MID_RMAValidator.java @@ -21,6 +21,7 @@ import org.compiere.model.Query; import org.compiere.model.X_C_DocType; import org.compiere.model.X_M_InOut; import org.compiere.process.DocAction; +import org.compiere.util.DB; import org.osgi.service.event.Event; public class MID_RMAValidator { @@ -120,7 +121,11 @@ public class MID_RMAValidator { MRMALine rmaLine = new MRMALine(RMA.getCtx(), 0, RMA.get_TrxName()); rmaLine.setM_RMA_ID(RMA.getM_RMA_ID()); rmaLine.setM_InOutLine_ID(iol.getM_InOutLine_ID()); - rmaLine.setQty(iol.getMovementQty()); + BigDecimal qtyReturned = DB.getSQLValueBD(RMA.get_TrxName(), "SELECT COALESCE(SUM(Qty),0) FROM M_RMALine WHERE M_InOutLine_ID =?", iol.getM_InOutLine_ID()); + if(iol.getMovementQty().subtract(qtyReturned).signum()==0) + continue; + else + rmaLine.setQty(iol.getMovementQty().subtract(qtyReturned)); rmaLine.setAD_Org_ID(RMA.getAD_Org_ID()); rmaLine.setDescription(iol.getDescription()); if (!rmaLine.save())