Revise Bug Inventory Line

--HG--
branch : BYPASS
This commit is contained in:
hodianto 2020-05-04 15:47:30 +07:00
parent 0cbf81c9ef
commit d3b1fdeeb4
1 changed files with 12 additions and 25 deletions

View File

@ -6,8 +6,6 @@ import org.compiere.model.MInventoryLineMA;
import org.compiere.model.PO; import org.compiere.model.PO;
import org.osgi.service.event.Event; import org.osgi.service.event.Event;
import andromedia.midsuit.model.MID_PPOLine;
public class MID_InventoryLineMAValidator { public class MID_InventoryLineMAValidator {
public static String executeEvent(Event e, PO po) { public static String executeEvent(Event e, PO po) {
MInventoryLineMA inv = (MInventoryLineMA) po; MInventoryLineMA inv = (MInventoryLineMA) po;
@ -15,36 +13,25 @@ public class MID_InventoryLineMAValidator {
return beforeSave(inv); return beforeSave(inv);
else if (e.getTopic().equals(IEventTopics.PO_BEFORE_CHANGE)) else if (e.getTopic().equals(IEventTopics.PO_BEFORE_CHANGE))
return beforeChange(inv); return beforeChange(inv);
return "";
return "";
} }
private static String beforeChange(MInventoryLineMA invMA) { private static String beforeChange(MInventoryLineMA invMA) {
MInventoryLine inv = new MInventoryLine(invMA.getCtx(), invMA.getM_InventoryLine_ID(), invMA.get_TrxName()); MInventoryLine inv = new MInventoryLine(invMA.getCtx(), invMA.getM_InventoryLine_ID(), invMA.get_TrxName());
int PS_PPOLine_ID = inv.get_ValueAsInt("ps_ppoline_ID"); if (!invMA.is_ValueChanged("QtyEntered") || inv.getReversalLine_ID() > 0)
if(! invMA.is_ValueChanged("QtyEntered")) return ""; return "";
if(PS_PPOLine_ID>0 ) { if (inv.getQtyInternalUse().signum() < 0 && invMA.getMovementQty().signum() > 0) {
MID_PPOLine line = new MID_PPOLine(inv.getCtx(), PS_PPOLine_ID,inv.get_TrxName()); invMA.setMovementQty(invMA.getMovementQty().negate());
if(line.isEndProduct() && invMA.getMovementQty().signum()>0)
invMA.setMovementQty(invMA.getMovementQty().negate());
}
else if (inv.getM_Product().getM_Product_Category().getValue().contains("SCRAP")) {
if(invMA.getMovementQty().signum()>0)
invMA.setMovementQty(invMA.getMovementQty().negate());
} }
return ""; return "";
} }
private static String beforeSave(MInventoryLineMA invMA){ private static String beforeSave(MInventoryLineMA invMA) {
MInventoryLine inv = new MInventoryLine(invMA.getCtx(), invMA.getM_InventoryLine_ID(), invMA.get_TrxName()); MInventoryLine inv = new MInventoryLine(invMA.getCtx(), invMA.getM_InventoryLine_ID(), invMA.get_TrxName());
int PS_PPOLine_ID = inv.get_ValueAsInt("ps_ppoline_ID"); if (inv.getReversalLine_ID() > 0)
if(PS_PPOLine_ID>0) { return "";
MID_PPOLine line = new MID_PPOLine(inv.getCtx(), PS_PPOLine_ID,inv.get_TrxName()); if (inv.getQtyInternalUse().signum() < 0 && invMA.getMovementQty().signum() > 0)
if(line.isEndProduct() && invMA.getMovementQty().signum()>0) invMA.setMovementQty(invMA.getMovementQty().negate());
invMA.setMovementQty(invMA.getMovementQty().negate());
}else if (inv.getM_Product().getM_Product_Category().getValue().contains("SCRAP")) {
if(invMA.getMovementQty().signum()>0)
invMA.setMovementQty(invMA.getMovementQty().negate());
}
return ""; return "";
} }
} }