EDII Validator Merge to 1 Plugin

--HG--
branch : EDII
This commit is contained in:
hodianto 2018-12-13 13:56:21 +07:00
parent 742452ead4
commit d74a4a11b4
5 changed files with 143 additions and 0 deletions

View File

@ -9,9 +9,12 @@ import org.compiere.model.MInventory;
import org.compiere.model.MInventoryLine;
import org.compiere.model.MInventoryLineMA;
import org.compiere.model.MOrder;
import org.compiere.model.MOrderLine;
import org.compiere.model.MPaymentAllocate;
import org.compiere.model.MPriceList;
import org.compiere.model.MProductPrice;
import org.compiere.model.MProduction;
import org.compiere.model.MProductionLine;
import org.compiere.model.MRMA;
import org.compiere.model.PO;
import org.compiere.util.CLogger;
@ -36,6 +39,12 @@ public class MID_ValidatorFactory extends AbstractEventHandler {
// msg = SMT_LandedCostAllocationValidator.executeEvent(event, getPO(event));
if (getPO(event).get_TableName().equals(MOrder.Table_Name))
msg = MID_OrderValidator.executeEvent(event, getPO(event));
if (getPO(event).get_TableName().equals(MOrderLine.Table_Name))
msg = MID_OrderValidator.executeEvent(event, getPO(event));
if (getPO(event).get_TableName().equals(MProduction.Table_Name))
msg = MID_OrderValidator.executeEvent(event, getPO(event));
if (getPO(event).get_TableName().equals(MProductionLine.Table_Name))
msg = MID_OrderValidator.executeEvent(event, getPO(event));
// if (getPO(event).get_TableName().equals(MRMA.Table_Name))
// msg = MID_RMAValidator.executeEvent(event, getPO(event));
if (getPO(event).get_TableName().equals(MInOut.Table_Name))
@ -72,6 +81,10 @@ public class MID_ValidatorFactory extends AbstractEventHandler {
registerTableEvent(IEventTopics.PO_BEFORE_CHANGE, MOrder.Table_Name);
registerTableEvent(IEventTopics.DOC_BEFORE_PREPARE, MOrder.Table_Name);
//OrderLine
registerTableEvent(IEventTopics.PO_BEFORE_NEW, MOrderLine.Table_Name);
registerTableEvent(IEventTopics.PO_BEFORE_CHANGE, MOrderLine.Table_Name);
// Shipment / Receipt
registerTableEvent(IEventTopics.DOC_BEFORE_PREPARE, MInOut.Table_Name);
@ -105,6 +118,10 @@ public class MID_ValidatorFactory extends AbstractEventHandler {
registerTableEvent(IEventTopics.DOC_BEFORE_PREPARE, MInventory.Table_Name);
registerTableEvent(IEventTopics.DOC_BEFORE_REVERSEACCRUAL,MInventory.Table_Name);
registerTableEvent(IEventTopics.DOC_BEFORE_REVERSECORRECT,MInventory.Table_Name);
registerTableEvent(IEventTopics.PO_BEFORE_NEW, MProduction.Table_Name);
registerTableEvent(IEventTopics.DOC_BEFORE_COMPLETE, MProduction.Table_Name);
registerTableEvent(IEventTopics.PO_BEFORE_NEW, MProductionLine.Table_Name);
// registerTableEvent(IEventTopics.PO_AFTER_NEW,MInvoice.Table_Name);
}

View File

@ -66,6 +66,9 @@ public class MID_UploadTPB extends SvrProcess{
order.set_ValueNoCheck("NoAju1", row.getCell(0).getStringCellValue());
String AJU_DocType_Value = row.getCell(5).getStringCellValue();
int MID_AJUDocType_ID = DB.getSQLValue(get_TrxName(), "SELECT MID_AJUDocumentType_ID FROM MID_AjuDocumentType WHERE Value =?", new Object[] { AJU_DocType_Value });
if(MID_AJUDocType_ID <=0)
throw new AdempiereException("AJU Document For "+AJU_DocType_Value+" !!!");
order.set_ValueNoCheck("MID_AJUDocumentType_ID", MID_AJUDocType_ID);
int C_BPartner_ID = DB.getSQLValue(get_TrxName(), "SELECT C_BPartner_ID FROM C_Bpartner WHERE Name =? AND AD_Client_ID =? AND IsVendor ='Y'", new Object[] { row.getCell(3).getStringCellValue(), getAD_Client_ID()});

View File

@ -0,0 +1,43 @@
package andromedia.midsuit.validator;
import org.adempiere.base.event.IEventTopics;
import org.compiere.model.MOrder;
import org.compiere.model.MOrderLine;
import org.compiere.model.PO;
import org.compiere.util.DB;
import org.osgi.service.event.Event;
public class MID_OrderLineValidator {
public static String executeEvent(Event e, PO po) {
MOrderLine OrderLine = (MOrderLine) po;
MOrder order = new MOrder(OrderLine.getCtx(), OrderLine.getC_Order_ID(), OrderLine.get_TrxName());
if (e.getTopic().equals(IEventTopics.PO_BEFORE_NEW))
return beforeNew(OrderLine, order);
else if (e.getTopic().equals(IEventTopics.PO_BEFORE_CHANGE))
return beforeChange(OrderLine, order);
return "";
}
private static String beforeChange(MOrderLine orderLine, MOrder order) {
if(order.get_ValueAsString("NoAju1").equals("")) {
orderLine.set_ValueNoCheck("NoAju", "");
}
else {
String noAju = order.get_ValueAsString("NoAju1");
orderLine.set_ValueNoCheck("NoAju", noAju);
}
return "";
}
public static String beforeNew(MOrderLine line, MOrder order) {
if(order.get_ValueAsString("NoAju1").equals("")) {
line.set_ValueOfColumn("NoAju", "");
}
else if(line.get_ValueAsString("NoAju").equals("")) {
String noAju = order.get_ValueAsString("NoAju1");
line.set_ValueNoCheck("NoAju", noAju);
}
return "";
}
}

View File

@ -0,0 +1,44 @@
package andromedia.midsuit.validator;
import org.adempiere.base.event.IEventTopics;
import org.compiere.model.MProduction;
import org.compiere.model.MProductionLine;
import org.compiere.model.PO;
import org.compiere.util.DB;
import org.osgi.service.event.Event;
public class MID_ProductionLineValidator {
public static String executeEvent(Event e, PO po) {
MProductionLine pl = (MProductionLine) po;
if (e.getTopic().equals(IEventTopics.PO_BEFORE_NEW))
return beforeNew(pl);
return "";
}
private static String beforeNew(MProductionLine pl) {
MProduction production = new MProduction(pl.getCtx(), pl.getM_Production_ID(), pl.get_TrxName());
int PS_PPO_ID = production.get_ValueAsInt("ps_ppo_ID");
if(pl.get_ValueAsInt("C_UOM_ID")==0)
pl.set_ValueNoCheck("C_UOM_ID", pl.getM_Product().getC_UOM_ID());
if(pl.isEndProduct() && PS_PPO_ID > 0) {
// MID_PPO PPO = new MID_PPO(pl.getCtx(), PS_PPO_ID, pl.get_TrxName());
// pl.setM_AttributeSetInstance_ID(PPO.get_ValueAsInt(X_M_ProductionLine.COLUMNNAME_M_AttributeSetInstance_ID));
String sqlExec = "SELECT M_AttributeSetInstance_ID "
+ " FROM PS_PPO WHERE PS_PPO_ID =?";
int M_AttributeSetInstance_ID = DB.getSQLValueEx(pl.get_TrxName(), sqlExec, new Object[] { PS_PPO_ID });
if(M_AttributeSetInstance_ID>0)
pl.setM_AttributeSetInstance_ID(M_AttributeSetInstance_ID);
}else {
String sqlExec = "SELECT M_AttributeSetInstance_ID " +
" FROM M_Storage S " +
" WHERE M_Product_ID = ? AND " +
" DateMaterialPolicy = (SELECT MIN(DateMaterialPolicy) FROM M_StorageOnHand SOH " +
" WHERE SOH.QtyOnHand>0 AND M_AttributeSetInstance_ID > 0 AND M_Product_ID = S.M_Product_ID)";
int M_AttributeSetInstance_ID = DB.getSQLValueEx(pl.get_TrxName(), sqlExec, new Object[] { pl.getM_Product_ID() });
if(M_AttributeSetInstance_ID>0)
pl.setM_AttributeSetInstance_ID(M_AttributeSetInstance_ID);
}
return "";
}
}

View File

@ -0,0 +1,36 @@
package andromedia.midsuit.validator;
import org.adempiere.base.event.IEventTopics;
import org.adempiere.exceptions.AdempiereException;
import org.compiere.model.MProduction;
import org.compiere.model.MProductionLine;
import org.compiere.model.PO;
import org.osgi.service.event.Event;
public class MID_ProductionValidator {
public static String executeEvent(Event e, PO po) {
MProduction pl = (MProduction) po;
if (e.getTopic().equals(IEventTopics.DOC_BEFORE_COMPLETE))
return beforeComplete(pl);
else if (e.getTopic().equals(IEventTopics.PO_BEFORE_NEW))
return beforeNew(pl);
return "";
}
private static String beforeNew(MProduction p) {
if(p.getProductionQty().signum()==0)
throw new AdempiereException("Qty Production Wajib Lebih Besar dari 0 !");
return "";
}
private static String beforeComplete(MProduction p) {
for(MProductionLine line : p.getLines()) {
if(line.getMovementQty().signum()==0)
throw new AdempiereException("Qty "+line.getM_Product().getName()
+"Wajib Lebih Besar dari 0 !");
}
return "";
}
}