3.0.1.6 Addresses
This commit is contained in:
@@ -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))
|
||||
|
||||
@@ -46,7 +46,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
public override long GetAffiliateOwnerAssociationCount(SysId affiliateIdOwner, Sbm.AssociationType associationType = Sbm.AssociationType.Any, bool activeOnly = true)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(affiliateIdOwner) || (int)associationType < 1) return 0;
|
||||
if (!SysId.IsValid(affiliateIdOwner)) return 0;
|
||||
if (Database != null)
|
||||
{
|
||||
SbmAssociation.Params prmAssociation = new SbmAssociation.Params
|
||||
@@ -56,7 +56,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
StatusCat = activeOnly ? SbmAssociation.StatusCat.Active : SbmAssociation.StatusCat.NotDeleted
|
||||
};
|
||||
String filter = GetAssociationQueryFilter(prmAssociation).Concat(" AND ", "(", ")");
|
||||
Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Association), filter);
|
||||
return Database.GetRowCount($"{SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Association)} As {aliasAssociation}", filter);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -77,7 +77,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
StatusCat = activeOnly ? SbmAssociation.StatusCat.Active : SbmAssociation.StatusCat.NotDeleted
|
||||
};
|
||||
String filter = GetAssociationQueryFilter(prmAssociation).Concat(" AND ", "(", ")");
|
||||
Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Association), filter);
|
||||
return Database.GetRowCount($"{SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Association)} As {aliasAssociation}", filter);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -88,7 +88,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
public override long GetAffiliateTargetAssociationCount(SysId affiliateIdTarget, Sbm.AssociationType associationType = Sbm.AssociationType.Any, bool activeOnly = true)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(affiliateIdTarget) || (int)associationType < 1) return 0;
|
||||
if (!SysId.IsValid(affiliateIdTarget)) return 0;
|
||||
if (Database != null)
|
||||
{
|
||||
SbmAssociation.Params prmAssociation = new SbmAssociation.Params
|
||||
@@ -98,7 +98,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
StatusCat = activeOnly ? SbmAssociation.StatusCat.Active : SbmAssociation.StatusCat.NotDeleted
|
||||
};
|
||||
String filter = GetAssociationQueryFilter(prmAssociation).Concat(" AND ", "(", ")");
|
||||
Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Association), filter);
|
||||
return Database.GetRowCount($"{SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Association)} As {aliasAssociation}", filter);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -485,8 +485,8 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
//-------------------------------------------------------------------
|
||||
// Column definitions.
|
||||
private const String aliasAffiliate = "aAffil";
|
||||
private const String aliasAffiliate_AddPrim = "Aff_AddPrim";
|
||||
private const String prefixAffiliate_AddPrim = aliasAffiliate_AddPrim + "_";
|
||||
private const String aliasAffiliate_Address = "Aff_Add";
|
||||
private const String prefixAffiliate_Address = aliasAffiliate_Address + "_";
|
||||
private const String colNameAffiliate_GroupMembers = "GroupMembers";
|
||||
private const String colNameAffiliate_AssociationOwnerCount = "AssocOwnerCount";
|
||||
private const String colNameAffiliate_AssociationTargetCount = "AssocTargetCount";
|
||||
@@ -594,28 +594,28 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
//---------------------------------------------------------------
|
||||
// Addresses Summary.
|
||||
case SbmAffiliate.Column.Address_Summary:
|
||||
SetAffiliateColDfn(columnDfn, "Address", 220, SbmDbDfn.ColumnIdx.Address_Postcode, ColumnAlignment.Default, DataValue.DataType.String, aliasAffiliate_AddPrim);
|
||||
SetAffiliateColDfn(columnDfn, "Address", 220, SbmDbDfn.ColumnIdx.Address_Postcode, ColumnAlignment.Default, DataValue.DataType.String, aliasAffiliate_Address);
|
||||
break;
|
||||
case SbmAffiliate.Column.Address_Line1:
|
||||
SetAffiliateColDfn(columnDfn, "Address", 120, SbmDbDfn.ColumnIdx.Address_Line1, ColumnAlignment.Default, DataValue.DataType.String, aliasAffiliate_AddPrim, prefixAffiliate_AddPrim);
|
||||
SetAffiliateColDfn(columnDfn, "Address", 120, SbmDbDfn.ColumnIdx.Address_Line1, ColumnAlignment.Default, DataValue.DataType.String, aliasAffiliate_Address, prefixAffiliate_Address);
|
||||
break;
|
||||
case SbmAffiliate.Column.Address_Line2:
|
||||
SetAffiliateColDfn(columnDfn, "Line 2", 120, SbmDbDfn.ColumnIdx.Address_Line2, ColumnAlignment.Default, DataValue.DataType.String, aliasAffiliate_AddPrim, prefixAffiliate_AddPrim);
|
||||
SetAffiliateColDfn(columnDfn, "Line 2", 120, SbmDbDfn.ColumnIdx.Address_Line2, ColumnAlignment.Default, DataValue.DataType.String, aliasAffiliate_Address, prefixAffiliate_Address);
|
||||
break;
|
||||
case SbmAffiliate.Column.Address_Line3:
|
||||
SetAffiliateColDfn(columnDfn, "Line 3", 120, SbmDbDfn.ColumnIdx.Address_Line3, ColumnAlignment.Default, DataValue.DataType.String, aliasAffiliate_AddPrim, prefixAffiliate_AddPrim);
|
||||
SetAffiliateColDfn(columnDfn, "Line 3", 120, SbmDbDfn.ColumnIdx.Address_Line3, ColumnAlignment.Default, DataValue.DataType.String, aliasAffiliate_Address, prefixAffiliate_Address);
|
||||
break;
|
||||
case SbmAffiliate.Column.Address_City:
|
||||
SetAffiliateColDfn(columnDfn, "City", 80, SbmDbDfn.ColumnIdx.Address_City, ColumnAlignment.Default, DataValue.DataType.String, aliasAffiliate_AddPrim, prefixAffiliate_AddPrim);
|
||||
SetAffiliateColDfn(columnDfn, "City", 80, SbmDbDfn.ColumnIdx.Address_City, ColumnAlignment.Default, DataValue.DataType.String, aliasAffiliate_Address, prefixAffiliate_Address);
|
||||
break;
|
||||
case SbmAffiliate.Column.Address_Province:
|
||||
SetAffiliateColDfn(columnDfn, "Province", 80, SbmDbDfn.ColumnIdx.Address_Province, ColumnAlignment.Default, DataValue.DataType.String, aliasAffiliate_AddPrim, prefixAffiliate_AddPrim);
|
||||
SetAffiliateColDfn(columnDfn, "Province", 80, SbmDbDfn.ColumnIdx.Address_Province, ColumnAlignment.Default, DataValue.DataType.String, aliasAffiliate_Address, prefixAffiliate_Address);
|
||||
break;
|
||||
case SbmAffiliate.Column.Address_Country:
|
||||
SetAffiliateColDfn(columnDfn, "Country", 80, SbmDbDfn.ColumnIdx.Address_Country, ColumnAlignment.Default, DataValue.DataType.String, aliasAffiliate_AddPrim, prefixAffiliate_AddPrim);
|
||||
SetAffiliateColDfn(columnDfn, "Country", 80, SbmDbDfn.ColumnIdx.Address_Country, ColumnAlignment.Default, DataValue.DataType.String, aliasAffiliate_Address, prefixAffiliate_Address);
|
||||
break;
|
||||
case SbmAffiliate.Column.Address_Postcode:
|
||||
SetAffiliateColDfn(columnDfn, "Postcode", 65, SbmDbDfn.ColumnIdx.Address_Postcode, ColumnAlignment.Center, DataValue.DataType.String, aliasAffiliate_AddPrim, prefixAffiliate_AddPrim);
|
||||
SetAffiliateColDfn(columnDfn, "Postcode", 65, SbmDbDfn.ColumnIdx.Address_Postcode, ColumnAlignment.Center, DataValue.DataType.String, aliasAffiliate_Address, prefixAffiliate_Address);
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------------
|
||||
@@ -998,7 +998,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
private long GetAffiliateCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Affiliate) + " As " + aliasAffiliate, filter);
|
||||
return Database.GetRowCount($"{SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Affiliate)} As {aliasAffiliate}", filter);
|
||||
}
|
||||
public override long GetAffiliateCount(SbmAffiliate.Params prm)
|
||||
{
|
||||
@@ -1123,7 +1123,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_UpdateOn, aliasAffiliate));
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Primary address.
|
||||
// Address - prioritising primary and office addresses.
|
||||
bool hasColsAddPrim = false;
|
||||
if (!hasColsAddPrim) hasColsAddPrim = columns.HasId(SbmAffiliate.Column.Address_Summary);
|
||||
if (!hasColsAddPrim) hasColsAddPrim = columns.HasId(SbmAffiliate.Column.Address_Line1);
|
||||
@@ -1135,30 +1135,27 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
if (!hasColsAddPrim) hasColsAddPrim = columns.HasId(SbmAffiliate.Column.Address_Country);
|
||||
if (hasColsAddPrim)
|
||||
{
|
||||
// Sub-query to identify primary address with lowest Id for each affiliate.
|
||||
DbQuery qryAddPrimMinId = new DbQuery(Database.DbmsType);
|
||||
qryAddPrimMinId.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Address));
|
||||
qryAddPrimMinId.Filters.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Address_ItemType) + "=" + ((int)Sbm.ItemType.Affiliate).ToString());
|
||||
qryAddPrimMinId.Filters.Add(DbQuery.BuildBitMappedFilter(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Address_Flags), SbmAddress.Flag_Primary, true));
|
||||
qryAddPrimMinId.Columns.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Address_ItemType));
|
||||
qryAddPrimMinId.Columns.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Address_ItemId));
|
||||
qryAddPrimMinId.Columns.Add("Min(" + SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Address_Id) + ")", SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Address_Id, false));
|
||||
qryAddPrimMinId.GroupBy.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Address_ItemType));
|
||||
qryAddPrimMinId.GroupBy.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Address_ItemId));
|
||||
// Identify the most suitable Address to display for this Item.
|
||||
// Preferred is the 'Primary' address, but in its absence, the address with the lowest Id.
|
||||
// Sub-query for use in 'Outer Apply'
|
||||
// Select Top 1 * From Address Where [ItemType & ItemId = parent] Order By [Primary flag, type=office etc]
|
||||
DbQuery qryAddrSub = new DbQuery(Database.DbmsType);
|
||||
String aliasAddrSubQuery = "addrSub";
|
||||
qryAddrSub.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Address), aliasAddrSubQuery);
|
||||
qryAddrSub.Columns.Add($"Top 1 *");
|
||||
qryAddrSub.Filters.Add($"{SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_ItemType, aliasAddrSubQuery)}={(int)Sbm.ItemType.Affiliate}");
|
||||
qryAddrSub.Filters.Add($"{SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_ItemId, aliasAddrSubQuery)}={SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Id, aliasAffiliate)}");
|
||||
qryAddrSub.Filters.Add($"{SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Status, aliasAddrSubQuery)}!='{StatusDeleted}'");
|
||||
// Prioritise Primary, Office and lower Id.
|
||||
String colAddrPrimaryFlag = DbQuery.BuildBitMappedValue($"{aliasAddrSubQuery}.{SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Address_Flags)}", SbmAddress.Flag_Primary, true);
|
||||
qryAddrSub.OrderBy.Add($"{colAddrPrimaryFlag} Desc");
|
||||
qryAddrSub.OrderBy.Add($"Case When {SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Type, aliasAddrSubQuery)}={(int)Sbm.AddressType.Office} Then 0 Else 1 End");
|
||||
qryAddrSub.OrderBy.Add($"{SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Id, aliasAddrSubQuery)}");
|
||||
|
||||
// Join to primary address with lowest Id.
|
||||
String aliasAffiliate_AddPrimId = "AddPrimId";
|
||||
DbQueryJoin joinAddPrimId = new DbQueryJoin(DbJoinType.LeftOuter);
|
||||
joinAddPrimId.Table = new StringPair("(" + qryAddPrimMinId.BuildQuery() + ")", aliasAffiliate_AddPrimId);
|
||||
joinAddPrimId.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_ItemType, aliasAffiliate_AddPrimId) + "=" + ((int)Sbm.ItemType.Affiliate).ToString());
|
||||
joinAddPrimId.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_ItemId, aliasAffiliate_AddPrimId) + "=" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Id, aliasAffiliate));
|
||||
query.Joins.Add(joinAddPrimId);
|
||||
|
||||
// Join to the primary address with lowest Id.
|
||||
DbQueryJoin joinAddPrim = new DbQueryJoin(DbJoinType.LeftOuter);
|
||||
joinAddPrim.Table = new StringPair(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Address), aliasAffiliate_AddPrim);
|
||||
joinAddPrim.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Id, aliasAffiliate_AddPrim) + "=" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Id, aliasAffiliate_AddPrimId));
|
||||
query.Joins.Add(joinAddPrim);
|
||||
// Join to the Address with lowest Id, prioritising Primary Addresses and office addresses.
|
||||
DbQueryJoin joinAddr = new DbQueryJoin(DbJoinType.OuterApply);
|
||||
joinAddr.Table = new StringPair($"({qryAddrSub.BuildQuery()})", aliasAffiliate_Address);
|
||||
query.Joins.Add(joinAddr);
|
||||
// Add the Address columns.
|
||||
List<SbmDbDfn.ColumnIdx> addprimaryCols = new List<SbmDbDfn.ColumnIdx>()
|
||||
{
|
||||
@@ -1176,7 +1173,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
SbmDbDfn.ColumnIdx.Address_Email,
|
||||
};
|
||||
foreach (SbmDbDfn.ColumnIdx dbColumn in addprimaryCols)
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(dbColumn, aliasAffiliate_AddPrim), prefixAffiliate_AddPrim + SbmDbDfn.GetColumnName(dbColumn, false));
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(dbColumn, aliasAffiliate_Address), prefixAffiliate_Address + SbmDbDfn.GetColumnName(dbColumn, false));
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
|
||||
@@ -430,12 +430,12 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
case SbmAssociation.Column.Status_Desc: return SbmDbDfn.ColumnIdx.Association_Status;
|
||||
case SbmAssociation.Column.Status_Ind: return SbmDbDfn.ColumnIdx.Unknown;
|
||||
//------------------------------------------------------------------- Association's owner details
|
||||
case SbmAssociation.Column.AffIdOwner: return SbmDbDfn.ColumnIdx.Unknown;
|
||||
case SbmAssociation.Column.Owner_Name: return SbmDbDfn.ColumnIdx.Unknown;
|
||||
case SbmAssociation.Column.AffIdOwner: return SbmDbDfn.ColumnIdx.Association_AffIdOwner;
|
||||
case SbmAssociation.Column.Owner_Name: return SbmDbDfn.ColumnIdx.Affiliate_Name;
|
||||
//------------------------------------------------------------------- Association's target details
|
||||
case SbmAssociation.Column.AffIdTarget: return SbmDbDfn.ColumnIdx.Unknown;
|
||||
case SbmAssociation.Column.AffIdTarget: return SbmDbDfn.ColumnIdx.Association_AffIdTarget;
|
||||
case SbmAssociation.Column.Target_Type: return SbmDbDfn.ColumnIdx.Affiliate_Type;
|
||||
case SbmAssociation.Column.Target_TypeDesc: return SbmDbDfn.ColumnIdx.Unknown;
|
||||
case SbmAssociation.Column.Target_TypeDesc: return SbmDbDfn.ColumnIdx.Affiliate_Name;
|
||||
case SbmAssociation.Column.Target_Name: return SbmDbDfn.ColumnIdx.Affiliate_Name;
|
||||
case SbmAssociation.Column.Target_Nature: return SbmDbDfn.ColumnIdx.Affiliate_Nature;
|
||||
case SbmAssociation.Column.Target_PhoneMain: return SbmDbDfn.ColumnIdx.Affiliate_PhoneMain;
|
||||
@@ -810,7 +810,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
//-----------------------------------------------------------
|
||||
// Target details.
|
||||
case SbmAssociation.Column.AffIdTarget:
|
||||
SetAssociationColDfn(columnDfn, "Target Id", 60, SbmDbDfn.ColumnIdx.Association_AffIdOwner, ColumnAlignment.Right, DataValue.DataType.Long);
|
||||
SetAssociationColDfn(columnDfn, "Target Id", 60, SbmDbDfn.ColumnIdx.Association_AffIdTarget, ColumnAlignment.Right, DataValue.DataType.Long);
|
||||
break;
|
||||
case SbmAssociation.Column.Target_Type:
|
||||
SetAssociationColDfn(columnDfn, "Type", 40, SbmDbDfn.ColumnIdx.Affiliate_Type, ColumnAlignment.Center, DataValue.DataType.Long, aliasAssociation_Affiliate_Target, prefixAssociation_Affiliate_Target);
|
||||
@@ -1732,7 +1732,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
private long GetAssociationCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Association) + " As " + aliasAssociation, filter);
|
||||
return Database.GetRowCount($"{SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Association)} As {aliasAssociation}", filter);
|
||||
}
|
||||
public override long GetAssociationCount(SbmAssociation.Params prm)
|
||||
{
|
||||
@@ -1938,33 +1938,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
if (!hasColsAffTarget) hasColsAffTarget = columns.HasId(SbmAssociation.Column.Target_Website);
|
||||
if (!hasColsAffTarget) hasColsAffTarget = columns.HasId(SbmAssociation.Column.Target_Notes);
|
||||
|
||||
bool hasColsAffTargetAddress = false;
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_Type) || columns.HasId(SbmAssociation.Column.Target_Address_TypeDesc);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_RefExt);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_Name);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_DescBrief);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_Summary);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_Line1);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_Line2);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_City);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_Province);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_Postcode);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_Country);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_Contact);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_Phone);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_Email);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_AccountManagerCode);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_AccountManagerDesc);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_AccountHandlerCode);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_AccountHandlerDesc);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_ContactAreaCode);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_ContactAreaDesc);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_ContactHandlerCode);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_ContactHandlerDesc);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_LastVisitOn);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_NextVisitOn);
|
||||
|
||||
if (hasColsAffTarget || hasColsAffTargetAddress)
|
||||
if (hasColsAffTarget)
|
||||
{
|
||||
// Join to the target affiliate - NB Use an alias to avoid clashing with the owner affiliate.
|
||||
prm.Alias_Affiliate_Target = aliasAssociation_Affiliate_Target;
|
||||
@@ -1995,96 +1969,122 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
affiliateTargetCols.Add(SbmDbDfn.ColumnIdx.Affiliate_Notes);
|
||||
foreach (SbmDbDfn.ColumnIdx dbColumn in affiliateTargetCols)
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(dbColumn, aliasAssociation_Affiliate_Target), prefixAssociation_Affiliate_Target + SbmDbDfn.GetColumnName(dbColumn, false));
|
||||
|
||||
// Target affiliate address columns.
|
||||
if (hasColsAffTargetAddress)
|
||||
{
|
||||
// Join to the target contact's primary address.
|
||||
prm.Alias_Address_Target = aliasAssociation_Target_Address;
|
||||
DbQueryJoin joinTargetAddress = new DbQueryJoin(DbJoinType.LeftOuter);
|
||||
joinTargetAddress.Table = new StringPair(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Address), aliasAssociation_Target_Address);
|
||||
// Address context.
|
||||
if (prm.AddressContext == SbmAssociation.Params.AddressContextType.All)
|
||||
{
|
||||
// Return all addresses for target contact - as separate rows, eg. for export.
|
||||
joinTargetAddress.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_ItemType, aliasAssociation_Target_Address) + "=" + ((int)Sbm.ItemType.Affiliate).ToString());
|
||||
joinTargetAddress.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_ItemId, aliasAssociation_Target_Address) + "=" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Id, aliasAssociation_Affiliate_Target));
|
||||
}
|
||||
else
|
||||
{
|
||||
// Sub-query to identify primary address with lowest Id for each affiliate.
|
||||
DbQuery qryAddPrimMinId = new DbQuery(Database.DbmsType);
|
||||
qryAddPrimMinId.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Address));
|
||||
qryAddPrimMinId.Filters.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Address_ItemType) + "=" + ((int)Sbm.ItemType.Affiliate).ToString());
|
||||
if (prm.AddressContext == SbmAssociation.Params.AddressContextType.Delivery)
|
||||
qryAddPrimMinId.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Type) + "=" + ((int)Sbm.AddressType.Delivery).ToString());
|
||||
else
|
||||
qryAddPrimMinId.Filters.Add(DbQuery.BuildBitMappedFilter(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Address_Flags), SbmAddress.Flag_Primary, true));
|
||||
qryAddPrimMinId.Columns.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Address_ItemType));
|
||||
qryAddPrimMinId.Columns.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Address_ItemId));
|
||||
qryAddPrimMinId.Columns.Add("Min(" + SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Address_Id) + ")", SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Address_Id, false));
|
||||
qryAddPrimMinId.GroupBy.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Address_ItemType));
|
||||
qryAddPrimMinId.GroupBy.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Address_ItemId));
|
||||
|
||||
// Join to target contact's primary address with lowest Id.
|
||||
String aliasAddressMinId = "AssAddMinId";
|
||||
DbQueryJoin joinAddPrimId = new DbQueryJoin(DbJoinType.LeftOuter);
|
||||
joinAddPrimId.Table = new StringPair("(" + qryAddPrimMinId.BuildQuery() + ")", aliasAddressMinId);
|
||||
joinAddPrimId.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_ItemType, aliasAddressMinId) + "=" + ((int)Sbm.ItemType.Affiliate).ToString());
|
||||
joinAddPrimId.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_ItemId, aliasAddressMinId) + "=" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Id, aliasAssociation_Affiliate_Target));
|
||||
query.Joins.Add(joinAddPrimId);
|
||||
|
||||
// Join to target address with lowest Id.
|
||||
joinTargetAddress.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Id, aliasAssociation_Target_Address) + "=" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Id, aliasAddressMinId));
|
||||
}
|
||||
query.Joins.Add(joinTargetAddress);
|
||||
// Add the address columns.
|
||||
List<SbmDbDfn.ColumnIdx> addressTargetCols = new List<SbmDbDfn.ColumnIdx>();
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_Type) || columns.HasId(SbmAssociation.Column.Target_Address_TypeDesc))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Type);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_RefExt))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_RefExt);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_Name))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Name);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_DescBrief))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_DescBrief);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_Summary) || columns.HasId(SbmAssociation.Column.Target_Address_Line1))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Line1);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_Summary) || columns.HasId(SbmAssociation.Column.Target_Address_Line2))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Line2);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_Summary) || columns.HasId(SbmAssociation.Column.Target_Address_Line3))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Line3);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_Summary) || columns.HasId(SbmAssociation.Column.Target_Address_City))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_City);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_Summary) || columns.HasId(SbmAssociation.Column.Target_Address_Province))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Province);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_Summary) || columns.HasId(SbmAssociation.Column.Target_Address_Postcode))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Postcode);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_Summary) || columns.HasId(SbmAssociation.Column.Target_Address_Country))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Country);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_Summary) || columns.HasId(SbmAssociation.Column.Target_Address_Contact))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Contact);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_Summary) || columns.HasId(SbmAssociation.Column.Target_Address_Phone))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Phone);
|
||||
//addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Fax));
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_Summary) || columns.HasId(SbmAssociation.Column.Target_Address_Email))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Email);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_AccountManagerCode) || columns.HasId(SbmAssociation.Column.Target_Address_AccountManagerDesc))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_AccountManagerCode);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_AccountHandlerCode) || columns.HasId(SbmAssociation.Column.Target_Address_AccountHandlerDesc))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_AccountHandlerCode);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_ContactAreaCode) || columns.HasId(SbmAssociation.Column.Target_Address_ContactAreaDesc))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_ContactAreaCode);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_ContactHandlerCode) || columns.HasId(SbmAssociation.Column.Target_Address_ContactHandlerDesc))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_ContactHandlerCode);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_LastVisitOn))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_LastVisitOn);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_NextVisitOn))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_NextVisitOn);
|
||||
foreach (SbmDbDfn.ColumnIdx dbColumn in addressTargetCols)
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(dbColumn, aliasAssociation_Target_Address), prefixAssociation_Target_Address + SbmDbDfn.GetColumnName(dbColumn, false));
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Target address.
|
||||
|
||||
bool hasColsAffTargetAddress = false;
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_Type) || columns.HasId(SbmAssociation.Column.Target_Address_TypeDesc);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_RefExt);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_Name);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_DescBrief);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_Summary);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_Line1);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_Line2);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_City);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_Province);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_Postcode);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_Country);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_Contact);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_Phone);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_Email);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_AccountManagerCode);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_AccountManagerDesc);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_AccountHandlerCode);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_AccountHandlerDesc);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_ContactAreaCode);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_ContactAreaDesc);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_ContactHandlerCode);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_ContactHandlerDesc);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_LastVisitOn);
|
||||
if (!hasColsAffTargetAddress) hasColsAffTargetAddress = columns.HasId(SbmAssociation.Column.Target_Address_NextVisitOn);
|
||||
|
||||
// Target affiliate address columns.
|
||||
if (hasColsAffTargetAddress)
|
||||
{
|
||||
// Join to the target's address(es).
|
||||
prm.Alias_Address_Target = aliasAssociation_Target_Address;
|
||||
DbQueryJoin joinTargetAddress = null;
|
||||
// Address context.
|
||||
if (prm.AddressContext == SbmAssociation.Params.AddressContextType.All)
|
||||
{
|
||||
// Return all addresses for target contact - as separate rows, eg. for export.
|
||||
joinTargetAddress = new DbQueryJoin(DbJoinType.LeftOuter);
|
||||
joinTargetAddress.Table = new StringPair(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Address), aliasAssociation_Target_Address);
|
||||
joinTargetAddress.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_ItemType, aliasAssociation_Target_Address) + "=" + ((int)Sbm.ItemType.Affiliate).ToString());
|
||||
joinTargetAddress.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_ItemId, aliasAssociation_Target_Address) + "=" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Id, aliasAssociation_Affiliate_Target));
|
||||
}
|
||||
else
|
||||
{
|
||||
// Sub-query to identify suitable address for the Association.
|
||||
String aliasAddrSub = "addrSub";
|
||||
DbQuery qryAddrSub = new DbQuery(Database.DbmsType);
|
||||
qryAddrSub.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Address), aliasAddrSub);
|
||||
qryAddrSub.Columns.Add($"Top 1 *");
|
||||
qryAddrSub.Filters.Add($"{SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_ItemType, aliasAddrSub)}={(int)Sbm.ItemType.Affiliate}");
|
||||
qryAddrSub.Filters.Add($"{SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_ItemId, aliasAddrSub)}={SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Id, aliasAssociation_Affiliate_Target)}");
|
||||
if (prm.AddressContext == SbmAssociation.Params.AddressContextType.Delivery)
|
||||
qryAddrSub.Filters.Add($"{SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Type, aliasAddrSub)}={(int)Sbm.AddressType.Delivery}");
|
||||
qryAddrSub.Filters.Add($"{SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Status, aliasAddrSub)}!='{StatusDeleted}'");
|
||||
// Prioritise Primary, Office and lower Id.
|
||||
String colAddrPrimaryFlag = DbQuery.BuildBitMappedValue($"{aliasAddrSub}.{SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Address_Flags)}", SbmAddress.Flag_Primary, true);
|
||||
qryAddrSub.OrderBy.Add($"{colAddrPrimaryFlag} Desc");
|
||||
qryAddrSub.OrderBy.Add($"Case When {SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Type, aliasAddrSub)}={(int)Sbm.AddressType.Office} Then 0 Else 1 End");
|
||||
qryAddrSub.OrderBy.Add($"{SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Id, aliasAddrSub)}");
|
||||
|
||||
// Join to target address with lowest Id.
|
||||
joinTargetAddress = new DbQueryJoin(DbJoinType.OuterApply);
|
||||
joinTargetAddress.Table = new StringPair($"({qryAddrSub.BuildQuery()})", aliasAssociation_Target_Address);
|
||||
}
|
||||
query.Joins.Add(joinTargetAddress);
|
||||
// Add the address columns.
|
||||
List<SbmDbDfn.ColumnIdx> addressTargetCols = new List<SbmDbDfn.ColumnIdx>();
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_Type) || columns.HasId(SbmAssociation.Column.Target_Address_TypeDesc))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Type);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_RefExt))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_RefExt);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_Name))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Name);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_DescBrief))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_DescBrief);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_Summary) || columns.HasId(SbmAssociation.Column.Target_Address_Line1))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Line1);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_Summary) || columns.HasId(SbmAssociation.Column.Target_Address_Line2))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Line2);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_Summary) || columns.HasId(SbmAssociation.Column.Target_Address_Line3))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Line3);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_Summary) || columns.HasId(SbmAssociation.Column.Target_Address_City))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_City);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_Summary) || columns.HasId(SbmAssociation.Column.Target_Address_Province))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Province);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_Summary) || columns.HasId(SbmAssociation.Column.Target_Address_Postcode))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Postcode);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_Summary) || columns.HasId(SbmAssociation.Column.Target_Address_Country))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Country);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_Summary) || columns.HasId(SbmAssociation.Column.Target_Address_Contact))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Contact);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_Summary) || columns.HasId(SbmAssociation.Column.Target_Address_Phone))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Phone);
|
||||
//addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Fax));
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_Summary) || columns.HasId(SbmAssociation.Column.Target_Address_Email))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Email);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_AccountManagerCode) || columns.HasId(SbmAssociation.Column.Target_Address_AccountManagerDesc))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_AccountManagerCode);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_AccountHandlerCode) || columns.HasId(SbmAssociation.Column.Target_Address_AccountHandlerDesc))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_AccountHandlerCode);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_ContactAreaCode) || columns.HasId(SbmAssociation.Column.Target_Address_ContactAreaDesc))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_ContactAreaCode);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_ContactHandlerCode) || columns.HasId(SbmAssociation.Column.Target_Address_ContactHandlerDesc))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_ContactHandlerCode);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_LastVisitOn))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_LastVisitOn);
|
||||
if (columns.HasId(SbmAssociation.Column.Target_Address_NextVisitOn))
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_NextVisitOn);
|
||||
foreach (SbmDbDfn.ColumnIdx dbColumn in addressTargetCols)
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(dbColumn, aliasAssociation_Target_Address), prefixAssociation_Target_Address + SbmDbDfn.GetColumnName(dbColumn, false));
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Member columns
|
||||
bool hasColsMember = false;
|
||||
|
||||
@@ -415,7 +415,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
private long GetSysParamCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SysParam) + " As " + aliasSysParam, filter);
|
||||
return Database.GetRowCount($"{SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SysParam)} As {aliasSysParam}", filter);
|
||||
}
|
||||
public override long GetSysParamCount(SbmSysParam.Params prm)
|
||||
{
|
||||
|
||||
@@ -464,7 +464,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
private long GetSystemAccountCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SystemAccount) + " As " + aliasSystemAccount, filter);
|
||||
return Database.GetRowCount($"{SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SystemAccount)} As {aliasSystemAccount}", filter);
|
||||
}
|
||||
public override long GetSystemAccountCount(SbmSystemAccount.Params prm)
|
||||
{
|
||||
|
||||
@@ -435,7 +435,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
private long GetSystemAccountUserCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SystemAccountUser) + " As " + aliasSystemAccountUser, filter);
|
||||
return Database.GetRowCount($"{SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SystemAccountUser)} As {aliasSystemAccountUser}", filter);
|
||||
}
|
||||
public override long GetSystemAccountUserCount(SbmSystemAccountUser.Params prm)
|
||||
{
|
||||
|
||||
@@ -445,7 +445,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
private long GetSystemUserCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SystemUser) + " As " + aliasSystemUser, filter);
|
||||
return Database.GetRowCount($"{SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SystemUser)} As {aliasSystemUser}", filter);
|
||||
}
|
||||
public override long GetSystemUserCount(SbmSystemUser.Params prm)
|
||||
{
|
||||
|
||||
@@ -758,7 +758,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
private long GetAssetCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAsset) + " As " + aliasAsset, filter);
|
||||
return Database.GetRowCount($"{SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAsset)} As {aliasAsset}", filter);
|
||||
}
|
||||
public override long GetAssetCount(SbmAsset.Params prm)
|
||||
{
|
||||
|
||||
@@ -388,7 +388,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
private long GetAssetProcessCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAssetProcess) + " As " + aliasAssetProcess, filter);
|
||||
return Database.GetRowCount($"{SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAssetProcess)} As {aliasAssetProcess}", filter);
|
||||
}
|
||||
public override long GetAssetProcessCount(SbmAssetProcess.Params prm)
|
||||
{
|
||||
|
||||
@@ -151,7 +151,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
{
|
||||
List<String> filter = new List<String>();
|
||||
filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaVehicleFeature_VehicleId) + "=" + vehicleId.ToString());
|
||||
Database.GetRowCount(tableVehicleFeature, filter.Concat(" AND ", "(", ")"));
|
||||
return Database.GetRowCount(tableVehicleFeature, filter.Concat(" AND ", "(", ")"));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
{
|
||||
List<String> filter = new List<String>();
|
||||
filter.Add($"{SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaVehicleFeature_VehicleId)}={SysId.ToLong(vehicleClassId)}");
|
||||
Database.GetRowCount(tableVehicle, filter.Concat(" AND ", "(", ")"));
|
||||
return Database.GetRowCount(tableVehicle, filter.Concat(" AND ", "(", ")"));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -672,7 +672,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
private long GetVehicleClassCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaVehicleClass) + " As " + aliasVehicleClass, filter);
|
||||
return Database.GetRowCount($"{SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaVehicleClass)} As {aliasVehicleClass}", filter);
|
||||
}
|
||||
public override long GetVehicleClassCount(SbmVehicleClass.Params prm)
|
||||
{
|
||||
|
||||
@@ -459,7 +459,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
private long GetVehicleEventCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaVehicleEvent) + " As " + aliasVehicleEvent, filter);
|
||||
return Database.GetRowCount($"{SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaVehicleEvent)} As {aliasVehicleEvent}", filter);
|
||||
}
|
||||
public override long GetVehicleEventCount(SbmVehicleEvent.Params prm)
|
||||
{
|
||||
|
||||
@@ -508,7 +508,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
private long GetVehicleFeatureCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaVehicleFeature) + " As " + aliasVehicleFeature, filter);
|
||||
return Database.GetRowCount($"{SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaVehicleFeature)} As {aliasVehicleFeature}", filter);
|
||||
}
|
||||
public override long GetVehicleFeatureCount(SbmVehicleFeature.Params prm)
|
||||
{
|
||||
|
||||
@@ -2651,7 +2651,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
private long GetCommodityCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Commodity) + " As " + aliasCommodity, filter);
|
||||
return Database.GetRowCount($"{SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Commodity)} As {aliasCommodity}", filter);
|
||||
}
|
||||
public override long GetCommodityCount(SbmCommodity.Params prm)
|
||||
{
|
||||
|
||||
@@ -574,7 +574,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
private long GetCommodityCustomerCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.CommodityCustomer) + " As " + aliasCommodityCustomer, filter);
|
||||
return Database.GetRowCount($"{SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.CommodityCustomer)} As {aliasCommodityCustomer}", filter);
|
||||
}
|
||||
public override long GetCommodityCustomerCount(SbmCommodityCustomer.Params prm)
|
||||
{
|
||||
|
||||
@@ -475,7 +475,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
private long GetCommoditySupplierCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.CommoditySupplier) + " As " + aliasCommoditySupplier, filter);
|
||||
return Database.GetRowCount($"{SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.CommoditySupplier)} As {aliasCommoditySupplier}", filter);
|
||||
}
|
||||
public override long GetCommoditySupplierCount(SbmCommoditySupplier.Params prm)
|
||||
{
|
||||
|
||||
@@ -562,7 +562,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
private long GetContainerCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Container) + " As " + aliasContainer, filter);
|
||||
return Database.GetRowCount($"{SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Container)} As {aliasContainer}", filter);
|
||||
}
|
||||
public override long GetContainerCount(SbmContainer.Params prm)
|
||||
{
|
||||
|
||||
@@ -644,7 +644,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
private long GetContainerItemCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.ContainerItem) + " As " + aliasContainerItem, filter);
|
||||
return Database.GetRowCount($"{SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.ContainerItem)} As {aliasContainerItem}", filter);
|
||||
}
|
||||
public override long GetContainerItemCount(SbmContainerItem.Params prm)
|
||||
{
|
||||
|
||||
@@ -944,7 +944,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
private long GetPortfolioItemCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.PortfolioItem) + " As " + aliasPortfolioItem, filter);
|
||||
return Database.GetRowCount($"{SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.PortfolioItem)} As {aliasPortfolioItem}", filter);
|
||||
}
|
||||
public override long GetPortfolioItemCount(SbmPortfolioItem.Params prm)
|
||||
{
|
||||
|
||||
@@ -403,7 +403,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
private long GetItemBatchCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.ItemBatch) + " As " + aliasItemBatch, filter);
|
||||
return Database.GetRowCount($"{SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.ItemBatch)} As {aliasItemBatch}", filter);
|
||||
}
|
||||
public override long GetItemBatchCount(SbmItemBatch.Params prm)
|
||||
{
|
||||
|
||||
@@ -527,7 +527,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
private long GetItemLinkCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.ItemLink) + " As " + aliasItemLink, filter);
|
||||
return Database.GetRowCount($"{SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.ItemLink)} As " + aliasItemLink, filter);
|
||||
}
|
||||
public override long GetItemLinkCount(SbmItemLink.Params prm)
|
||||
{
|
||||
|
||||
@@ -465,7 +465,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
private long GetPriceCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaPrice) + " As " + aliasPrice, filter);
|
||||
return Database.GetRowCount($"{SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaPrice)} As {aliasPrice}", filter);
|
||||
}
|
||||
public override long GetPriceCount(SbmPrice.Params prm)
|
||||
{
|
||||
|
||||
@@ -437,7 +437,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
private long GetPriceSetCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaPriceSet) + " As " + aliasPriceSet, filter);
|
||||
return Database.GetRowCount($"{SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaPriceSet)} As {aliasPriceSet}", filter);
|
||||
}
|
||||
public override long GetPriceSetCount(SbmPriceSet.Params prm)
|
||||
{
|
||||
|
||||
@@ -601,7 +601,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
private long GetProcessCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Process) + " As " + aliasProcess, filter);
|
||||
return Database.GetRowCount($"{SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Process)} As {aliasProcess}", filter);
|
||||
}
|
||||
public override long GetProcessCount(SbmProcess.Params prm)
|
||||
{
|
||||
|
||||
@@ -458,7 +458,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
private long GetLocationCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Location) + " As " + aliasLocation, filter);
|
||||
return Database.GetRowCount($"{SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Location)} As {aliasLocation}", filter);
|
||||
}
|
||||
public override long GetLocationCount(SbmLocation.Params prm)
|
||||
{
|
||||
|
||||
@@ -793,7 +793,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
private long GetMovementCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Movement) + " As " + aliasMovement, filter);
|
||||
return Database.GetRowCount($"{SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Movement)} As {aliasMovement}", filter);
|
||||
}
|
||||
public override long GetMovementCount(SbmMovement.Params prm)
|
||||
{
|
||||
|
||||
@@ -524,7 +524,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
private long GetStockLevelCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.StockLevel) + " As " + aliasStockLevel, filter);
|
||||
return Database.GetRowCount($"{SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.StockLevel)} As {aliasStockLevel}", filter);
|
||||
}
|
||||
public override long GetStockLevelCount(SbmStockLevel.Params prm)
|
||||
{
|
||||
|
||||
@@ -923,7 +923,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
private long GetConstituentCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Constituent) + " As " + aliasConstituent, filter);
|
||||
return Database.GetRowCount($"{SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Constituent)} As {aliasConstituent}", filter);
|
||||
}
|
||||
public override long GetConstituentCount(SbmConstituent.Params prm)
|
||||
{
|
||||
|
||||
@@ -2323,7 +2323,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
private long GetRequirementCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Requirement) + " As " + aliasRequirement, filter);
|
||||
return Database.GetRowCount($"{SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Requirement)} As {aliasRequirement}", filter);
|
||||
}
|
||||
public override long GetRequirementCount(SbmRequirement.Params prm)
|
||||
{
|
||||
|
||||
@@ -466,7 +466,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
// Clear addresses.
|
||||
if (!HasErrorState())
|
||||
{
|
||||
if (!AccountMgr.ClearAddressesFor(Sbm.ItemType.Transaction, new ItemId()))
|
||||
if (!AccountMgr.ClearAddressesFor(transaction.GetItemId()))
|
||||
SetErrorState("failed to clear addresses - " + AccountMgr.ErrorStateMessage);
|
||||
}
|
||||
// Clear any references to this transaction from other transactions:
|
||||
@@ -1855,7 +1855,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
private long GetTransactionCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Transaction) + " As " + aliasTransaction, filter);
|
||||
return Database.GetRowCount($"{SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Transaction)} As {aliasTransaction}", filter);
|
||||
}
|
||||
public override long GetTransactionCount(SbmTransaction.Params prm)
|
||||
{
|
||||
@@ -2052,30 +2052,43 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
affiliateTargetCols.Add(SbmDbDfn.ColumnIdx.Affiliate_PhoneAlt);
|
||||
foreach (SbmDbDfn.ColumnIdx dbColumn in affiliateTargetCols)
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(dbColumn, aliasTransaction_AffiliateTarget), prefixTransaction_AffiliateTarget + SbmDbDfn.GetColumnName(dbColumn, false));
|
||||
//---------------------------------------------------------------------
|
||||
// Target Address.
|
||||
if (hasTgtAddrCols)
|
||||
{
|
||||
// Join to the Primary Target Address.
|
||||
prm.TableAlias_AddressTarget = aliasTransaction_AddressTarget;
|
||||
DbQueryJoin joinAddr = new DbQueryJoin(DbJoinType.LeftOuter);
|
||||
joinAddr.Table = new StringPair(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Address), aliasTransaction_AddressTarget);
|
||||
joinAddr.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_ItemType, aliasTransaction_AddressTarget, false) + "=" + Sbm.ItemType.Affiliate.ToString());
|
||||
joinAddr.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_ItemId, aliasTransaction_AddressTarget, false) + "=" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Id, aliasTransaction_AffiliateTarget, false));
|
||||
joinAddr.Filters.Add(DbQuery.BuildBitMappedFilter(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Flags, aliasTransaction_AddressTarget, false), SbmAddress.Flag_Primary, true));
|
||||
query.Joins.Add(joinAddr);
|
||||
// Add the address columns.
|
||||
List<SbmDbDfn.ColumnIdx> addressTargetCols = new List<SbmDbDfn.ColumnIdx>();
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Name);
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Line1);
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Line2);
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Line3);
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_City);
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Province);
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Postcode);
|
||||
foreach (SbmDbDfn.ColumnIdx dbColumn in addressTargetCols)
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(dbColumn, aliasTransaction_AddressTarget), prefixTransaction_AddressTarget + SbmDbDfn.GetColumnName(dbColumn, false));
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------
|
||||
// Target Address.
|
||||
if (hasTgtAddrCols)
|
||||
{
|
||||
// Identify the most suitable Address to display for this Item.
|
||||
// Preferred is the 'Primary' address, but in its absence, the address with the lowest Id.
|
||||
// Sub-query for use in 'Outer Apply'
|
||||
// Select Top 1 * From Address Where [ItemType & ItemId = parent] Order By [Primary flag, type=office etc]
|
||||
DbQuery qryAddrSub = new DbQuery(Database.DbmsType);
|
||||
String aliasAddrSubQuery = "addrSub";
|
||||
qryAddrSub.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Address), aliasAddrSubQuery);
|
||||
qryAddrSub.Columns.Add($"Top 1 *");
|
||||
qryAddrSub.Filters.Add($"{SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_ItemType, aliasAddrSubQuery)}={(int)Sbm.ItemType.Affiliate}");
|
||||
qryAddrSub.Filters.Add($"{SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_ItemId, aliasAddrSubQuery)}={SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Association_AffIdTarget, aliasTransaction_Association)}");
|
||||
qryAddrSub.Filters.Add($"{SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Status, aliasAddrSubQuery)}!='{StatusDeleted}'");
|
||||
// Prioritise Primary, Office and lower Id.
|
||||
String colAddrPrimaryFlag = DbQuery.BuildBitMappedValue($"{aliasAddrSubQuery}.{SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Address_Flags)}", SbmAddress.Flag_Primary, true);
|
||||
qryAddrSub.OrderBy.Add($"{colAddrPrimaryFlag} Desc");
|
||||
qryAddrSub.OrderBy.Add($"Case When {SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Type, aliasAddrSubQuery)}={(int)Sbm.AddressType.Office} Then 0 Else 1 End");
|
||||
qryAddrSub.OrderBy.Add($"{SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Id, aliasAddrSubQuery)}");
|
||||
|
||||
// Join to the Address with lowest Id, prioritising Primary Addresses and office addresses.
|
||||
DbQueryJoin joinAddr = new DbQueryJoin(DbJoinType.OuterApply);
|
||||
joinAddr.Table = new StringPair($"({qryAddrSub.BuildQuery()})", aliasTransaction_AddressTarget);
|
||||
query.Joins.Add(joinAddr);
|
||||
// Add the address columns.
|
||||
List<SbmDbDfn.ColumnIdx> addressTargetCols = new List<SbmDbDfn.ColumnIdx>();
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Name);
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Line1);
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Line2);
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Line3);
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_City);
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Province);
|
||||
addressTargetCols.Add(SbmDbDfn.ColumnIdx.Address_Postcode);
|
||||
foreach (SbmDbDfn.ColumnIdx dbColumn in addressTargetCols)
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(dbColumn, aliasTransaction_AddressTarget), prefixTransaction_AddressTarget + SbmDbDfn.GetColumnName(dbColumn, false));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user