diff --git a/client/src/org/compiere/apps/wf/WFPanel.java b/client/src/org/compiere/apps/wf/WFPanel.java index cd860400ca..4243746f3f 100644 --- a/client/src/org/compiere/apps/wf/WFPanel.java +++ b/client/src/org/compiere/apps/wf/WFPanel.java @@ -23,6 +23,7 @@ import java.util.*; import java.util.logging.*; import javax.swing.*; +import org.adempiere.exceptions.AdempiereException; import org.adempiere.plaf.AdempierePLAF; import org.compiere.apps.*; import org.compiere.apps.form.*; @@ -37,17 +38,23 @@ import org.compiere.wf.*; * * @author Jorg Janke * @version $Id: WFPanel.java,v 1.2 2006/07/30 00:51:28 jjanke Exp $ + * + * @author Teo Sarca, www.arhipac.ro + *
  • FR [ 2048081 ] Mf. Workflow editor should display only mf. workflows */ public class WFPanel extends CPanel implements PropertyChangeListener, ActionListener, FormPanel { + private static final long serialVersionUID = 1L; + + /** * Create Workflow Panel. * FormPanel */ public WFPanel() { - this (null); + this (null, null, -1); } // WFPanel /** @@ -55,9 +62,20 @@ public class WFPanel extends CPanel * @param menu menu */ public WFPanel (AMenu menu) + { + this(menu, null, -1); + } + + /** + * Create Workflow Panel + * @param menu menu + */ + public WFPanel (AMenu menu, String wfWhereClause, int wfWindow_ID) { m_menu = menu; m_readWrite = (menu == null); + m_WF_whereClause = wfWhereClause; + m_WF_Window_ID = wfWindow_ID; log.info("RW=" + m_readWrite); try { @@ -85,11 +103,16 @@ public class WFPanel extends CPanel private WFNode m_activeNode = null; /** ReadWrite Mode (see WFNode) */ private boolean m_readWrite = false; + + /** Workflows List Where Clause */ + private String m_WF_whereClause = null; + /** Workflow Window ID */ + private int m_WF_Window_ID = -1; /** Logger */ private static CLogger log = CLogger.getCLogger(WFPanel.class); - // IO + // UI private BorderLayout mainLayout = new BorderLayout(); private CPanel southPanel = new CPanel(); private WFContentPanel centerPanel = new WFContentPanel(this); @@ -208,7 +231,9 @@ public class WFPanel extends CPanel private void loadPanel() { String sql = MRole.getDefault().addAccessSQL( - "SELECT AD_Workflow_ID, Name FROM AD_Workflow ORDER BY 2", + "SELECT AD_Workflow_ID, Name FROM AD_Workflow " + +(!Util.isEmpty(m_WF_whereClause, true) ? " WHERE "+m_WF_whereClause : "") + +" ORDER BY 2", "AD_Workflow", MRole.SQL_NOTQUALIFIED, MRole.SQL_RO); // all KeyNamePair[] pp = DB.getKeyNamePairs(sql, true); // @@ -425,12 +450,18 @@ public class WFPanel extends CPanel */ private void zoom() { - int AD_Window_ID = 113; + if (m_WF_Window_ID <= 0) { + m_WF_Window_ID = MTable.get(m_ctx, MWorkflow.Table_ID).getAD_Window_ID(); + } + if (m_WF_Window_ID <= 0) { + throw new AdempiereException("@NotFound@ @AD_Window_ID@"); + } + MQuery query = null; if (m_wf != null) query = MQuery.getEqualQuery("AD_Workflow_ID", m_wf.getAD_Workflow_ID()); AWindow frame = new AWindow(); - if (!frame.initWindow (AD_Window_ID, query)) + if (!frame.initWindow (m_WF_Window_ID, query)) return; AEnv.addToWindowManager(frame); AEnv.showCenterScreen(frame); @@ -450,7 +481,6 @@ public class WFPanel extends CPanel return sb.toString(); } // toString - /************************************************************************** * Test * @param args ignored diff --git a/client/src/org/eevolution/form/WFPanelManufacturing.java b/client/src/org/eevolution/form/WFPanelManufacturing.java new file mode 100644 index 0000000000..7085b9f3a1 --- /dev/null +++ b/client/src/org/eevolution/form/WFPanelManufacturing.java @@ -0,0 +1,40 @@ +/****************************************************************************** + * Product: Adempiere ERP & CRM Smart Business Solution * + * Copyright (C) 2008 SC ARHIPAC SERVICE SRL. All Rights Reserved. * + * This program is free software; you can redistribute it and/or modify it * + * under the terms version 2 of the GNU General Public License as published * + * by the Free Software Foundation. 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., * + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * + *****************************************************************************/ +package org.eevolution.form; + +import org.compiere.apps.wf.WFPanel; +import org.compiere.util.DB; +import org.compiere.wf.MWorkflow; + +/** + * Manufacturing WorkFlow Editor + * @author Teo Sarca, SC ARHIPAC SERVICE SRL + */ +public class WFPanelManufacturing extends WFPanel { + private static final long serialVersionUID = 1L; + + private static final String WF_WhereClause = MWorkflow.COLUMNNAME_WorkflowType+" IN (" + + DB.TO_STRING(MWorkflow.WORKFLOWTYPE_Manufacturing) + +","+DB.TO_STRING(MWorkflow.WORKFLOWTYPE_Quality) + +")"; + + private static final int WF_Window_ID = 53005; // TODO: HARDCODED (Manufacturing Workflows) + + /** + * Default constructor + */ + public WFPanelManufacturing() { + super(null, WF_WhereClause, WF_Window_ID); + } +} diff --git a/migration/352a-trunk/266_FR2048081.sql b/migration/352a-trunk/266_FR2048081.sql new file mode 100644 index 0000000000..f55c323f21 --- /dev/null +++ b/migration/352a-trunk/266_FR2048081.sql @@ -0,0 +1,25 @@ +-- 12.08.2008 18:05:13 EEST +-- FR [ 2048081 ] Mf. Workflow editor should display only mf. workflows +INSERT INTO AD_Form (AD_Client_ID,AD_Form_ID,AD_Org_ID,AccessLevel,Classname,Created,CreatedBy,Description,EntityType,Help,IsActive,IsBetaFunctionality,Name,Updated,UpdatedBy) VALUES (0,53013,0,'6','org.eevolution.form.WFPanelManufacturing',TO_DATE('2008-08-12 18:05:12','YYYY-MM-DD HH24:MI:SS'),0,'Edit Manufacturing Workflows','D','Edit the graphical layout of manufacturing workflows','Y','N','Manufacturing Workflow Editor',TO_DATE('2008-08-12 18:05:12','YYYY-MM-DD HH24:MI:SS'),0) +; + +-- 12.08.2008 18:05:13 EEST +-- FR [ 2048081 ] Mf. Workflow editor should display only mf. workflows +INSERT INTO AD_Form_Trl (AD_Language,AD_Form_ID, Description,Help,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Form_ID, t.Description,t.Help,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Form t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Form_ID=53013 AND EXISTS (SELECT * FROM AD_Form_Trl tt WHERE tt.AD_Language!=l.AD_Language OR tt.AD_Form_ID!=t.AD_Form_ID) +; + +-- 12.08.2008 18:05:13 EEST +-- FR [ 2048081 ] Mf. Workflow editor should display only mf. workflows +INSERT INTO AD_Form_Access (AD_Client_ID,AD_Form_ID,AD_Org_ID,AD_Role_ID,Created,CreatedBy,IsActive,Updated,UpdatedBy) VALUES (0,53013,0,0,TO_DATE('2008-08-12 18:05:13','YYYY-MM-DD HH24:MI:SS'),0,'Y',TO_DATE('2008-08-12 18:05:13','YYYY-MM-DD HH24:MI:SS'),0) +; + +-- 12.08.2008 18:07:33 EEST +-- FR [ 2048081 ] Mf. Workflow editor should display only mf. workflows +UPDATE AD_Menu SET AD_Form_ID=53013, Description='Edit Manufacturing Workflows', Name='Manufacturing Workflow Editor',Updated=TO_DATE('2008-08-12 18:07:33','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=0 WHERE AD_Menu_ID=53128 +; + +-- 12.08.2008 18:07:33 EEST +-- FR [ 2048081 ] Mf. Workflow editor should display only mf. workflows +UPDATE AD_Menu_Trl SET IsTranslated='N' WHERE AD_Menu_ID=53128 +; + diff --git a/migration/352a-trunk/postgresql/266_FR2048081.sql b/migration/352a-trunk/postgresql/266_FR2048081.sql new file mode 100644 index 0000000000..3794f7f25a --- /dev/null +++ b/migration/352a-trunk/postgresql/266_FR2048081.sql @@ -0,0 +1,25 @@ +-- 12.08.2008 18:05:13 EEST +-- FR [ 2048081 ] Mf. Workflow editor should display only mf. workflows +INSERT INTO AD_Form (AD_Client_ID,AD_Form_ID,AD_Org_ID,AccessLevel,Classname,Created,CreatedBy,Description,EntityType,Help,IsActive,IsBetaFunctionality,Name,Updated,UpdatedBy) VALUES (0,53013,0,'6','org.eevolution.form.WFPanelManufacturing',TO_TIMESTAMP('2008-08-12 18:05:12','YYYY-MM-DD HH24:MI:SS'),0,'Edit Manufacturing Workflows','D','Edit the graphical layout of manufacturing workflows','Y','N','Manufacturing Workflow Editor',TO_TIMESTAMP('2008-08-12 18:05:12','YYYY-MM-DD HH24:MI:SS'),0) +; + +-- 12.08.2008 18:05:13 EEST +-- FR [ 2048081 ] Mf. Workflow editor should display only mf. workflows +INSERT INTO AD_Form_Trl (AD_Language,AD_Form_ID, Description,Help,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Form_ID, t.Description,t.Help,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Form t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Form_ID=53013 AND EXISTS (SELECT * FROM AD_Form_Trl tt WHERE tt.AD_Language!=l.AD_Language OR tt.AD_Form_ID!=t.AD_Form_ID) +; + +-- 12.08.2008 18:05:13 EEST +-- FR [ 2048081 ] Mf. Workflow editor should display only mf. workflows +INSERT INTO AD_Form_Access (AD_Client_ID,AD_Form_ID,AD_Org_ID,AD_Role_ID,Created,CreatedBy,IsActive,Updated,UpdatedBy) VALUES (0,53013,0,0,TO_TIMESTAMP('2008-08-12 18:05:13','YYYY-MM-DD HH24:MI:SS'),0,'Y',TO_TIMESTAMP('2008-08-12 18:05:13','YYYY-MM-DD HH24:MI:SS'),0) +; + +-- 12.08.2008 18:07:33 EEST +-- FR [ 2048081 ] Mf. Workflow editor should display only mf. workflows +UPDATE AD_Menu SET AD_Form_ID=53013, Description='Edit Manufacturing Workflows', Name='Manufacturing Workflow Editor',Updated=TO_TIMESTAMP('2008-08-12 18:07:33','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=0 WHERE AD_Menu_ID=53128 +; + +-- 12.08.2008 18:07:33 EEST +-- FR [ 2048081 ] Mf. Workflow editor should display only mf. workflows +UPDATE AD_Menu_Trl SET IsTranslated='N' WHERE AD_Menu_ID=53128 +; +