From 9efd93d08ad00bb25e116bf99ab7b1a312b1ed5f Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Sat, 18 Feb 2023 16:20:24 +0100 Subject: [PATCH] IDEMPIERE-5574 Drop Ship BPartner must have opposite IsSOTrx logic on Info Window (#1673) --- .../webui/factory/DefaultInfoFactory.java | 25 ++++++++++++++++--- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/DefaultInfoFactory.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/DefaultInfoFactory.java index c193e8d790..1ba8811f4c 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/DefaultInfoFactory.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/DefaultInfoFactory.java @@ -34,6 +34,8 @@ import org.adempiere.webui.panel.InfoPanel; import org.adempiere.webui.panel.InfoPaymentPanel; import org.adempiere.webui.panel.InfoProductPanel; import org.compiere.model.GridField; +import org.compiere.model.I_C_Order; +import org.compiere.model.I_M_InOut; import org.compiere.model.Lookup; import org.compiere.model.MDocType; import org.compiere.model.MInfoWindow; @@ -169,10 +171,25 @@ public class DefaultInfoFactory implements IInfoFactory { } else if (col.equals("C_BPartner_ID")) { - InfoWindow infoWindow = new InfoBPartnerWindow(lookup.getWindowNo(), tableName, keyColumn, queryValue, multiSelection, whereClause, AD_InfoWindow_ID, true, field); - if (infoWindow.loadedOK()) - return infoWindow; - + String originalIsSOTrx = null; + try { + if ( field != null + && I_C_Order.COLUMNNAME_DropShip_BPartner_ID.equals(field.getColumnName()) + && field.getGridTab() != null + && ( field.getGridTab().getTableName().equals(I_C_Order.Table_Name) + || field.getGridTab().getTableName().equals(I_M_InOut.Table_Name))) { + originalIsSOTrx = Env.getContext(Env.getCtx(), lookup.getWindowNo(), "IsSOTrx"); + String tempIsSOTrx = ("Y".equals(originalIsSOTrx) ? "N" : "Y"); + Env.setContext(Env.getCtx(), lookup.getWindowNo(), "IsSOTrx", tempIsSOTrx); + } + InfoWindow infoWindow = new InfoBPartnerWindow(lookup.getWindowNo(), tableName, keyColumn, queryValue, multiSelection, whereClause, AD_InfoWindow_ID, true, field); + if (infoWindow.loadedOK()) + return infoWindow; + } finally { + if (originalIsSOTrx != null) + Env.setContext(Env.getCtx(), lookup.getWindowNo(), "IsSOTrx", originalIsSOTrx); + } + boolean isSOTrx = true; // default if (Env.getContext(Env.getCtx(), lookup.getWindowNo(), "IsSOTrx").equals("N"))