3.0.1.6 Addresses

This commit is contained in:
Andy Howard
2025-05-05 16:00:32 +01:00
parent 047f9db390
commit 527943b861
88 changed files with 3261 additions and 370 deletions
@@ -15,6 +15,7 @@ using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
using System.Text.RegularExpressions;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
{
@@ -53,10 +54,10 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
DbQuery qry = new DbQuery(Database.DbmsType);
qry.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Address));
qry.Columns.Add(colAddress_Id);
qry.Filters.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Address_ItemType) + "=" + ((int)addressPrimary.ItemType).ToString());
qry.Filters.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Address_ItemId) + "=" + addressPrimary.ItemId.ToString());
qry.Filters.Add(colAddress_Id + "<>" + addressPrimaryId.ToString());
qry.Filters.Add(GetPrimaryAddressFilter(true, aliasAddress));
qry.Filters.Add($"{SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Address_ItemType)}={(int)addressPrimary.ItemType}");
qry.Filters.Add($"{SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Address_ItemId)}={SysId.ToLong(addressPrimary.ItemId)}");
qry.Filters.Add($"{colAddress_Id}<>{SysId.ToLong(addressPrimaryId)}");
qry.Filters.Add(GetPrimaryAddressFilter(true, ""));
using (DbResultSet dbResultSet = DbResultSet_DataReader.ExecuteQuery(Database, qry.BuildQuery()))
{
@@ -67,7 +68,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
if (address != null && address.Id != addressPrimaryId && address.IsPrimary)
{
address.IsPrimary = false;
if (!UpdateAddress(address, dbUpdateInfo)) SetErrorState("failed to update adress - " + ErrorState);
if (!UpdateAddress(address, dbUpdateInfo)) SetErrorState($"failed to update adress - {ErrorState}");
}
}
}
@@ -426,6 +427,9 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
SetAddressColDfn(columnDfn, "Desc Brief", 120, SbmDbDfn.ColumnIdx.Address_DescBrief);
break;
/*------------------------------------*/
case SbmAddress.Column.Caption:
SetAddressColDfn(columnDfn, "Address", 240, SbmDbDfn.ColumnIdx.Unknown);
break;
case SbmAddress.Column.Summary:
SetAddressColDfn(columnDfn, "Address", 240, SbmDbDfn.ColumnIdx.Unknown);
break;
@@ -481,6 +485,9 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
case SbmAddress.Column.Notes:
SetAddressColDfn(columnDfn, "Notes", 200, SbmDbDfn.ColumnIdx.Address_Notes);
break;
case SbmAddress.Column.Flags:
SetAddressColDfn(columnDfn, "Flags", 50, SbmDbDfn.ColumnIdx.Address_Flags, ColumnAlignment.Center, DataValue.DataType.Long);
break;
case SbmAddress.Column.Status:
SetAddressColDfn(columnDfn, "Status", 50, SbmDbDfn.ColumnIdx.Address_Status, ColumnAlignment.Center);
break;
@@ -520,14 +527,36 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
if (prm.IdsExcluded.HasValidIds())
filter.Add($"{colId} NOT IN ({prm.IdsExcluded.Concat(",")})");
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//---------------------------------------------------------------
String colRefExt = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_RefExt, aliasAddress);
String colName = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Name, aliasAddress);
String colDescBrief = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_DescBrief, aliasAddress);
String colLine1 = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Line1, aliasAddress);
String colLine2 = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Line2, aliasAddress);
String colLine3 = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Line3, aliasAddress);
String colCity = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_City, aliasAddress);
String colProvince = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Province, aliasAddress);
String colPostcode = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Postcode, aliasAddress);
if (!StringUtil.IsBlank(prm.Search))
{
foreach (String search in Regex.Split(prm.Search, "[\\s,;\\-+]+"))
{
if (StringUtil.IsBlank(search)) continue;
String searchForLike = DbQuery.FormatForLike(search, true);
List<String> searchFilter = new List<string>();
foreach (String col in new String[] { colRefExt, colName, colDescBrief, colLine1, colLine2, colLine3, colCity, colProvince, colPostcode })
searchFilter.Add($"{col} LIKE '%{searchForLike}%'");
filter.Add(searchFilter.Concat(" OR ", "(", ")"));
}
}
//---------------------------------------------------------------
// Address Type.
String colAddress_Type = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Type, aliasAddress);
if (prm.AddressType > 0)
filter.Add(colAddress_Type + "='" + ((int)prm.AddressType).ToString());
//--------------------------------------------------------------- -
// ItemType & ItemId.
// Item Id.
if (ItemId.IsValid(prm.ItemId))
{
List<String> filterItemTypes = new List<String>();
@@ -547,11 +576,12 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
}
//---------------------------------------------------------------
// AffIdOwner.
// Affiliate Id Owner.
String colAddress_AffIdOwner = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_AffIdOwner, aliasAddress);
if (SysId.IsValid(prm.AffiliateIdOwner))
filter.Add(colAddress_AffIdOwner + "=" + SysId.ToString(prm.AffiliateIdOwner));
// AddIdRef.
// Address Id Ref.
String colAddress_AddIdRef = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_AddIdRef, aliasAddress);
if (SysId.IsValid(prm.AddressIdRef))
filter.Add(colAddress_AddIdRef + "=" + SysId.ToString(prm.AddressIdRef));
@@ -668,7 +698,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
public String GetPrimaryAddressFilter(bool match, String aliasTable)
{
DbQuery qry = new DbQuery(Database.DbmsType);
return DbQuery.BuildBitMappedFilter(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Flags, aliasAddress), SbmAddress.Flag_Primary, match);
return DbQuery.BuildBitMappedFilter(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Flags, aliasTable), SbmAddress.Flag_Primary, match);
}
// Address sort columns.
@@ -710,7 +740,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
private long GetAddressCount(String filter)
{
ClearErrorState();
return Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Address) + " As " + aliasAddress, filter);
return Database.GetRowCount($"{SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Address)} As {aliasAddress}", filter);
}
public override long GetAddressCount(SbmAddress.Params prm)
{
@@ -759,7 +789,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
//-------------------------------------------------------------------
// Address query execution.
public override DbResultSet AddressExecuteQuery(List<ColumnDfn> columns, SbmAddress.Params prm)
public override DbResultSet ExecuteAddressQuery(List<ColumnDfn> columns, SbmAddress.Params prm)
{
ClearErrorState();
@@ -780,19 +810,19 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
if (columns.HasId(SbmAddress.Column.DescBrief))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_DescBrief, aliasAddress));
if (columns.HasId(SbmAddress.Column.Line1) || columns.HasId(SbmAddress.Column.Summary))
if (columns.HasId(SbmAddress.Column.Line1) || columns.HasId(SbmAddress.Column.Caption) || columns.HasId(SbmAddress.Column.Summary))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Line1, aliasAddress));
if (columns.HasId(SbmAddress.Column.Line2) || columns.HasId(SbmAddress.Column.Summary))
if (columns.HasId(SbmAddress.Column.Line2) || columns.HasId(SbmAddress.Column.Caption) || columns.HasId(SbmAddress.Column.Summary))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Line2, aliasAddress));
if (columns.HasId(SbmAddress.Column.Line3) || columns.HasId(SbmAddress.Column.Summary))
if (columns.HasId(SbmAddress.Column.Line3) || columns.HasId(SbmAddress.Column.Caption) || columns.HasId(SbmAddress.Column.Summary))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Line3, aliasAddress));
if (columns.HasId(SbmAddress.Column.City) || columns.HasId(SbmAddress.Column.Summary))
if (columns.HasId(SbmAddress.Column.City) || columns.HasId(SbmAddress.Column.Caption) || columns.HasId(SbmAddress.Column.Summary))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_City, aliasAddress));
if (columns.HasId(SbmAddress.Column.Province) || columns.HasId(SbmAddress.Column.Summary))
if (columns.HasId(SbmAddress.Column.Province) || columns.HasId(SbmAddress.Column.Caption) || columns.HasId(SbmAddress.Column.Summary))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Province, aliasAddress));
if (columns.HasId(SbmAddress.Column.Postcode) || columns.HasId(SbmAddress.Column.Summary))
if (columns.HasId(SbmAddress.Column.Postcode) || columns.HasId(SbmAddress.Column.Caption) || columns.HasId(SbmAddress.Column.Summary))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Postcode, aliasAddress));
if (columns.HasId(SbmAddress.Column.Country) || columns.HasId(SbmAddress.Column.Summary))
if (columns.HasId(SbmAddress.Column.Country) || columns.HasId(SbmAddress.Column.Caption) || columns.HasId(SbmAddress.Column.Summary))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Country, aliasAddress));
if (columns.HasId(SbmAddress.Column.Contact))
@@ -811,6 +841,8 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
// Common Properties
if (columns.HasId(SbmAddress.Column.Notes))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Notes, aliasAddress));
if (columns.HasId(SbmAddress.Column.Flags))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Flags, aliasAddress));
if (columns.HasId(SbmAddress.Column.Status) || columns.HasId(SbmAddress.Column.Status_Desc) || columns.HasId(SbmAddress.Column.Status_Ind))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Status, aliasAddress));
if (columns.HasId(SbmAddress.Column.CreateOn_Date))