This commit is contained in:
2021-10-17 13:12:05 +01:00
parent 7417981a34
commit 057b75462e
20 changed files with 326 additions and 155 deletions
@@ -408,15 +408,17 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
if (!StringUtil.IsEmpty(prm.OrganisationFilter))
{
// Split filter into words.
List<String> filterWords = prm.OrganisationFilter.Split((char[])null).ToList();
List<String> searchFilter = new List<String>();
List<String> filterWords = prm.OrganisationFilter.Split((char[])null, StringSplitOptions.RemoveEmptyEntries).ToList();
filterWords.RemoveDuplicatesCI();
filterWords.RemoveBlanks();
foreach (String filterWord in filterWords)
{
List<String> organisationFilter = new List<String>();
organisationFilter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.Organisation_Name, aliasOrganisation) + " Like '%" + DbQuery.FormatForLike(filterWord, true) + "%'");
filter.Add(organisationFilter.Concat(" OR ", "(", ")"));
searchFilter.Add(organisationFilter.Concat(" OR ", "(", ")"));
}
filter.Add(searchFilter.Concat(" AND ", "(", ")"));
}
// Sport Ids.
@@ -13,6 +13,7 @@ using System.Data.Common;
using System.Text;
using Saxonite.Net.Standard.Base.App;
using Sarand.Net.Standard.Base.Utils;
using System.Linq;
namespace Saxonite.Net.Standard.Dbas.Mgr
{
@@ -420,6 +421,10 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
if (!idsExcluded.IsEmpty())
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemAddress_Id, aliasItemAddress) + " NOT IN (" + idsExcluded + ")");
// Address type.
if (prm.AddressType > 0)
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemAddress_AddressType, aliasItemAddress) + "=" + ((int)prm.AddressType).ToString());
// Item Ids.
if (!prm.ItemIdsIncluded.IsEmpty())
{
@@ -436,6 +441,28 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
filter.Add(itemIdFilters.Concat(" OR ", "(", ")"));
}
// Address search.
if (!StringUtil.IsEmpty(prm.AddressSearch))
{
// Split filter into words.
List<String> searchFilter = new List<String>();
List<String> filterWords = prm.AddressSearch.Split((char[])null, StringSplitOptions.RemoveEmptyEntries).ToList();
filterWords.RemoveDuplicatesCI();
filterWords.RemoveBlanks();
foreach (String filterWord in filterWords)
{
List<String> organisationFilter = new List<String>();
organisationFilter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemAddress_Line1, aliasItemAddress) + " LIKE '%" + DbQuery.FormatForLike(filterWord) + "%'");
organisationFilter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemAddress_Line2, aliasItemAddress) + " LIKE '%" + DbQuery.FormatForLike(filterWord) + "%'");
organisationFilter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemAddress_Line3, aliasItemAddress) + " LIKE '%" + DbQuery.FormatForLike(filterWord) + "%'");
organisationFilter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemAddress_Town, aliasItemAddress) + " LIKE '%" + DbQuery.FormatForLike(filterWord) + "%'");
organisationFilter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemAddress_Province, aliasItemAddress) + " LIKE '%" + DbQuery.FormatForLike(filterWord) + "%'");
organisationFilter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemAddress_PostalCode, aliasItemAddress) + " LIKE '%" + DbQuery.FormatForLike(filterWord) + "%'");
searchFilter.Add(organisationFilter.Concat(" OR ", "(", ")"));
}
filter.Add(searchFilter.Concat(" AND ", "(", ")"));
}
// Notes.
if (!StringUtil.IsEmpty(prm.NotesPartial))
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemAddress_Notes, aliasItemAddress) + " LIKE '%" + DbQuery.FormatForLike(prm.NotesPartial) + "%'");