diff --git a/migration/i2.1/oracle/201412171953_IDEMPIERE-1996.sql b/migration/i2.1/oracle/201412171953_IDEMPIERE-1996.sql new file mode 100644 index 0000000000..b564475e26 --- /dev/null +++ b/migration/i2.1/oracle/201412171953_IDEMPIERE-1996.sql @@ -0,0 +1,15 @@ +SET SQLBLANKLINES ON +SET DEFINE OFF + +-- Dec 17, 2014 7:50:03 PM COT +-- IDEMPIERE-1996 InventoryLine inherits bad default +UPDATE AD_Column SET Callout='org.idempiere.model.CalloutFillLocator.fillLocator',Updated=TO_DATE('2014-12-17 19:50:03','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=3537 +; + +-- Dec 17, 2014 7:51:10 PM COT +UPDATE AD_Column SET Callout='org.idempiere.model.CalloutFillLocator.fillLocator;org.compiere.model.CalloutInventory.product',Updated=TO_DATE('2014-12-17 19:51:10','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=3564 +; + +SELECT register_migration_script('201412171953_IDEMPIERE-1996.sql') FROM dual +; + diff --git a/migration/i2.1/postgresql/201412171953_IDEMPIERE-1996.sql b/migration/i2.1/postgresql/201412171953_IDEMPIERE-1996.sql new file mode 100644 index 0000000000..0e1160a63b --- /dev/null +++ b/migration/i2.1/postgresql/201412171953_IDEMPIERE-1996.sql @@ -0,0 +1,12 @@ +-- Dec 17, 2014 7:50:03 PM COT +-- IDEMPIERE-1996 InventoryLine inherits bad default +UPDATE AD_Column SET Callout='org.idempiere.model.CalloutFillLocator.fillLocator',Updated=TO_TIMESTAMP('2014-12-17 19:50:03','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=3537 +; + +-- Dec 17, 2014 7:51:10 PM COT +UPDATE AD_Column SET Callout='org.idempiere.model.CalloutFillLocator.fillLocator;org.compiere.model.CalloutInventory.product',Updated=TO_TIMESTAMP('2014-12-17 19:51:10','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=3564 +; + +SELECT register_migration_script('201412171953_IDEMPIERE-1996.sql') FROM dual +; + diff --git a/org.adempiere.base/META-INF/MANIFEST.MF b/org.adempiere.base/META-INF/MANIFEST.MF index 38c11743ab..063d996c14 100644 --- a/org.adempiere.base/META-INF/MANIFEST.MF +++ b/org.adempiere.base/META-INF/MANIFEST.MF @@ -271,6 +271,7 @@ Export-Package: bsh, org.eevolution.model, org.idempiere.broadcast, org.idempiere.distributed, + org.idempiere.model, org.jfree, org.jfree.base, org.jfree.base.config, diff --git a/org.adempiere.base/src/org/idempiere/model/CalloutFillLocator.java b/org.adempiere.base/src/org/idempiere/model/CalloutFillLocator.java new file mode 100644 index 0000000000..80d11a0e2f --- /dev/null +++ b/org.adempiere.base/src/org/idempiere/model/CalloutFillLocator.java @@ -0,0 +1,65 @@ +/********************************************************************** +* This file is part of iDempiere ERP Open Source * +* http://www.idempiere.org * +* * +* Copyright (C) Contributors * +* * +* This program is free software; you can redistribute it and/or * +* modify it under the terms of the GNU General Public License * +* as published by the Free Software Foundation; either version 2 * +* of the License, or (at your option) any later version. * +* * +* This program is distributed in the hope that it will be useful, * +* but WITHOUT ANY WARRANTY; without even the implied warranty of * +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +* GNU General Public License for more details. * +* * +* You should have received a copy of the GNU General Public License * +* along with this program; if not, write to the Free Software * +* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * +* MA 02110-1301, USA. * +* * +* Contributors: * +* - Carlos Ruiz - globalqss * +**********************************************************************/ +package org.idempiere.model; + +import java.util.Properties; + +import org.compiere.model.CalloutEngine; +import org.compiere.model.GridField; +import org.compiere.model.GridTab; +import org.compiere.model.MLocator; +import org.compiere.model.MWarehouse; +import org.compiere.util.Env; + +public class CalloutFillLocator extends CalloutEngine { + + /** + * fillLocator - fill default Locator based on actual warehouse + * + * @param ctx + * @param WindowNo + * @param mTab + * @param mField + * @param value + * @return error message or "" + */ + public String fillLocator(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value) + { + Integer locatorID = (Integer) value; + if (locatorID == null || locatorID.intValue() == 0) { + int warehouseID = Env.getContextAsInt(ctx, WindowNo, "M_Warehouse_ID", true); + if (warehouseID > 0) { + MWarehouse wh = MWarehouse.get(ctx, warehouseID); + MLocator defaultLocator = wh.getDefaultLocator(); + if (defaultLocator != null) { + mTab.setValue(mField, defaultLocator.getM_Locator_ID()); + } + } + } + + return ""; + } + +}