Contacts
This commit is contained in:
@@ -468,12 +468,11 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
List<String> filter = new List<String>();
|
||||
|
||||
// Address Id.
|
||||
String includedIds = prm.IncludedIds.Concat(",");
|
||||
if (!includedIds.IsEmpty())
|
||||
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Id, aliasAddress) + " IN (" + includedIds + ")");
|
||||
String excludedIds = prm.ExcludedIds.Concat(",");
|
||||
if (!excludedIds.IsEmpty())
|
||||
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Id, aliasAddress) + " NOT IN (" + excludedIds + ")");
|
||||
String colId = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Id, aliasAddress);
|
||||
if (prm.IdsIncluded.HasValidIds())
|
||||
filter.Add($"{colId} IN ({prm.IdsIncluded.Concat(",")})");
|
||||
if (prm.IdsExcluded.HasValidIds())
|
||||
filter.Add($"{colId} NOT IN ({prm.IdsExcluded.Concat(",")})");
|
||||
|
||||
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
// Address Type.
|
||||
@@ -777,7 +776,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
// Populate filter.
|
||||
query.Filters.AddRange(GetAddressQueryFilter(prm));
|
||||
|
||||
if (prm.IncludedIds.Count != 1)
|
||||
if (prm.IdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetAddressSortColumns(prm))
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -14,6 +14,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.Common;
|
||||
using System.Linq;
|
||||
using static Sarand.BusinessMgr.Net.Standard.Base.App.Sbm;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
{
|
||||
@@ -279,7 +280,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
if (!SysId.IsValid(associationId)) return null;
|
||||
// Filter to target specified association.
|
||||
SbmAssociation.Params prmAssociation = new SbmAssociation.Params();
|
||||
prmAssociation.IncludedIds.Add(associationId);
|
||||
prmAssociation.IdsIncluded.Add(associationId);
|
||||
prmAssociation.StatusCat = SbmAssociation.StatusCat.Any;
|
||||
if (GetAssociationCount(prmAssociation) != 1) return null;
|
||||
// Columns to query.
|
||||
@@ -303,7 +304,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
if (!SysId.IsValid(associationId)) return "";
|
||||
// Filter to target specified association.
|
||||
SbmAssociation.Params prmAssociation = new SbmAssociation.Params();
|
||||
prmAssociation.IncludedIds.Add(associationId);
|
||||
prmAssociation.IdsIncluded.Add(associationId);
|
||||
prmAssociation.StatusCat = SbmAssociation.StatusCat.Any;
|
||||
if (GetAssociationCount(prmAssociation) != 1) return "";
|
||||
// Columns to query.
|
||||
@@ -1320,10 +1321,10 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
//---------------------------------------------------------------
|
||||
// Association Id.
|
||||
String colAssociation_Id = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Association_Id, aliasAssociation);
|
||||
String includedIds = prm.IncludedIds.Concat(",");
|
||||
String includedIds = prm.IdsIncluded.Concat(",");
|
||||
if (!includedIds.IsEmpty())
|
||||
filter.Add(colAssociation_Id + " IN (" + includedIds + ")");
|
||||
String excludedIds = prm.ExcludedIds.Concat(",");
|
||||
String excludedIds = prm.IdsExcluded.Concat(",");
|
||||
if (!excludedIds.IsEmpty())
|
||||
filter.Add(colAssociation_Id + " NOT IN (" + excludedIds + ")");
|
||||
|
||||
@@ -1331,6 +1332,8 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
String colAssociation_Type = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Association_Type, aliasAssociation);
|
||||
if (prm.AssociationType > 0)
|
||||
filter.Add(colAssociation_Type + "=" + ((int)prm.AssociationType).ToString());
|
||||
else if (prm.AssociationType == AssociationType.NotInternal)
|
||||
filter.Add(colAssociation_Type + "!=" + ((int)Sbm.AssociationType.Internal).ToString());
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Owner affiliate.
|
||||
@@ -1383,7 +1386,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
if (!prm.NameTargetFull.IsEmpty() || !prm.NameTargetPartial.IsEmpty())
|
||||
{
|
||||
// Target affiliate alias.
|
||||
String aliasAffiliateTarget = StringUtil.OnEmpty(prm.Alias_Affiliate_Target, aliasAssociation_Affiliate_Target);
|
||||
String aliasAffiliateTarget = StringUtil.OnBlank(prm.Alias_Affiliate_Target, aliasAssociation_Affiliate_Target);
|
||||
|
||||
// Target affiliate columns.
|
||||
String colAffiliate_Id = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Id, aliasAffiliateTarget);
|
||||
@@ -1427,7 +1430,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
if (!StringUtil.IsEmpty(prm.AddressPartial) || !StringUtil.IsEmpty(prm.PostcodePartial))
|
||||
{
|
||||
// Target Address alias.
|
||||
String aliasAddTarget = StringUtil.OnEmpty(prm.Alias_Address_Target, "aAddTarget");
|
||||
String aliasAddTarget = StringUtil.OnBlank(prm.Alias_Address_Target, "aAddTarget");
|
||||
|
||||
// Target address columns.
|
||||
String colAddress_Id = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Id, aliasAddTarget);
|
||||
@@ -1494,7 +1497,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
searchValueFilter.Add(colAssociation_Group + " LIKE '%" + searchValue + "%'");
|
||||
|
||||
// Target affiliate.
|
||||
String aliasAffiliateTarget = StringUtil.OnEmpty(prm.Alias_Affiliate_Target, aliasAssociation_Affiliate_Target);
|
||||
String aliasAffiliateTarget = StringUtil.OnBlank(prm.Alias_Affiliate_Target, aliasAssociation_Affiliate_Target);
|
||||
String colAffiliate_Id = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Id, aliasAffiliateTarget);
|
||||
String colAffiliate_Name = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Name, aliasAffiliateTarget);
|
||||
List<String> affiliateFilter = new List<string>();
|
||||
@@ -1518,7 +1521,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
}
|
||||
|
||||
// Target address.
|
||||
String aliasAddTarget = StringUtil.OnEmpty(prm.Alias_Address_Target, "aAddTarget");
|
||||
String aliasAddTarget = StringUtil.OnBlank(prm.Alias_Address_Target, "aAddTarget");
|
||||
String colAddress_Id = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Id, aliasAddTarget);
|
||||
String colAddress_ItemType = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_ItemType, aliasAddTarget);
|
||||
String colAddress_ItemId = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_ItemId, aliasAddTarget);
|
||||
@@ -1744,9 +1747,9 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Transactions.
|
||||
if (prm.TransactionStatusCat != SbmTransaction.StatusCat.Any || prm.TransActiveFrom.IsValid() || prm.TransActiveTo.IsValid())
|
||||
if (prm.TransactionStatusCat != SbmTransaction.StatusCat.Any || prm.TransactionType > 0 || prm.TransactionActiveFrom.IsValid() || prm.TransactionActiveTo.IsValid())
|
||||
{
|
||||
List<String> filterTransStatus = new List<String>();
|
||||
List<String> filterTrans = new List<String>();
|
||||
DateTime dateTime = new DateTime(1970, 1, 1);
|
||||
// Constructed to set DBMS (in case required to format query elements).
|
||||
DbQuery qryTrans = new DbQuery(db.DbmsType);
|
||||
@@ -1755,26 +1758,33 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
String colTransaction_Status = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Transaction_Status);
|
||||
String colTransaction_StatusCat = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Transaction_StatusCat);
|
||||
|
||||
// Transaction type.
|
||||
if (prm.TransactionType > 0)
|
||||
{
|
||||
String colTransaction_Type = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Transaction_Type);
|
||||
filterTrans.Add($"{colTransaction_Type}={(int)prm.TransactionType}");
|
||||
}
|
||||
|
||||
// Transaction dates.
|
||||
if (prm.TransActiveFrom.IsValid() || prm.TransActiveTo.IsValid())
|
||||
if (prm.TransactionActiveFrom.IsValid() || prm.TransactionActiveTo.IsValid())
|
||||
{
|
||||
// Transaction must have an 'In Progress' date.
|
||||
filterTransStatus.Add(colTransaction_InProgress + " IS NOT NULL");
|
||||
filterTransStatus.Add(colTransaction_InProgress + ">" + DbQuery.FormatDateForCondition(dateTime));
|
||||
filterTrans.Add($"{colTransaction_InProgress} IS NOT NULL");
|
||||
filterTrans.Add($"{colTransaction_InProgress}>{DbQuery.FormatDateForCondition(dateTime)}");
|
||||
// Transaction must not be cancelled.
|
||||
filterTransStatus.Add(colTransaction_Status + "<>'" + StatusCancelled + "'");
|
||||
if (prm.TransActiveFrom.IsValid())
|
||||
filterTrans.Add($"{colTransaction_Status}<>'{StatusCancelled}'");
|
||||
if (prm.TransactionActiveFrom.IsValid())
|
||||
{
|
||||
// Transaction's 'Closed' date must not be earlier than the 'From' date.
|
||||
filterTransStatus.Add(
|
||||
filterTrans.Add(
|
||||
colTransaction_Closed + " IS NULL OR " + colTransaction_Closed + "=" +
|
||||
DbQuery.FormatForCondition(dateTime.ToString()) + " OR " + colTransaction_Closed + ">=" +
|
||||
DbQuery.FormatForCondition(prm.TransActiveFrom.ToString()));
|
||||
DbQuery.FormatForCondition(prm.TransactionActiveFrom.ToString()));
|
||||
}
|
||||
if (prm.TransActiveTo.IsValid())
|
||||
if (prm.TransactionActiveTo.IsValid())
|
||||
{
|
||||
// Transaction's 'In Progress' date must not be later than the 'To' date.
|
||||
filterTransStatus.Add(colTransaction_InProgress + "<" + DbQuery.FormatDateForCondition(DateUtil.IncrementDate(prm.TransActiveTo, 1)));
|
||||
filterTrans.Add(colTransaction_InProgress + "<" + DbQuery.FormatDateForCondition(DateUtil.IncrementDate(prm.TransactionActiveTo, 1)));
|
||||
}
|
||||
}
|
||||
// Check whether a Transaction status has been specified:
|
||||
@@ -1782,22 +1792,22 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
String transtatuscatOpen = TransactionStatusCats.GetCodeForType(SbmTransaction.StatusCat.Open);
|
||||
String transtatuscatClosed = TransactionStatusCats.GetCodeForType(SbmTransaction.StatusCat.Closed);
|
||||
if (prm.TransactionStatusCat == SbmTransaction.StatusCat.NotDeleted)
|
||||
filterTransStatus.Add(colTransaction_Status + "<>'" + StatusDeleted + "'");
|
||||
filterTrans.Add(colTransaction_Status + "<>'" + StatusDeleted + "'");
|
||||
else if (prm.TransactionStatusCat == SbmTransaction.StatusCat.Completed)
|
||||
filterTransStatus.Add(colTransaction_Status + "='" + TransactionStatusCats.GetCodeForType(SbmTransaction.StatusCat.Completed) + "'");
|
||||
filterTrans.Add(colTransaction_Status + "='" + TransactionStatusCats.GetCodeForType(SbmTransaction.StatusCat.Completed) + "'");
|
||||
else if (prm.TransactionStatusCat == SbmTransaction.StatusCat.NotClosed)
|
||||
filterTransStatus.Add(colTransaction_StatusCat + "<>'" + TransactionStatusCats.GetCodeForType(SbmTransaction.StatusCat.Closed) + "'");
|
||||
filterTrans.Add(colTransaction_StatusCat + "<>'" + TransactionStatusCats.GetCodeForType(SbmTransaction.StatusCat.Closed) + "'");
|
||||
else if (prm.TransactionStatusCat == SbmTransaction.StatusCat.NotCancelled)
|
||||
filterTransStatus.Add(colTransaction_Status + "<>'" + StatusCancelled + "'");
|
||||
filterTrans.Add(colTransaction_Status + "<>'" + StatusCancelled + "'");
|
||||
else if (!StringUtil.IsEmpty(TransactionStatusCats.GetCodeForType(prm.TransactionStatusCat)))
|
||||
filterTransStatus.Add(colTransaction_StatusCat + "='" + TransactionStatusCats.GetCodeForType(prm.TransactionStatusCat) + "'");
|
||||
filterTransStatus.RemoveDuplicatesCI();
|
||||
if (!filterTransStatus.IsEmpty())
|
||||
filterTrans.Add(colTransaction_StatusCat + "='" + TransactionStatusCats.GetCodeForType(prm.TransactionStatusCat) + "'");
|
||||
filterTrans.RemoveDuplicatesCI();
|
||||
if (!filterTrans.IsEmpty())
|
||||
{
|
||||
qryTrans.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Transaction));
|
||||
qryTrans.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Transaction_Id));
|
||||
qryTrans.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Transaction_AssocId) + "=" + colAssociation_Id);
|
||||
qryTrans.Filters.AddRange(filterTransStatus);
|
||||
qryTrans.Filters.AddRange(filterTrans);
|
||||
filter.Add("EXISTS (" + qryTrans.BuildQuery() + ")");
|
||||
}
|
||||
}
|
||||
@@ -1980,7 +1990,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Association_PhoneMain, aliasAssociation));
|
||||
if (columns.HasId((int)SbmAssociation.Column.Email))
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Association_Email, aliasAssociation));
|
||||
if (columns.HasId((int)SbmAssociation.Column.Group))
|
||||
if (columns.HasId((int)SbmAssociation.Column.Group) && ColumnExists(SbmDbDfn.ColumnIdx.Association_Group))
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Association_Group, aliasAssociation, true));
|
||||
if (columns.HasId((int)SbmAssociation.Column.DescDetail))
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Association_DescDetail, aliasAssociation));
|
||||
@@ -2483,7 +2493,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
// Populate filter.
|
||||
query.Filters.AddRange(GetAssociationQueryFilter(prm));
|
||||
|
||||
if (prm.IncludedIds.Count != 1)
|
||||
if (prm.IdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetAssociationSortColumns(prm))
|
||||
|
||||
@@ -329,11 +329,11 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
List<String> filter = new List<String>();
|
||||
|
||||
// Param Id.
|
||||
String includedIds = prm.IncludedIds.Concat(",");
|
||||
String includedIds = prm.IdsIncluded.Concat(",");
|
||||
String colSysParam_Id = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_Id, aliasSysParam);
|
||||
if (!includedIds.IsEmpty())
|
||||
filter.Add(colSysParam_Id + " IN (" + includedIds + ")");
|
||||
String excludedIds = prm.ExcludedIds.Concat(",");
|
||||
String excludedIds = prm.IdsExcluded.Concat(",");
|
||||
if (!excludedIds.IsEmpty())
|
||||
filter.Add(colSysParam_Id + " NOT IN (" + excludedIds + ")");
|
||||
|
||||
@@ -504,7 +504,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
// Populate filter.
|
||||
query.Filters.AddRange(GetSysParamQueryFilter(prm));
|
||||
|
||||
if (prm.IncludedIds.Count != 1)
|
||||
if (prm.IdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetSysParamSortColumns(prm))
|
||||
|
||||
@@ -355,11 +355,11 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
List<String> filter = new List<String>();
|
||||
|
||||
// SystemAccount Id.
|
||||
String includedIds = prm.IncludedIds.Concat(",");
|
||||
String includedIds = prm.IdsIncluded.Concat(",");
|
||||
String colSystemAccount_Id = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccount_Id, aliasSystemAccount);
|
||||
if (!includedIds.IsEmpty())
|
||||
filter.Add(colSystemAccount_Id + " IN (" + includedIds + ")");
|
||||
String excludedIds = prm.ExcludedIds.Concat(",");
|
||||
String excludedIds = prm.IdsExcluded.Concat(",");
|
||||
if (!excludedIds.IsEmpty())
|
||||
filter.Add(colSystemAccount_Id + " NOT IN (" + excludedIds + ")");
|
||||
|
||||
@@ -583,7 +583,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
// Populate filter.
|
||||
query.Filters.AddRange(GetSystemAccountQueryFilter(prm));
|
||||
|
||||
if (prm.IncludedIds.Count != 1)
|
||||
if (prm.IdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetSystemAccountSortColumns(prm))
|
||||
|
||||
@@ -340,11 +340,11 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
List<String> filter = new List<String>();
|
||||
|
||||
// SystemAccountUser Id.
|
||||
String includedIds = prm.IncludedIds.Concat(",");
|
||||
String includedIds = prm.IdsIncluded.Concat(",");
|
||||
String colSystemAccountUser_Id = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccountUser_AccountId, aliasSystemAccountUser);
|
||||
if (!includedIds.IsEmpty())
|
||||
filter.Add(colSystemAccountUser_Id + " IN (" + includedIds + ")");
|
||||
String excludedIds = prm.ExcludedIds.Concat(",");
|
||||
String excludedIds = prm.IdsExcluded.Concat(",");
|
||||
if (!excludedIds.IsEmpty())
|
||||
filter.Add(colSystemAccountUser_Id + " NOT IN (" + excludedIds + ")");
|
||||
|
||||
@@ -581,7 +581,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
// Populate filter.
|
||||
query.Filters.AddRange(GetSystemAccountUserQueryFilter(prm));
|
||||
|
||||
if (prm.IncludedIds.Count != 1)
|
||||
if (prm.IdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetSystemAccountUserSortColumns(prm))
|
||||
|
||||
@@ -348,11 +348,11 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
List<String> filter = new List<String>();
|
||||
|
||||
// SystemUser Id.
|
||||
String includedIds = prm.IncludedIds.Concat(",");
|
||||
String includedIds = prm.IdsIncluded.Concat(",");
|
||||
String colSystemUser_Id = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemUser_Id, aliasSystemUser);
|
||||
if (!includedIds.IsEmpty())
|
||||
filter.Add(colSystemUser_Id + " IN (" + includedIds + ")");
|
||||
String excludedIds = prm.ExcludedIds.Concat(",");
|
||||
String excludedIds = prm.IdsExcluded.Concat(",");
|
||||
if (!excludedIds.IsEmpty())
|
||||
filter.Add(colSystemUser_Id + " NOT IN (" + excludedIds + ")");
|
||||
|
||||
@@ -562,7 +562,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
// Populate filter.
|
||||
query.Filters.AddRange(GetSystemUserQueryFilter(prm));
|
||||
|
||||
if (prm.IncludedIds.Count != 1)
|
||||
if (prm.IdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetSystemUserSortColumns(prm))
|
||||
|
||||
@@ -473,11 +473,11 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
List<String> filter = new List<String>();
|
||||
|
||||
// Asset Id.
|
||||
String includedIds = prm.IncludedIds.Concat(",");
|
||||
String includedIds = prm.IdsIncluded.Concat(",");
|
||||
String colAsset_Id = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_Id, aliasAsset);
|
||||
if (!includedIds.IsEmpty())
|
||||
filter.Add($"{colAsset_Id} IN ({includedIds})");
|
||||
String excludedIds = prm.ExcludedIds.Concat(",");
|
||||
String excludedIds = prm.IdsExcluded.Concat(",");
|
||||
if (!excludedIds.IsEmpty())
|
||||
filter.Add($"{colAsset_Id} NOT IN ({excludedIds})");
|
||||
|
||||
@@ -792,7 +792,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
// Populate filter.
|
||||
query.Filters.AddRange(GetAssetQueryFilter(prm));
|
||||
|
||||
if (prm.IncludedIds.Count != 1)
|
||||
if (prm.IdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetAssetSortColumns(prm))
|
||||
|
||||
@@ -56,7 +56,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
String filter = GetAssetCategoryQueryFilter(prm).Concat(" AND ", "(", ")");
|
||||
db.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAssetCategory), /*SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaAssetCategory_Id), 0,*/ filter);
|
||||
}
|
||||
else SetErrorState(db.ErrorState.ToString());
|
||||
else SetErrorState(db.ErrorStateMessage);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -337,11 +337,11 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
List<String> filter = new List<String>();
|
||||
|
||||
// AssetProcess Id.
|
||||
String includedIds = prm.IncludedIds.Concat(",");
|
||||
String includedIds = prm.IdsIncluded.Concat(",");
|
||||
String colAssetProcess_Id = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetProcess_Id, aliasAssetProcess);
|
||||
if (!includedIds.IsEmpty())
|
||||
filter.Add($"{colAssetProcess_Id} IN ({includedIds})");
|
||||
String excludedIds = prm.ExcludedIds.Concat(",");
|
||||
String excludedIds = prm.IdsExcluded.Concat(",");
|
||||
if (!excludedIds.IsEmpty())
|
||||
filter.Add($"{colAssetProcess_Id} NOT IN ({excludedIds})");
|
||||
|
||||
@@ -475,7 +475,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
// Populate filter.
|
||||
query.Filters.AddRange(GetAssetProcessQueryFilter(prm));
|
||||
|
||||
if (prm.IncludedIds.Count != 1)
|
||||
if (prm.IdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetAssetProcessSortColumns(prm))
|
||||
|
||||
@@ -493,11 +493,11 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
List<String> filter = new List<String>();
|
||||
|
||||
// Vehicle Id.
|
||||
String includedIds = prm.IncludedIds.Concat(",");
|
||||
String includedIds = prm.IdsIncluded.Concat(",");
|
||||
String colVehicle_Id = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicle_Id, aliasVehicle);
|
||||
if (!StringUtil.IsEmpty(includedIds))
|
||||
filter.Add($"{colVehicle_Id} IN ({includedIds})");
|
||||
String excludedIds = prm.ExcludedIds.Concat(",");
|
||||
String excludedIds = prm.IdsExcluded.Concat(",");
|
||||
if (!StringUtil.IsEmpty(excludedIds))
|
||||
filter.Add($"{colVehicle_Id} NOT IN ({excludedIds})");
|
||||
//---------------------------------------------------------------
|
||||
@@ -780,7 +780,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
// Populate filter.
|
||||
query.Filters.AddRange(GetVehicleQueryFilter(prm));
|
||||
|
||||
if (prm.IncludedIds.Count != 1)
|
||||
if (prm.IdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetVehicleSortColumns(prm))
|
||||
|
||||
@@ -395,11 +395,11 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
List<String> filter = new List<String>();
|
||||
|
||||
// VehicleEvent Id.
|
||||
String includedIds = prm.IncludedIds.Concat(",");
|
||||
String includedIds = prm.IdsIncluded.Concat(",");
|
||||
String colVehicleEvent_Id = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicleEvent_Id, aliasVehicleEvent);
|
||||
if (!includedIds.IsEmpty())
|
||||
filter.Add(colVehicleEvent_Id + " IN (" + includedIds + ")");
|
||||
String excludedIds = prm.ExcludedIds.Concat(",");
|
||||
String excludedIds = prm.IdsExcluded.Concat(",");
|
||||
if (!excludedIds.IsEmpty())
|
||||
filter.Add(colVehicleEvent_Id + " NOT IN (" + excludedIds + ")");
|
||||
// Vehicle:
|
||||
@@ -582,7 +582,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
// Populate filter.
|
||||
query.Filters.AddRange(GetVehicleEventQueryFilter(prm));
|
||||
|
||||
if (prm.IncludedIds.Count != 1)
|
||||
if (prm.IdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetVehicleEventSortColumns(prm))
|
||||
|
||||
@@ -61,7 +61,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
if (UpdateVehicleFeature(vehicleFeature, dbUpdateInfo))
|
||||
{
|
||||
vehicleFeature.AcceptChanges();
|
||||
// Unable to process vehicle feature events - features do not have a system Id: pCon > configConsole?
|
||||
// Unable to process vehicle feature events - features do not have a system Id: pCon > sessionConsole?
|
||||
//if (pCon) pCon->OnItemEvent(eSapItemEvent_Update,eSapItemTypeVehicleFeature,vehicleFeature.Id());
|
||||
return true;
|
||||
}
|
||||
@@ -84,7 +84,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
if (InsertVehicleFeature(vehicleFeature, dbUpdateInfo))
|
||||
{
|
||||
vehicleFeature.AcceptChanges();
|
||||
// Unable to process vehicle feature events - features do not have a system Id: pCon > configConsole?
|
||||
// Unable to process vehicle feature events - features do not have a system Id: pCon > sessionConsole?
|
||||
//if (pCon) pCon->OnItemEvent(eSapItemEvent_Create,eSapItemTypeVehicleFeature,vehicleFeature.Id());
|
||||
return true;
|
||||
}
|
||||
@@ -449,11 +449,11 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
List<String> filter = new List<String>();
|
||||
|
||||
// Id.
|
||||
String includedIds = prm.IncludedIds.Concat(",");
|
||||
String includedIds = prm.IdsIncluded.Concat(",");
|
||||
String colVehicleFeature_Id = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicleFeature_VehicleId, aliasVehicleFeature);
|
||||
if (!StringUtil.IsEmpty(includedIds))
|
||||
filter.Add(colVehicleFeature_Id + " IN (" + includedIds + ")");
|
||||
String excludedIds = prm.ExcludedIds.Concat(",");
|
||||
String excludedIds = prm.IdsExcluded.Concat(",");
|
||||
if (!StringUtil.IsEmpty(excludedIds))
|
||||
filter.Add(colVehicleFeature_Id + " NOT IN (" + excludedIds + ")");
|
||||
// Vehicle.
|
||||
@@ -619,7 +619,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
// Populate filter.
|
||||
query.Filters.AddRange(GetVehicleFeatureQueryFilter(prm));
|
||||
|
||||
if (prm.IncludedIds.Count != 1)
|
||||
if (prm.IdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetVehicleFeatureSortColumns(prm))
|
||||
|
||||
@@ -0,0 +1,332 @@
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.App;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
|
||||
using Sarand.BusinessMgr.Net.Standard.Dbas.Internal;
|
||||
using Sarand.Net.Standard.Base.Bus;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Sarand.Net.Standard.Base.Interfaces;
|
||||
using Sarand.Net.Standard.Base.ItemDocs;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using Sarand.Net.Standard.Dbas.Base;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
// Commodity Manager - Commodity - Utils.
|
||||
//=======================================================================
|
||||
partial class SbmCommodityMgr_Dbas
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Commodity Associated data.
|
||||
public override bool CommodityHasProcesses(SysId commodityId)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(commodityId)) return SetErrorState("invalid item");
|
||||
return ProcessMgr.HasItemProcesses(Sbm.ItemType.Commodity, commodityId);
|
||||
}
|
||||
public override bool CommodityHasRequirements(SysId commodityId)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(commodityId)) return false;
|
||||
String tableRequirement = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Requirement);
|
||||
String filter = $"{SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Requirement_CommodityId)}={commodityId.ToString()}";
|
||||
return Database.GetRowCount(tableRequirement, filter) > 0;
|
||||
}
|
||||
public override bool CommodityIsSalesBudgetTemplate(SysId commodityId)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(commodityId)) return false;
|
||||
String tableCommodity = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Commodity);
|
||||
String filter = $"{SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Commodity_CommodityIdSalesProj)}={commodityId.ToString()}";
|
||||
return Database.GetRowCount(tableCommodity, filter) > 0;
|
||||
}
|
||||
public override bool CommodityHasComponents(SysId commodityId)
|
||||
{
|
||||
ClearErrorState();
|
||||
return false;
|
||||
}
|
||||
public override bool CommodityHasPortfolioItems(SysId commodityId)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(commodityId)) return false;
|
||||
String tablePortfolioItem = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.PortfolioItem);
|
||||
if (Database.TableExists(tablePortfolioItem))
|
||||
{
|
||||
String colPortfolioItem_Id = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.PortfolioItem_Id);
|
||||
List<String> filters = new List<String>();
|
||||
filters.Add($"{SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.PortfolioItem_CommodityId)}={commodityId.ToString()}");
|
||||
return Database.GetRowCount(tablePortfolioItem, filters.Concat(" AND ", "(", ")")) > 0;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public override bool CommodityHasContainers(SysId commodityId)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(commodityId)) return false;
|
||||
String tableContainer = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Container);
|
||||
if (Database.TableExists(tableContainer))
|
||||
{
|
||||
String colContainerItem_ContainerId = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.ContainerItem_ContainerId);
|
||||
List<String> filters = new List<String>();
|
||||
filters.Add($"{SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.ContainerItem_ItemType)}={Sbm.ItemType.Commodity.ToString()}");
|
||||
filters.Add($"{SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.ContainerItem_ItemId)}={commodityId.ToString()}");
|
||||
return Database.GetRowCount(tableContainer, filters.Concat(" AND ", "(", ")")) > 0;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public override bool CommodityHasCustomerDetails(SysId commodityId)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(commodityId)) return false;
|
||||
String tableCommodityCustomer = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.CommodityCustomer);
|
||||
if (Database.TableExists(tableCommodityCustomer))
|
||||
{
|
||||
List<String> filters = new List<String>();
|
||||
filters.Add($"{SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.CommodityCustomer_CommodityId)}={commodityId.ToString()}");
|
||||
return Database.GetRowCount(tableCommodityCustomer, filters.Concat(" AND ", "(", ")")) > 0;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public override bool CommodityHasSupplierDetails(SysId commodityId)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(commodityId)) return false;
|
||||
String tableCommoditySupplier = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.CommoditySupplier);
|
||||
if (Database.TableExists(tableCommoditySupplier))
|
||||
{
|
||||
List<String> filters = new List<String>();
|
||||
filters.Add($"{SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.CommoditySupplier_CommodityId)}={commodityId.ToString()}");
|
||||
return Database.GetRowCount(tableCommoditySupplier, filters.Concat(" AND ", "(", ")")) > 0;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public override bool CommodityHasMovements(SysId commodityId)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(commodityId)) return false;
|
||||
String tableMovement = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Movement);
|
||||
if (Database.TableExists(tableMovement))
|
||||
{
|
||||
String colMovement_Id = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Movement_Id);
|
||||
List<String> filters = new List<String>();
|
||||
filters.Add($"{SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Movement_ItemType)}={Sbm.ItemType.Commodity.ToString()}");
|
||||
filters.Add($"{SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Movement_ItemId)}={commodityId.ToString()}");
|
||||
return Database.GetRowCount(tableMovement, filters.Concat(" AND ", "(", ")")) > 0;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public override bool CommodityHasStockLevels(SysId commodityId)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(commodityId)) return false;
|
||||
String tableStockLevel = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.StockLevel);
|
||||
if (Database.TableExists(tableStockLevel))
|
||||
{
|
||||
String colStockLevel_CommodityId = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.StockLevel_CommodityId);
|
||||
String filter = $"{colStockLevel_CommodityId}={commodityId.ToString()}";
|
||||
return Database.GetRowCount(tableStockLevel, filter) > 0;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public override bool ClearCommodityDependentData(SysId commodityId)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(commodityId)) return false;
|
||||
if (!HasErrorState())
|
||||
{
|
||||
// Remove data item references.
|
||||
if (!DataItemMgr.ClearDataItem(Sbm.ItemType.Commodity, commodityId))
|
||||
SetErrorState(DataItemMgr.ErrorStateMessage);
|
||||
}
|
||||
if (!HasErrorState())
|
||||
{
|
||||
if (ItemDocConsole != null)
|
||||
{
|
||||
if (!ItemDocConsole.ClearItemDocs(new ItemId((short)Sbm.ItemType.Commodity, commodityId), SaItemDocConsole.Category.Document, DbUpdateInfo))
|
||||
SetErrorState(ItemDocConsole.ErrorStateMessage);
|
||||
}
|
||||
else SetErrorState("Failed to retrieve item document console");
|
||||
}
|
||||
if (!HasErrorState())
|
||||
{
|
||||
// Remove interface references.
|
||||
if (InterfaceConsole != null)
|
||||
{
|
||||
if (!InterfaceConsole.ClearInterfaceDataItems(new ItemId((short)Sbm.ItemType.Commodity, commodityId), DbUpdateInfo))
|
||||
SetErrorState(InterfaceConsole.ErrorStateMessage);
|
||||
}
|
||||
else SetErrorState("Failed to retrieve interface console");
|
||||
}
|
||||
if (!HasErrorState())
|
||||
{
|
||||
// Remove customer commodity details.
|
||||
List<StringPair> columnNameValues = new List<StringPair>();
|
||||
String tableCommodityCustomer = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.CommodityCustomer);
|
||||
String filter = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.CommodityCustomer_CommodityId) + "=" + commodityId.ToString();
|
||||
if (db != null && Database.TableExists(tableCommodityCustomer) && Database.ExecuteDelete(tableCommodityCustomer, filter) > 0)
|
||||
SetErrorState("Failed to clear customer commodity details");
|
||||
}
|
||||
if (!HasErrorState())
|
||||
{
|
||||
// Remove Supplier commodity details.
|
||||
String tableCommoditySupplier = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.CommoditySupplier);
|
||||
String filter = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.CommoditySupplier_CommodityId) + "=" + commodityId.ToString();
|
||||
if (db != null && Database.TableExists(tableCommoditySupplier) && Database.ExecuteDelete(tableCommoditySupplier, filter) > 0)
|
||||
SetErrorState("Failed to clear Supplier commodity details");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Commodity requirements.
|
||||
|
||||
/// <summary>
|
||||
/// Update requirements for this commodity with the correct code.
|
||||
/// </summary>
|
||||
public override bool UpdateCommodityRequirements(SbmCommodity commodity)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(commodity.Id)) return true;
|
||||
List<String> filter = new List<string>();
|
||||
filter.Add($"{SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Requirement_CommodityId)}={commodity.Id}");
|
||||
filter.Add($"{SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Requirement_ProductCode)}!='{DbQuery.FormatForCondition(commodity.Code)}'");
|
||||
List<StringPair> values = new List<StringPair>();
|
||||
SacsDatabase.AddValuePair(values, SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Requirement_ProductCode), commodity.Code, true);
|
||||
db.ExecuteUpdate(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Requirement), values, filter.Concat(" And ", "(", ")"));
|
||||
if (db.HasErrorState())
|
||||
SetErrorState($"{db.ErrorStateMessage}.");
|
||||
return !HasErrorState();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Commodity cost estimates.
|
||||
|
||||
public override List<SbmCostEstimate> GetCommodityCostEstimates(SbmCommodity commodity)
|
||||
{
|
||||
//ClearErrorState();
|
||||
List<SbmCostEstimate> costEstimatesCopy = null;
|
||||
if (commodity.CostEstimates == null && SysId.IsValid(commodity.Id))
|
||||
{
|
||||
using (DisposableCollection<SacsHierarchyItem> disposables = new DisposableCollection<SacsHierarchyItem>())
|
||||
{
|
||||
SbmItemLink.Params prmItemLink = new SbmItemLink.Params();
|
||||
prmItemLink.ItemLinkType = Sbm.ItemLinkType.ItemCostEstimate;
|
||||
prmItemLink.ItemTypeFrom = Sbm.ItemType.Commodity;
|
||||
prmItemLink.ItemIdFrom = commodity.Id;
|
||||
List<SbmItemLink> itemLinks = DataItemMgr.GetItemLinkList(prmItemLink);
|
||||
if (itemLinks != null)
|
||||
{
|
||||
disposables.AddRange(itemLinks);
|
||||
foreach (SbmItemLink itemLink in itemLinks)
|
||||
{
|
||||
SbmCostEstimate costEstimate = new SbmCostEstimate(UserContext, itemLink.DataContent);
|
||||
costEstimate.Notes = itemLink.Notes;
|
||||
costEstimate.Changed = false;
|
||||
if (commodity.CostEstimates == null) commodity.CostEstimates = new List<SbmCostEstimate>();
|
||||
commodity.CostEstimates.Add(costEstimate);
|
||||
}
|
||||
// Clean-up.
|
||||
itemLinks.Clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
// Clone the list.
|
||||
costEstimatesCopy = commodity.CostEstimates.Clone();
|
||||
return costEstimatesCopy;
|
||||
}
|
||||
public override bool SetCommodityCostEstimates(SbmCommodity commodity, List<SbmCostEstimate> costEstimatesNew)
|
||||
{
|
||||
ClearErrorState();
|
||||
// Clear the existing list.
|
||||
if (commodity.CostEstimates != null) commodity.CostEstimates.Clear();
|
||||
// Copy all items from the specified list.
|
||||
commodity.CostEstimates = costEstimatesNew.Clone();
|
||||
return true;
|
||||
}
|
||||
public override bool CommitCommodityCostEstimates(SbmCommodity commodity)
|
||||
{
|
||||
ClearErrorState();// Do not attempt any updates unless the list has been populated.
|
||||
if (commodity.CostEstimates == null) return true;
|
||||
if (commodity.CostEstimates != null && SysId.IsValid(commodity.Id))
|
||||
{
|
||||
// Build an item link list corresponding to the list of cost estimates.
|
||||
List<SbmItemLink> itemLinks = new List<SbmItemLink>();
|
||||
foreach (SbmCostEstimate costEstimate in commodity.CostEstimates)
|
||||
{
|
||||
if (costEstimate == null) continue;
|
||||
SbmItemLink itemLink = DataItemMgr.CreateItemLink(Sbm.ItemLinkType.ItemCostEstimate, Sbm.ItemType.Commodity, commodity.Id, Sbm.ItemType.Unknown, new SysId());
|
||||
if (itemLink != null)
|
||||
{
|
||||
itemLink.Seq = (short)costEstimate.CodeSeq;
|
||||
itemLink.DataContent = costEstimate.ToString();
|
||||
itemLink.Notes = costEstimate.Notes;
|
||||
itemLinks.Add(itemLink);
|
||||
}
|
||||
}
|
||||
// Store these details.
|
||||
if (DataItemMgr.StoreFromItemLinks(Sbm.ItemLinkType.ItemCostEstimate, new ItemId((short)Sbm.ItemType.Commodity, commodity.Id), itemLinks, DbUpdateInfo))
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
SetErrorState("Failed to save cost estimate item links - " + DataItemMgr.ErrorStateMessage);
|
||||
}
|
||||
if (itemLinks != null)
|
||||
itemLinks.Clear();
|
||||
}
|
||||
return !HasErrorState();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Commodity processes.
|
||||
|
||||
public override List<SbmItemProcess> GetCommodityProcesses(SbmCommodity commodity, bool activeOnly)
|
||||
{
|
||||
//ToDo need to creat SbmProcessMgr_Dbas-ItemProcess inorder to do processMgr.???
|
||||
ClearErrorState();
|
||||
List<SbmItemProcess> itemProcesesCopy = null;
|
||||
if (activeOnly)
|
||||
{
|
||||
// Retrieve the list of 'active' processes for this item.
|
||||
ProcessMgr.GetProcessesForItem(Sbm.ItemType.Commodity, commodity.Id, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Full list required - check whether the internal list has been populated yet.
|
||||
if (commodity.ItemProcesses == null && SysId.IsValid(commodity.Id))
|
||||
{
|
||||
// Get the list of processes.
|
||||
ProcessMgr.GetProcessesForItem(Sbm.ItemType.Commodity, commodity.Id, false);
|
||||
}
|
||||
// Clone the list.
|
||||
itemProcesesCopy = commodity.ItemProcesses.Clone();
|
||||
}
|
||||
if (itemProcesesCopy != null) itemProcesesCopy.Sort();
|
||||
return itemProcesesCopy;
|
||||
}
|
||||
public override bool SetCommodityProcesses(SbmCommodity commodity, List<SbmItemProcess> itemProcessesNew)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (commodity.ItemProcesses != null) commodity.ItemProcesses.Clear();
|
||||
// Copy all items from the specified list.
|
||||
commodity.ItemProcesses = itemProcessesNew.Clone();
|
||||
return !HasErrorState();
|
||||
}
|
||||
public override bool CommitCommodityProcesses(SbmCommodity commodity)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (commodity.ItemProcesses == null) return true;
|
||||
if (!ProcessMgr.StoreItemProcesses(Sbm.ItemType.Commodity, commodity.Id, commodity.ItemProcesses, DbUpdateInfo))
|
||||
SetErrorState(ProcessMgr.ErrorStateMessage);
|
||||
return !HasErrorState();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -20,43 +20,17 @@ using System.Threading.Tasks;
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
internal partial class SbmCommodityMgr_Dbas : SbmCommodityMgr
|
||||
// Commodity Manager - Commodity.
|
||||
//=======================================================================
|
||||
partial class SbmCommodityMgr_Dbas
|
||||
{
|
||||
//*******************************************************************
|
||||
// C o m m o d i t i e s
|
||||
//*******************************************************************
|
||||
public class PlannedStockMovements_Params
|
||||
{
|
||||
public PlannedStockMovements_Params()
|
||||
{
|
||||
earliest = DateTime.MinValue;
|
||||
latest = DateTime.MinValue;
|
||||
moveCol = PlanStockMoveCol.ItemQuanity;
|
||||
intoStock = true;
|
||||
provisionalContainersOnly = false;
|
||||
excludeAwaitingContainers = false;
|
||||
tableAliasCommodity = aliasCommodity;
|
||||
}
|
||||
|
||||
public DateTime earliest;
|
||||
public DateTime latest;
|
||||
public SbmCommodity.Params prmCmd;
|
||||
public enum PlanStockMoveCol { ItemQuanity, MovementDate, };
|
||||
public PlanStockMoveCol moveCol;
|
||||
public bool intoStock;
|
||||
public bool provisionalContainersOnly;
|
||||
public bool excludeAwaitingContainers;
|
||||
public String tableAliasCommodity;
|
||||
public String commodityIdCol;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private bool locationIdListPopulated = false;
|
||||
private List<SysId> locationIds_All = new List<SysId>();
|
||||
private List<SysId> locationIds_Calc = new List<SysId>();
|
||||
private List<SysId> locationIds_Sales = new List<SysId>();
|
||||
private List<SysId> locationIds_NonSales = new List<SysId>();
|
||||
private readonly List<SysId> locationIds_All = new List<SysId>();
|
||||
private readonly List<SysId> locationIds_Calc = new List<SysId>();
|
||||
private readonly List<SysId> locationIds_Sales = new List<SysId>();
|
||||
private readonly List<SysId> locationIds_NonSales = new List<SysId>();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Utilities.
|
||||
@@ -70,6 +44,8 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
new StringPair("Status",commodity.StatusCode)
|
||||
};
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public override List<Sbm.CommodityType> GetCommodityTypesInUse()
|
||||
{
|
||||
List<Sbm.CommodityType> types = new List<Sbm.CommodityType>();
|
||||
@@ -210,6 +186,8 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
|
||||
// Perform the update:
|
||||
db.ExecuteUpdate(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Commodity), value, filters.Concat(" AND ", "(", ")"));
|
||||
if (db.HasErrorState())
|
||||
SetErrorState($"{db.ErrorStateMessage}");
|
||||
|
||||
return !HasErrorState();
|
||||
}
|
||||
@@ -219,7 +197,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Sales Quantity Query.
|
||||
public override String BuildSalesQuantityQuery(DateTime earliest, DateTime latest, bool completeOrders, String tableAliasCommodity)
|
||||
public String BuildSalesQuantityQuery(DateTime earliest, DateTime latest, bool completeOrders, String tableAliasCommodity)
|
||||
{
|
||||
tableAliasCommodity = StringUtil.OnEmpty(tableAliasCommodity, aliasCommodity);
|
||||
// Calculate the quantity against sales orders for this commodity.
|
||||
@@ -269,7 +247,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Allocated Stock Query.
|
||||
public override String BuildAllocatedStockQuery(List<SysId> locIds)
|
||||
public String BuildAllocatedStockQuery(List<SysId> locIds)
|
||||
{
|
||||
// Calculate the pending movements sourced to sales order requirements.
|
||||
String tableAliasMov = "StkAllMov";
|
||||
@@ -286,7 +264,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Currency Stock Query.
|
||||
public override String BuildCurrentStockQuery(List<SysId> locIds)
|
||||
public String BuildCurrentStockQuery(List<SysId> locIds)
|
||||
{
|
||||
// Calculate the current stock level.
|
||||
String aliasStockLevel = "aCmdStkLvl";
|
||||
@@ -301,8 +279,34 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Planned stock movements.
|
||||
public class PlannedStockMovements_Params
|
||||
{
|
||||
public PlannedStockMovements_Params()
|
||||
{
|
||||
earliest = DateTime.MinValue;
|
||||
latest = DateTime.MinValue;
|
||||
moveCol = PlanStockMoveCol.ItemQuanity;
|
||||
intoStock = true;
|
||||
provisionalContainersOnly = false;
|
||||
excludeAwaitingContainers = false;
|
||||
tableAliasCommodity = aliasCommodity;
|
||||
}
|
||||
|
||||
public DateTime earliest;
|
||||
public DateTime latest;
|
||||
public SbmCommodity.Params prmCmd;
|
||||
public enum PlanStockMoveCol { ItemQuanity, MovementDate, };
|
||||
public PlanStockMoveCol moveCol;
|
||||
public bool intoStock;
|
||||
public bool provisionalContainersOnly;
|
||||
public bool excludeAwaitingContainers;
|
||||
public String tableAliasCommodity;
|
||||
public String commodityIdCol;
|
||||
}
|
||||
|
||||
// Stock Movements Query.
|
||||
public override String BuildPlannedStockMovementsQuery(DateTime earliest, DateTime latest, SbmCommodity.Params prmCmd, bool intoStock, bool provisional, String tableAliasCommodity)
|
||||
public String BuildPlannedStockMovementsQuery(DateTime earliest, DateTime latest, SbmCommodity.Params prmCmd, bool intoStock, bool provisional, String tableAliasCommodity)
|
||||
{
|
||||
PlannedStockMovements_Params prm = new PlannedStockMovements_Params();
|
||||
prm.earliest = earliest;
|
||||
@@ -508,7 +512,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
// Populate LocationId Lists.
|
||||
public override void PopulateLocationIdLists()
|
||||
public void PopulateLocationIdLists()
|
||||
{
|
||||
// Verify that the location table exists.
|
||||
String tableLocation = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Location);
|
||||
@@ -550,7 +554,8 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
if (locationIds_Sales.Count > 0)
|
||||
{
|
||||
// Assume that all locations are for sales.
|
||||
locationIds_Sales = new List<SysId>(locationIds_NonSales);
|
||||
locationIds_Sales.Clear();
|
||||
locationIds_Sales.AddIds(locationIds_NonSales);
|
||||
locationIds_NonSales.Clear();
|
||||
}
|
||||
}
|
||||
@@ -1096,12 +1101,12 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
break;
|
||||
case SbmCommodity.Column.Code:
|
||||
SetCommodityColDfn(columnDfn, "Code", 120, SbmDbDfn.ColumnIdx.Commodity_Code);
|
||||
if (ConfigConsole != null && AllowConfigOption(Sbm.ConfigOption.CommodityDoubleColumnWidth))
|
||||
if (SessionConsole != null && AllowConfigOption(Sbm.ConfigOption.CommodityDoubleColumnWidth))
|
||||
columnDfn.Width = columnDfn.Width * (int)1.25;
|
||||
break;
|
||||
case SbmCommodity.Column.DescBrief:
|
||||
SetCommodityColDfn(columnDfn, "Desc", 120, SbmDbDfn.ColumnIdx.Commodity_DescBrief);
|
||||
if (ConfigConsole != null && AllowConfigOption(Sbm.ConfigOption.CommodityDoubleColumnWidth))
|
||||
if (SessionConsole != null && AllowConfigOption(Sbm.ConfigOption.CommodityDoubleColumnWidth))
|
||||
columnDfn.Width = columnDfn.Width * (int)1.25;
|
||||
break;
|
||||
case SbmCommodity.Column.DescOrder:
|
||||
@@ -1487,6 +1492,11 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
columnDfn.ShowZeroValues = false;
|
||||
}
|
||||
break;
|
||||
// Sales UOM.
|
||||
case SbmCommodity.Column.UomIdSale:
|
||||
SetCommodityColDfn(columnDfn, "Sales UOM Id", 80, SbmDbDfn.ColumnIdx.Commodity_UomIdSale, ColumnAlignment.Center, DataValue.DataType.Long);
|
||||
columnDfn.ShowZeroValues = false;
|
||||
break;
|
||||
case SbmCommodity.Column.UnitOfSale:
|
||||
SetCommodityColDfn(columnDfn, "Unit of Sale", 100, SbmDbDfn.ColumnIdx.UnitMeasure_Single, ColumnAlignment.Center);
|
||||
break;
|
||||
@@ -2288,15 +2298,15 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Commodity Id.
|
||||
String includedIds = prm.IncludedIds.Concat(",");
|
||||
String includedIds = prm.IdsIncluded.Concat(",");
|
||||
if (!includedIds.IsEmpty()) filter.Add(colCommodity_Id + " IN (" + includedIds + ")");
|
||||
String excludedIds = prm.ExcludedIds.Concat(",");
|
||||
String excludedIds = prm.IdsExcluded.Concat(",");
|
||||
if (!excludedIds.IsEmpty()) filter.Add(colCommodity_Id + " NOT IN (" + excludedIds + ")");
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Organisation.
|
||||
// Must filter by organisation if insufficient alternative filetrs.
|
||||
if (!prm.IncludedIds.HasValidIds() && !prm.PriceSetIdsIncluded.HasValidIds() && !SysId.IsValid(prm.AssociationIdCustomer) && !SysId.IsValid(prm.AssociationIdCommodityCustomer))
|
||||
if (!prm.IdsIncluded.HasValidIds() && !prm.PriceSetIdsIncluded.HasValidIds() && !SysId.IsValid(prm.AssociationIdCustomer) && !SysId.IsValid(prm.AssociationIdCommodityCustomer))
|
||||
{
|
||||
if (!SysId.IsValid(AffiliateId_Owner)) throw new NotSupportedException("Commodity query filter - Organisation Id must be specified");
|
||||
filter.Add(colCommodity_AffIdOwner + "=" + SysId.ToLong(AffiliateId_Owner));
|
||||
@@ -2317,7 +2327,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
filter.Add(colCommodity_Code + "='" + DbQuery.FormatForCondition(prm.CodeFull) + "'");
|
||||
else if (!StringUtil.IsEmpty(prm.CodePartial))
|
||||
{
|
||||
if (ConfigConsole != null && AllowConfigOption(Sbm.ConfigOption.CommodityPartialCodeFilter))
|
||||
if (SessionConsole != null && AllowConfigOption(Sbm.ConfigOption.CommodityPartialCodeFilter))
|
||||
filter.Add(colCommodity_Code + " LIKE '%" + DbQuery.FormatForLike(prm.CodePartial) + "%'");
|
||||
else filter.Add(DbQuery.FormatFn_Left(colCommodity_Code, prm.CodePartial.Length) + "='" + DbQuery.FormatForCondition(prm.CodePartial) + "'");
|
||||
}
|
||||
@@ -2816,6 +2826,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
if (columns.HasId(SbmCommodity.Column.CarriageCostIndicative) ||
|
||||
columns.HasId(SbmCommodity.Column.CarriageCostIndicative_Fmt)) query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_CarriageCostIndicative, aliasCommodity));
|
||||
if (columns.HasId(SbmCommodity.Column.MinOrderQty)) query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_MinOrderQty, aliasCommodity));
|
||||
if (columns.HasId(SbmCommodity.Column.UomIdSale)) query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_UomIdSale, aliasCommodity));
|
||||
if (columns.HasId(SbmCommodity.Column.PackQtySale)) query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_PackQty, aliasCommodity));
|
||||
if (columns.HasId(SbmCommodity.Column.LastOrderDate)) query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_LastOrderDate, aliasCommodity));
|
||||
if (columns.HasId(SbmCommodity.Column.LastOrderQty)) query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_LastOrderQty, aliasCommodity));
|
||||
@@ -3866,7 +3877,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
// Populate filter.
|
||||
query.Filters.AddRange(GetCommodityQueryFilter(prm));
|
||||
|
||||
if (prm.IncludedIds.Count != 1)
|
||||
if (prm.IdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetCommoditySortColumns(prm))
|
||||
|
||||
@@ -16,12 +16,11 @@ using System.Linq;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
// Commodity Manager - Commodity Customer.
|
||||
//=======================================================================
|
||||
partial class SbmCommodityMgr_Dbas
|
||||
{
|
||||
//*******************************************************************
|
||||
// C o m m o d i t i e s C u s t o m e r
|
||||
//*******************************************************************
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private String msg_UnableToManageCommodityCustomers = "Unable to manage commodity customers";
|
||||
@@ -39,7 +38,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
}
|
||||
public override bool CanManageCommodityCustomers()
|
||||
{
|
||||
if (ConfigConsole == null || !AllowConfigOption(Sbm.ConfigOption.CommodityCustomers)) return false;
|
||||
if (!AllowConfigOption(Sbm.ConfigOption.CommodityCustomers)) return false;
|
||||
return db != null && db.TableExists(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.CommodityCustomer));
|
||||
}
|
||||
public override bool StoreCommodityCustomers(List<SbmCommodityCustomer> commodityCustomers)
|
||||
@@ -487,10 +486,10 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
List<String> filter = new List<String>();
|
||||
|
||||
//CommodityCustomer Id.
|
||||
String includedIds = prm.IncludedIds.Concat(",");
|
||||
String includedIds = prm.IdsIncluded.Concat(",");
|
||||
if (!includedIds.IsEmpty())
|
||||
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.CommodityCustomer_CommodityId, aliasCommodityCustomer) + " IN (" + includedIds + ")");
|
||||
String excludedIds = prm.ExcludedIds.Concat(",");
|
||||
String excludedIds = prm.IdsExcluded.Concat(",");
|
||||
if (!excludedIds.IsEmpty())
|
||||
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.CommodityCustomer_CommodityId, aliasCommodityCustomer) + " NOT IN (" + excludedIds + ")");
|
||||
|
||||
@@ -713,7 +712,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
// Populate filter.
|
||||
query.Filters.AddRange(GetCommodityCustomerQueryFilter(prm));
|
||||
|
||||
if (prm.IncludedIds.Count != 1)
|
||||
if (prm.IdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetCommodityCustomerSortColumns(prm))
|
||||
|
||||
@@ -15,12 +15,11 @@ using System.Linq;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
// Commodity Manager - Commodity Supplier.
|
||||
//=======================================================================
|
||||
partial class SbmCommodityMgr_Dbas
|
||||
{
|
||||
//*******************************************************************
|
||||
// C o m m o d i t i e s S u p p l i e r
|
||||
//*******************************************************************
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
@@ -36,7 +35,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
}
|
||||
public override bool CanManageCommoditySuppliers()
|
||||
{
|
||||
if (ConfigConsole == null || !AllowConfigOption(Sbm.ConfigOption.CommoditySuppliers)) return false;
|
||||
if (SessionConsole == null || !AllowConfigOption(Sbm.ConfigOption.CommoditySuppliers)) return false;
|
||||
return db != null && db.TableExists(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.CommoditySupplier));
|
||||
}
|
||||
|
||||
@@ -393,10 +392,10 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
List<String> filter = new List<String>();
|
||||
|
||||
// CommoditySupplier Id.
|
||||
String includedIds = prm.IncludedIds.Concat(",");
|
||||
String includedIds = prm.IdsIncluded.Concat(",");
|
||||
if (!includedIds.IsEmpty())
|
||||
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.CommoditySupplier_CommodityId, aliasCommoditySupplier) + " IN (" + includedIds + ")");
|
||||
String excludedIds = prm.ExcludedIds.Concat(",");
|
||||
String excludedIds = prm.IdsExcluded.Concat(",");
|
||||
if (!excludedIds.IsEmpty())
|
||||
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.CommoditySupplier_CommodityId, aliasCommoditySupplier) + " NOT IN (" + excludedIds + ")");
|
||||
|
||||
@@ -608,7 +607,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
// Populate filter.
|
||||
query.Filters.AddRange(GetCommoditySupplierQueryFilter(prm));
|
||||
|
||||
if (prm.IncludedIds.Count != 1)
|
||||
if (prm.IdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetCommoditySupplierSortColumns(prm))
|
||||
|
||||
@@ -16,12 +16,12 @@ using System.Linq;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
// Commodity Manager - Container.
|
||||
//=======================================================================
|
||||
partial class SbmCommodityMgr_Dbas
|
||||
{
|
||||
//*******************************************************************
|
||||
// C o n t a i n e r s
|
||||
//*******************************************************************
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
@@ -372,10 +372,10 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
|
||||
//Container Id.
|
||||
String colContainer_Id = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Container_Id, tableAlias);
|
||||
String includedIds = prm.IncludedIds.Concat(",");
|
||||
String includedIds = prm.IdsIncluded.Concat(",");
|
||||
if (!includedIds.IsEmpty())
|
||||
filter.Add(colContainer_Id + " IN (" + includedIds + ")");
|
||||
String excludedIds = prm.ExcludedIds.Concat(",");
|
||||
String excludedIds = prm.IdsExcluded.Concat(",");
|
||||
if (!excludedIds.IsEmpty())
|
||||
filter.Add(colContainer_Id + " NOT IN (" + excludedIds + ")");
|
||||
|
||||
@@ -709,7 +709,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
// Populate filter.
|
||||
query.Filters.AddRange(GetContainerQueryFilter(prm));
|
||||
|
||||
if (prm.IncludedIds.Count != 1)
|
||||
if (prm.IdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetContainerSortColumns(prm))
|
||||
|
||||
@@ -16,12 +16,12 @@ using System.Linq;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
// Commodity Manager - Container Item.
|
||||
//=======================================================================
|
||||
partial class SbmCommodityMgr_Dbas
|
||||
{
|
||||
//*******************************************************************
|
||||
// C o n t a i n e r I t e m s
|
||||
//*******************************************************************
|
||||
//-------------------------------------------------------------------
|
||||
// Utilities.
|
||||
private List<StringPair> GetLogProperties(SbmContainerItem containerItem)
|
||||
{
|
||||
@@ -561,10 +561,10 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
//---------------------------------------------------------------
|
||||
// Item Ids.
|
||||
String colContainerItem_Id = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.ContainerItem_ContainerId, tableAliasContainerItem);
|
||||
String includedIds = prm.IncludedIds.Concat(",");
|
||||
String includedIds = prm.IdsIncluded.Concat(",");
|
||||
if (!includedIds.IsEmpty())
|
||||
filters.Add(colContainerItem_Id + " IN (" + includedIds + ")");
|
||||
String excludedIds = prm.ExcludedIds.Concat(",");
|
||||
String excludedIds = prm.IdsExcluded.Concat(",");
|
||||
if (!excludedIds.IsEmpty())
|
||||
filters.Add(colContainerItem_Id + " NOT IN (" + excludedIds + ")");
|
||||
|
||||
@@ -944,7 +944,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
//---------------------------------------------------------------
|
||||
// Populate filter.
|
||||
query.Filters.AddRange(GetContainerItemQueryFilter(prm));
|
||||
if (prm.IncludedIds.Count != 1)
|
||||
if (prm.IdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetContainerItemSortColumns(prm))
|
||||
|
||||
@@ -17,12 +17,12 @@ using System.Linq;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
// Commodity Manager - Portfolio Item.
|
||||
//=======================================================================
|
||||
partial class SbmCommodityMgr_Dbas
|
||||
{
|
||||
//*******************************************************************
|
||||
// P o r t f o l i o I t e m
|
||||
//*******************************************************************
|
||||
//-------------------------------------------------------------------
|
||||
// Utilities.
|
||||
private List<StringPair> GetLogProperties(SbmPortfolioItem portfolioItem)
|
||||
{
|
||||
@@ -729,10 +729,10 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
|
||||
// Portfolio Item Id.
|
||||
String colPortfolioItem_Id = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.PortfolioItem_Id, aliasPortfolioItem);
|
||||
String includedIds = prm.IncludedIds.Concat(",");
|
||||
String includedIds = prm.IdsIncluded.Concat(",");
|
||||
if (!StringUtil.IsEmpty(includedIds))
|
||||
filter.Add(colPortfolioItem_Id + " IN (" + includedIds + ")");
|
||||
String excludedIds = prm.ExcludedIds.Concat(",");
|
||||
String excludedIds = prm.IdsExcluded.Concat(",");
|
||||
if (!StringUtil.IsEmpty(excludedIds))
|
||||
filter.Add(colPortfolioItem_Id + " NOT IN (" + excludedIds + ")");
|
||||
|
||||
@@ -1014,7 +1014,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
// Populate filter.
|
||||
query.Filters.AddRange(GetPortfolioItemQueryFilter(prm));
|
||||
|
||||
if (prm.IncludedIds.Count != 1)
|
||||
if (prm.IdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetPortfolioItemSortColumns(prm))
|
||||
|
||||
@@ -75,7 +75,6 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Create ItemBatch.
|
||||
//public SbmItemBatch_Dbas(SbmSessionProfile sessionProfile, SysId id, SysId affIdOwner, Sbm.ItemBatchType type, String refs, ushort flags)
|
||||
public override SbmItemBatch CreateItemBatch(Sbm.ItemBatchType itemBatchType, String refs)
|
||||
{
|
||||
ClearErrorState();
|
||||
@@ -337,11 +336,11 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
List<String> filter = new List<String>();
|
||||
|
||||
// ItemBatch Id.
|
||||
String includedIds = prm.IncludedIds.Concat(",");
|
||||
String includedIds = prm.IdsIncluded.Concat(",");
|
||||
String colItemBatch_Id = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.ItemBatch_Id, aliasItemBatch);
|
||||
if (!includedIds.IsEmpty())
|
||||
filter.Add(colItemBatch_Id + " IN (" + includedIds + ")");
|
||||
String excludedIds = prm.ExcludedIds.Concat(",");
|
||||
String excludedIds = prm.IdsExcluded.Concat(",");
|
||||
if (!excludedIds.IsEmpty())
|
||||
filter.Add(colItemBatch_Id + " NOT IN (" + excludedIds + ")");
|
||||
|
||||
@@ -511,7 +510,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
// Populate filter.
|
||||
query.Filters.AddRange(GetItemBatchQueryFilter(prm));
|
||||
|
||||
if (prm.IncludedIds.Count != 1)
|
||||
if (prm.IdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetItemBatchSortColumns(prm))
|
||||
|
||||
@@ -0,0 +1,154 @@
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.App;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
|
||||
using Sarand.BusinessMgr.Net.Standard.Dbas.Bus;
|
||||
using Sarand.BusinessMgr.Net.Standard.Dbas.Internal;
|
||||
using Sarand.BusinessMgr.Net.Standard.Dbas.UpdateLog;
|
||||
using Sarand.Net.Standard.Base.App;
|
||||
using Sarand.Net.Standard.Base.Bus;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using Sarand.Net.Standard.Dbas.Data;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
// Data Item Manager - Item Links - Utils.
|
||||
//=======================================================================
|
||||
partial class SbmDataItemMgr_Dbas
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Utilities.
|
||||
|
||||
private List<StringPair> GetLogProperties(SbmItemLink itemLink)
|
||||
{
|
||||
return new List<StringPair>()
|
||||
{
|
||||
new StringPair("Id",SysId.ToString(itemLink.Id)),
|
||||
new StringPair("DataContent",itemLink.DataContent),
|
||||
new StringPair("Status",itemLink.StatusCode)
|
||||
};
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
public override bool DoDbCleanup()
|
||||
{
|
||||
ClearErrorState();
|
||||
/*RS_ItemLink* prsLink = (pSys ? pSys.ItemLinkRecordSet() : NULL);
|
||||
if (!prsLink) return SetException("failed to create ItemLink recordset");
|
||||
if (!HasException())
|
||||
{
|
||||
//---------------------------------------------------------------
|
||||
// Jan10: Item Links with Seq=0.
|
||||
// These are prohibiting the primary key that includes this column.
|
||||
// Should be able to set the value in sequence for the parent ('From') item.
|
||||
//---------------------------------------------------------------
|
||||
// Keep track of previous values:
|
||||
eSapItemLinkType eLinkTypePrev = eSapItemLink_Unknown;
|
||||
eSapItemType eTypeFromPrev = eSapItemTypeUnknown;
|
||||
SaSysId itemIdFromPrev;
|
||||
int iNextSeq = 1;
|
||||
int iRowsModified = 0, iParentItemsFound = 0;
|
||||
|
||||
// Restrict to Seq=0 and sort by parent item:
|
||||
prsLink->AddToSort(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.ItemLink_Type, false));
|
||||
prsLink->AddToSort(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.ItemLink_ItemTypeFrom, false));
|
||||
prsLink->AddToSort(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.ItemLink_ItemIdFrom, false));
|
||||
prsLink->AddToFilter(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.ItemLink_Seq) + "=0");
|
||||
prsLink->Open();
|
||||
while (!HasException() && prsLink->IsOpen() && !prsLink->IsEOF())
|
||||
{
|
||||
// Reset the sequence if the parent item has changed:
|
||||
if (eLinkTypePrev != (eSapItemLinkType)prsLink->iType || eTypeFromPrev != (eSapItemType)prsLink->iItemTypeTo || itemIdFromPrev != prsLink->iItemIdTo)
|
||||
{
|
||||
iNextSeq = 1;
|
||||
eLinkTypePrev = (eSapItemLinkType)prsLink->iType;
|
||||
eTypeFromPrev = (eSapItemType)prsLink->iItemTypeTo;
|
||||
itemIdFromPrev = prsLink->iItemIdTo;
|
||||
iParentItemsFound++;
|
||||
}
|
||||
prsLink->Edit();
|
||||
prsLink->iSeq = iNextSeq++;
|
||||
if (!prsLink->Update())
|
||||
SetException("failed to update link (" + prsLink->Exception() + ")");
|
||||
iRowsModified++;
|
||||
// Move to the next record in the result set:
|
||||
prsLink->MoveNext();
|
||||
}
|
||||
SATRACE("\nSapDataItemMgr_Odbc::DoDbCleanup\n\tParent items found: " + String(iParentItemsFound) + "\n\tRows modified: " + String(iRowsModified) + "\n\n");
|
||||
//---------------------------------------------------------------
|
||||
}*/
|
||||
return !HasErrorState();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
public override bool ClearDataItem(Sbm.ItemType itemType, SysId itemId)
|
||||
{
|
||||
ClearErrorState();
|
||||
if ((int)itemType < 1 || !SysId.IsValid(itemId)) return false;
|
||||
List<String> filters = new List<String>();
|
||||
String colItemTypeFrom = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.ItemLink_ItemTypeFrom);
|
||||
String colItemIdFrom = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.ItemLink_ItemIdFrom);
|
||||
String colItemTypeTo = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.ItemLink_ItemTypeTo);
|
||||
String colItemIdTo = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.ItemLink_ItemIdTo);
|
||||
filters.Add(colItemTypeFrom + "=" + ((int)itemType).ToString() + " AND " + colItemIdFrom + "=" + itemId.ToString());
|
||||
filters.Add(colItemTypeTo + "=" + ((int)itemType).ToString() + " AND " + colItemIdTo + "=" + itemId.ToString());
|
||||
String filter = filters.Concat(" OR ", "(", ")");
|
||||
//return db.ExecuteDelete("DELETE FROM" + SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.ItemLink) + " WHERE " + filter);
|
||||
db.ExecuteDelete(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.ItemLink), filter);
|
||||
return false;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Associated items.
|
||||
public override bool UpdateLinkedItems(Sbm.AssociatedItemMode itemMode, Sbm.ItemLinkType itemLinkType, ref ItemId itemIdParent, ref ItemId itemIdChild, ItemId itemId, List<SbmItemLink> itemLinks)
|
||||
{
|
||||
ClearErrorState();
|
||||
// If the fixed item hasn't previously been specified, store the value now.
|
||||
if (ItemLinkParentIsFixed(itemMode) && itemIdParent.Type == itemId.Type && !SysId.IsValid(itemIdParent.Id))
|
||||
itemIdParent = itemId;
|
||||
else if (ItemLinkChildIsFixed(itemMode) && itemIdChild.Type == itemId.Type && !SysId.IsValid(itemIdChild.Id))
|
||||
itemIdChild = itemId;
|
||||
// Validate the configuration.
|
||||
if (ItemLinkConfigIsValid(itemMode, itemLinkType))
|
||||
return SetErrorState("Invalid configuration for associated items");
|
||||
|
||||
// Validate fixed item:
|
||||
if (ItemLinkParentIsFixed(itemMode))
|
||||
{
|
||||
if (itemIdParent != itemId)
|
||||
return SetErrorState("Inconsistent parent item specified");
|
||||
}
|
||||
else if (ItemLinkChildIsFixed(itemMode))
|
||||
{
|
||||
if (itemIdChild != itemId)
|
||||
return SetErrorState("Inconsistent child item specified");
|
||||
}
|
||||
|
||||
if (ItemLinkParentIsFixed(itemMode))
|
||||
{
|
||||
// Parent item is fixed - update its child items as specified in the list:
|
||||
if (itemLinks != null) itemLinks.SetSequences();
|
||||
if (!DataItemMgr.StoreFromItemLinks(itemLinkType, itemId, itemLinks, DbUpdateInfo))
|
||||
return SetErrorState($"Failed to store associated items - {DataItemMgr.ErrorStateMessage}");
|
||||
}
|
||||
else if (ItemLinkChildIsFixed(itemMode))
|
||||
{
|
||||
// Child item is fixed - update its parent items as specified in the list:
|
||||
if (!DataItemMgr.StoreToItemLinks(itemLinkType, itemId, itemLinks, DbUpdateInfo))
|
||||
return SetErrorState($"Failed to store associated items - {DataItemMgr.ErrorStateMessage}");
|
||||
}
|
||||
|
||||
return !HasErrorState();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -16,94 +16,16 @@ using System.Linq;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
// Data Item Manager - Item Links.
|
||||
//=======================================================================
|
||||
partial class SbmDataItemMgr_Dbas
|
||||
{
|
||||
//*******************************************************************
|
||||
// I t e m L i n k s
|
||||
//*******************************************************************
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Utilities.
|
||||
private List<StringPair> GetLogProperties(SbmItemLink itemLink)
|
||||
{
|
||||
return new List<StringPair>()
|
||||
{
|
||||
new StringPair("Id",SysId.ToString(itemLink.Id)),
|
||||
new StringPair("DataContent",itemLink.DataContent),
|
||||
new StringPair("Status",itemLink.StatusCode)
|
||||
};
|
||||
}
|
||||
public override bool DoDbCleanup()
|
||||
{
|
||||
ClearErrorState();
|
||||
/*RS_ItemLink* prsLink = (pSys ? pSys.ItemLinkRecordSet() : NULL);
|
||||
if (!prsLink) return SetException("failed to create ItemLink recordset");
|
||||
if (!HasException())
|
||||
{
|
||||
//---------------------------------------------------------------
|
||||
// Jan10: Item Links with Seq=0.
|
||||
// These are prohibiting the primary key that includes this column.
|
||||
// Should be able to set the value in sequence for the parent ('From') item.
|
||||
//---------------------------------------------------------------
|
||||
// Keep track of previous values:
|
||||
eSapItemLinkType eLinkTypePrev = eSapItemLink_Unknown;
|
||||
eSapItemType eTypeFromPrev = eSapItemTypeUnknown;
|
||||
SaSysId itemIdFromPrev;
|
||||
int iNextSeq = 1;
|
||||
int iRowsModified = 0, iParentItemsFound = 0;
|
||||
|
||||
// Restrict to Seq=0 and sort by parent item:
|
||||
prsLink->AddToSort(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.ItemLink_Type, false));
|
||||
prsLink->AddToSort(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.ItemLink_ItemTypeFrom, false));
|
||||
prsLink->AddToSort(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.ItemLink_ItemIdFrom, false));
|
||||
prsLink->AddToFilter(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.ItemLink_Seq) + "=0");
|
||||
prsLink->Open();
|
||||
while (!HasException() && prsLink->IsOpen() && !prsLink->IsEOF())
|
||||
{
|
||||
// Reset the sequence if the parent item has changed:
|
||||
if (eLinkTypePrev != (eSapItemLinkType)prsLink->iType || eTypeFromPrev != (eSapItemType)prsLink->iItemTypeTo || itemIdFromPrev != prsLink->iItemIdTo)
|
||||
{
|
||||
iNextSeq = 1;
|
||||
eLinkTypePrev = (eSapItemLinkType)prsLink->iType;
|
||||
eTypeFromPrev = (eSapItemType)prsLink->iItemTypeTo;
|
||||
itemIdFromPrev = prsLink->iItemIdTo;
|
||||
iParentItemsFound++;
|
||||
}
|
||||
prsLink->Edit();
|
||||
prsLink->iSeq = iNextSeq++;
|
||||
if (!prsLink->Update())
|
||||
SetException("failed to update link (" + prsLink->Exception() + ")");
|
||||
iRowsModified++;
|
||||
// Move to the next record in the result set:
|
||||
prsLink->MoveNext();
|
||||
}
|
||||
SATRACE("\nSapDataItemMgr_Odbc::DoDbCleanup\n\tParent items found: " + String(iParentItemsFound) + "\n\tRows modified: " + String(iRowsModified) + "\n\n");
|
||||
//---------------------------------------------------------------
|
||||
}*/
|
||||
return !HasErrorState();
|
||||
}
|
||||
public override bool ClearDataItem(Sbm.ItemType itemType, SysId itemId)
|
||||
{
|
||||
ClearErrorState();
|
||||
if ((int)itemType < 1 || !SysId.IsValid(itemId)) return false;
|
||||
List<String> filters = new List<String>();
|
||||
String colItemTypeFrom = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.ItemLink_ItemTypeFrom);
|
||||
String colItemIdFrom = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.ItemLink_ItemIdFrom);
|
||||
String colItemTypeTo = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.ItemLink_ItemTypeTo);
|
||||
String colItemIdTo = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.ItemLink_ItemIdTo);
|
||||
filters.Add(colItemTypeFrom + "=" + ((int)itemType).ToString() + " AND " + colItemIdFrom + "=" + itemId.ToString());
|
||||
filters.Add(colItemTypeTo + "=" + ((int)itemType).ToString() + " AND " + colItemIdTo + "=" + itemId.ToString());
|
||||
String filter = filters.Concat(" OR ", "(", ")");
|
||||
//return db.ExecuteDelete("DELETE FROM" + SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.ItemLink) + " WHERE " + filter);
|
||||
db.ExecuteDelete(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.ItemLink), filter);
|
||||
return false;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get ItemLink.
|
||||
// Get Item.
|
||||
public override SbmItemLink GetItemLink(SbmItemLink.Params prm)
|
||||
{
|
||||
return GetItemLink(GetItemLinkQueryFilter(prm).Concat(" AND ", "(", ")"));
|
||||
@@ -140,7 +62,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Create ItemLink.
|
||||
// Create Item.
|
||||
public override SbmItemLink CreateItemLink(Sbm.ItemLinkType itemLinkType, Sbm.ItemType itemTypeFrom, SysId itemIdFrom, Sbm.ItemType itemTypeTo, SysId itemIdTo)
|
||||
{
|
||||
ClearErrorState();
|
||||
@@ -158,7 +80,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
return itemLink;
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
// Has ItemLink.
|
||||
// Has Item.
|
||||
public override bool HasItemLinks(Sbm.ItemType itemType, SysId itemId)
|
||||
{
|
||||
ClearErrorState();
|
||||
@@ -175,7 +97,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate ItemLink.
|
||||
// Validate Item.
|
||||
public override bool IsValidItemLinkData(SbmItemLink.Data data, SbmItemLink.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
@@ -184,7 +106,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert ItemLink.
|
||||
// Insert Item.
|
||||
public override bool InsertItemLink(SbmItemLink itemLink, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
String fn = GetType().Name + ".InsertItemLink";
|
||||
@@ -215,7 +137,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update ItemLink.
|
||||
// Update Item.
|
||||
public override bool UpdateItemLink(SbmItemLink itemLink, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
String fn = GetType().Name + ".UpdateItemLink";
|
||||
@@ -232,7 +154,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
{
|
||||
try
|
||||
{
|
||||
// Retrieve ItemLink.
|
||||
// Retrieve Item.
|
||||
dbConnection.Open();
|
||||
ItemLink_Db dbItemLink = new ItemLink_Db(DbInfo);
|
||||
dbItemLink.PopulateFrom(dbCommand, aliasItemLink, "Id=" + SysId.ToString(itemLink.Id));
|
||||
@@ -262,7 +184,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
// LinkType = 20 [eSapItemLink_Requirement_CostEstimate]; Item Type From = 52: 1080 key values, last updated recently.
|
||||
// Problem stems from sequence not being set for cost estimates.
|
||||
//-------------------------------------------------------------------
|
||||
public override bool StoreFromItemLinks(Sbm.ItemLinkType itemLinkType, Sbm.ItemType itemTypeFrom, SysId itemIdFrom, List<SbmItemLink> itemLinks, DbUpdateInfo dbUpdateInfo)
|
||||
public override bool StoreFromItemLinks(Sbm.ItemLinkType itemLinkType, ItemId itemIdFrom, List<SbmItemLink> itemLinks, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if ((int)itemLinkType < 1) return SetErrorState("invalid link type");
|
||||
@@ -272,8 +194,8 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
{
|
||||
if (itemLink == null) continue;
|
||||
if (itemLink.ItemLinkType != itemLinkType) return SetErrorState("inconsistent link type found in item list");
|
||||
if (itemLink.ItemTypeFrom != itemTypeFrom) return SetErrorState("inconsistent 'from' item type found in item list");
|
||||
if (itemLink.ItemIdFrom != itemIdFrom) return SetErrorState("inconsistent 'from' item id found in item list");
|
||||
if ((int)itemLink.ItemTypeFrom != itemIdFrom.Type) return SetErrorState("inconsistent 'from' item type found in item list");
|
||||
if (itemLink.ItemIdFrom != itemIdFrom.Id) return SetErrorState("inconsistent 'from' item id found in item list");
|
||||
if (itemLink.Seq < 1) return SetErrorState("invalid sequence (" + itemLink.Seq.ToString() + ") found in item list");
|
||||
}
|
||||
|
||||
@@ -281,12 +203,12 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
List<SbmItemLink> itemLinksLocal = new List<SbmItemLink>(itemLinks);
|
||||
SbmItemLink.Params prm = new SbmItemLink.Params();
|
||||
prm.ItemLinkType = itemLinkType;
|
||||
prm.ItemTypeFrom = itemTypeFrom;
|
||||
prm.ItemIdFrom = itemIdFrom;
|
||||
prm.ItemTypeFrom = (Sbm.ItemType)itemIdFrom.Type;
|
||||
prm.ItemIdFrom = itemIdFrom.Id;
|
||||
foreach (SbmItemLink itemLink in DataItemMgr.GetItemLinkList(prm))
|
||||
{
|
||||
// Does this link still exist in the list.
|
||||
if (itemLinksLocal.FindByLink(itemLinkType, itemTypeFrom, itemIdFrom, prm.ItemTypeTo, prm.ItemIdTo))
|
||||
if (itemLinksLocal.FindByLink(itemLinkType, (Sbm.ItemType)itemIdFrom.Type, itemIdFrom.Id, prm.ItemTypeTo, prm.ItemIdTo))
|
||||
{
|
||||
if (UpdateItemLink(itemLink, dbUpdateInfo))
|
||||
{
|
||||
@@ -294,7 +216,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
}
|
||||
else SetErrorState("failed to update link");
|
||||
// Remove the lisk from the local list (without deleting it).
|
||||
itemLinksLocal.RemoveByLink(itemLinkType, itemTypeFrom, itemIdFrom, prm.ItemTypeTo, prm.ItemIdTo);
|
||||
itemLinksLocal.RemoveByLink(itemLinkType, (Sbm.ItemType)itemIdFrom.Type, itemIdFrom.Id, prm.ItemTypeTo, prm.ItemIdTo);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -314,7 +236,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
return !HasErrorState();
|
||||
}
|
||||
|
||||
public override bool StoreToItemLinks(Sbm.ItemLinkType itemLinkType, Sbm.ItemType itemTypeTo, SysId itemIdTo, List<SbmItemLink> itemLinks, DbUpdateInfo dbUpdateInfo)
|
||||
public override bool StoreToItemLinks(Sbm.ItemLinkType itemLinkType, ItemId itemIdTo, List<SbmItemLink> itemLinks, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if ((int)itemLinkType < 1) return SetErrorState("invalid link type");
|
||||
@@ -324,8 +246,8 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
{
|
||||
if (itemLink == null) continue;
|
||||
if (itemLink.ItemLinkType != itemLinkType) return SetErrorState("inconsistent link type found in item list");
|
||||
if (itemLink.ItemTypeFrom != itemTypeTo) return SetErrorState("inconsistent 'from' item type found in item list");
|
||||
if (itemLink.ItemIdFrom != itemIdTo) return SetErrorState("inconsistent 'from' item id found in item list");
|
||||
if ((short)itemLink.ItemTypeFrom != itemIdTo.Type) return SetErrorState("inconsistent 'from' item type found in item list");
|
||||
if (itemLink.ItemIdFrom != itemIdTo.Id) return SetErrorState("inconsistent 'from' item id found in item list");
|
||||
if (itemLink.Seq < 1) return SetErrorState("invalid sequence (" + itemLink.Seq.ToString() + ") found in item list");
|
||||
}
|
||||
|
||||
@@ -333,12 +255,12 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
List<SbmItemLink> itemLinksLocal = new List<SbmItemLink>(itemLinks);
|
||||
SbmItemLink.Params prm = new SbmItemLink.Params();
|
||||
prm.ItemLinkType = itemLinkType;
|
||||
prm.ItemTypeFrom = itemTypeTo;
|
||||
prm.ItemIdFrom = itemIdTo;
|
||||
prm.ItemTypeFrom = (Sbm.ItemType)itemIdTo.Type;
|
||||
prm.ItemIdFrom = itemIdTo.Id;
|
||||
foreach (SbmItemLink itemLink in DataItemMgr.GetItemLinkList(prm))
|
||||
{
|
||||
// Does this link still exist in the list.
|
||||
if (itemLinksLocal.FindByLink(itemLinkType, prm.ItemTypeFrom, prm.ItemIdFrom, itemTypeTo, itemIdTo))
|
||||
if (itemLinksLocal.FindByLink(itemLinkType, prm.ItemTypeFrom, prm.ItemIdFrom, (Sbm.ItemType)itemIdTo.Type, itemIdTo.Id))
|
||||
{
|
||||
if (UpdateItemLink(itemLink, dbUpdateInfo))
|
||||
{
|
||||
@@ -346,7 +268,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
}
|
||||
else SetErrorState("failed to update link");
|
||||
// Remove the lisk from the local list (without deleting it).
|
||||
itemLinksLocal.RemoveByLink(itemLinkType, prm.ItemTypeFrom, prm.ItemIdFrom, itemTypeTo, itemIdTo);
|
||||
itemLinksLocal.RemoveByLink(itemLinkType, prm.ItemTypeFrom, prm.ItemIdFrom, (Sbm.ItemType)itemIdTo.Type, itemIdTo.Id);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -550,11 +472,11 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
List<String> filter = new List<String>();
|
||||
|
||||
// ItemLink Id.
|
||||
String includedIds = prm.IncludedIds.Concat(",");
|
||||
String includedIds = prm.IdsIncluded.Concat(",");
|
||||
String colItemLink_Id = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Unknown, aliasItemLink);
|
||||
if (!includedIds.IsEmpty())
|
||||
filter.Add(colItemLink_Id + " IN (" + includedIds + ")");
|
||||
String excludedIds = prm.ExcludedIds.Concat(",");
|
||||
String excludedIds = prm.IdsExcluded.Concat(",");
|
||||
if (!excludedIds.IsEmpty())
|
||||
filter.Add(colItemLink_Id + " NOT IN (" + excludedIds + ")");
|
||||
|
||||
@@ -708,7 +630,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
// Populate filter.
|
||||
query.Filters.AddRange(GetItemLinkQueryFilter(prm));
|
||||
|
||||
if (prm.IncludedIds.Count != 1)
|
||||
if (prm.IdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetItemLinkSortColumns(prm))
|
||||
|
||||
@@ -349,11 +349,11 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
List<String> filter = new List<String>();
|
||||
|
||||
// PriceSet Id.
|
||||
String includedIds = prm.IncludedIds.Concat(",");
|
||||
String includedIds = prm.IdsIncluded.Concat(",");
|
||||
String colPriceSet_Id = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaPriceSet_Id, aliasPriceSet);
|
||||
if (!includedIds.IsEmpty())
|
||||
filter.Add(colPriceSet_Id + " IN (" + includedIds + ")");
|
||||
String excludedIds = prm.ExcludedIds.Concat(",");
|
||||
String excludedIds = prm.IdsExcluded.Concat(",");
|
||||
if (!excludedIds.IsEmpty())
|
||||
filter.Add(colPriceSet_Id + " NOT IN (" + excludedIds + ")");
|
||||
|
||||
@@ -541,7 +541,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
// Populate filter.
|
||||
query.Filters.AddRange(GetPriceSetQueryFilter(prm));
|
||||
|
||||
if (prm.IncludedIds.Count != 1)
|
||||
if (prm.IdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetPriceSetSortColumns(prm))
|
||||
|
||||
@@ -390,11 +390,11 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
|
||||
//--------------------------------------------------------------- -
|
||||
// Process Id.
|
||||
String includedIds = prm.IncludedIds.Concat(",");
|
||||
String includedIds = prm.IdsIncluded.Concat(",");
|
||||
String colProcess_Id = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Process_Id, aliasProcess);
|
||||
if (!includedIds.IsEmpty())
|
||||
filter.Add(colProcess_Id + " IN (" + includedIds + ")");
|
||||
String excludedIds = prm.ExcludedIds.Concat(",");
|
||||
String excludedIds = prm.IdsExcluded.Concat(",");
|
||||
if (!excludedIds.IsEmpty())
|
||||
filter.Add(colProcess_Id + " NOT IN (" + excludedIds + ")");
|
||||
|
||||
@@ -555,7 +555,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
// Populate filter.
|
||||
query.Filters.AddRange(GetProcessQueryFilter(prm));
|
||||
|
||||
if (prm.IncludedIds.Count != 1)
|
||||
if (prm.IdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetProcessSortColumns(prm))
|
||||
|
||||
@@ -340,10 +340,10 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
|
||||
// Location Id.
|
||||
String colLocation_Id = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Location_Id, aliasLocation);
|
||||
String includedIds = prm.IncludedIds.Concat(",");
|
||||
String includedIds = prm.IdsIncluded.Concat(",");
|
||||
if (!includedIds.IsEmpty())
|
||||
filter.Add(colLocation_Id + " IN (" + includedIds + ")");
|
||||
String excludedIds = prm.ExcludedIds.Concat(",");
|
||||
String excludedIds = prm.IdsExcluded.Concat(",");
|
||||
if (!excludedIds.IsEmpty())
|
||||
filter.Add(colLocation_Id + " NOT IN (" + excludedIds + ")");
|
||||
|
||||
@@ -519,7 +519,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
// Populate filter.
|
||||
query.Filters.AddRange(GetLocationQueryFilter(prm));
|
||||
|
||||
if (prm.IncludedIds.Count != 1)
|
||||
if (prm.IdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetLocationSortColumns(prm))
|
||||
|
||||
@@ -103,6 +103,8 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
List<StringPair> values = new List<StringPair>();
|
||||
SacsDatabase.AddValuePair(values, colMovement_Status, StatusCancelled, true);
|
||||
db.ExecuteUpdate(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Movement), values, lFilterSourceItem.Concat(" AND ", "(", ")"));
|
||||
if (db.HasErrorState())
|
||||
SetErrorState($"{db.ErrorStateMessage}");
|
||||
|
||||
// ToDo CalculateStockLevels(commodityIds); > in Stock-MgrDbas
|
||||
return !HasErrorState();
|
||||
@@ -597,10 +599,10 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
|
||||
//Movement Id.
|
||||
String colMovement_Id = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Movement_Id, aliasMovement);
|
||||
String includedIds = prm.IncludedIds.Concat(",");
|
||||
String includedIds = prm.IdsIncluded.Concat(",");
|
||||
if (!includedIds.IsEmpty())
|
||||
filters.Add(colMovement_Id + " IN (" + includedIds + ")");
|
||||
String excludedIds = prm.ExcludedIds.Concat(",");
|
||||
String excludedIds = prm.IdsExcluded.Concat(",");
|
||||
if (!excludedIds.IsEmpty())
|
||||
filters.Add(colMovement_Id + " NOT IN (" + excludedIds + ")");
|
||||
|
||||
@@ -733,7 +735,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
// Performance of querying requirements for transaction(s) within movement query is very poor - eg. ItemIdSource in (Select Id From Requirement Where TransactionId in (1,2,3)).
|
||||
// Get list of requirement Ids first and then explicitly query against these in the movement query.
|
||||
SbmTransaction.Params prmTrans = new SbmTransaction.Params();
|
||||
prmTrans.IncludedIds = prm.ItemIdSource;
|
||||
prmTrans.IdsIncluded = prm.ItemIdSource;
|
||||
List<SysId> requirementId = TransactionMgr.GetRequirementByIds(prmTrans);
|
||||
|
||||
// Movements can be matched: either directly to one of the transactions or to any of their associated requirements.
|
||||
@@ -1036,7 +1038,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
// Populate filter.
|
||||
query.Filters.AddRange(GetMovementQueryFilter(prm));
|
||||
|
||||
if (prm.IncludedIds.Count != 1)
|
||||
if (prm.IdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetMovementSortColumns(prm))
|
||||
|
||||
@@ -796,11 +796,11 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
List<String> filter = new List<String>();
|
||||
|
||||
// Constituent Id.
|
||||
String includedIds = prm.IncludedIds.Concat(",");
|
||||
String includedIds = prm.IdsIncluded.Concat(",");
|
||||
String colConstituent_Id = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Constituent_Id, aliasConstituent);
|
||||
if (!includedIds.IsEmpty())
|
||||
filter.Add(colConstituent_Id + " IN (" + includedIds + ")");
|
||||
String excludedIds = prm.ExcludedIds.Concat(",");
|
||||
String excludedIds = prm.IdsExcluded.Concat(",");
|
||||
if (!excludedIds.IsEmpty())
|
||||
filter.Add(colConstituent_Id + " NOT IN (" + excludedIds + ")");
|
||||
|
||||
@@ -1198,7 +1198,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
// Populate filter.
|
||||
query.Filters.AddRange(GetConstituentQueryFilter(prm));
|
||||
|
||||
if (prm.IncludedIds.Count != 1)
|
||||
if (prm.IdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetConstituentSortColumns(prm))
|
||||
|
||||
@@ -132,7 +132,6 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(requirementId)) return SetErrorState("Invalid item specified");
|
||||
String fn = this.GetFn("ClearRequirementDependentData");
|
||||
// Clear any references to this requirement from other requirements.
|
||||
if (!HasErrorState())
|
||||
ClearRequirementAssociatedRequirements(requirementId);
|
||||
@@ -144,7 +143,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
if (db.HasErrorState())
|
||||
{
|
||||
String msg = "Failed to clear requirement constituents";
|
||||
SaLogger.Warn(fn + " " + msg + ": " + db.ErrorStateMessage + ". RequirentId: " + SysId.ToString(requirementId));
|
||||
SaLogger.Warn($"{SysUtil.Fn} {msg}: {db.ErrorStateMessage}. RequirentId: {SysId.ToString(requirementId)}.");
|
||||
SetErrorState(msg);
|
||||
}
|
||||
}
|
||||
@@ -163,7 +162,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
if (DataItemMgr.ClearDataItem(Sbm.ItemType.Requirement, requirementId))
|
||||
{
|
||||
String msg = "failed to clear requirement item links";
|
||||
SaLogger.Warn(fn + " " + msg + ": " + DataItemMgr.ErrorStateMessage + ". RequirentId: " + SysId.ToString(requirementId));
|
||||
SaLogger.Warn($"{SysUtil.Fn} {msg}: {DataItemMgr.ErrorStateMessage}. RequirentId: {requirementId}.");
|
||||
SetErrorState(msg);
|
||||
}
|
||||
}
|
||||
@@ -178,9 +177,8 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
List<StringPair> values = new List<StringPair>();
|
||||
SacsDatabase.AddValuePair(values, SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Requirement_ReqntIdSource), "0", false);
|
||||
db.ExecuteUpdate(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Requirement), values, filter);
|
||||
{
|
||||
if (db.HasErrorState())
|
||||
SetErrorState("Failed to clear requirement references");
|
||||
}
|
||||
return !HasErrorState();
|
||||
}
|
||||
|
||||
@@ -804,12 +802,12 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
break;
|
||||
case SbmRequirement.Column.ProductCode:
|
||||
SetRequirementColDfn(columnDfn, "Code", 120, SbmDbDfn.ColumnIdx.Requirement_ProductCode);
|
||||
if (ConfigConsole != null && AllowConfigOption(Sbm.ConfigOption.CommodityDoubleColumnWidth))
|
||||
if (SessionConsole != null && AllowConfigOption(Sbm.ConfigOption.CommodityDoubleColumnWidth))
|
||||
columnDfn.Width = columnDfn.Width * 2;
|
||||
break;
|
||||
case SbmRequirement.Column.DescBrief:
|
||||
SetRequirementColDfn(columnDfn, "Description", 140, SbmDbDfn.ColumnIdx.Requirement_DescBrief);
|
||||
if (ConfigConsole != null && AllowConfigOption(Sbm.ConfigOption.CommodityDoubleColumnWidth))
|
||||
if (SessionConsole != null && AllowConfigOption(Sbm.ConfigOption.CommodityDoubleColumnWidth))
|
||||
columnDfn.Width = columnDfn.Width * 2;
|
||||
break;
|
||||
case SbmRequirement.Column.DescOutline:
|
||||
@@ -1785,13 +1783,13 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
//---------------------------------------------------------------
|
||||
// Validate the parameters.
|
||||
#if DEBUG
|
||||
if (!SysId.IsValid(AffiliateId_Owner) && !SysId.IsValid(prm.AssociationId) && !SysId.IsValid(prm.CommodityId) && !SysId.IsValid(prm.TransReqntSourceId) && !prm.TransIncludedIds.HasValidIds() && !prm.ReqntIncludedIds.HasValidIds() && !prm.ReqntIdsSource.HasValidIds())
|
||||
if (!SysId.IsValid(AffiliateId_Owner) && !SysId.IsValid(prm.AssociationId) && !SysId.IsValid(prm.CommodityId) && !SysId.IsValid(prm.TransactionRequirementSourceId) && !prm.TransactionIdsIncluded.HasValidIds() && !prm.RequirementIdsIncluded.HasValidIds() && !prm.RequirementIdsSource.HasValidIds())
|
||||
SaLogger.Trace("\t### " + GetType().Name + ".GetRequirementQueryFilter - Owner/association/transaction not specified.");
|
||||
#endif
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Affiliate Owner - only need to be filtered if no significant Ids specified.
|
||||
bool filterByOwner = !SysId.IsValid(prm.AssociationId) && !SysId.IsValid(prm.CommodityId) && !SysId.IsValid(prm.TransReqntSourceId) && !prm.TransIncludedIds.HasValidIds() && !prm.ReqntIncludedIds.HasValidIds() && !prm.ReqntIdsSource.HasValidIds();
|
||||
bool filterByOwner = !SysId.IsValid(prm.AssociationId) && !SysId.IsValid(prm.CommodityId) && !SysId.IsValid(prm.TransactionRequirementSourceId) && !prm.TransactionIdsIncluded.HasValidIds() && !prm.RequirementIdsIncluded.HasValidIds() && !prm.RequirementIdsSource.HasValidIds();
|
||||
if (filterByOwner)
|
||||
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Requirement_AffIdOwner, tableAlias, false) + "=" + SysId.ToString(AffiliateId_Owner));
|
||||
|
||||
@@ -1803,7 +1801,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
filter.Add(colRequirement_AssocId + "=" + prm.AssociationId.ToString());
|
||||
|
||||
// Association coding.
|
||||
String assocFilter = DbQuery.FormatForCondition(prm.AssocPartial);
|
||||
String assocFilter = DbQuery.FormatForCondition(prm.AssociationPartial);
|
||||
String accountManagerCode = DbQuery.FormatForCondition(prm.AccountManagerCode);
|
||||
String accountHandlerCode = DbQuery.FormatForCondition(prm.AccountHandlerCode);
|
||||
if (!StringUtil.IsEmpty(assocFilter) || !StringUtil.IsEmpty(accountManagerCode) || !StringUtil.IsEmpty(accountHandlerCode))
|
||||
@@ -1832,8 +1830,8 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
String colAssociation_Code = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Association_Code, tableAlias_Assoc, false);
|
||||
String colAffiliate_Name = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Name, tableAlias_AssocTarget, false);
|
||||
List<String> filterAssoc = new List<String>();
|
||||
filterAssoc.Add(DbQuery.FormatFn_Left(colAssociation_Code, prm.AssocPartial.Length) + "='" + assocFilter + "'");
|
||||
filterAssoc.Add(DbQuery.FormatFn_Left(colAffiliate_Name, prm.AssocPartial.Length) + "='" + assocFilter + "'");
|
||||
filterAssoc.Add(DbQuery.FormatFn_Left(colAssociation_Code, prm.AssociationPartial.Length) + "='" + assocFilter + "'");
|
||||
filterAssoc.Add(DbQuery.FormatFn_Left(colAffiliate_Name, prm.AssociationPartial.Length) + "='" + assocFilter + "'");
|
||||
qryAssoc.Filters.Add(filterAssoc.Concat(" OR ", "(", ")"));
|
||||
}
|
||||
// Account Manager.
|
||||
@@ -1855,30 +1853,30 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
//---------------------------------------------------------------
|
||||
// Transaction filter.
|
||||
String colRequirement_TransId = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Requirement_TransId, tableAlias, false);
|
||||
if (prm.TransIncludedIds.HasValidIds())
|
||||
filter.Add(colRequirement_TransId + " IN(" + prm.TransIncludedIds.Concat(",") + ")");
|
||||
if (prm.TransExcludedIds.HasValidIds())
|
||||
filter.Add(colRequirement_TransId + " NOT IN(" + prm.TransExcludedIds.Concat(",") + ")");
|
||||
if (prm.TransactionIdsIncluded.HasValidIds())
|
||||
filter.Add(colRequirement_TransId + " IN(" + prm.TransactionIdsIncluded.Concat(",") + ")");
|
||||
if (prm.TransactionIdsExcluded.HasValidIds())
|
||||
filter.Add(colRequirement_TransId + " NOT IN(" + prm.TransactionIdsExcluded.Concat(",") + ")");
|
||||
|
||||
// Transaction parameters.
|
||||
SbmTransaction.Params prmTrans = new SbmTransaction.Params();
|
||||
prmTrans.TableAlias = StringUtil.OnEmpty(prm.AliasTransaction, "ReqTra");
|
||||
prmTrans.IncludeDefaultFilter = false;
|
||||
prmTrans.TransactionType = prm.TransactionType;
|
||||
prmTrans.LocationIdStock = prm.TransLocationIdStock;
|
||||
prmTrans.LocationIdStock = prm.TransactionLocationIdStock;
|
||||
prmTrans.StatusCat = prm.TransactionStatusCat;
|
||||
prmTrans.TransRefPartial = prm.TransRefPartial;
|
||||
prmTrans.TransRefExtPartial = prm.TransRefExtPartial;
|
||||
prmTrans.TransDescBriefPartial = prm.TransDescBriefPartial;
|
||||
prmTrans.RaisedFrom = prm.TransRaisedFrom;
|
||||
prmTrans.RaisedTo = prm.TransRaisedTo;
|
||||
prmTrans.RequiredFrom = prm.TransRequiredFrom;
|
||||
prmTrans.RequiredTo = prm.TransRequiredTo;
|
||||
prmTrans.AmountNetLt = prm.TransAmountNetLt;
|
||||
prmTrans.AmountNetGt = prm.TransAmountNetGt;
|
||||
prmTrans.ActiveOn = prm.TransActiveOn;
|
||||
prmTrans.ActiveFrom = prm.TransActiveFrom;
|
||||
prmTrans.ActiveTo = prm.TransActiveTo;
|
||||
prmTrans.TransRefPartial = prm.TransactionRefPartial;
|
||||
prmTrans.TransRefExtPartial = prm.TransactionRefExtPartial;
|
||||
prmTrans.TransDescBriefPartial = prm.TransactionDescBriefPartial;
|
||||
prmTrans.RaisedFrom = prm.TransactionRaisedFrom;
|
||||
prmTrans.RaisedTo = prm.TransactionRaisedTo;
|
||||
prmTrans.RequiredFrom = prm.TransactionRequiredFrom;
|
||||
prmTrans.RequiredTo = prm.TransactionRequiredTo;
|
||||
prmTrans.AmountNetLt = prm.TransactionAmountNetLt;
|
||||
prmTrans.AmountNetGt = prm.TransactionAmountNetGt;
|
||||
prmTrans.ActiveOn = prm.TransactionActiveOn;
|
||||
prmTrans.ActiveFrom = prm.TransactionActiveFrom;
|
||||
prmTrans.ActiveTo = prm.TransactionActiveTo;
|
||||
prmTrans.ForceFullResults = true;
|
||||
List<String> transactionFilters = TransactionMgr.GetTransactionQueryFilter(prmTrans);
|
||||
if (transactionFilters.Count > 0)
|
||||
@@ -1901,21 +1899,21 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
//---------------------------------------------------------------
|
||||
// Requirement Details:
|
||||
// IncludeIds & ExcludeIds.
|
||||
String includedIds = prm.ReqntIncludedIds.Concat(",");
|
||||
String includedIds = prm.RequirementIdsIncluded.Concat(",");
|
||||
String colRequirement_Id = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Requirement_Id, tableAlias);
|
||||
if (!StringUtil.IsEmpty(includedIds))
|
||||
filter.Add(colRequirement_Id + " IN (" + includedIds + ")");
|
||||
String excludedIds = prm.ReqntExcludedIds.Concat(",");
|
||||
String excludedIds = prm.RequirementIdsExcluded.Concat(",");
|
||||
if (!StringUtil.IsEmpty(excludedIds))
|
||||
filter.Add(colRequirement_Id + " NOT IN (" + excludedIds + ")");
|
||||
|
||||
// Source Requirement.
|
||||
String colRequirement_ReqntIdSource = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Requirement_ReqntIdSource, tableAlias, false);
|
||||
if (prm.ReqntIdsSource.HasValidIds())
|
||||
filter.Add(colRequirement_ReqntIdSource + " IN (" + prm.ReqntIdsSource.Concat(",") + ")");
|
||||
if (prm.RequirementIdsSource.HasValidIds())
|
||||
filter.Add(colRequirement_ReqntIdSource + " IN (" + prm.RequirementIdsSource.Concat(",") + ")");
|
||||
|
||||
// Source Requirment Transaction.
|
||||
if (SysId.IsValid(prm.TransReqntSourceId))
|
||||
if (SysId.IsValid(prm.TransactionRequirementSourceId))
|
||||
{
|
||||
String tableAlias_ReqntSource = "ReqSrcFlt";
|
||||
String colRequirementId_ReqntSource = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Requirement_Id, tableAlias_ReqntSource, false);
|
||||
@@ -1923,21 +1921,21 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
qryTrans.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Requirement), tableAlias_ReqntSource);
|
||||
qryTrans.Columns.Add(colRequirementId_ReqntSource);
|
||||
qryTrans.Filters.Add(colRequirementId_ReqntSource + "=" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Requirement_ReqntIdSource, tableAlias, false));
|
||||
if (SysId.IsValid(prm.TransReqntSourceId))
|
||||
qryTrans.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Requirement_TransId, tableAlias_ReqntSource, false) + "=" + prm.TransReqntSourceId.ToString());
|
||||
if (SysId.IsValid(prm.TransactionRequirementSourceId))
|
||||
qryTrans.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Requirement_TransId, tableAlias_ReqntSource, false) + "=" + prm.TransactionRequirementSourceId.ToString());
|
||||
// Add this transaction sub-query to the filter.
|
||||
filter.Add("EXISTS(" + qryTrans.BuildQuery() + ")");
|
||||
}
|
||||
|
||||
// Requirement DescBrief.
|
||||
String reqntDescBrief = DbQuery.FormatForCondition(prm.ReqntDescBrief);
|
||||
String reqntDescBrief = DbQuery.FormatForCondition(prm.RequirementDescBrief);
|
||||
String Requirement_DescBrief = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Requirement_DescBrief, tableAlias, false);
|
||||
if (!reqntDescBrief.IsEmpty())
|
||||
filter.Add(DbQuery.FormatFn_Left(Requirement_DescBrief, reqntDescBrief.Length) + "='" + reqntDescBrief + "'");
|
||||
|
||||
// Promotion Code.
|
||||
if (!StringUtil.IsEmpty(prm.ReqntPromotionCode))
|
||||
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Requirement_PromotionCode, tableAlias, false) + "='" + DbQuery.FormatForCondition(prm.ReqntPromotionCode) + "'");
|
||||
if (!StringUtil.IsEmpty(prm.RequirementPromotionCode))
|
||||
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Requirement_PromotionCode, tableAlias, false) + "='" + DbQuery.FormatForCondition(prm.RequirementPromotionCode) + "'");
|
||||
|
||||
|
||||
//---------------------------------------------------------------
|
||||
@@ -1947,10 +1945,10 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Requirement_CommodityId, tableAlias, false) + "=" + prm.CommodityId.ToString());
|
||||
|
||||
// Product Code.
|
||||
if (!prm.ReqntProductCodeFull.IsEmpty() || !prm.ReqntProductCodePartial.IsEmpty())
|
||||
if (!prm.RequirementProductCodeFull.IsEmpty() || !prm.RequirementProductCodePartial.IsEmpty())
|
||||
{
|
||||
String reqntProductCodeFull = DbQuery.FormatForCondition(prm.ReqntProductCodeFull);
|
||||
String reqntProductCodePartial = DbQuery.FormatForCondition(prm.ReqntProductCodePartial);
|
||||
String reqntProductCodeFull = DbQuery.FormatForCondition(prm.RequirementProductCodeFull);
|
||||
String reqntProductCodePartial = DbQuery.FormatForCondition(prm.RequirementProductCodePartial);
|
||||
String colRequirement_ProductCode = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Requirement_ProductCode, tableAlias);
|
||||
if (!reqntProductCodeFull.IsEmpty())
|
||||
{
|
||||
@@ -1958,9 +1956,9 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
}
|
||||
else if (!reqntProductCodePartial.IsEmpty())
|
||||
{
|
||||
if (ConfigConsole != null && AllowConfigOption(Sbm.ConfigOption.CommodityPartialCodeFilter))
|
||||
if (SessionConsole != null && AllowConfigOption(Sbm.ConfigOption.CommodityPartialCodeFilter))
|
||||
filter.Add(colRequirement_ProductCode + " LIKE '%" + DbQuery.FormatForLike(reqntProductCodePartial) + "%'");
|
||||
else filter.Add(DbQuery.FormatFn_Left(colRequirement_ProductCode, prm.ReqntProductCodePartial.Length) + "='" + reqntProductCodePartial + "'");
|
||||
else filter.Add(DbQuery.FormatFn_Left(colRequirement_ProductCode, prm.RequirementProductCodePartial.Length) + "='" + reqntProductCodePartial + "'");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1994,15 +1992,15 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
|
||||
//------------------------------------------------------------------
|
||||
// Project Task Code.
|
||||
if (!StringUtil.IsEmpty(prm.ReqntProjectTaskCodeFull) || !StringUtil.IsEmpty(prm.ReqntProjectTaskCodePartial))
|
||||
if (!StringUtil.IsEmpty(prm.RequirementProjectTaskCodeFull) || !StringUtil.IsEmpty(prm.RequirementProjectTaskCodePartial))
|
||||
{
|
||||
String colRequirement_ProductCode = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Requirement_ProductCode, tableAlias, false);
|
||||
if (!StringUtil.IsEmpty(prm.ReqntProjectTaskCodeFull))
|
||||
filter.Add(colRequirement_ProductCode + "='" + DbQuery.FormatForCondition(prm.ReqntProjectTaskCodeFull) + "'");
|
||||
else if (!StringUtil.IsEmpty(prm.ReqntProjectTaskCodePartial))
|
||||
if (!StringUtil.IsEmpty(prm.RequirementProjectTaskCodeFull))
|
||||
filter.Add(colRequirement_ProductCode + "='" + DbQuery.FormatForCondition(prm.RequirementProjectTaskCodeFull) + "'");
|
||||
else if (!StringUtil.IsEmpty(prm.RequirementProjectTaskCodePartial))
|
||||
{
|
||||
String reqntProjectTaskCodePartial = DbQuery.FormatForCondition(prm.ReqntProjectTaskCodePartial);
|
||||
filter.Add(DbQuery.FormatFn_Left(colRequirement_ProductCode, prm.ReqntProjectTaskCodePartial.Length) + "='" + reqntProjectTaskCodePartial + "'");
|
||||
String reqntProjectTaskCodePartial = DbQuery.FormatForCondition(prm.RequirementProjectTaskCodePartial);
|
||||
filter.Add(DbQuery.FormatFn_Left(colRequirement_ProductCode, prm.RequirementProjectTaskCodePartial.Length) + "='" + reqntProjectTaskCodePartial + "'");
|
||||
}
|
||||
// Force the transaction type of 'Project'.
|
||||
if (prm.TransactionType != Sbm.TransactionType.Project)
|
||||
@@ -2021,13 +2019,13 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Job Number.
|
||||
if (!StringUtil.IsEmpty(prm.ReqntJobNumberFull) || !StringUtil.IsEmpty(prm.ReqntJobNumberPartial))
|
||||
if (!StringUtil.IsEmpty(prm.RequirementJobNumberFull) || !StringUtil.IsEmpty(prm.RequirementJobNumberPartial))
|
||||
{
|
||||
String colRequirement_JobNumber = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Requirement_JobNumber, tableAlias, false);
|
||||
if (!StringUtil.IsEmpty(prm.ReqntJobNumberFull))
|
||||
filter.Add(colRequirement_JobNumber + "='" + DbQuery.FormatForCondition(prm.ReqntJobNumberFull) + "'");
|
||||
else if (!StringUtil.IsEmpty(prm.ReqntJobNumberPartial))
|
||||
filter.Add(DbQuery.FormatFn_Left(colRequirement_JobNumber, prm.ReqntJobNumberPartial.Length) + "='" + DbQuery.FormatForCondition(prm.ReqntJobNumberPartial) + "'");
|
||||
if (!StringUtil.IsEmpty(prm.RequirementJobNumberFull))
|
||||
filter.Add(colRequirement_JobNumber + "='" + DbQuery.FormatForCondition(prm.RequirementJobNumberFull) + "'");
|
||||
else if (!StringUtil.IsEmpty(prm.RequirementJobNumberPartial))
|
||||
filter.Add(DbQuery.FormatFn_Left(colRequirement_JobNumber, prm.RequirementJobNumberPartial.Length) + "='" + DbQuery.FormatForCondition(prm.RequirementJobNumberPartial) + "'");
|
||||
}
|
||||
|
||||
|
||||
@@ -2042,13 +2040,13 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Required date.
|
||||
if (DateUtil.IsValid(prm.ReqntRequiredFrom))
|
||||
if (DateUtil.IsValid(prm.RequirementRequiredFrom))
|
||||
{
|
||||
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Requirement_Required, tableAlias, false) + ">=" + DbQuery.FormatForCondition(prm.ReqntRequiredFrom.ToString()));
|
||||
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Requirement_Required, tableAlias, false) + ">=" + DbQuery.FormatForCondition(prm.RequirementRequiredFrom.ToString()));
|
||||
}
|
||||
if (DateUtil.IsValid(prm.ReqntRequiredTo))
|
||||
if (DateUtil.IsValid(prm.RequirementRequiredTo))
|
||||
{
|
||||
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Requirement_Required, tableAlias, false) + "<" + DbQuery.FormatForCondition(prm.ReqntRequiredTo.ToLongDateString() + 1));
|
||||
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Requirement_Required, tableAlias, false) + "<" + DbQuery.FormatForCondition(prm.RequirementRequiredTo.ToLongDateString() + 1));
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
@@ -2182,7 +2180,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
public override List<SbmRequirement> GetRequirementsForTransaction(SysId transactionId)
|
||||
{
|
||||
SbmRequirement.Params prmRequirement = new SbmRequirement.Params();
|
||||
prmRequirement.TransIncludedIds.Add(transactionId);
|
||||
prmRequirement.TransactionIdsIncluded.Add(transactionId);
|
||||
prmRequirement.StatusCat = SbmRequirement.StatusCat.Any;
|
||||
return GetRequirementList(prmRequirement);
|
||||
}
|
||||
@@ -3186,7 +3184,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
// Populate filter.
|
||||
query.Filters.AddRange(GetRequirementQueryFilter(prm));
|
||||
|
||||
if (prm.ReqntIncludedIds.Count != 1)
|
||||
if (prm.RequirementIdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetRequirementSortColumns(prm))
|
||||
|
||||
@@ -113,7 +113,8 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
{
|
||||
SacsDatabase.AddValuePair(values, SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Constituent_AssocId), assocId.ToString(), false);
|
||||
filters.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Constituent_TransId) + "=" + transaction.Id.ToString());
|
||||
if (db.ExecuteUpdate(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Constituent), values, filters.Concat(" AND ", "(", ")")) > 0)
|
||||
db.ExecuteUpdate(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Constituent), values, filters.Concat(" AND ", "(", ")"));
|
||||
if (db.HasErrorState())
|
||||
{
|
||||
SetErrorState(errorStatePrefix + "transaction updates failed");
|
||||
ChangeTransactionsAssociation(transaction, transaction.AssociationId); // To reset changes.
|
||||
@@ -123,7 +124,8 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
{
|
||||
SacsDatabase.AddValuePair(values, SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Requirement_AssocId), assocId.ToString(), false);
|
||||
filters.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Requirement_TransId) + "=" + transaction.Id.ToString());
|
||||
if (db.ExecuteUpdate(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Requirement), values, filters.Concat(" AND ", "(", ")")) > 0)
|
||||
db.ExecuteUpdate(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Requirement), values, filters.Concat(" AND ", "(", ")"));
|
||||
if (db.HasErrorState())
|
||||
{
|
||||
SetErrorState(errorStatePrefix + "requirement updates failed");
|
||||
ChangeTransactionsAssociation(transaction, transaction.AssociationId); // To reset changes.
|
||||
@@ -134,7 +136,8 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
filters.Clear(); values.Clear();
|
||||
SacsDatabase.AddValuePair(values, SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Transaction_AssocId), assocId.ToString(), false);
|
||||
filters.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Transaction_Id) + "=" + transaction.Id.ToString());
|
||||
if (db.ExecuteUpdate(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Transaction), values, filters.Concat(" AND ", "(", ")")) > 0)
|
||||
db.ExecuteUpdate(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Transaction), values, filters.Concat(" AND ", "(", ")"));
|
||||
if (db.HasErrorState())
|
||||
{
|
||||
SetErrorState(errorStatePrefix + "transaction update failed");
|
||||
ChangeTransactionsAssociation(transaction, transaction.AssociationId); // To reset changes.
|
||||
@@ -154,7 +157,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
{
|
||||
/* ToDo create RefreshAllocations in StockMgr for Stock Allocations.
|
||||
if (!InitStockMgr()) SetErrorState("Failed to create Stock Manager");
|
||||
if (!HasErrorState() && !StockMgr.RefreshAllocations(transaction, requirements, false)) SetErrorState(StockMgr.ErrorState.ToString());
|
||||
if (!HasErrorState() && !StockMgr.RefreshAllocations(transaction, requirements, false)) SetErrorState(StockMgr.ErrorStateMessage);
|
||||
// NB 'RefreshAllocations' updates transaction stock allocation status if necessary.*/
|
||||
}
|
||||
|
||||
@@ -168,7 +171,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
// Refresh totals.
|
||||
if (transaction.RefreshTotals(requirements))
|
||||
UpdateTransaction(transaction, UserContext.DbUpdateInfo);
|
||||
else SetErrorState(transaction.ErrorState.ToString());
|
||||
else SetErrorState(transaction.ErrorStateMessage);
|
||||
}
|
||||
|
||||
if (requirementListCreatedLocally)
|
||||
@@ -569,7 +572,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
|
||||
// Requirements.
|
||||
int requirementCount = (int)transaction.GetRequirementCount();
|
||||
if (requirementCount > 0 && (ConfigConsole == null || !ConfigConsole.CanRemoveTransactionWithRequirements(UserContext, transaction, requirementCount)))
|
||||
if (requirementCount > 0 && (SessionConsole == null || !SessionConsole.CanRemoveTransactionWithRequirements(transaction, requirementCount)))
|
||||
{
|
||||
if (requirementCount == 1) return SetErrorState("item has a requirement");
|
||||
else return SetErrorState("item has multiple requirements");
|
||||
@@ -1275,10 +1278,10 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Transaction Id.
|
||||
if (prm.IncludedIds.HasValidIds())
|
||||
filter.Add(colTransaction_Id + " IN (" + prm.IncludedIds.Concat(",") + ")");
|
||||
if (prm.ExcludedIds.HasValidIds())
|
||||
filter.Add(colTransaction_Id + " NOT IN (" + prm.ExcludedIds.Concat(",") + ")");
|
||||
if (prm.IdsIncluded.HasValidIds())
|
||||
filter.Add(colTransaction_Id + " IN (" + prm.IdsIncluded.Concat(",") + ")");
|
||||
if (prm.IdsExcluded.HasValidIds())
|
||||
filter.Add(colTransaction_Id + " NOT IN (" + prm.IdsExcluded.Concat(",") + ")");
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Transaction Source.
|
||||
@@ -1290,7 +1293,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
filtersSource.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Transaction_TransIdSource, tableAlias) + "=" + prm.TransIdSource.ToString());
|
||||
// Check for combinations that allow secondary refs:
|
||||
bool checkForSecondaryRefs = false;
|
||||
if (ConfigConsole != null && AllowTransactionType(Sbm.TransactionType.SalesDispatch) &&
|
||||
if (SessionConsole != null && AllowTransactionType(Sbm.TransactionType.SalesDispatch) &&
|
||||
(AllowTransactionType(Sbm.TransactionType.ProformaSalesInvoice) || AllowTransactionType(Sbm.TransactionType.SalesInvoice)))
|
||||
checkForSecondaryRefs = true;
|
||||
if (checkForSecondaryRefs)
|
||||
@@ -1420,7 +1423,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
if (SysId.IsValid(AffiliateId_Owner))
|
||||
{
|
||||
// Only need to filter on owner if no association specified, no transaction Ids and no source transaction id.
|
||||
if (!SysId.IsValid(prm.AssocId) && !prm.IncludedIds.HasValidIds() && !SysId.IsValid(prm.TransIdSource))
|
||||
if (!SysId.IsValid(prm.AssocId) && !prm.IdsIncluded.HasValidIds() && !SysId.IsValid(prm.TransIdSource))
|
||||
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Transaction_AffIdOwner, tableAlias) + "=" + SysId.ToString(AffiliateId_Owner));
|
||||
}
|
||||
|
||||
@@ -2076,9 +2079,9 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
if (checkForInvoices)
|
||||
{
|
||||
// Check which types of transaction are allowed.
|
||||
bool invoicesAllowed = ConfigConsole != null && (AllowTransactionType(Sbm.TransactionType.ProformaSalesInvoice) || AllowTransactionType(Sbm.TransactionType.SalesInvoice) ||
|
||||
bool invoicesAllowed = SessionConsole != null && (AllowTransactionType(Sbm.TransactionType.ProformaSalesInvoice) || AllowTransactionType(Sbm.TransactionType.SalesInvoice) ||
|
||||
AllowTransactionType(Sbm.TransactionType.ProformaPurchaseInvoice) || AllowTransactionType(Sbm.TransactionType.PurchaseInvoice));
|
||||
bool dispatchesAllowed = ConfigConsole != null && AllowTransactionType(Sbm.TransactionType.SalesDispatch);
|
||||
bool dispatchesAllowed = SessionConsole != null && AllowTransactionType(Sbm.TransactionType.SalesDispatch);
|
||||
if (invoicesAllowed)
|
||||
{
|
||||
// Aliases & Columns.
|
||||
@@ -2154,7 +2157,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
}
|
||||
}
|
||||
|
||||
if (prm.IncludedIds.Count != 1)
|
||||
if (prm.IdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetTransactionSortColumns(prm))
|
||||
|
||||
Reference in New Issue
Block a user