parent
742452ead4
commit
d74a4a11b4
|
|
@ -9,9 +9,12 @@ import org.compiere.model.MInventory;
|
||||||
import org.compiere.model.MInventoryLine;
|
import org.compiere.model.MInventoryLine;
|
||||||
import org.compiere.model.MInventoryLineMA;
|
import org.compiere.model.MInventoryLineMA;
|
||||||
import org.compiere.model.MOrder;
|
import org.compiere.model.MOrder;
|
||||||
|
import org.compiere.model.MOrderLine;
|
||||||
import org.compiere.model.MPaymentAllocate;
|
import org.compiere.model.MPaymentAllocate;
|
||||||
import org.compiere.model.MPriceList;
|
import org.compiere.model.MPriceList;
|
||||||
import org.compiere.model.MProductPrice;
|
import org.compiere.model.MProductPrice;
|
||||||
|
import org.compiere.model.MProduction;
|
||||||
|
import org.compiere.model.MProductionLine;
|
||||||
import org.compiere.model.MRMA;
|
import org.compiere.model.MRMA;
|
||||||
import org.compiere.model.PO;
|
import org.compiere.model.PO;
|
||||||
import org.compiere.util.CLogger;
|
import org.compiere.util.CLogger;
|
||||||
|
|
@ -36,6 +39,12 @@ public class MID_ValidatorFactory extends AbstractEventHandler {
|
||||||
// msg = SMT_LandedCostAllocationValidator.executeEvent(event, getPO(event));
|
// msg = SMT_LandedCostAllocationValidator.executeEvent(event, getPO(event));
|
||||||
if (getPO(event).get_TableName().equals(MOrder.Table_Name))
|
if (getPO(event).get_TableName().equals(MOrder.Table_Name))
|
||||||
msg = MID_OrderValidator.executeEvent(event, getPO(event));
|
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))
|
// if (getPO(event).get_TableName().equals(MRMA.Table_Name))
|
||||||
// msg = MID_RMAValidator.executeEvent(event, getPO(event));
|
// msg = MID_RMAValidator.executeEvent(event, getPO(event));
|
||||||
if (getPO(event).get_TableName().equals(MInOut.Table_Name))
|
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.PO_BEFORE_CHANGE, MOrder.Table_Name);
|
||||||
registerTableEvent(IEventTopics.DOC_BEFORE_PREPARE, 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
|
// Shipment / Receipt
|
||||||
registerTableEvent(IEventTopics.DOC_BEFORE_PREPARE, MInOut.Table_Name);
|
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_PREPARE, MInventory.Table_Name);
|
||||||
registerTableEvent(IEventTopics.DOC_BEFORE_REVERSEACCRUAL,MInventory.Table_Name);
|
registerTableEvent(IEventTopics.DOC_BEFORE_REVERSEACCRUAL,MInventory.Table_Name);
|
||||||
registerTableEvent(IEventTopics.DOC_BEFORE_REVERSECORRECT,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);
|
// registerTableEvent(IEventTopics.PO_AFTER_NEW,MInvoice.Table_Name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -66,6 +66,9 @@ public class MID_UploadTPB extends SvrProcess{
|
||||||
order.set_ValueNoCheck("NoAju1", row.getCell(0).getStringCellValue());
|
order.set_ValueNoCheck("NoAju1", row.getCell(0).getStringCellValue());
|
||||||
String AJU_DocType_Value = row.getCell(5).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 });
|
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);
|
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()});
|
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()});
|
||||||
|
|
|
||||||
|
|
@ -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 "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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 "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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 "";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
Loading…
Reference in New Issue