From 486836db27a9b8859873e4e3276e3c544ec6907a Mon Sep 17 00:00:00 2001 From: Elaine Tan Date: Tue, 10 Dec 2013 15:43:43 +0800 Subject: [PATCH 1/8] IDEMPIERE-1621 Mandatory field in process parameter panel not in red label --- .../webui/apps/ProcessParameterPanel.java | 4 +++- .../src/org/adempiere/webui/editor/WEditor.java | 15 +++++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/ProcessParameterPanel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/ProcessParameterPanel.java index f6f11701e3..1e2d9619fb 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/ProcessParameterPanel.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/ProcessParameterPanel.java @@ -281,7 +281,8 @@ public class ProcessParameterPanel extends Panel implements Row row = new Row(); // The Editor - WEditor editor = WebEditorFactory.getEditor(mField, false); + WEditor editor = WebEditorFactory.getEditor(mField, false); + editor.setProcessParameter(true); editor.getComponent().addEventListener(Events.ON_FOCUS, this); editor.getComponent().addEventListener(Events.ON_BLUR, this); editor.addValueChangeListener(this); @@ -336,6 +337,7 @@ public class ProcessParameterPanel extends Panel implements m_mFields2.add(mField2); // The Editor WEditor editor2 = WebEditorFactory.getEditor(mField2, false); + editor2.setProcessParameter(true); //override attribute editor2.getComponent().setWidgetAttribute("columnName", mField2.getColumnName()+"_To"); editor2.getComponent().addEventListener(Events.ON_FOCUS, this); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WEditor.java index 7170157386..1c9fa3908e 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WEditor.java @@ -91,6 +91,8 @@ public abstract class WEditor implements EventListener, PropertyChangeLis protected WEditorPopupMenu popupMenu; private boolean tableEditor; + + private boolean isProcessParameter; public WEditor(Component comp, GridField gridField) { this(comp, gridField, -1); @@ -208,7 +210,8 @@ public abstract class WEditor implements EventListener, PropertyChangeLis label = new Label(""); label.setValue(strLabel); label.setTooltiptext(description); - + label.setMandatory(mandatory); + this.setMandatory (mandatory); if (readOnly || !updateable) @@ -546,7 +549,7 @@ public abstract class WEditor implements EventListener, PropertyChangeLis } public boolean isMandatoryStyle() { - return mandatory && !readOnly && getGridField().isEditable(true) && isNullOrEmpty(); + return mandatory && !readOnly && (isProcessParameter || getGridField().isEditable(true)) && isNullOrEmpty(); } public boolean isNullOrEmpty() { @@ -632,6 +635,14 @@ public abstract class WEditor implements EventListener, PropertyChangeLis } return false; } + + public boolean isProcessParameter() { + return isProcessParameter; + } + + public void setProcessParameter(boolean isProcessParameter) { + this.isProcessParameter = isProcessParameter; + } private static final String STYLE_ZOOMABLE_LABEL = "cursor: pointer; text-decoration: underline;"; private static final String STYLE_NORMAL_LABEL = "color: #333;"; From d9eeaf3aaa192aa74f2313ef593e1e28cfd5dcf1 Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Wed, 11 Dec 2013 08:11:50 -0500 Subject: [PATCH 2/8] IDEMPIERE-1587 Error ORA-12704 for some columns --- org.adempiere.base/src/org/compiere/util/DisplayType.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/org.adempiere.base/src/org/compiere/util/DisplayType.java b/org.adempiere.base/src/org/compiere/util/DisplayType.java index 20fb8608d9..d121716163 100644 --- a/org.adempiere.base/src/org/compiere/util/DisplayType.java +++ b/org.adempiere.base/src/org/compiere/util/DisplayType.java @@ -605,7 +605,7 @@ public final class DisplayType if (fieldLength == 1) return "CHAR(" + fieldLength + ")"; else - return "NVARCHAR2(" + fieldLength + ")"; + return "VARCHAR2(" + fieldLength + ")"; } if (displayType == DisplayType.Color) // this condition is never reached - filtered above in isID { @@ -632,7 +632,7 @@ public final class DisplayType if (!DisplayType.isText(displayType)) s_log.severe("Unhandled Data Type = " + displayType); - return "NVARCHAR2(" + fieldLength + ")"; + return "VARCHAR2(" + fieldLength + ")"; } // getSQLDataType /** From 6542926f1117cf74a0bf07a86314f2213e1f239b Mon Sep 17 00:00:00 2001 From: Nicolas Micoud Date: Wed, 11 Dec 2013 08:44:56 -0500 Subject: [PATCH 3/8] IDEMPIERE-1623 MAIL_SEND_BCC_TO_FROM is not used --- org.adempiere.base/src/org/compiere/util/EMail.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/org.adempiere.base/src/org/compiere/util/EMail.java b/org.adempiere.base/src/org/compiere/util/EMail.java index ccedffc70a..069e7a2f34 100644 --- a/org.adempiere.base/src/org/compiere/util/EMail.java +++ b/org.adempiere.base/src/org/compiere/util/EMail.java @@ -547,7 +547,7 @@ public final class EMail implements Serializable try { m_from = new InternetAddress (newFrom, true); - if (MSysConfig.getBooleanValue(MSysConfig.MAIL_SEND_BCC_TO_FROM, false, Env.getAD_Client_ID(Env.getCtx()))); + if (MSysConfig.getBooleanValue(MSysConfig.MAIL_SEND_BCC_TO_FROM, false, Env.getAD_Client_ID(Env.getCtx()))) addBcc(newFrom); } catch (Exception e) From 483716c3ab2a565fb0843762d87d2bf51875a4e4 Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Wed, 11 Dec 2013 08:51:03 -0500 Subject: [PATCH 4/8] minor - improve readability of ExpenseTypesFromAccounts --- .../src/org/adempiere/process/ExpenseTypesFromAccounts.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/org.adempiere.base.process/src/org/adempiere/process/ExpenseTypesFromAccounts.java b/org.adempiere.base.process/src/org/adempiere/process/ExpenseTypesFromAccounts.java index 4cc0c9f000..2b7b441850 100644 --- a/org.adempiere.base.process/src/org/adempiere/process/ExpenseTypesFromAccounts.java +++ b/org.adempiere.base.process/src/org/adempiere/process/ExpenseTypesFromAccounts.java @@ -81,8 +81,9 @@ public class ExpenseTypesFromAccounts extends SvrProcess { ProcessInfoParameter[] para = getParameter(); for (int i = 0; i < para.length; i++) { String name = para[i].getParameterName(); - if (para[i].getParameter() == null); - else if (name.equals("M_Product_Category_ID")) { + if (para[i].getParameter() == null) { + // nothing + } else if (name.equals("M_Product_Category_ID")) { m_productCategoryId = para[i].getParameterAsInt(); } else if (name.equals("C_AcctSchema_ID")) { m_acctSchemaId = para[i].getParameterAsInt(); From 52c4a94a22118cf757946fd05c17a09630269b1c Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Wed, 11 Dec 2013 09:40:44 -0500 Subject: [PATCH 5/8] IDEMPIERE-1625 Remittance is printing inactive address --- .../functions/C_BPartner_RemitLocation.SQL | 4 +- .../functions/C_BPartner_RemitLocation.sql | 2 +- .../oracle/201312110939_IDEMPIERE-1625.sql | 38 +++++++++++++++++++ .../201312110939_IDEMPIERE-1625.sql | 27 +++++++++++++ 4 files changed, 68 insertions(+), 3 deletions(-) create mode 100644 migration/i2.0/oracle/201312110939_IDEMPIERE-1625.sql create mode 100644 migration/i2.0/postgresql/201312110939_IDEMPIERE-1625.sql diff --git a/db/ddlutils/oracle/functions/C_BPartner_RemitLocation.SQL b/db/ddlutils/oracle/functions/C_BPartner_RemitLocation.SQL index 62aec19390..3dfd28870d 100644 --- a/db/ddlutils/oracle/functions/C_BPartner_RemitLocation.SQL +++ b/db/ddlutils/oracle/functions/C_BPartner_RemitLocation.SQL @@ -21,7 +21,7 @@ AS CURSOR CUR_BPLoc IS SELECT IsRemitTo, C_Location_ID FROM C_BPartner_Location - WHERE C_BPartner_ID=p_C_BPartner_ID + WHERE C_BPartner_ID=p_C_BPartner_ID AND IsActive='Y' ORDER BY IsRemitTo DESC; BEGIN FOR l IN CUR_BPLoc LOOP @@ -31,4 +31,4 @@ BEGIN END LOOP; RETURN v_C_Location_ID; END bpartnerRemitLocation; -/ \ No newline at end of file +/ diff --git a/db/ddlutils/postgresql/functions/C_BPartner_RemitLocation.sql b/db/ddlutils/postgresql/functions/C_BPartner_RemitLocation.sql index e138861ec5..28d270811f 100644 --- a/db/ddlutils/postgresql/functions/C_BPartner_RemitLocation.sql +++ b/db/ddlutils/postgresql/functions/C_BPartner_RemitLocation.sql @@ -9,7 +9,7 @@ BEGIN FOR l IN SELECT IsRemitTo, C_Location_ID FROM C_BPartner_Location - WHERE C_BPartner_ID=p_C_BPartner_ID + WHERE C_BPartner_ID=p_C_BPartner_ID AND IsActive='Y' ORDER BY IsRemitTo DESC LOOP IF (v_C_Location_ID IS NULL) THEN diff --git a/migration/i2.0/oracle/201312110939_IDEMPIERE-1625.sql b/migration/i2.0/oracle/201312110939_IDEMPIERE-1625.sql new file mode 100644 index 0000000000..f8eb1e283e --- /dev/null +++ b/migration/i2.0/oracle/201312110939_IDEMPIERE-1625.sql @@ -0,0 +1,38 @@ +CREATE OR REPLACE FUNCTION bpartnerRemitLocation +( + p_C_BPartner_ID C_BPartner.C_BPartner_ID%TYPE +) +RETURN NUMBER +/************************************************************************* + * The contents of this file are subject to the Compiere License. You may + * obtain a copy of the License at http://www.compiere.org/license.html + * Software is on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either + * express or implied. See the License for details. Code: Compiere ERP+CRM + * Copyright (C) 1999-2002 Jorg Janke, ComPiere, Inc. All Rights Reserved. + ************************************************************************* + * $Id: C_BPartner_RemitLocation.SQL,v 1.1 2006/04/21 17:51:58 jjanke Exp $ + *** + * Title: Return the first RemitTo C_Location_ID of a Business Partner + * Description: + * + ************************************************************************/ +AS + v_C_Location_ID NUMBER := NULL; + CURSOR CUR_BPLoc IS + SELECT IsRemitTo, C_Location_ID + FROM C_BPartner_Location + WHERE C_BPartner_ID=p_C_BPartner_ID AND IsActive='Y' + ORDER BY IsRemitTo DESC; +BEGIN + FOR l IN CUR_BPLoc LOOP + IF (v_C_Location_ID IS NULL) THEN + v_C_Location_ID := l.C_Location_ID; + END IF; + END LOOP; + RETURN v_C_Location_ID; +END bpartnerRemitLocation; +/ + +SELECT register_migration_script('201312110939_IDEMPIERE-1625.sql') FROM dual +; + diff --git a/migration/i2.0/postgresql/201312110939_IDEMPIERE-1625.sql b/migration/i2.0/postgresql/201312110939_IDEMPIERE-1625.sql new file mode 100644 index 0000000000..44638adc45 --- /dev/null +++ b/migration/i2.0/postgresql/201312110939_IDEMPIERE-1625.sql @@ -0,0 +1,27 @@ +CREATE OR REPLACE FUNCTION bpartnerRemitLocation(p_C_BPartner_ID C_BPartner.C_BPartner_ID%TYPE) +RETURNS numeric AS $body$ + +DECLARE + v_C_Location_ID NUMERIC := NULL; + l RECORD; + +BEGIN + FOR l IN + SELECT IsRemitTo, C_Location_ID + FROM C_BPartner_Location + WHERE C_BPartner_ID=p_C_BPartner_ID AND IsActive='Y' + ORDER BY IsRemitTo DESC + LOOP + IF (v_C_Location_ID IS NULL) THEN + v_C_Location_ID := l.C_Location_ID; + END IF; + END LOOP; + RETURN v_C_Location_ID; + +END; + +$body$ LANGUAGE plpgsql; + +SELECT register_migration_script('201312110939_IDEMPIERE-1625.sql') FROM dual +; + From c50915609ca9ccea4f15bc96e8e18e21dda63bc4 Mon Sep 17 00:00:00 2001 From: dantam Date: Thu, 5 Dec 2013 11:46:48 +0100 Subject: [PATCH 6/8] IDEMPIERE-1605 - Save path when working with attachments. --- .../src/org/compiere/apps/Attachment.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/org.adempiere.ui.swing/src/org/compiere/apps/Attachment.java b/org.adempiere.ui.swing/src/org/compiere/apps/Attachment.java index 0d3522c50b..70ac94da50 100644 --- a/org.adempiere.ui.swing/src/org/compiere/apps/Attachment.java +++ b/org.adempiere.ui.swing/src/org/compiere/apps/Attachment.java @@ -64,6 +64,11 @@ public final class Attachment extends CDialog */ private static final long serialVersionUID = 2497487523050526742L; + /** + * Save the last path selected + */ + private static String lastPath = null; + /** * Constructor. * loads Attachment, if ID <> 0 @@ -424,7 +429,8 @@ public final class Attachment extends CDialog private void loadFile() { log.info(""); - JFileChooser chooser = new JFileChooser(); + JFileChooser chooser = new JFileChooser(lastPath); + chooser.setDialogType(JFileChooser.OPEN_DIALOG); chooser.setDialogTitle(Msg.getMsg(Env.getCtx(), "AttachmentNew")); chooser.setMultiSelectionEnabled(true); @@ -463,6 +469,10 @@ public final class Attachment extends CDialog } } } + // Save path of file + if (files.length>0) { + lastPath = files[0].getParentFile().getAbsolutePath(); + } } // getFileName /** From 9acb39e8c6eb1f84957d9d2848c488c253e0e31a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Garc=C3=ADa?= Date: Wed, 11 Dec 2013 11:47:24 -0500 Subject: [PATCH 7/8] IDEMPIERE-1516 Performance indicators display fails when role user assigment inactive --- org.adempiere.base/src/org/compiere/model/MGoal.java | 2 ++ .../WEB-INF/src/org/adempiere/webui/apps/graph/WViewPI.java | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/org.adempiere.base/src/org/compiere/model/MGoal.java b/org.adempiere.base/src/org/compiere/model/MGoal.java index e12f40a120..7a82f81224 100644 --- a/org.adempiere.base/src/org/compiere/model/MGoal.java +++ b/org.adempiere.base/src/org/compiere/model/MGoal.java @@ -94,6 +94,8 @@ public class MGoal extends X_PA_Goal DB.close(rs, pstmt); rs = null; pstmt = null; } + if (list.size() == 0) + s_log.log (Level.WARNING, Msg.getMsg(ctx, "FindZeroRecords")); MGoal[] retValue = new MGoal[list.size ()]; list.toArray (retValue); return retValue; diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/WViewPI.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/WViewPI.java index b3a2d2eadd..f4ec382efb 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/WViewPI.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/WViewPI.java @@ -16,7 +16,8 @@ public class WViewPI extends ADForm { options.chartHeight = 180; options.chartWidth = 180; WPAPanel paPanel = WPAPanel.get(options); - appendChild(paPanel); + if (paPanel != null) + appendChild(paPanel); } } From ee448d8c45b9c3ffeec4dd4879e0f1ee9e146b4a Mon Sep 17 00:00:00 2001 From: Carlos Augusto Sanchez Date: Wed, 11 Dec 2013 11:54:37 -0500 Subject: [PATCH 8/8] IDEMPIERE-1574 Sales Order Line lets Price under the Price Limit when updating / fix NPE --- org.adempiere.base/src/org/compiere/model/MInvoiceLine.java | 2 +- org.adempiere.base/src/org/compiere/model/MOrderLine.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/org.adempiere.base/src/org/compiere/model/MInvoiceLine.java b/org.adempiere.base/src/org/compiere/model/MInvoiceLine.java index 7df3f52bc6..dd831c1b7e 100644 --- a/org.adempiere.base/src/org/compiere/model/MInvoiceLine.java +++ b/org.adempiere.base/src/org/compiere/model/MInvoiceLine.java @@ -860,7 +860,7 @@ public class MInvoiceLine extends X_C_InvoiceLine setPrice(); // IDEMPIERE-1574 Sales Order Line lets Price under the Price Limit when updating // Check PriceLimit - boolean enforce = m_IsSOTrx && m_parent.getM_PriceList().isEnforcePriceLimit(); + boolean enforce = m_IsSOTrx && getParent().getM_PriceList().isEnforcePriceLimit(); if (enforce && MRole.getDefault().isOverwritePriceLimit()) enforce = false; // Check Price Limit? diff --git a/org.adempiere.base/src/org/compiere/model/MOrderLine.java b/org.adempiere.base/src/org/compiere/model/MOrderLine.java index 893907b267..b9a7b31640 100644 --- a/org.adempiere.base/src/org/compiere/model/MOrderLine.java +++ b/org.adempiere.base/src/org/compiere/model/MOrderLine.java @@ -829,7 +829,7 @@ public class MOrderLine extends X_C_OrderLine getProductPricing(m_M_PriceList_ID); // IDEMPIERE-1574 Sales Order Line lets Price under the Price Limit when updating // Check PriceLimit - boolean enforce = m_IsSOTrx && m_parent.getM_PriceList().isEnforcePriceLimit(); + boolean enforce = m_IsSOTrx && getParent().getM_PriceList().isEnforcePriceLimit(); if (enforce && MRole.getDefault().isOverwritePriceLimit()) enforce = false; // Check Price Limit?