From 78c97b05402002d7e7cd48ae6a1e90940f65b735 Mon Sep 17 00:00:00 2001 From: "INSPIRON-PC\\An'im Falahuddin" Date: Mon, 16 Apr 2018 12:02:45 +0700 Subject: [PATCH] Callout Pricelist In Order --- .../midsuit/callout/MID_CalloutOrder.java | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 andromeida.midsuit.project/src/andromedia/midsuit/callout/MID_CalloutOrder.java diff --git a/andromeida.midsuit.project/src/andromedia/midsuit/callout/MID_CalloutOrder.java b/andromeida.midsuit.project/src/andromedia/midsuit/callout/MID_CalloutOrder.java new file mode 100644 index 0000000..f94b695 --- /dev/null +++ b/andromeida.midsuit.project/src/andromedia/midsuit/callout/MID_CalloutOrder.java @@ -0,0 +1,53 @@ +package andromedia.midsuit.callout; + +import java.util.Properties; + +import org.adempiere.base.IColumnCallout; +import org.compiere.model.CalloutEngine; +import org.compiere.model.GridField; +import org.compiere.model.GridTab; +import org.compiere.model.MOrder; +import org.compiere.model.MPriceList; +import org.compiere.model.Query; +import org.compiere.util.CLogger; +import org.compiere.util.DB; +import org.compiere.util.Env; + +public class MID_CalloutOrder extends CalloutEngine implements IColumnCallout { + + @Override + public String start(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue) { + // TODO Auto-generated method stub + if(mField.getColumnName().equals(MOrder.COLUMNNAME_AD_Org_ID)) { + if(value == null) return null; + return setPricelistByOrg(ctx, WindowNo, mTab, mField, value, oldValue); + } + return null; + } + + public String setPricelistByOrg(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue) { + + int org = (int) value; + int AD_Client_ID = (int) mTab.getValue(MOrder.COLUMNNAME_AD_Client_ID); + boolean isSOTrx = (boolean) mTab.getValue(MOrder.COLUMNNAME_IsSOTrx); + + int priceList = new Query(ctx, MPriceList.Table_Name, "AD_Org_ID =? AND IsSOPriceList =?", null) + .setParameters(new Object[] { org, isSOTrx }) + .setOnlyActiveRecords(true) + .firstId(); + + if(priceList>0) + mTab.setValue(MOrder.COLUMNNAME_M_PriceList_ID, priceList); + else + { + priceList = new Query(ctx, MPriceList.Table_Name, "AD_Client_ID =? AND AD_Org_ID =? AND IsSOPriceList =?", null) + .setParameters(new Object[] {AD_Client_ID, 0, isSOTrx }) + .setOnlyActiveRecords(true) + .firstId(); + mTab.setValue(MOrder.COLUMNNAME_M_PriceList_ID, priceList); + } + return null; + } + + +}