Contacts
This commit is contained in:
@@ -91,7 +91,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
if (!SysId.IsValid(affiliateId)) return "";
|
||||
// Filter to target specified contact.
|
||||
SbmAffiliate.Params prmAffiliate = new SbmAffiliate.Params();
|
||||
prmAffiliate.IncludedIds.Add(affiliateId);
|
||||
prmAffiliate.IdsIncluded.Add(affiliateId);
|
||||
prmAffiliate.StatusCat = SbmAffiliate.StatusCat.Any;
|
||||
if (GetAffiliateCount(prmAffiliate) != 1) return "";
|
||||
// Columns to query.
|
||||
@@ -115,7 +115,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
if (!SysId.IsValid(associationIdOwner)) return "";
|
||||
// Filter to target specified association.
|
||||
SbmAssociation.Params prmAssociation = new SbmAssociation.Params();
|
||||
prmAssociation.IncludedIds.Add(associationIdOwner);
|
||||
prmAssociation.IdsIncluded.Add(associationIdOwner);
|
||||
prmAssociation.StatusCat = SbmAssociation.StatusCat.Any;
|
||||
if (GetAssociationCount(prmAssociation) != 1) return "";
|
||||
// Columns to query.
|
||||
@@ -139,7 +139,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
if (!SysId.IsValid(associationIdTarget)) return "";
|
||||
// Filter to target specified association.
|
||||
SbmAssociation.Params prmAssociation = new SbmAssociation.Params();
|
||||
prmAssociation.IncludedIds.Add(associationIdTarget);
|
||||
prmAssociation.IdsIncluded.Add(associationIdTarget);
|
||||
prmAssociation.StatusCat = SbmAssociation.StatusCat.Any;
|
||||
if (GetAssociationCount(prmAssociation) != 1) return "";
|
||||
// Columns to query.
|
||||
@@ -369,6 +369,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
private static readonly String aliasAffiliate_AddPrim = "Aff_AddPrim";
|
||||
private static readonly String prefixAffiliate_AddPrim = aliasAffiliate_AddPrim + "_";
|
||||
private static readonly String colNameAffiliate_GroupMembers = "GroupMembers";
|
||||
private static readonly String colNameAffiliate_AssociationCount = "AssocCount";
|
||||
|
||||
// Column definition population.
|
||||
private void SetAffiliateColDfn
|
||||
@@ -501,6 +502,10 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
SetAffiliateColDfn(columnDfn, "Members", 90, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Right);
|
||||
columnDfn.DataName = colNameAffiliate_GroupMembers;
|
||||
break;
|
||||
case SbmAffiliate.Column.Association_Count:
|
||||
SetAffiliateColDfn(columnDfn, "Associations", 90, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Right);
|
||||
columnDfn.DataName = colNameAffiliate_AssociationCount;
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------------
|
||||
// Common properties.
|
||||
@@ -539,31 +544,29 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
{
|
||||
List<String> filter = new List<String>();
|
||||
|
||||
// Affiliate Id.
|
||||
// Item Id.
|
||||
String colAffiliate_Id = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Id, aliasAffiliate);
|
||||
String includedIds = prm.IncludedIds.Concat(",");
|
||||
if (!includedIds.IsEmpty())
|
||||
filter.Add(colAffiliate_Id + " IN (" + includedIds + ")");
|
||||
String excludedIds = prm.ExcludedIds.Concat(",");
|
||||
if (!excludedIds.IsEmpty())
|
||||
filter.Add(colAffiliate_Id + " NOT IN (" + excludedIds + ")");
|
||||
if (prm.IdsIncluded.HasValidIds())
|
||||
filter.Add($"{colAffiliate_Id} IN ({prm.IdsIncluded.Concat(",")})");
|
||||
if (prm.IdsExcluded.HasValidIds() )
|
||||
filter.Add($"{colAffiliate_Id} NOT IN ({prm.IdsExcluded.Concat(",")})");
|
||||
|
||||
// Type.
|
||||
String colAffiliate_Type = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Type, aliasAffiliate);
|
||||
// Affiliate type - Individual.
|
||||
if (prm.AffiliateType == Sbm.AffiliateType.AnyOrganisation)
|
||||
filter.Add(colAffiliate_Type + "<>" + ((int)Sbm.AffiliateType.Individual).ToString());
|
||||
filter.Add($"{colAffiliate_Type}<>{(int)Sbm.AffiliateType.Individual}");
|
||||
// Affiliate type - ContactGroup.
|
||||
else if (prm.AffiliateType == Sbm.AffiliateType.AnyContact)
|
||||
filter.Add(colAffiliate_Type + "<>" + ((int)Sbm.AffiliateType.ContactGroup).ToString());
|
||||
filter.Add($"{colAffiliate_Type}<>{(int)Sbm.AffiliateType.ContactGroup}");
|
||||
// Affiliate type.
|
||||
else if (prm.AffiliateType != Sbm.AffiliateType.Any && prm.AffiliateType != Sbm.AffiliateType.Unknown)
|
||||
filter.Add(colAffiliate_Type + "=" + ((int)prm.AffiliateType).ToString());
|
||||
filter.Add($"{colAffiliate_Type}={(int)prm.AffiliateType}");
|
||||
|
||||
// Parent Id?
|
||||
// Parent Id.
|
||||
String colAffiliate_AffIdParent = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_AffIdParent, aliasAffiliate);
|
||||
if (SysId.IsValid(prm.AffiliateIdParent))
|
||||
filter.Add(colAffiliate_AffIdParent + "=" + SysId.ToString(prm.AffiliateIdParent));
|
||||
filter.Add($"{colAffiliate_AffIdParent}={SysId.ToString(prm.AffiliateIdParent)}");
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Common columns.
|
||||
@@ -912,67 +915,67 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
query.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Affiliate), aliasAffiliate);
|
||||
|
||||
// Affiliate Properties - add columns as defined in query list.
|
||||
if (columns.HasId((int)SbmAffiliate.Column.Id))
|
||||
if (columns.HasId(SbmAffiliate.Column.Id))
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Id, aliasAffiliate));
|
||||
if (columns.HasId((int)SbmAffiliate.Column.Type) || columns.HasId((int)SbmAffiliate.Column.Type_Code) || columns.HasId((int)SbmAffiliate.Column.Type_Desc))
|
||||
if (columns.HasId(SbmAffiliate.Column.Type) || columns.HasId(SbmAffiliate.Column.Type_Code) || columns.HasId(SbmAffiliate.Column.Type_Desc))
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Type, aliasAffiliate));
|
||||
if (columns.HasId((int)SbmAffiliate.Column.Name))
|
||||
if (columns.HasId(SbmAffiliate.Column.Name))
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Name, aliasAffiliate));
|
||||
if (columns.HasId((int)SbmAffiliate.Column.Abbrev))
|
||||
if (columns.HasId(SbmAffiliate.Column.Abbrev))
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Abbrev, aliasAffiliate));
|
||||
if (columns.HasId((int)SbmAffiliate.Column.Title))
|
||||
if (columns.HasId(SbmAffiliate.Column.Title))
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Title, aliasAffiliate));
|
||||
if (columns.HasId((int)SbmAffiliate.Column.Initials))
|
||||
if (columns.HasId(SbmAffiliate.Column.Initials))
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Initials, aliasAffiliate));
|
||||
if (columns.HasId((int)SbmAffiliate.Column.LastName))
|
||||
if (columns.HasId(SbmAffiliate.Column.LastName))
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_LastName, aliasAffiliate));
|
||||
if (columns.HasId((int)SbmAffiliate.Column.FirstName))
|
||||
if (columns.HasId(SbmAffiliate.Column.FirstName))
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_FirstName, aliasAffiliate));
|
||||
if (columns.HasId((int)SbmAffiliate.Column.Salutation))
|
||||
if (columns.HasId(SbmAffiliate.Column.Salutation))
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Salutation, aliasAffiliate));
|
||||
if (columns.HasId((int)SbmAffiliate.Column.Nature))
|
||||
if (columns.HasId(SbmAffiliate.Column.Nature))
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Nature, aliasAffiliate));
|
||||
if (columns.HasId((int)SbmAffiliate.Column.CompanyNo))
|
||||
if (columns.HasId(SbmAffiliate.Column.CompanyNo))
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_CompanyNo, aliasAffiliate));
|
||||
if (columns.HasId((int)SbmAffiliate.Column.VatReg))
|
||||
if (columns.HasId(SbmAffiliate.Column.VatReg))
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_VatReg, aliasAffiliate));
|
||||
if (columns.HasId((int)SbmAffiliate.Column.Contact))
|
||||
if (columns.HasId(SbmAffiliate.Column.Contact))
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Contact, aliasAffiliate));
|
||||
if (columns.HasId((int)SbmAffiliate.Column.PhoneMain))
|
||||
if (columns.HasId(SbmAffiliate.Column.PhoneMain))
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_PhoneMain, aliasAffiliate));
|
||||
if (columns.HasId((int)SbmAffiliate.Column.PhoneAlt))
|
||||
if (columns.HasId(SbmAffiliate.Column.PhoneAlt))
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_PhoneAlt, aliasAffiliate));
|
||||
if (columns.HasId((int)SbmAffiliate.Column.PhoneDirect))
|
||||
if (columns.HasId(SbmAffiliate.Column.PhoneDirect))
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_PhoneDirect, aliasAffiliate));
|
||||
if (columns.HasId((int)SbmAffiliate.Column.PhoneFax))
|
||||
if (columns.HasId(SbmAffiliate.Column.PhoneFax))
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_PhoneFax, aliasAffiliate));
|
||||
if (columns.HasId((int)SbmAffiliate.Column.PhoneMobile))
|
||||
if (columns.HasId(SbmAffiliate.Column.PhoneMobile))
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_PhoneMobile, aliasAffiliate));
|
||||
if (columns.HasId((int)SbmAffiliate.Column.Email))
|
||||
if (columns.HasId(SbmAffiliate.Column.Email))
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Email, aliasAffiliate));
|
||||
if (columns.HasId((int)SbmAffiliate.Column.Website))
|
||||
if (columns.HasId(SbmAffiliate.Column.Website))
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Website, aliasAffiliate));
|
||||
// Common Properties
|
||||
if (columns.HasId((int)SbmAffiliate.Column.Notes))
|
||||
if (columns.HasId(SbmAffiliate.Column.Notes))
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Notes, aliasAffiliate));
|
||||
if (columns.HasId((int)SbmAffiliate.Column.Status) || columns.HasId((int)SbmAffiliate.Column.Status_Desc) || columns.HasId((int)SbmAffiliate.Column.Status_Ind))
|
||||
if (columns.HasId(SbmAffiliate.Column.Status) || columns.HasId(SbmAffiliate.Column.Status_Desc) || columns.HasId(SbmAffiliate.Column.Status_Ind))
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Status, aliasAffiliate));
|
||||
if (columns.HasId((int)SbmAffiliate.Column.CreateOn_Date))
|
||||
if (columns.HasId(SbmAffiliate.Column.CreateOn_Date))
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_CreateOn, aliasAffiliate));
|
||||
if (columns.HasId((int)SbmAffiliate.Column.UpdateOn_Date))
|
||||
if (columns.HasId(SbmAffiliate.Column.UpdateOn_Date))
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_UpdateOn, aliasAffiliate));
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Primary address.
|
||||
bool hasColsAddPrim = false;
|
||||
if (!hasColsAddPrim) hasColsAddPrim = columns.HasId((int)SbmAffiliate.Column.Address_Summary);
|
||||
if (!hasColsAddPrim) hasColsAddPrim = columns.HasId((int)SbmAffiliate.Column.Address_Line1);
|
||||
if (!hasColsAddPrim) hasColsAddPrim = columns.HasId((int)SbmAffiliate.Column.Address_Line2);
|
||||
if (!hasColsAddPrim) hasColsAddPrim = columns.HasId((int)SbmAffiliate.Column.Address_Line3);
|
||||
if (!hasColsAddPrim) hasColsAddPrim = columns.HasId((int)SbmAffiliate.Column.Address_City);
|
||||
if (!hasColsAddPrim) hasColsAddPrim = columns.HasId((int)SbmAffiliate.Column.Address_Province);
|
||||
if (!hasColsAddPrim) hasColsAddPrim = columns.HasId((int)SbmAffiliate.Column.Address_Postcode);
|
||||
if (!hasColsAddPrim) hasColsAddPrim = columns.HasId((int)SbmAffiliate.Column.Address_Country);
|
||||
if (!hasColsAddPrim) hasColsAddPrim = columns.HasId(SbmAffiliate.Column.Address_Summary);
|
||||
if (!hasColsAddPrim) hasColsAddPrim = columns.HasId(SbmAffiliate.Column.Address_Line1);
|
||||
if (!hasColsAddPrim) hasColsAddPrim = columns.HasId(SbmAffiliate.Column.Address_Line2);
|
||||
if (!hasColsAddPrim) hasColsAddPrim = columns.HasId(SbmAffiliate.Column.Address_Line3);
|
||||
if (!hasColsAddPrim) hasColsAddPrim = columns.HasId(SbmAffiliate.Column.Address_City);
|
||||
if (!hasColsAddPrim) hasColsAddPrim = columns.HasId(SbmAffiliate.Column.Address_Province);
|
||||
if (!hasColsAddPrim) hasColsAddPrim = columns.HasId(SbmAffiliate.Column.Address_Postcode);
|
||||
if (!hasColsAddPrim) hasColsAddPrim = columns.HasId(SbmAffiliate.Column.Address_Country);
|
||||
if (hasColsAddPrim)
|
||||
{
|
||||
// Sub-query to identify primary address with lowest Id for each affiliate.
|
||||
@@ -1020,9 +1023,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
bool hasColsGrpMembers = false;
|
||||
if (!hasColsGrpMembers) hasColsGrpMembers = columns.HasId((int)SbmAffiliate.Column.GroupMembers);
|
||||
if (hasColsGrpMembers)
|
||||
if (columns.HasId(SbmAffiliate.Column.GroupMembers))
|
||||
{
|
||||
// Count group members.
|
||||
String aliasAffiliate_GroupMembers = "AffGrpMembers";
|
||||
@@ -1035,11 +1036,24 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
query.Columns.Add("(" + qryGrpMembers.BuildQuery() + ")", colNameAffiliate_GroupMembers);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
if (columns.HasId(SbmAffiliate.Column.Association_Count))
|
||||
{
|
||||
// Count active associations.
|
||||
String aliasAffiliate_Associations = "AffAssocs";
|
||||
DbQuery qryAssocs = new DbQuery(db.DbmsType);
|
||||
qryAssocs.Tables.Add((SbmDbDfn.TableIdx.Association).ToString(), aliasAffiliate_Associations);
|
||||
qryAssocs.Columns.Add("Count(*)");
|
||||
qryAssocs.Filters.Add($"{SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Association_AffIdOwner, aliasAffiliate_Associations)}={SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Id, aliasAffiliate)}");
|
||||
qryAssocs.Filters.Add($"{SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Association_Status, aliasAffiliate_Associations)}='{StatusCurrent}'");
|
||||
query.Columns.Add("(" + qryAssocs.BuildQuery() + ")", colNameAffiliate_AssociationCount);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Populate filter.
|
||||
query.Filters.AddRange(GetAffiliateQueryFilter(prm));
|
||||
|
||||
if (prm.IncludedIds.Count != 1)
|
||||
if (prm.IdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetAffiliateSortColumns(prm))
|
||||
|
||||
Reference in New Issue
Block a user