This commit is contained in:
Andy Howard
2024-11-19 09:47:00 +00:00
parent c5ee285e27
commit 8b872cc8f3
214 changed files with 7924 additions and 5519 deletions
@@ -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))