From 05dec148399956c3ac45e3dc38a96d84b3b6ba97 Mon Sep 17 00:00:00 2001
From: hayden-t <hayden-t@users.noreply.github.com>
Date: Fri, 21 Apr 2017 10:19:03 +1000
Subject: [PATCH 1/2] added support for joins on the filter columns, but:

has become mandatory, needs a default ? to keep compatibility with existing script where may not be set.
---
 lib/search.js | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/lib/search.js b/lib/search.js
index 77e5098..5c5d9c8 100644
--- a/lib/search.js
+++ b/lib/search.js
@@ -16,6 +16,7 @@ this.Searcher = (function() {
     this.SEARCH_FILTER_OPERATOR_KEY = 'operator';
     this.SEARCH_FILTER_VALUE_KEY    = 'value';
     this.SEARCH_FILTER_FORMULA_KEY  = 'formula';
+    this.SEARCH_FILTER_JOIN_KEY     = 'join';    
 
     this.SEARCH_COLUMN_NAME_KEY = 'name';
     this.SEARCH_COLUMN_JOIN_KEY = 'join';
@@ -140,6 +141,7 @@ this.Searcher = (function() {
     searchFilterData[this.SEARCH_FILTER_NAME_KEY]     = 'internalidnumber';
     searchFilterData[this.SEARCH_FILTER_OPERATOR_KEY] = 'greaterthan';
     searchFilterData[this.SEARCH_FILTER_VALUE_KEY]    = this.lowerBound;
+    searchFilterData[this.SEARCH_FILTER_JOIN_KEY]     = null;
 
     lowerBoundFilterObject = this.getSearchFilterObject(searchFilterData)
     this.searchFilters[this.lowerBoundFilterIndex] = lowerBoundFilterObject;
@@ -157,7 +159,8 @@ this.Searcher = (function() {
     name     = searchFilterData[this.SEARCH_FILTER_NAME_KEY];
     operator = searchFilterData[this.SEARCH_FILTER_OPERATOR_KEY];
     value    = searchFilterData[this.SEARCH_FILTER_VALUE_KEY];
-    filter = NetsuiteToolkit.searchFilter(name, null, operator, value);
+    join	 = searchFilterData[this.SEARCH_FILTER_JOIN_KEY];
+    filter = NetsuiteToolkit.searchFilter(name, join, operator, value);
     return filter;
   }
 

From 0a0a6adfa75bd243b028af7f3b07da8e427e59c3 Mon Sep 17 00:00:00 2001
From: hayden-t <hayden-t@users.noreply.github.com>
Date: Fri, 21 Apr 2017 11:19:30 +1000
Subject: [PATCH 2/2] added backwards compatibility

now the join can be or not be specified, this not needed in generateLowerBoundFilter function
---
 lib/search.js | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/search.js b/lib/search.js
index 5c5d9c8..02c67b6 100644
--- a/lib/search.js
+++ b/lib/search.js
@@ -141,7 +141,6 @@ this.Searcher = (function() {
     searchFilterData[this.SEARCH_FILTER_NAME_KEY]     = 'internalidnumber';
     searchFilterData[this.SEARCH_FILTER_OPERATOR_KEY] = 'greaterthan';
     searchFilterData[this.SEARCH_FILTER_VALUE_KEY]    = this.lowerBound;
-    searchFilterData[this.SEARCH_FILTER_JOIN_KEY]     = null;
 
     lowerBoundFilterObject = this.getSearchFilterObject(searchFilterData)
     this.searchFilters[this.lowerBoundFilterIndex] = lowerBoundFilterObject;
@@ -160,6 +159,8 @@ this.Searcher = (function() {
     operator = searchFilterData[this.SEARCH_FILTER_OPERATOR_KEY];
     value    = searchFilterData[this.SEARCH_FILTER_VALUE_KEY];
     join	 = searchFilterData[this.SEARCH_FILTER_JOIN_KEY];
+    if (typeof join == 'undefined')join = null;
+    
     filter = NetsuiteToolkit.searchFilter(name, join, operator, value);
     return filter;
   }