From ba541e7dc073d6cbaa76f812e81923c0b44e29f2 Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Thu, 19 Jul 2018 23:09:04 +0200 Subject: [PATCH] IDEMPIERE-1539 search without "%" mark in value, name, description fields --- migration/i5.1/oracle/201312231347_IDEMPIERE-1539.sql | 11 +++++++++++ .../i5.1/postgresql/201312231347_IDEMPIERE-1539.sql | 8 ++++++++ .../src/org/compiere/model/X_AD_InfoColumn.java | 4 +++- .../src/org/adempiere/webui/info/InfoWindow.java | 11 +++++++---- 4 files changed, 29 insertions(+), 5 deletions(-) create mode 100644 migration/i5.1/oracle/201312231347_IDEMPIERE-1539.sql create mode 100644 migration/i5.1/postgresql/201312231347_IDEMPIERE-1539.sql diff --git a/migration/i5.1/oracle/201312231347_IDEMPIERE-1539.sql b/migration/i5.1/oracle/201312231347_IDEMPIERE-1539.sql new file mode 100644 index 0000000000..312cdd69d3 --- /dev/null +++ b/migration/i5.1/oracle/201312231347_IDEMPIERE-1539.sql @@ -0,0 +1,11 @@ +SET SQLBLANKLINES ON +SET DEFINE OFF + +-- Dec 23, 2013 1:36:38 PM COT +-- IDEMPIERE-1539 +INSERT INTO AD_Ref_List (AD_Ref_List_ID,AD_Reference_ID,AD_Ref_List_UU,Name,Value,Created,CreatedBy,Updated,UpdatedBy,IsActive,EntityType,AD_Client_ID,AD_Org_ID) VALUES (200168,200061,'9562f4db-97a9-4df5-99d0-b2f5bc0e2b4c','Full Like','LIKE',TO_DATE('2013-12-23 13:36:48','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2013-12-23 13:36:48','YYYY-MM-DD HH24:MI:SS'),100,'Y','D',0,0) +; + +SELECT register_migration_script('201312231347_IDEMPIERE-1539.sql') FROM dual +; + diff --git a/migration/i5.1/postgresql/201312231347_IDEMPIERE-1539.sql b/migration/i5.1/postgresql/201312231347_IDEMPIERE-1539.sql new file mode 100644 index 0000000000..38642b8993 --- /dev/null +++ b/migration/i5.1/postgresql/201312231347_IDEMPIERE-1539.sql @@ -0,0 +1,8 @@ +-- Dec 23, 2013 1:36:38 PM COT +-- IDEMPIERE-1539 +INSERT INTO AD_Ref_List (AD_Ref_List_ID,AD_Reference_ID,AD_Ref_List_UU,Name,Value,Created,CreatedBy,Updated,UpdatedBy,IsActive,EntityType,AD_Client_ID,AD_Org_ID) VALUES (200168,200061,'9562f4db-97a9-4df5-99d0-b2f5bc0e2b4c','Full Like','LIKE',TO_TIMESTAMP('2013-12-23 13:36:48','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2013-12-23 13:36:48','YYYY-MM-DD HH24:MI:SS'),100,'Y','D',0,0) +; + +SELECT register_migration_script('201312231347_IDEMPIERE-1539.sql') FROM dual +; + diff --git a/org.adempiere.base/src/org/compiere/model/X_AD_InfoColumn.java b/org.adempiere.base/src/org/compiere/model/X_AD_InfoColumn.java index 2f9d7c3010..447c61b2c1 100644 --- a/org.adempiere.base/src/org/compiere/model/X_AD_InfoColumn.java +++ b/org.adempiere.base/src/org/compiere/model/X_AD_InfoColumn.java @@ -30,7 +30,7 @@ public class X_AD_InfoColumn extends PO implements I_AD_InfoColumn, I_Persistent /** * */ - private static final long serialVersionUID = 20171031L; + private static final long serialVersionUID = 20180719L; /** Standard Constructor */ public X_AD_InfoColumn (Properties ctx, int AD_InfoColumn_ID, String trxName) @@ -572,6 +572,8 @@ public class X_AD_InfoColumn extends PO implements I_AD_InfoColumn, I_Persistent public static final String QUERYOPERATOR_LeEq = "<="; /** != = != */ public static final String QUERYOPERATOR_NotEq = "!="; + /** Full Like = LIKE */ + public static final String QUERYOPERATOR_FullLike = "LIKE"; /** Set Query Operator. @param QueryOperator Operator for database query diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoWindow.java index b2a8b53bb2..86ea7ac733 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoWindow.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoWindow.java @@ -987,14 +987,17 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL if (value instanceof Boolean) { pstmt.setString(parameterIndex, ((Boolean) value).booleanValue() ? "Y" : "N"); } else if (value instanceof String) { + StringBuilder valueStr = new StringBuilder(value.toString()); if (queryOperator.equals(X_AD_InfoColumn.QUERYOPERATOR_Like)) { - StringBuilder valueStr = new StringBuilder(value.toString()); if (!valueStr.toString().endsWith("%")) valueStr.append("%"); - pstmt.setString(parameterIndex, valueStr.toString()); - } else { - pstmt.setString(parameterIndex, (String)value); + } else if (queryOperator.equals(X_AD_InfoColumn.QUERYOPERATOR_FullLike)) { + if (!valueStr.toString().startsWith("%")) + valueStr.insert(0, "%"); + if (!valueStr.toString().endsWith("%")) + valueStr.append("%"); } + pstmt.setString(parameterIndex, valueStr.toString()); } else { pstmt.setObject(parameterIndex, value); }