Add project files.

This commit is contained in:
2021-05-05 21:00:33 +01:00
commit 13c79a8da4
349 changed files with 158726 additions and 0 deletions
@@ -0,0 +1,84 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Mgr;
using Sarand.BusinessMgr.Net.Standard.Dbas.Mgr;
using Sarand.BusinessMgr.Net.Standard.Dbas.Utils;
using Sarand.Net.Standard.Base.Core;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.IO;
using Sarand.Net.Standard.Dbas.Base;
using Sarand.Net.Standard.Dbas.Data;
using System;
using System.IO;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.App
{
//=======================================================================
public class SbmSystem_WinDbas : SbmSystem
{
//-------------------------------------------------------------------
// Static initialisation.
public static void InitStatics()
{
// Initialise static environment values.
ComputerName = System.Environment.MachineName;
UserName = Environment.UserName;
ApplicationPath = System.Reflection.Assembly.GetEntryAssembly().Location;
ApplicationFolder = Path.GetDirectoryName(ApplicationPath);
AssemblyBuildAt = FileUtil.GetFileLastWriteTime(ApplicationPath);
// Initialise other statics.
SbmFileUtil.InitStatics();
}
//-------------------------------------------------------------------
// Construction.
public SbmSystem_WinDbas(PropertySet properties) : base(properties)
{
if (IsExtendedLogging(ExtendedLogginOption.DbQueryExecution))
{
SacsDatabase.LoggingLevel = SaMessageLevel.Trace;
DbResultSet.LoggingLevel = SaMessageLevel.Trace;
DbDataItem.LoggingLevel = SaMessageLevel.Trace;
}
}
//-------------------------------------------------------------------
// D a t a M a n a g e r s
//-------------------------------------------------------------------
public override SbmAccountMgr CreateAccountMgr(SbmUserContext userContext)
{
return new SbmAccountMgr_Dbas(userContext);
}
public override SbmAssetMgr CreateAssetMgr(SbmUserContext userContext)
{
return new SbmAssetMgr_Dbas(userContext);
}
public override SbmCommodityMgr CreateCommodityMgr(SbmUserContext userContext)
{
return new SbmCommodityMgr_Dbas(userContext);
}
public override SbmPriceMgr CreatePriceMgr(SbmUserContext userContext)
{
return new SbmPriceMgr_Dbas(userContext);
}
public override SbmDataItemMgr CreateDataItemMgr(SbmUserContext userContext)
{
return new SbmDataItemMgr_Dbas(userContext);
}
public override SbmProcessMgr CreateProcessMgr(SbmUserContext userContext)
{
return new SbmProcessMgr_Dbas(userContext);
}
public override SbmStockMgr CreateStockMgr(SbmUserContext userContext)
{
return new SbmStockMgr_Dbas(userContext);
}
public override SbmTransactionMgr CreateTransactionMgr(SbmUserContext userContext)
{
return new SbmTransactionMgr_Dbas(userContext);
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,47 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Dbas.Base;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Base
{
//=======================================================================
public class SbmDatabaseConsole : SacsDatabaseConsole
{
//-------------------------------------------------------------------
// Data members.
private readonly SbmSessionContext sessionContext;
//-------------------------------------------------------------------
// Construction.
public SbmDatabaseConsole(SbmSessionContext sessionContext)
{
this.sessionContext = sessionContext;
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
// D a t a b a s e I n d i c e s
//-------------------------------------------------------------------
public bool CreateDbIndices(IndexStats indexStats)
{
ClearErrorState();
ISacsDatabase database = SbmGlobals.Application.GetDatabase(sessionContext);
if (database == null || database.DbmsType != DbmsType.MsSql) return SetErrorState("");
// Turn off database exceptions.
bool displayDbExceptionsPrev = database.DisplayErrors;
database.DisplayErrors = false;
// ToDo SbmDatabaseConsole Create database indices.
// Clean-up.
database.DisplayErrors = displayDbExceptionsPrev;
return !HasErrorState();
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,86 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
using Sarand.BusinessMgr.Net.Standard.Base.Mgr;
using Sarand.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Interfaces;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
{
//=======================================================================
class SbmAddress_Dbas : SbmAddress
{
//-------------------------------------------------------------------
// Data members.
private readonly SbmUserContext userContext;
//-------------------------------------------------------------------
// Construction.
public SbmAddress_Dbas(SbmUserContext userContext, SysId id, Sbm.ItemType itemType, SysId itemId, Sbm.AddressType addressType, ushort flags) :
base(userContext, id, itemType, itemId, addressType)
{
this.userContext = userContext;
Flags = flags;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
}
base.Dispose(disposing);
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
// Associated data.
public override bool HasInterfaceDataItems()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return false;
SaInterfaceConsole interfaceConsole = SbmGlobals.Application.GetInterfaceConsole(userContext);
if (interfaceConsole != null) return false;
bool has = interfaceConsole.ItemHasDataItems(new ItemId((short)Sbm.ItemType.Address, Id));
return has;
}
public override bool ClearDependentData()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return false;
if (SbmGlobals.System == null) return SetErrorState("System is not available");
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null) return SetErrorState("Database is not available");
// Delete interface data items.
if (!HasErrorState())
{
SaInterfaceConsole interfaceConsole = SbmGlobals.Application.GetInterfaceConsole(userContext);
if (interfaceConsole != null)
{
if (!interfaceConsole.ClearInterfaceDataItems(new ItemId((short)Sbm.ItemType.Association, Id), userContext.DbUpdateInfo))
SetErrorState("Failed to clear interface data items - " + interfaceConsole.ErrorState);
}
else SetErrorState("failed to initialise interface console");
interfaceConsole = null; // Do not delete this global object.
}
// Remove data item references.
if (!HasErrorState())
{
using (SbmDataItemMgr dataItemMgr = SbmGlobals.System.CreateDataItemMgr(userContext))
{
if (dataItemMgr != null)
{
if (!dataItemMgr.ClearDataItem(Sbm.ItemType.Address, Id))
SetErrorState(dataItemMgr.ErrorState.ToString());
}
else SetErrorState("Data item manager is not available");
}
}
return !HasErrorState();
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,141 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
using Sarand.BusinessMgr.Net.Standard.Base.Mgr;
using Sarand.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Interfaces;
using System;
using System.Linq;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
{
//=======================================================================
class SbmAffiliate_Dbas : SbmAffiliate
{
//-------------------------------------------------------------------
// Data members.
private readonly SbmUserContext userContext;
private SbmAccountMgr accountMgr;
//-------------------------------------------------------------------
// Construction.
public SbmAffiliate_Dbas(SbmUserContext userContext, SysId id, Sbm.AffiliateType affiliateType, ushort flags) :
base(userContext, id, affiliateType)
{
this.userContext = userContext;
Flags = flags;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
if (accountMgr != null) accountMgr.Dispose();
}
base.Dispose(disposing);
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
// Associated data.
public override long GetChildAffiliates()
{
if (!SysId.IsValid(Id)) return 0;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
String filter = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Affiliate_AffIdParent) + "=" + Id.ToString();
return db.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Affiliate), filter);
}
return 0;
}
public override bool HasChildAffiliates()
{
return GetChildAffiliates() > 0;
}
public override long OwnerOfAssociationsCount(Sbm.AssociationType associationType = Sbm.AssociationType.Any, bool currentOnly = true)
{
if (accountMgr == null) accountMgr = SbmGlobals.System.CreateAccountMgr(userContext);
return accountMgr.OwnerAssociationCount(Id, associationType, currentOnly);
}
public override bool OwnerOfAssociations(Sbm.AssociationType associationType = Sbm.AssociationType.Any, bool currentOnly = true)
{
if (accountMgr == null) accountMgr = SbmGlobals.System.CreateAccountMgr(userContext);
return accountMgr.OwnerHasAssociations(Id, associationType, currentOnly);
}
public override long TargetOfAssociationsCount(Sbm.AssociationType associationType = Sbm.AssociationType.Any, bool currentOnly = true)
{
if (accountMgr == null) accountMgr = SbmGlobals.System.CreateAccountMgr(userContext);
return accountMgr.TargetAssociationCount(Id, associationType, currentOnly);
}
public override bool TargetOfAssociations(Sbm.AssociationType associationType = Sbm.AssociationType.Any, bool currentOnly = true)
{
if (accountMgr == null) accountMgr = SbmGlobals.System.CreateAccountMgr(userContext);
return accountMgr.TargetHasAssociations(Id, associationType, currentOnly);
}
public override bool HasSystemUsers()
{
if (!SysId.IsValid(Id)) return false;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
String filter = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SystemUser_AffiliateId) + "=" + Id.ToString();
return (db.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SystemUser), filter) > 0);
}
return false;
}
public override bool HasDiaryLinks()
{
/*if (!GetId().IsValid()) return false;
bool bHas = false;
SapphireDiary * pDiary = SapphireGlobal::GetDiary();
if (pDiary)
{
bHas = pDiary->DataItemHasLinks(eSapItemTypeAffiliate,GetId());
}
return bHas;
*/
return false;
}
// Dependent data should only be cleared when removing an affiliate.
public override bool ClearDependentData()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return false;
if (SbmGlobals.System == null) return SetErrorState("System is not available");
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null) return SetErrorState("Database is not available");
// Delete interface data items.
if (!HasErrorState())
{
SaInterfaceConsole interfaceConsole = SbmGlobals.Application.GetInterfaceConsole(userContext);
if (interfaceConsole != null)
{
if (!interfaceConsole.ClearInterfaceDataItems(new ItemId((short)Sbm.ItemType.Association, Id), userContext.DbUpdateInfo))
SetErrorState("Failed to clear interface data items - " + interfaceConsole.ErrorState);
}
else SetErrorState("failed to initialise interface console");
interfaceConsole = null; // Do not delete this global object.
}
// Remove data item references.
if (!HasErrorState())
{
SbmDataItemMgr dataItemMgr = SbmGlobals.System.CreateDataItemMgr(userContext);
if (dataItemMgr != null)
{
if (!dataItemMgr.ClearDataItem(Sbm.ItemType.Affiliate, Id))
SetErrorState(dataItemMgr.ErrorState.ToString());
}
else SetErrorState("Data item manager is not available");
}
return !HasErrorState();
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,171 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
using Sarand.BusinessMgr.Net.Standard.Base.Mgr;
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.Utils;
using System;
using System.Collections.Generic;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
{
//=======================================================================
class SbmAssetCategory_Dbas : SbmAssetCategory
{
//-------------------------------------------------------------------
// Data members.
private readonly SbmUserContext userContext;
private SbmProcessMgr processMgr;
private List<SbmItemProcess> itemProcesses = new List<SbmItemProcess>();
//-------------------------------------------------------------------
// Construction.
public SbmAssetCategory_Dbas(SbmUserContext userContext, SysId id, SysId affIdOwner, Sbm.AssetType assetType, ushort flags) :
base(userContext, id)
{
this.userContext = userContext;
Id = id;
AffIdOwner = affIdOwner;
AssetType = assetType;
Flags = flags;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
if (processMgr != null) processMgr.Dispose();
}
base.Dispose(disposing);
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
// Internal Processing.
public bool InitProcMgr()
{
if (processMgr == null)
processMgr = SbmGlobals.System.CreateProcessMgr(userContext);
return (processMgr != null);
}
//-------------------------------------------------------------------
// Associated data.
public override bool HasProcesses()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return SetErrorState("invalid item");
if (processMgr == null) return SetErrorState("process manager not available");
return false;// processMgr.ItemHasProcesses(Sbm.ItemType.Asset, Id);
}
public override bool HasAssets()
{
if (!SysId.IsValid(Id)) return false;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
String tableAsset = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAsset);
if (db.TableExists(tableAsset))
{
String columnSaAsset_Id = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaAsset_Id);
List<String> filter = new List<String>();
filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaAsset_AssetCategoryId) + "=" + Id.ToString());
if (db.GetRowCount(tableAsset, filter.Concat(" AND ", "(", ")")) > 0) return false;
}
}
return false;
}
public override bool ClearDependentData()
{
ClearErrorState();
if (this == null || !SysId.IsValid(Id)) return false;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null && !HasErrorState())
{
if (!HasErrorState())
{
/* ToDo SaItemDocConsole for Remove document references:
SaItemDocConsole itemDocConsole = SbmGlobals.Application.GetItemDocConsole(SessionContext);
if (itemDocConsole != null)
{
if (!itemDocConsole.ClearItemDocs(Sbm.ItemType.AssetCategory, Id))
SetErrorState(itemDocConsole.Exception());
}
else SetErrorState("Failed to retrieve item document console");
itemDocConsole = null;*/ // Do not delete this global object.
}
if (!HasErrorState())
{
/* ToDo SaItemDataConsole for Remove Item Data:
SaItemDataConsole itemDataConsole = SbmGlobals.Application.GetItemDataConsole(SessionContext);
if (itemDataConsole != null)
{
if (!itemDataConsole.ClearItemData(Sbm.ItemType.AssetCategory, Id, ""))
SetErrorState(itemDataConsole.Exception());
}
else SetErrorState("Failed to retrieve item Dataument console");
itemDataConsole = null;*/ // Do not delete this global object.
}
if (!HasErrorState())
{
// Remove interface data items:
SaInterfaceConsole interfaceConsole = SbmGlobals.Application.GetInterfaceConsole(userContext);
//DbUpdateInfo dbUpdateInfo = userContext.DbUpdateInfo;
if (interfaceConsole != null)
{
if (!interfaceConsole.ClearInterfaceDataItems(new ItemId((short)Sbm.ItemType.AssetCategory, Id), userContext.DbUpdateInfo))
SetErrorState(interfaceConsole.ErrorState.ToString());
}
else SetErrorState("Failed to retrieve interface console");
interfaceConsole = null; // Do not delete this global object.
}
}
else SetErrorState("database is unavailable");
return !HasErrorState();
}
// AssetCategory processes.
public override List<SbmItemProcess> GetProcesses(bool activeOnly)
{
ClearErrorState();
List<SbmItemProcess> itemProcesesCopy = null;
if (activeOnly)
{
// Retrieve the list of 'active' processes for this item.
processMgr.GetProcessesForItem(Sbm.ItemType.AssetCategory, Id, true);
}
else
{
// Full list required - check whether the internal list has been populated yet.
if (itemProcesses == null && SysId.IsValid(Id) && processMgr != null)
{
// Get the list of processes:
processMgr.GetProcessesForItem(Sbm.ItemType.AssetCategory, Id, false);
}
// Clone the list.
itemProcesesCopy = itemProcesses.Clone();
}
if (itemProcesesCopy != null) itemProcesesCopy.Sort();
return itemProcesesCopy;
}
public override bool SetProcesses(List<SbmItemProcess> itemProcessesNew)
{
ClearErrorState();// Clear the existing list.
if (itemProcesses != null) itemProcesses.Clear();
// Copy all items from the specified list.
itemProcesses = itemProcessesNew.Clone();
return !HasErrorState();
}
public override bool CommitProcesses()
{
ClearErrorState();
/*if (!processMgr.UpdateProcessesForItem(Sbm.ItemType.AssetCategory, Id, itemProcesses))
SetErrorState(processMgr.ErrorState.ToString());*/
return !HasErrorState();
}
}
//=======================================================================
}
@@ -0,0 +1,41 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Bus;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
{
//=======================================================================
class SbmAssetProcess_Dbas : SbmAssetProcess
{
//-------------------------------------------------------------------
// Data members.
private readonly SbmUserContext userContext;
//-------------------------------------------------------------------
// Construction.
public SbmAssetProcess_Dbas(SbmUserContext userContext, SysId id, SysId assetId, SysId processId, ushort flags) :
base(userContext, id, assetId, processId)
{
this.userContext = userContext;
Id = id;
AssetId = assetId;
ProcessId = processId;
Flags = flags;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
}
base.Dispose(disposing);
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
// Associated data.
}
//=======================================================================
}
@@ -0,0 +1,349 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
using Sarand.BusinessMgr.Net.Standard.Base.Mgr;
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.Utils;
using System;
using System.Collections.Generic;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
{
//=======================================================================
class SbmAsset_Dbas : SbmAsset
{
//-------------------------------------------------------------------
// Data members.
private readonly SbmUserContext userContext;
private SbmAssetMgr assetMgr;
private SbmDataItemMgr dataItemMgr;
private SbmProcessMgr processMgr;
private List<SbmItemProcess> itemProcesses = new List<SbmItemProcess>();
private List<SbmItemPrice> itemPrices = new List<SbmItemPrice>();
//-------------------------------------------------------------------
// Construction.
public SbmAsset_Dbas(SbmUserContext userContext, SysId id, SysId assetCatId, ushort flags) :
base(userContext, id, assetCatId)
{
this.userContext = userContext;
Id = id;
AssetCategoryId = assetCatId;
Flags = flags;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
if (assetMgr != null) assetMgr.Dispose();
if (dataItemMgr != null) dataItemMgr.Dispose();
if (processMgr != null) processMgr.Dispose();
}
base.Dispose(disposing);
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
// Internal Processing.
public bool InitAssetMgr()
{
if (assetMgr == null)
assetMgr = SbmGlobals.System.CreateAssetMgr(userContext);
return (assetMgr != null);
}
public bool InitDataItemMgr()
{
if (dataItemMgr == null)
dataItemMgr = SbmGlobals.System.CreateDataItemMgr(userContext);
return (dataItemMgr != null);
}
public bool InitProcessMgr()
{
if (processMgr == null)
processMgr = SbmGlobals.System.CreateProcessMgr(userContext);
return (processMgr != null);
}
//-------------------------------------------------------------------
// Associated data.
public override bool HasProcesses()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return false;
if (processMgr == null) return SetErrorState("process manager not available");
//processMgr.ItemHasProcesses(Sbm.ItemType.Asset, Id);ISacsDatabase db = SbmGlobals.Application.GetDatabase(SessionContext);
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
String tableAssetProcess = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAssetProcess);
if (db.TableExists(tableAssetProcess))
{
List<String> filter = new List<String>();
filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaAssetProcess_AssetId) + "=" + Id.ToString());
return db.GetRowCount(tableAssetProcess, filter.Concat(" AND ", "(", ")")) > 0;
}
}
return false;
}
public override bool HasRequirements()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return false;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
String filter = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Requirement_Id) + "=" + SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Requirement_AssetId);
return db.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Requirement), filter + "=" + Id.ToString()) > 0;
}
return false;
}
public override bool HasInterfaceDataItems()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return false;
SaInterfaceConsole interfaceConsole = SbmGlobals.Application.GetInterfaceConsole(userContext);
if (interfaceConsole == null) return false;
return interfaceConsole.ItemHasDataItems(new ItemId((short)Sbm.ItemType.Asset, Id));
}
public override bool HasAssociatedDetails()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return false;
if (dataItemMgr != null)
return dataItemMgr.HasItemLinks(Sbm.ItemType.Asset, Id);
return false;
}
public override bool ClearDependentData()
{
ClearErrorState();
if (this == null || !SysId.IsValid(Id)) return false;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null && !HasErrorState())
{
if (!HasErrorState())
{
/* ToDo SaItemDocConsole for Remove document references:
SaItemDocConsole itemDocConsole = SbmGlobals.Application.GetItemDocConsole(SessionContext);
if (itemDocConsole != null)
{
if (!itemDocConsole.ClearItemDocs(Sbm.ItemType.AssetCategory, Id))
SetErrorState(itemDocConsole.Exception());
}
else SetErrorState("Failed to retrieve item document console");
itemDocConsole = null;*/ // Do not delete this global object.
}
if (!HasErrorState())
{
/* ToDo SaItemDataConsole for Remove Item Data:
SaItemDataConsole itemDataConsole = SbmGlobals.Application.GetItemDataConsole(SessionContext);
if (itemDataConsole != null)
{
if (!itemDataConsole.ClearItemData(Sbm.ItemType.AssetCategory, Id, ""))
SetErrorState(itemDataConsole.Exception());
}
else SetErrorState("Failed to retrieve item Data Document console");
itemDataConsole = null;*/ // Do not delete this global object.
}
// Remove items data.
if (!HasErrorState())
{
SbmDataItemMgr dataItemMgr = SbmGlobals.System.CreateDataItemMgr(userContext);
if (dataItemMgr != null)
{
if (!dataItemMgr.ClearDataItem(Sbm.ItemType.Asset, Id))
SetErrorState(dataItemMgr.ErrorState.ToString());
}
else SetErrorState("Failed to retrieve Data Item manager");
}
if (!HasErrorState())
{
// Remove interface data items.
SaInterfaceConsole interfaceConsole = SbmGlobals.Application.GetInterfaceConsole(userContext);
//DbUpdateInfo dbUpdateInfo = userContext.DbUpdateInfo;
if (interfaceConsole != null)
{
if (!interfaceConsole.ClearInterfaceDataItems(new ItemId((short)Sbm.ItemType.AssetCategory, Id), userContext.DbUpdateInfo))
SetErrorState(interfaceConsole.ErrorState.ToString());
}
else SetErrorState("Failed to retrieve interface console");
interfaceConsole = null; // Do not delete this global object.
}
}
else SetErrorState("database is unavailable");
return !HasErrorState();
}
// Asset processes.
public override List<SbmItemProcess> GetProcesses(bool activeOnly)
{
ClearErrorState();
List<SbmItemProcess> itemProcesesCopy = null;
if (activeOnly)
{
// Retrieve the list of 'active' processes for this item.
processMgr.GetProcessesForItem(Sbm.ItemType.Asset, Id, true);
}
else
{
// Full list required - check whether the internal list has been populated yet.
if (itemProcesses == null && SysId.IsValid(Id) && processMgr != null)
{
// Get the list of processes:
itemProcesses = processMgr.GetProcessesForItem(Sbm.ItemType.Asset, Id, false);
}
// Copy the list.
itemProcesesCopy = new List<SbmItemProcess>(itemProcesses);
}
if (itemProcesesCopy != null) itemProcesesCopy.Sort();
return itemProcesesCopy;
}
public override bool SetProcesses(List<SbmItemProcess> itemProcessesNew)
{
ClearErrorState();// Clear the existing list.
if (itemProcesses != null) itemProcesses.Clear();
// Copy all items from the specified list.
itemProcesses = itemProcessesNew.Clone();
return !HasErrorState();
}
public override bool CommitProcesses()
{
ClearErrorState();
SbmAsset asset = null;
if (!processMgr.StoreItemProcesses(Sbm.ItemType.Asset, Id, itemProcesses, userContext.DbUpdateInfo))
{
// Make a note of the 'Next' process.
SbmItemProcess itemProcessNext = itemProcesses.GetNextProcessInSequence(SaStatus.Awaiting);
SysId itemProcessIdNext = itemProcessNext != null ? itemProcessNext.ProcessId : new SysId();
if (ProcessIdNext != itemProcessIdNext)
{
ProcessIdNext = itemProcessIdNext;
if (assetMgr != null)
{
if (!assetMgr.UpdateAsset(asset, userContext.DbUpdateInfo))
SetErrorState("Failed to update next process id - " + assetMgr.ErrorState);
}
else SetErrorState("Asset manager is unavailable");
}
}
SetErrorState(processMgr.ErrorState.ToString());
return !HasErrorState();
}
public override bool PopulateDefaultProcesses()
{
// As defined by Asset Category (for assets created by processes, eg. vehicle import).
ClearErrorState();
// Retrieve processes defined against Asset Category.
List<SbmItemProcess> itemProcessesCat = null;// processMgr.GetProcessesForItem(Sbm.ItemType.AssetCategory, AssetCatId, true);
if (itemProcessesCat != null)
{
for (int i = 1; i <= itemProcessesCat.Count; i++)
{
SbmItemProcess itemProcess = itemProcessesCat[i];
itemProcess.ClearItemId(Sbm.ItemType.Asset, true);
}
}
// Store this list of processes against this asset:
if (!HasErrorState()) SetProcesses(itemProcessesCat);
if (!HasErrorState()) CommitProcesses();
// Clean-up:
if (itemProcessesCat != null) itemProcessesCat.Clear();
return !HasErrorState();
}
// Asset Payment for transaction.
public override bool HasPrices()
{
if (itemPrices != null) return true;
else if (SysId.IsValid(Id))
{
List<SbmItemLink> itemLinks = new List<SbmItemLink>();
SbmItemLink.Params prm = new SbmItemLink.Params();
prm.ItemLinkType = Sbm.ItemLinkType.ItemPrice;
prm.ItemTypeFrom = Sbm.ItemType.Asset;
prm.ItemIdFrom = Id;
foreach (SbmItemLink itemLink in dataItemMgr.GetItemLinkList(prm))
if (itemLink != null) return true;
}
return false;
}
public override List<SbmItemPrice> GetPrices()
{
List<SbmItemPrice> itemPricesCopy = null;
if (itemPrices == null && SysId.IsValid(Id) && dataItemMgr != null)
{
SbmItemLink.Params prm = new SbmItemLink.Params();
prm.ItemLinkType = Sbm.ItemLinkType.ItemPrice;
prm.ItemTypeFrom = Sbm.ItemType.Asset;
prm.ItemIdFrom = Id;
List<SbmItemLink> itemLinks = dataItemMgr.GetItemLinkList(prm);
if (itemLinks != null)
{
foreach (SbmItemLink itemLink in itemLinks)
{
if (itemLink == null) continue;
SbmItemPrice itemPrice = new SbmItemPrice(UserContext, itemLink.DataContent);
itemPrice.Notes = itemLink.Notes;
itemPrice.Changed = false;
if (itemPrices == null) itemPrices = new List<SbmItemPrice>();
itemPrices.Add(itemPrice);
}
// Clean-up.
itemLinks.Clear();
}
}
// Clone the list.
itemPricesCopy = itemPrices.Clone();
itemPricesCopy.Sort();
return itemPricesCopy;
}
public override bool SetPrices(List<SbmItemPrice> itemPricesNew)
{
// Clear the existing list.
if (itemPrices != null) itemPrices.Clear();
// Copy all items from the specified list.
itemPrices = itemPricesNew.Clone();
return true;
}
public override bool CommitPrices()
{
ClearErrorState();
// Do not attempt any updates unless the list has been populated:
if (itemPrices != null && SysId.IsValid(Id) && dataItemMgr != null)
{
// Build an item link list corresponding to the list of prices.
List<SbmItemLink> itemLinks = new List<SbmItemLink>();
foreach (SbmItemPrice itemPrice in itemPrices)
{
if (itemPrice == null) continue;
SbmItemLink itemLink = dataItemMgr.CreateItemLink(Sbm.ItemLinkType.ItemPrice, Sbm.ItemType.Asset, Id, Sbm.ItemType.Unknown, new SysId(0));
if (itemLink != null)
{
itemLink.Seq = (short)itemPrice.CodeSeq;
itemLink.DataContent = itemPrice.ToString();
itemLink.Notes = itemPrice.Notes;
itemLinks.Add(itemLink);
itemLink = null; // Now owned by the list.
}
}
// Store these details.
if (dataItemMgr.StoreFromItemLinks(Sbm.ItemLinkType.ItemPrice, Sbm.ItemType.Asset, Id, itemLinks, userContext.DbUpdateInfo))
{
}
else
{
SetErrorState("Failed to save asset price item links - " + dataItemMgr.ErrorState);
}
if (itemLinks != null)
itemLinks.Clear();
}
return !HasErrorState();
}
}
//=======================================================================
}
@@ -0,0 +1,136 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
using Sarand.BusinessMgr.Net.Standard.Base.Mgr;
using Sarand.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Interfaces;
using System;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
{
//=======================================================================
class SbmAssociation_Dbas : SbmAssociation
{
//-------------------------------------------------------------------
// Data members.
private readonly SbmUserContext userContext;
//-------------------------------------------------------------------
// Construction.
public SbmAssociation_Dbas(SbmUserContext userContext, SysId id, SysId affiliateIdOwner, Sbm.AssociationType associationType, SysId affiliateIdTarget, ushort flags) :
base(userContext, id, affiliateIdOwner, associationType, affiliateIdTarget)
{
this.userContext = userContext;
Flags = flags;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
}
base.Dispose(disposing);
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
// Internal Processing.
//-------------------------------------------------------------------
// Associated data.
public override bool HasTransactions()
{
if (!SysId.IsValid(Id)) return false;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
String filter = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Transaction_AssocId) + "=" + Id.ToString();
return db.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Transaction), filter) > 0;
}
return false;
}
public override bool HasRequirements()
{
if (!SysId.IsValid(Id)) return false;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
String filter = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Requirement_AssocId) + "=" + Id.ToString();
return db.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Requirement), filter) > 0;
}
return false;
}
public override bool HasConstituents()
{
if (!SysId.IsValid(Id)) return false;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
String filter = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Constituent_AssocId) + "=" + Id.ToString();
return db.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Constituent), filter) > 0;
}
return false;
}
public override bool IsDeliveryContractor()
{
// Is associated with transaction for delivery.
if (!SysId.IsValid(Id)) return false;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
String filter = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Transaction_AssIdDeliver) + "=" + Id.ToString();
return db.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Transaction), filter) > 0;
}
return false;
}
public override bool ClearDependentData()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return false;
if (SbmGlobals.System == null) return SetErrorState("System is not available");
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null) return SetErrorState("Database is not available");
// Delete interface data items.
if (!HasErrorState())
{
SaInterfaceConsole interfaceConsole = SbmGlobals.Application.GetInterfaceConsole(userContext);
if (interfaceConsole != null)
{
if (!interfaceConsole.ClearInterfaceDataItems(new ItemId((short)Sbm.ItemType.Association, Id), userContext.DbUpdateInfo))
SetErrorState("Failed to clear interface data items - " + interfaceConsole.ErrorState);
}
else SetErrorState("failed to initialise interface console");
interfaceConsole = null; // Do not delete this global object.
}
/* ToDo SaItemDocConsole for Remove document references
if (!HasErrorState())
{
SaItemDocConsole itemDocConsole = SbmGlobals.Application.GetItemDocConsole();
if (itemDocConsole != null)
{
if (!itemDocConsole.ClearItemDocs(Sbm.ItemType.Association, Id))
SetErrorState(itemDocConsole.ErrorState);
}
else SetErrorState("Failed to retrieve item document console");
itemDocConsole = null; // Do not delete this global object.
}*/
// Remove data item references.
if (!HasErrorState())
{
SbmDataItemMgr dataItemMgr = SbmGlobals.System.CreateDataItemMgr(userContext);
if (dataItemMgr != null)
{
if (!dataItemMgr.ClearDataItem(Sbm.ItemType.Association, Id))
SetErrorState(dataItemMgr.ErrorState.ToString());
}
else SetErrorState("Data item manager is not available");
}
return !HasErrorState();
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,39 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Bus;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
{
//=======================================================================
class SbmCommodityCustomer_Dbas : SbmCommodityCustomer
{
//-------------------------------------------------------------------
// Data members.
private readonly SbmUserContext userContext;
//-------------------------------------------------------------------
// Construction.
public SbmCommodityCustomer_Dbas(SbmUserContext userContext, SysId commodityId, SysId assocIdCustomer, ushort flags) :
base(userContext, commodityId, assocIdCustomer)
{
this.userContext = userContext;
Flags = flags;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
}
base.Dispose(disposing);
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
// Associated data.
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,39 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Bus;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
{
//=======================================================================
class SbmCommoditySupplier_Dbas : SbmCommoditySupplier
{
//-------------------------------------------------------------------
// Data members.
private readonly SbmUserContext userContext;
//-------------------------------------------------------------------
// Construction.
public SbmCommoditySupplier_Dbas(SbmUserContext userContext, SysId commodityId, SysId assocIdSupplier, ushort flags) :
base(userContext, commodityId, assocIdSupplier)
{
this.userContext = userContext;
Flags = flags;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
}
base.Dispose(disposing);
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
// Associated data.
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,422 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
using Sarand.BusinessMgr.Net.Standard.Base.Mgr;
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;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
{
//=======================================================================
class SbmCommodity_Dbas : SbmCommodity
{
//-------------------------------------------------------------------
// Data members.
private readonly SbmUserContext userContext;
private SbmDataItemMgr dataItemMgr;
private SbmProcessMgr processMgr;
private SbmTransactionMgr transactionMgr;
private List<SbmCostEstimate> costEstimates = new List<SbmCostEstimate>();
private List<SbmItemProcess> itemProcesses = new List<SbmItemProcess>();
//-------------------------------------------------------------------
// Construction.
public SbmCommodity_Dbas(SbmUserContext userContext, SysId id, SysId affiliateIdOwner, Sbm.CommodityType commodityType, String code, ushort flags) :
base(userContext, id, affiliateIdOwner, commodityType, code)
{
this.userContext = userContext;
Flags = flags;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
if (transactionMgr != null) transactionMgr.Dispose();
if (processMgr != null) processMgr.Dispose();
if (dataItemMgr != null) dataItemMgr.Dispose();
}
base.Dispose(disposing);
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
// Internal Processing.
public bool InitDataItemMgr()
{
if (dataItemMgr == null)
dataItemMgr = SbmGlobals.System.CreateDataItemMgr(userContext);
return dataItemMgr != null;
}
public bool InitProcMgr()
{
if (processMgr == null)
processMgr = SbmGlobals.System.CreateProcessMgr(userContext);
return processMgr != null;
}
public bool InitTransactionMgr()
{
if (transactionMgr == null)
transactionMgr = SbmGlobals.System.CreateTransactionMgr(userContext);
return transactionMgr != null;
}
//-------------------------------------------------------------------
// Associated data.
//-------------------------------------------------------------------
public override bool HasProcesses()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return SetErrorState("invalid item");
if (processMgr != null) return SetErrorState("process manager not available");
return processMgr.HasItemProcesses(Sbm.ItemType.Commodity, Id);
}
public override bool HasRequirements()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return false;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
String tableRequirement = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Requirement);
String filter = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Requirement_CommodityId) + "=" + Id.ToString();
return db.GetRowCount(tableRequirement, /*SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Requirement_Id),*/ filter) > 0;
}
return false;
}
public override bool IsSalesBudgetTemplate()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return false;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
String tableCommodity = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Commodity);
String filter = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Commodity_CommodityIdSalesProj) + "=" + Id.ToString();
return db.GetRowCount(tableCommodity, /*SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Commodity_Id),*/ filter) > 0;
}
return false;
}
public override bool HasComponents()
{
ClearErrorState();
return false;
}
public override bool HasPortfolioItems()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return false;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
String tablePortfolioItem = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.PortfolioItem);
if (db.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) + "=" + Id.ToString());
return db.GetRowCount(tablePortfolioItem, /*colPortfolioItem_Id,*/ filters.Concat(" AND ", "(", ")")) > 0;
}
}
return false;
}
public override bool HasContainers()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return false;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
String tableContainer = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Container);
if (db.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) + "=" + Id.ToString());
return db.GetRowCount(tableContainer, /*colContainerItem_ContainerId,*/ filters.Concat(" AND ", "(", ")")) > 0;
}
}
return false;
}
public override bool HasCustomerDetails()
{
ClearErrorState();
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
String tableCommodityCustomer = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.CommodityCustomer);
if (db.TableExists(tableCommodityCustomer))
{
List<String> filters = new List<String>();
filters.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.CommodityCustomer_CommodityId) + "=" + Id.ToString());
return db.GetRowCount(tableCommodityCustomer, /*"1",*/ filters.Concat(" AND ", "(", ")")) > 0;
}
}
return false;
}
public override bool HasSupplierDetails()
{
ClearErrorState();
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
String tableCommoditySupplier = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.CommoditySupplier);
if (db.TableExists(tableCommoditySupplier))
{
List<String> filters = new List<String>();
filters.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.CommoditySupplier_CommodityId) + "=" + Id.ToString());
return db.GetRowCount(tableCommoditySupplier, /*"1",*/ filters.Concat(" AND ", "(", ")")) > 0;
}
}
return false;
}
public override bool HasMovements()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return false;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
String tableMovement = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Movement);
if (db.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));
filters.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Movement_ItemId) + "=" + Id.ToString());
return db.GetRowCount(tableMovement, /*colMovement_Id,*/ filters.Concat(" AND ", "(", ")")) > 0;
}
}
return false;
}
public override bool HasStockLevels()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return false;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
String tableStockLevel = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.StockLevel);
if (db.TableExists(tableStockLevel))
{
String colStockLevel_CommodityId = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.StockLevel_CommodityId);
String filter = colStockLevel_CommodityId + "=" + Id.ToString();
return db.GetRowCount(tableStockLevel, filter) > 0;
}
}
return false;
}
public override bool ClearDependentData()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return false;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null && !HasErrorState())
{
if (!HasErrorState())
{
// Remove data item references.
if (dataItemMgr != null)
{
if (!dataItemMgr.ClearDataItem(Sbm.ItemType.Commodity, Id))
SetErrorState(dataItemMgr.ErrorState.ToString());
}
else SetErrorState("Data item manager is not available");
}
if (!HasErrorState())
{
// ToDo SaItemDocConsole for Remove document references.
SaItemDocConsole itemDocConsole = SbmGlobals.Application.GetItemDocConsole(userContext);
if (itemDocConsole != null)
{
if (!itemDocConsole.ClearItemDocs(new ItemId((short)Sbm.ItemType.Commodity, Id), SaItemDocConsole.Category.Document, userContext.DbUpdateInfo))
SetErrorState(itemDocConsole.ErrorState.ToString());
}
else SetErrorState("Failed to retrieve item document console");
itemDocConsole = null;
}
if (!HasErrorState())
{
// Remove interface references.
SaInterfaceConsole interfaceConsole = SbmGlobals.Application.GetInterfaceConsole(userContext);
if (interfaceConsole != null)
{
if (!interfaceConsole.ClearInterfaceDataItems(new ItemId((short)Sbm.ItemType.Commodity, Id), userContext.DbUpdateInfo))
SetErrorState(interfaceConsole.ErrorState.ToString());
}
else SetErrorState("Failed to retrieve interface console");
interfaceConsole = null;
}
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) + "=" + Id.ToString();
if (db != null && db.TableExists(tableCommodityCustomer) && db.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) + "=" + Id.ToString();
if (db != null && db.TableExists(tableCommoditySupplier) && db.ExecuteDelete(tableCommoditySupplier, filter) > 0)
SetErrorState("Failed to clear Supplier commodity details");
}
}
return false;
}
//---------------------------------------------------------------
// Commodity Cost Estimates.
public override List<SbmCostEstimate> GetCostEstimates()
{
//ClearErrorState();
List<SbmCostEstimate> costEstimatesCopy = null;
if (costEstimates == null && SysId.IsValid(Id) && dataItemMgr != null)
{
//***************************************************************
// 15-Dec MPE Fix - Commodity cost estimates were stored as requirement cost estimates. Here we convert the data for this commodity.
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null /*&& SbmGlobals.GetConsole().GetVersion().GetName() == "MPE" && Id.ToInt() < 6000*/)
{
String colItemLink_Type = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.ItemLink_Type);
String colItemLink_ItemTypeFrom = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.ItemLink_ItemTypeFrom);
String colItemLink_ItemIdFrom = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.ItemLink_ItemIdFrom);
String colItemLink_CreateOn = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.ItemLink_CreateOn);
String colItemLink_UpdateOn = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.ItemLink_UpdateOn);
List<String> filters = new List<String>();
// Identify cost estimates for requirements with the same Id as this commodity which were created since the 1-Jan-2006
// (to avoid updating cost estimates that are more likely to belong to requirements - cost estimates were introduced against commodities during 2006).
filters.Add("(" + colItemLink_Type + "=" + Sbm.ItemLinkType.ItemCostEstimate.ToString() + " OR " + colItemLink_Type + "=" + Sbm.ItemLinkType.Requirement_CostEstimate.ToString() + ")");
filters.Add(colItemLink_ItemTypeFrom + "=" + Sbm.ItemType.Requirement.ToString());
filters.Add(colItemLink_ItemIdFrom + "=" + Id.ToString());
filters.Add(colItemLink_CreateOn + ">=" + DbQuery.FormatForCondition(new DateTime(1, 1, 2006/*2006,1,1*/).ToString()));
if (db.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.ItemLink), /*colItemLink_Type, rowCount,*/ filters.Concat(" AND ", "(", ")")) > 0)
{
// The link type and 'From' item type are changed to reflect the commodity relationship.
List<StringPair> values = new List<StringPair>();
SacsDatabase.AddValuePair(values, colItemLink_Type, ((int)Sbm.ItemLinkType.ItemCostEstimate).ToString(), false);
SacsDatabase.AddValuePair(values, colItemLink_ItemTypeFrom, ((int)Sbm.ItemType.Commodity).ToString(), false);
SacsDatabase.AddValuePair(values, colItemLink_UpdateOn, DbQuery.FormatForCondition(new DateTime().ToString()), false);
db.ExecuteUpdate(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.ItemLink), values, filters.Concat(" AND ", "(", ")"));
}
}
//***************************************************************
SbmItemLink.Params prmItemLink = new SbmItemLink.Params();
prmItemLink.ItemLinkType = Sbm.ItemLinkType.ItemCostEstimate;
prmItemLink.ItemTypeFrom = Sbm.ItemType.Commodity;
prmItemLink.ItemIdFrom = Id;
List<SbmItemLink> itemLinks = dataItemMgr.GetItemLinkList(prmItemLink);
if (itemLinks != null)
{
foreach (SbmItemLink itemLink in itemLinks)
{
SbmCostEstimate costEstimate = new SbmCostEstimate(UserContext, itemLink.DataContent);
costEstimate.Notes = itemLink.Notes;
costEstimate.Changed = false;
if (costEstimates == null) costEstimates = new List<SbmCostEstimate>();
costEstimates.Add(costEstimate);
}
// Clean-up.
itemLinks.Clear();
}
}
// Clone the list.
costEstimatesCopy = costEstimates.Clone();
return costEstimatesCopy;
}
public override bool SetCostEstimates(List<SbmCostEstimate> costEstimatesNew)
{
ClearErrorState();
// Clear the existing list.
if (costEstimates != null) costEstimates.Clear();
// Copy all items from the specified list.
costEstimates = costEstimatesNew.Clone();
return true;
}
public override bool CommitCostEstimates()
{
ClearErrorState();// Do not attempt any updates unless the list has been populated.
if (costEstimates != null && SysId.IsValid(Id) && dataItemMgr != null)
{
// Build an item link list corresponding to the list of cost estimates.
List<SbmItemLink> itemLinks = new List<SbmItemLink>();
foreach (SbmCostEstimate costEstimate in costEstimates)
{
if (costEstimate == null) continue;
SbmItemLink itemLink = dataItemMgr.CreateItemLink(Sbm.ItemLinkType.ItemCostEstimate, Sbm.ItemType.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);
itemLink = null; // Now owned by the list.
}
}
// Store these details.
if (dataItemMgr.StoreFromItemLinks(Sbm.ItemLinkType.ItemCostEstimate, Sbm.ItemType.Commodity, Id, itemLinks, userContext.DbUpdateInfo))
{
}
else
{
SetErrorState("Failed to save cost estimate item links - " + dataItemMgr.ErrorState);
}
if (itemLinks != null)
itemLinks.Clear();
}
return !HasErrorState();
}
//---------------------------------------------------------------
// Commodity processes.
public override List<SbmItemProcess> GetProcesses(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, Id, true);
}
else
{
// Full list required - check whether the internal list has been populated yet.
if (itemProcesses == null && SysId.IsValid(Id) && processMgr != null)
{
// Get the list of processes.
processMgr.GetProcessesForItem(Sbm.ItemType.Commodity, Id, false);
}
// Clone the list.
itemProcesesCopy = itemProcesses.Clone();
}
if (itemProcesesCopy != null) itemProcesesCopy.Sort();
return itemProcesesCopy;
}
public override bool SetProcesses(List<SbmItemProcess> itemProcessesNew)
{
ClearErrorState();
if (itemProcesses != null) itemProcesses.Clear();
// Copy all items from the specified list.
itemProcesses = itemProcessesNew.Clone();
return !HasErrorState();
}
public override bool CommitProcesses()
{
ClearErrorState();
if (!processMgr.StoreItemProcesses(Sbm.ItemType.Commodity, Id, itemProcesses, userContext.DbUpdateInfo))
SetErrorState(processMgr.ErrorState.ToString());
return !HasErrorState();
}
}
//=======================================================================
}
@@ -0,0 +1,51 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Dbas;
using System;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
{
//=======================================================================
class SbmConstituent_Dbas : SbmConstituent
{
//-------------------------------------------------------------------
// Data members.
private readonly SbmUserContext userContext;
//-------------------------------------------------------------------
// Construction.
public SbmConstituent_Dbas(SbmUserContext userContext, SysId id, SysId affIdOwner, SysId assocId, Sbm.ConstituentType constituentType, ushort flags) :
base(userContext, id, affIdOwner, assocId, constituentType)
{
this.userContext = userContext;
Flags = flags;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
}
base.Dispose(disposing);
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
// Associated data.
public override bool HasConstituents()
{
if (!SysId.IsValid(Id)) return false;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
String filter = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Constituent_ConstId) + "=" + Id.ToString();
return db.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Constituent), filter) > 0;
}
return false;
}
}
//=======================================================================
}
@@ -0,0 +1,42 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Bus;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
{
//=======================================================================
class SbmContainerItem_Dbas : SbmContainerItem
{
//-------------------------------------------------------------------
// Data members.
private readonly SbmUserContext userContext;
//-------------------------------------------------------------------
// Construction.
public SbmContainerItem_Dbas(SbmUserContext userContext, SysId containerId, Sbm.ItemType itemType, SysId itemId, ushort flags) :
base(userContext, containerId, itemType, itemId)
{
this.userContext = userContext;
ContainerId = containerId;
ItemType = itemType;
ItemId = itemId;
Flags = flags;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
}
base.Dispose(disposing);
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
// Associated Data Elements.
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,103 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
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 System;
using System.Collections.Generic;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
{
//=======================================================================
class SbmContainer_Dbas : SbmContainer
{
//-------------------------------------------------------------------
// Data members.
private readonly SbmUserContext userContext;
//-------------------------------------------------------------------
// Construction.
public SbmContainer_Dbas(SbmUserContext userContext, SysId id, SysId affiliateIdOwner, Sbm.ContainerCategory containerCategory, Sbm.ContainerType containerType, ushort flags) :
base(userContext, id, affiliateIdOwner, containerCategory, containerType)
{
this.userContext = userContext;
Id = id;
AffiliateIdOwner = affiliateIdOwner;
ContainerCategory = containerCategory;
ContainerType = containerType;
Flags = flags;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
}
base.Dispose(disposing);
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
// Associated Data Elements.
public override bool HasItems()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return false;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
String tableContainItem = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.ContainerItem);
if (db.TableExists(tableContainItem))
{
List<String> filter = new List<String>();
filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.ContainerItem_ContainerId) + "=" + Id.ToString());
return db.GetRowCount(tableContainItem, filter.Concat(" AND ", "(", ")")) > 0;
}
}
return false;
}
public override bool HasMovements()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return false;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
String tableMovement = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Movement);
if (db.TableExists(tableMovement))
{
List<String> filter = new List<String>();
filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Movement_ItemType) + "=" + ((int)Sbm.ItemType.Container).ToString());
filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Movement_ItemId) + "=" + Id.ToString());
return db.GetRowCount(tableMovement, filter.Concat(" AND ", "(", ")")) > 0;
}
}
return false;
}
public override bool HasActionedMovements()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return false;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
String tableMovement = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Movement);
if (db.TableExists(tableMovement))
{
List<String> filter = new List<String>();
filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Movement_ItemType) + "=" + ((int)Sbm.ItemType.Container).ToString());
filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Movement_ItemId) + "=" + Id.ToString());
filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Movement_Status) + "=" + SacsSystem.GetStatusForCode(SaStatus.Actioned.ToString()) + ":");
return db.GetRowCount(tableMovement, filter.Concat(" AND ", "(", ")")) > 0;
}
}
return false;
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,40 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Bus;
using System;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
{
//=======================================================================
class SbmItemBatch_Dbas : SbmItemBatch
{
//-------------------------------------------------------------------
// Data members.
private readonly SbmUserContext userContext;
//-------------------------------------------------------------------
// Construction.
public SbmItemBatch_Dbas(SbmUserContext userContext, SysId id, SysId affIdOwner, Sbm.ItemBatchType itemBatchType, String reference, ushort flags) :
base(userContext, id, affIdOwner, itemBatchType, reference)
{
this.userContext = userContext;
Flags = flags;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
}
base.Dispose(disposing);
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
// Associated data.
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,39 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Bus;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
{
//=======================================================================
class SbmItemLink_Dbas : SbmItemLink
{
//-------------------------------------------------------------------
// Data members.
private readonly SbmUserContext userContext;
//-------------------------------------------------------------------
// Construction.
public SbmItemLink_Dbas(SbmUserContext userContext, SysId id, Sbm.ItemLinkType itemLinkType, Sbm.ItemType itemTypeFrom, SysId itemIdFrom, Sbm.ItemType itemTypeTo, SysId itemIdTo, ushort flags) :
base(userContext, id, itemLinkType, itemTypeFrom, itemIdFrom, itemTypeTo, itemIdTo)
{
this.userContext = userContext;
Flags = flags;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
}
base.Dispose(disposing);
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
// Associated data.
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,54 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Bus;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
{
//=======================================================================
class SbmItemProcess_Dbas : SbmItemProcess
{
//-------------------------------------------------------------------
// Data members.
private readonly SbmUserContext userContext;
//-------------------------------------------------------------------
// Construction.
public SbmItemProcess_Dbas(SbmUserContext userContext, Sbm.ItemType itemType, SysId itemId, SysId processId, ushort flags) :
base(userContext, itemType, itemId, processId)
{
this.userContext = userContext;
Flags = flags;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
}
base.Dispose(disposing);
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
// Associated data.
/*public override SbmItemProcess Clone()
{
SbmItemProcess_Dbas itemProcess_Dbas = new SbmItemProcess_Dbas(SessionProfile, ItemType, ItemId, ProcessId, Flags);
itemProcess_Dbas.Seq = Seq;
itemProcess_Dbas.Completed = Completed;
itemProcess_Dbas.AssocIdContractor = AssocIdContractor;
itemProcess_Dbas.AmountNet = AmountNet;
itemProcess_Dbas.Notes = Notes;
itemProcess_Dbas.Status = Status;
//itemProcess_Dbas.ProcessCategory = ProcessCategory;
//itemProcess_Dbas.ProcessType = ProcessType;
itemProcess_Dbas.ProcessDescBrief
itemProcess_Dbas.
return itemProcess_Dbas;
}*/
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,78 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
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 System;
using System.Collections.Generic;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
{
//=======================================================================
class SbmLocation_Dbas : SbmLocation
{
//-------------------------------------------------------------------
// Data members.
private readonly SbmUserContext userContext;
//-------------------------------------------------------------------
// Construction.
public SbmLocation_Dbas(SbmUserContext userContext, SysId id, SysId affiliateIdOwner, Sbm.LocationCategory locationCategory, ushort flags) :
base(userContext, id, affiliateIdOwner, locationCategory)
{
this.userContext = userContext;
Flags = flags;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
}
base.Dispose(disposing);
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
// Associated Data Elements.
public override bool HaveMovement()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return false;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
String tableMovement = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Movement);
if (db.TableExists(tableMovement))
{
List<String> filter = new List<String>();
filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Movement_LocationIdFrom) + "=" + Id.ToString() + "OR" + SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Movement_LocationIdTo) + "=" + Id.ToString());
return db.GetRowCount(tableMovement, filter.Concat(" AND ", "(", ")")) > 0;
}
}
return false;
}
public override bool HaveStockLevel()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return false;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
String tableStockLevel = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.StockLevel);
if (db.TableExists(tableStockLevel))
{
List<String> filter = new List<String>();
filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.StockLevel_LocationId) + "=" + Id.ToString());
return db.GetRowCount(tableStockLevel, filter.Concat(" AND ", "(", ")")) > 0;
}
}
return false;
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,41 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Bus;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
{
//=======================================================================
class SbmMovement_Dbas : SbmMovement
{
//-------------------------------------------------------------------
// Data members.
private readonly SbmUserContext userContext;
//-------------------------------------------------------------------
// Construction.
public SbmMovement_Dbas(SbmUserContext userContext, SysId id, Sbm.ItemType itemType, SysId itemId, Sbm.MovementType movementType, ushort flags) :
base(userContext, id, itemType, itemId, movementType)
{
this.userContext = userContext;
Id = id;
MovementType = movementType;
Flags = flags;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
}
base.Dispose(disposing);
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
// Associated Data Elements.
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,121 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
using Sarand.BusinessMgr.Net.Standard.Base.Mgr;
using Sarand.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Core;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.ItemDocs;
using Sarand.Net.Standard.Base.Utils;
using System;
using System.Collections.Generic;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
{
//=======================================================================
class SbmPortfolioItem_Dbas : SbmPortfolioItem
{
//-------------------------------------------------------------------
// Data members.
private readonly SbmUserContext userContext;
//-------------------------------------------------------------------
// Construction.
public SbmPortfolioItem_Dbas(SbmUserContext userContext, SysId id, SysId affiliateIdOwner, Sbm.PortfolioItemType portfolioItemType, ushort flags) :
base(userContext, id, affiliateIdOwner, portfolioItemType)
{
this.userContext = userContext;
Flags = flags;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
}
base.Dispose(disposing);
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
// Associated Data Elements.
public override bool HasChildItems()
{
return GetChildItemCount(Sbm.PortfolioItemType.Unknown) > 0;
}
public override long GetChildItemCount(Sbm.PortfolioItemType portfolioItemType = Sbm.PortfolioItemType.Unknown)
{
ClearErrorState();
if (!SysId.IsValid(Id)) return 0;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
String tablePortfolioItem = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.PortfolioItem);
if (db.TableExists(tablePortfolioItem))
{
List<String> filter = new List<String>();
filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.PortfolioItem_ItemIdParent) + "=" + Id.ToString());
if (portfolioItemType > 0)
filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.PortfolioItem_Type) + "=" + ((int)portfolioItemType).ToString());
return db.GetRowCount(tablePortfolioItem, filter.Concat(" AND ", "(", ")"));
}
}
return 0;
}
public override bool IsReferencedByOtherItems()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return false;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
String tablePortfolioItem = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.PortfolioItem);
if (db.TableExists(tablePortfolioItem))
{
List<String> filter = new List<String>();
filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.PortfolioItem_ItemIdRef) + "=" + Id.ToString());
return db.GetRowCount(tablePortfolioItem, filter.Concat(" AND ", "(", ")")) > 0;
}
}
return false;
}
// Clear all descendent items.
public override bool ClearChildItems()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return false;
using (SbmCommodityMgr commodityMgr = SbmGlobals.System.CreateCommodityMgr(UserContext))
{
SbmPortfolioItem.Params prmPortfolioItem = new SbmPortfolioItem.Params();
prmPortfolioItem.ParentItemId = Id;
foreach (SbmPortfolioItem portfolioItem in commodityMgr.GetPortfolioItemList(prmPortfolioItem))
{
portfolioItem.ClearChildItems();
if (!commodityMgr.DeletePortfolioItem(portfolioItem, UserContext.DbUpdateInfo))
return SetErrorState(commodityMgr.ErrorStateMessage);
}
}
return true;
}
// Dependent data should only be cleared when removing a portfolio item.
// Data owned by this item is deleted (eg. interface data items & document references).
// NB This method does not clear child portfolio items.
public override bool ClearDependentData()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return false;
using (SbmDataItemMgr dataItemMgr = SbmGlobals.System.CreateDataItemMgr(UserContext))
{
if (!dataItemMgr.ClearDataItem(Sbm.ItemType.PortfolioItem, Id))
return SetErrorState(dataItemMgr.ErrorStateMessage);
}
SaItemDocConsole itemDocConsole = SbmGlobals.GetItemDocConsole(UserContext);
if (!itemDocConsole.ClearItemDocs(new ItemId((short)Sbm.ItemType.PortfolioItem, Id), SaItemDocConsole.Category.Unknown, UserContext.DbUpdateInfo))
return SetErrorState(itemDocConsole.ErrorStateMessage);
return true;
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,74 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
using Sarand.BusinessMgr.Net.Standard.Base.Mgr;
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 System;
using System.Collections.Generic;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
{
//=======================================================================
class SbmPriceSet_Dbas : SbmPriceSet
{
//-------------------------------------------------------------------
// Data members.
private readonly SbmUserContext userContext;
private SbmPriceMgr priceMgr;
//-------------------------------------------------------------------
// Construction.
public SbmPriceSet_Dbas(SbmUserContext userContext, SysId id, SysId affiliateIdOwner, String reference, Sbm.PriceType priceType, ushort flags) :
base(userContext, id, affiliateIdOwner, reference, priceType)
{
this.userContext = userContext;
Flags = flags;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
if (priceMgr != null) priceMgr.Dispose();
}
base.Dispose(disposing);
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
// Internal Processing.
public bool InitPriceMgr()
{
if (priceMgr == null)
priceMgr = SbmGlobals.System.CreatePriceMgr(userContext);
return (priceMgr != null);
}
//-------------------------------------------------------------------
// Associated data.
public override bool HasPrices()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return false;
InitPriceMgr();
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
String tablePrice = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaPrice);
if (db.TableExists(tablePrice))
{
List<String> filter = new List<String>();
filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaPrice_PriceSetId) + "=" + SysId.ToString(Id));
return db.GetRowCount(tablePrice, filter.Concat(" AND ", "(", ")")) > 0;
}
}
return false;
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,39 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Bus;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
{
//=======================================================================
class SbmPrice_Dbas : SbmPrice
{
//-------------------------------------------------------------------
// Data members.
private readonly SbmUserContext userContext;
//-------------------------------------------------------------------
// Construction.
public SbmPrice_Dbas(SbmUserContext userContext, SysId priceSetId, SysId commodityId, Sbm.PriceType priceType, ushort flags) :
base(userContext, priceSetId, commodityId, priceType)
{
this.userContext = userContext;
Flags = flags;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
}
base.Dispose(disposing);
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
// Internal Processing.
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,223 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
using Sarand.BusinessMgr.Net.Standard.Base.Mgr;
using Sarand.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Core;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.ItemData;
using Sarand.Net.Standard.Base.Utils;
using System;
using System.Collections.Generic;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
{
//=======================================================================
class SbmProcess_Dbas : SbmProcess
{
//-------------------------------------------------------------------
// Data members.
private readonly SbmUserContext userContext;
private SaItemDataConsole itemDataConsole;
private SbmDataItemMgr dataItemMgr;
private readonly List<TypeCodeDesc> itemDataTypes;
private static readonly String codeDelim = ",";
//-------------------------------------------------------------------
// Construction.
public SbmProcess_Dbas(SbmUserContext userContext, SysId id, SysId affIdOwner, Sbm.ProcessCategory processCategory, ushort flags) :
base(userContext, id, affIdOwner, processCategory)
{
this.userContext = userContext;
itemDataTypes = SbmSystem.GetCodesOfType(userContext, Sbm.SystemCode.ItemDataType);
Flags = flags;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
if (dataItemMgr != null) dataItemMgr.Dispose();
}
base.Dispose(disposing);
}
//-------------------------------------------------------------------
// Properties.
private SbmDataItemMgr DataItemMgr { get { if (dataItemMgr == null) dataItemMgr = SbmGlobals.System.CreateDataItemMgr(userContext); return dataItemMgr; } }
//-------------------------------------------------------------------
// I n i t i a l i s a t i o n
//-------------------------------------------------------------------
private void InitItemDataConsole()
{
if (itemDataConsole == null)
itemDataConsole = SbmGlobals.Application.GetItemDataConsole(userContext);
}
//-------------------------------------------------------------------
// Associated codes.
public override String GetCodeForCostCode(SbmProcessCostCode processCostCode)
{
switch (processCostCode)
{
case SbmProcessCostCode.Fixed_Unit: return itemDataTypes.GetCodeForType(Sbm.ItemDataType.Process_FixedCost_Unit);
case SbmProcessCostCode.Fixed_Job: return itemDataTypes.GetCodeForType(Sbm.ItemDataType.Process_FixedCost_Job);
case SbmProcessCostCode.Labour_Unit: return itemDataTypes.GetCodeForType(Sbm.ItemDataType.Process_LabourCost_Unit);
case SbmProcessCostCode.Labour_Job: return itemDataTypes.GetCodeForType(Sbm.ItemDataType.Process_LabourCost_Job);
}
return "";
}
public override bool HasCostCodes()
{
ClearErrorState();
InitItemDataConsole();
if (itemDataConsole == null || !SysId.IsValid(Id)) return false;
SaItemData.Params prmItemData = new SaItemData.Params();
prmItemData.IncludedItemIds.Add(new ItemId((short)Sbm.ItemType.Process, Id));
prmItemData.IncludedDataTypes.Add(GetCodeForCostCode(SbmProcessCostCode.Fixed_Unit));
prmItemData.IncludedDataTypes.Add(GetCodeForCostCode(SbmProcessCostCode.Fixed_Job));
prmItemData.IncludedDataTypes.Add(GetCodeForCostCode(SbmProcessCostCode.Labour_Unit));
prmItemData.IncludedDataTypes.Add(GetCodeForCostCode(SbmProcessCostCode.Labour_Job));
return itemDataConsole.ItemDataExists(prmItemData);
}
public override bool HasCostCodes(SbmProcessCostCode processCostCode)
{
ClearErrorState();
InitItemDataConsole();
if (itemDataConsole == null || !SysId.IsValid(Id)) return false;
bool bHas = false;
// Identify process code type code.
String itemDataTypeCode = GetCodeForCostCode(processCostCode);
if (!StringUtil.IsEmpty(itemDataTypeCode))
{
SaItemData.Params prmItemData = new SaItemData.Params();
prmItemData.IncludedItemIds.Add(new ItemId((short)Sbm.ItemType.Process, Id));
prmItemData.IncludedDataTypes.Add(itemDataTypeCode);
bHas = itemDataConsole.ItemDataExists(prmItemData);
}
return bHas;
}
public override List<String> GetCostCodes(SbmProcessCostCode processCostCode)
{
List<String> costCodes = new List<String>();
ClearErrorState();
// Identify process code type code.
String itemDataTypeCode = GetCodeForCostCode(processCostCode);
InitItemDataConsole();
if (itemDataConsole != null || !SysId.IsValid(Id) && !StringUtil.IsEmpty(itemDataTypeCode))
{
SaItemData.Params prmItemData = new SaItemData.Params();
prmItemData.IncludedItemIds.Add(new ItemId((short)Sbm.ItemType.Process, Id));
prmItemData.IncludedDataTypes.Add(itemDataTypeCode);
List<SaItemData> itemDatas = itemDataConsole.GetItemDataList(prmItemData);
foreach (SaItemData itemData in itemDatas)
{
if (itemData == null) continue;
costCodes.AddRange(StringListUtil.Split(itemData.ItemData, codeDelim));
break;
}
itemDatas.Clear();
}
return costCodes;
}
public override bool StoreCostCodes(SbmProcessCostCode processCostCode, List<String> costCodes)
{
ClearErrorState();
if (StringUtil.IsEmpty(costCodes.Concat(codeDelim))) return ClearCostCodes(processCostCode);
// Identify process code type code.
String itemDataTypeCode = GetCodeForCostCode(processCostCode);
InitItemDataConsole();
if (itemDataConsole != null || !SysId.IsValid(Id) && !StringUtil.IsEmpty(itemDataTypeCode))
{
SaItemData.Params prmItemData = new SaItemData.Params();
prmItemData.IncludedItemIds.Add(new ItemId((short)Sbm.ItemType.Process, Id));
prmItemData.IncludedDataTypes.Add(itemDataTypeCode);
List<SaItemData> itemDatas = itemDataConsole.GetItemDataList(prmItemData);
// ToDo itemData condition.
//itemDatas.GotoStart();
SaItemData itemData = null;//itemDatas.Count == 1 ? itemDatas.Remove(1) : null;
itemDatas.Clear();
if (itemData == null)
{
// Code type not found - create a new entry.
itemData = itemDataConsole.CreateItemData(new ItemId((short)Sbm.ItemType.Process, Id));
itemData.DataType = itemDataTypeCode;
}
if (itemData != null)
{
// Populate item data for these codes.
itemData.ItemData = costCodes.Concat(codeDelim);
if (!itemDataConsole.Store(itemData, userContext.DbUpdateInfo))
{
SetErrorState(itemDataConsole.ErrorStateMessage);
}
}
}
return !HasErrorState();
}
public override bool ClearCostCodes(SbmProcessCostCode processCostCode)
{
ClearErrorState();
// Identify process code type code.
String itemDataTypeCode = GetCodeForCostCode(processCostCode);
InitItemDataConsole();
if (itemDataConsole != null || !SysId.IsValid(Id) && !StringUtil.IsEmpty(itemDataTypeCode))
{
if (!itemDataConsole.ClearItemData(new ItemId((short)Sbm.ItemType.Process, Id), itemDataTypeCode, userContext.DbUpdateInfo))
{
SetErrorState(itemDataConsole.ErrorStateMessage);
}
}
return !HasErrorState();
}
public override bool ClearCostCodes()
{
ClearErrorState();
return !HasErrorState();
}
//-------------------------------------------------------------------
// Associated data.
public override bool HasReferences()
{
if (!SysId.IsValid(Id)) return false;
if (DataItemMgr.HasItemLinks(Sbm.ItemType.Process, Id)) return true;
// Is this process referenced by Constituents.
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext); if (db != null) return true;
// Constituents.
String filter = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Constituent_Id) + "=" + SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Constituent_ProcessId) + "=" + Id.ToString();
return db.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Constituent), filter) > 0;
}
public override bool HasItemData()
{
ClearErrorState();
InitItemDataConsole();
if (itemDataConsole == null || !SysId.IsValid(Id)) return false;
SaItemData.Params prmItemData = new SaItemData.Params();
prmItemData.IncludedItemIds.Add(new ItemId((short)Sbm.ItemType.Process, Id));
return itemDataConsole.ItemDataExists(prmItemData);
}
public override bool ClearAssociatedData()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return SetErrorState("item not specified");
// Clear Item data records.
InitItemDataConsole();
if (itemDataConsole != null)
{
SaItemData.Params prmItemData = new SaItemData.Params();
prmItemData.IncludedItemIds.Add(new ItemId((short)Sbm.ItemType.Process, Id));
List<SaItemData> itemDatas = itemDataConsole.GetItemDataList(prmItemData);
foreach (SaItemData itemData in itemDatas)
{
itemDataConsole.Remove(itemData, userContext.DbUpdateInfo);
}
itemDatas.Clear();
}
return !HasErrorState();
}
}
//=======================================================================
}
@@ -0,0 +1,377 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
using Sarand.BusinessMgr.Net.Standard.Base.Mgr;
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 System;
using System.Collections.Generic;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
{
//=======================================================================
class SbmRequirement_Dbas : SbmRequirement
{
//-------------------------------------------------------------------
// Data members.
private readonly SbmUserContext userContext;
private class Managers
{
public SbmDataItemMgr DataItemMgr { get; set; }
public SbmProcessMgr ProcessMgr { get; set; }
public SbmStockMgr StockMgr { get; set; }
public SbmTransactionMgr TransactionMgr { get; set; }
}
private readonly Managers mgrs = new Managers();
private readonly String statusCancelled = SacsSystem.GetStatusCode(SaStatus.Cancelled);
//-------------------------------------------------------------------
// Construction.
public SbmRequirement_Dbas(SbmUserContext userContext, SysId id, SysId affIdOwner, SysId assocId, SysId transId, Sbm.RequirementType requirementType, ushort flags) :
base(userContext, id, affIdOwner, assocId, transId, requirementType)
{
this.userContext = userContext;
Flags = flags;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
if (mgrs.StockMgr != null) mgrs.StockMgr.Dispose();
if (mgrs.TransactionMgr != null) mgrs.TransactionMgr.Dispose();
if (mgrs.ProcessMgr != null) mgrs.ProcessMgr.Dispose();
if (mgrs.DataItemMgr != null) mgrs.DataItemMgr.Dispose();
}
base.Dispose(disposing);
}
//-------------------------------------------------------------------
// Properties.
private SbmTransactionMgr TransactionMgr
{
get
{
if (mgrs.TransactionMgr == null)
mgrs.TransactionMgr = SbmGlobals.System.CreateTransactionMgr(userContext);
return mgrs.TransactionMgr;
}
}
private SbmDataItemMgr DataItemMgr
{
get
{
if (mgrs.DataItemMgr == null)
mgrs.DataItemMgr = SbmGlobals.System.CreateDataItemMgr(userContext);
return mgrs.DataItemMgr;
}
}
private SbmProcessMgr ProcessMgr
{
get
{
if (mgrs.ProcessMgr == null)
mgrs.ProcessMgr = SbmGlobals.System.CreateProcessMgr(userContext);
return mgrs.ProcessMgr;
}
}
private SbmStockMgr StockMgr
{
get
{
if (mgrs.StockMgr == null)
mgrs.StockMgr = SbmGlobals.System.CreateStockMgr(userContext);
return mgrs.StockMgr;
}
}
//-------------------------------------------------------------------
// Associated data.
public override bool HasRequirements()
{
ClearErrorState();
bool hasRequirements = TransactionMgr.RequirementHasAssociatedRequirements(Id);
SetErrorState(TransactionMgr.ErrorStateMessage);
return hasRequirements;
}
public override bool HasConstituents(Sbm.ConstituentType constituentType)
{
ClearErrorState();
bool hasConstituents = TransactionMgr.RequirementHasConstituents(Id, constituentType);
SetErrorState(TransactionMgr.ErrorStateMessage);
return hasConstituents;
}
public override bool HasStockMovments()
{
ClearErrorState();
bool hasMovements = false;
/* ToDo need to have StockMgr for RequirementDbas>HasStockMovments
if (SysId.IsValid(Id) && InitStockMgr())
{
hasMovements = stockMgr.SourceItemHasMovements(Sbm.ItemType.Requirement, Id);
}*/
return hasMovements;
}
public override bool HasItemLinks()
{
ClearErrorState();
if (SysId.IsValid(Id))
DataItemMgr.HasItemLinks(Sbm.ItemType.Requirement, Id);
return false;
}
//-------------------------------------------------------------------
public override bool CommitAssociatedData()
{
ClearErrorState();
if (this == null || !SysId.IsValid(Id)) return false;
if (!HasErrorState()) CommitCostEstimates();
if (!HasErrorState()) CommitProcesses();
return !HasErrorState();
}
//-------------------------------------------------------------------
public override bool ClearDependentData()
{
ClearErrorState();
TransactionMgr.ClearRequirementDependentData(Id, CommodityId);
SetErrorState(TransactionMgr.ErrorStateMessage);
return !HasErrorState();
}
public override bool ClearAssociatedRequirements()
{
ClearErrorState();
TransactionMgr.ClearRequirementAssociatedRequirements(Id);
SetErrorState(TransactionMgr.ErrorStateMessage);
return !HasErrorState();
}
public override decimal GetQuantityDispatched(SysId transIdExclude)
{
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (SysId.IsValid(Id))
{
// Build query to sum associated dispatch item quantities.
List<String> filters = new List<String>
{
SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Requirement_ReqntIdSource) + "=" + Id.ToString(),
SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Requirement_Status) + "<>'" + statusCancelled + "'"
};
// Requirement must belong to a transaction of type 'Dispatch Note'.
DbQuery qryTrans = new DbQuery(db.DbmsType);
qryTrans.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Transaction));
qryTrans.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Transaction_Id));
if (SysId.IsValid(transIdExclude))
qryTrans.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Transaction_Id) + "<>" + transIdExclude.ToString());
qryTrans.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Transaction_Id) + "=" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Requirement_TransId));
qryTrans.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Transaction_Type) + "=" + Sbm.TransactionType.SalesDispatch.ToString());
qryTrans.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Transaction_Status) + "<>'" + statusCancelled + "'");
filters.Add("EXISTS (" + qryTrans.BuildQuery() + ")");
// Retrieve database and perform query.
if (db != null)
db.GetRowValue(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Requirement), SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Requirement_Quantity), filters.Concat(" AND ", "(", ")"), DbGetValueType.eDbValueSum);
SetErrorState("Database query failed");
}
return 0.0m;
}
//-------------------------------------------------------------------
public override decimal GetQuantityInvoiced(SysId transIdExclude)
{
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (SysId.IsValid(Id))
{
// Build query to sum associated dispatch item quantities.
List<String> filter = new List<String>
{
SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Requirement_ReqntIdSource) + "=" + Id.ToString(),
SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Requirement_Status) + "<>'" + statusCancelled + "'"
};
// Requirement must belong to a transaction of type 'Invoice' (Sales or Purchase).
DbQuery qryTrans = new DbQuery(db.DbmsType);
String colTransaction_Id = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Transaction_Id);
String colRequirement_TransId = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Requirement_TransId);
String colTransaction_Type = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Transaction_Type);
String colTransaction_Status = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Transaction_Status);
qryTrans.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Transaction));
qryTrans.Columns.Add(colTransaction_Id);
if (SysId.IsValid(transIdExclude))
qryTrans.Filters.Add(colTransaction_Id + "<>" + transIdExclude.ToString());
qryTrans.Filters.Add(colTransaction_Id + "=" + colRequirement_TransId);
qryTrans.Filters.Add("(" + colTransaction_Type + "=" + Sbm.TransactionType.SalesInvoice.ToString() + "OR" + colTransaction_Type + "=" + Sbm.TransactionType.PurchaseInvoice + ")".ToString());
qryTrans.Filters.Add(colTransaction_Status + "<>'" + statusCancelled + "'");
filter.Add("EXISTS (" + qryTrans.BuildQuery() + ")");
// Retrieve database and perform query.
if (db != null)
db.GetRowValue(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Requirement), SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Requirement_Quantity), filter.Concat(" AND ", "(", ")"), DbGetValueType.eDbValueSum);
SetErrorState("Database query failed");
}
return 0.0m;
}
//-------------------------------------------------------------------
// C o s t E s t i m a t e s
//-------------------------------------------------------------------
public override bool HasCostEstimates()
{
if (data.CostEstimates != null) return data.CostEstimates.Count > 0;
if (!SysId.IsValid(Id)) return false;
SbmItemLink.Params prmItemLink = new SbmItemLink.Params
{
ItemLinkType = Sbm.ItemLinkType.Requirement_CostEstimate,
ItemTypeFrom = Sbm.ItemType.Requirement,
ItemIdFrom = Id
};
return DataItemMgr.GetItemLinkCount(prmItemLink) > 0;
}
public override List<SbmCostEstimate> GetCostEstimates()
{
List<SbmCostEstimate> costEstimatesCopy = null;
if (data.CostEstimates == null)
data.CostEstimates = TransactionMgr.GetRequirementCostEstimates(GetData());
// Clone and sort the list.
costEstimatesCopy = data.CostEstimates.Clone();
costEstimatesCopy.Sort();
return costEstimatesCopy;
}
public override bool SetCostEstimates(List<SbmCostEstimate> costEstimatesNew)
{
data.CostEstimates = costEstimatesNew?.Clone() ?? new List<SbmCostEstimate>();
return true;
}
public override bool CommitCostEstimates()
{
ClearErrorState();
// Do not attempt any updates unless the list has been populated.
if (data.CostEstimates != null && SysId.IsValid(Id) && DataItemMgr != null)
{
// Build an item link list corresponding to the list of cost estimates:
List<SbmItemLink> itemLinks = new List<SbmItemLink>();
foreach (SbmCostEstimate costEstimate in data.CostEstimates)
{
if (costEstimate == null) continue;
SbmItemLink itemLink = DataItemMgr.CreateItemLink(Sbm.ItemLinkType.Requirement_CostEstimate, Sbm.ItemType.Requirement, Id, Sbm.ItemType.Unknown, new SysId(0));
if (itemLink != null)
{
itemLink.Seq = (short)costEstimate.CodeSeq;
itemLink.DataContent = costEstimate.ToString();
itemLink.Notes = costEstimate.Notes;
itemLinks.Add(itemLink);
itemLink = null; // Now owned by the list.
}
}
// Store these details.
if (!DataItemMgr.StoreFromItemLinks(Sbm.ItemLinkType.Requirement_CostEstimate, Sbm.ItemType.Requirement, Id, itemLinks, userContext.DbUpdateInfo))
SetErrorState("Failed to save cost estimate item links - " + DataItemMgr.ErrorState);
if (itemLinks != null)
itemLinks.Clear();
}
return false;
}
//-------------------------------------------------------------------
// P r o c e s s e s
//-------------------------------------------------------------------
public override bool HasProcess()
{
if (data.Processes != null) return data.Processes.Count > 0;
if (!SysId.IsValid(Id)) return false;
SbmConstituent.Params prmConstituent = new SbmConstituent.Params
{
ConstituentType = Sbm.ConstituentType.Process,
ReqntId = Id
};
return TransactionMgr.GetConstituentCount(prmConstituent) > 0;
}
public override List<SbmItemProcess> GetProcesses()
{
if (data.Processes == null && SysId.IsValid(Id))
data.Processes = TransactionMgr.GetRequirementItemProcesses(GetData());
// Clone the list:
return data.Processes.Clone();
}
public override bool SetProcesses(List<SbmItemProcess> itemProcessesNew)
{
data.Processes = itemProcessesNew?.Clone() ?? new List<SbmItemProcess>();
return true;
}
public override bool CommitProcesses()
{
ClearErrorState();
// Do not attempt any updates unless the list has been populated.
if (data.Processes == null || !SysId.IsValid(Id)) return true;
// Make a copy of the process list so that we can track those that have been updated.
List<SbmItemProcess> itemProcessesLocal = new List<SbmItemProcess>(data.Processes);
// Retrieve the existing processes for this requirement.
SbmConstituent.Params prmConstituent = new SbmConstituent.Params();
prmConstituent.ConstituentType = Sbm.ConstituentType.Process;
prmConstituent.ReqntId = Id;
foreach (SbmConstituent constituent in TransactionMgr.GetConstituentList(prmConstituent))
{
// Does this process still exist in the list.
SbmItemProcess itemProcessLocal = itemProcessesLocal.Find(item => item.ProcessId.Equals(constituent.ProcessId));
if (itemProcessLocal != null)
{
if (itemProcessLocal.Changed)
{
// Update the details.
CopyFrom(itemProcessLocal, constituent);
if (TransactionMgr.UpdateConstituent(constituent, userContext.DbUpdateInfo))
itemProcessLocal.Changed = false;
else SetErrorState("failed to update process constituent");
}
// Remove this process from the local copy of the list (without deleting it).
itemProcessesLocal.Remove(itemProcessLocal);
}
else
{
// Process no longer required.
constituent.Status = SaStatus.Cancelled;
if (!TransactionMgr.DeleteConstituent(constituent, userContext.DbUpdateInfo))
SetErrorState("failed to delete process constituent");
}
}
// Any item processes left in the local list need to be created.
foreach (SbmItemProcess itemprocess in itemProcessesLocal)
{
if (itemprocess == null) continue;
// Create a constituent to represent this process:
SbmConstituent constituent = TransactionMgr.CreateConstituent(AssociationId, Sbm.ConstituentType.Process);
if (constituent != null)
{
// Update the constituent to belong to this requirement.
constituent.TransactionId = TransactionId;
constituent.RequirementId = Id;
CopyFrom(itemprocess, constituent);
// Add it to the database:
if (TransactionMgr.InsertConstituent(constituent, userContext.DbUpdateInfo))
itemprocess.Changed = false;
else SetErrorState("failed to add constituent - " + TransactionMgr.ErrorState);
}
else SetErrorState("failed to create constituent - " + TransactionMgr.ErrorState);
}
return !HasErrorState();
}
//-------------------------------------------------------------------
// Item Process - Constituent Interface.
public void CopyFrom(SbmItemProcess itemProcess, SbmConstituent constituent)
{
if (itemProcess == null || constituent != null) return;
constituent.Seq = itemProcess.Seq;
constituent.Notes = itemProcess.Notes;
constituent.ProcessId = itemProcess.ProcessId;
constituent.AssociationIdContractor = itemProcess.AssocIdContractor;
constituent.AmountNet = itemProcess.AmountNet;
constituent.Completed = itemProcess.Completed;
constituent.Notes = itemProcess.Notes;
constituent.Status = itemProcess.Status;
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,37 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Bus;
using System;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
{
//=======================================================================
class SbmSysParam_Dbas : SbmSysParam
{
//-------------------------------------------------------------------
// Data members.
private readonly SbmUserContext userContext;
//-------------------------------------------------------------------
// Construction.
public SbmSysParam_Dbas(SbmUserContext userContext, SysId id, Sbm.SysParamCategory category, String name, ushort flags) :
base(userContext, id, category, name)
{
this.userContext = userContext;
Flags = flags;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
}
base.Dispose(disposing);
}
//-------------------------------------------------------------------
// Associated data.
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,39 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Bus;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
{
//=======================================================================
class SbmSystemAccountUser_Dbas : SbmSystemAccountUser
{
//-------------------------------------------------------------------
// Data members.
private readonly SbmUserContext userContext;
//-------------------------------------------------------------------
// Construction.
public SbmSystemAccountUser_Dbas(SbmUserContext userContext, SysId accountId, SysId userId, ushort flags) :
base(userContext, accountId, userId)
{
this.userContext = userContext;
Flags = flags;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
}
base.Dispose(disposing);
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
// Associated data.
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,61 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
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 System;
using System.Collections.Generic;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
{
//=======================================================================
class SbmSystemAccount_Dbas : SbmSystemAccount
{
//-------------------------------------------------------------------
// Data members.
private readonly SbmUserContext userContext;
//-------------------------------------------------------------------
// Construction.
public SbmSystemAccount_Dbas(SbmUserContext userContext, SysId id, SysId affIdOwner, Sbm.SystemAccountType systemAccountType, SysId interfaceId, SysId assocId, ushort flags) :
base(userContext, id, affIdOwner, systemAccountType, interfaceId, assocId)
{
this.userContext = userContext;
Flags = flags;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
}
base.Dispose(disposing);
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
// Associated data.
public override bool HasUsers()
{
if (!SysId.IsValid(Id)) return false;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
String table = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SystemAccountUser);
if (db.TableExists(table))
{
String column = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SystemAccountUser_AccountId);
List<String> filters = new List<String>();
filters.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SystemAccountUser_AccountId) + "=" + Id.ToString());
return db.GetRowCount(table, /*column,*/ filters.Concat(" AND ", "(", ")")) > 0;
}
}
return false;
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,39 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Bus;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
{
//=======================================================================
class SbmSystemUser_Dbas : SbmSystemUser
{
//-------------------------------------------------------------------
// Data members.
private readonly SbmUserContext userContext;
//-------------------------------------------------------------------
// Construction.
public SbmSystemUser_Dbas(SbmUserContext userContext, SysId id, SysId affIdOwner, SysId interfaceId, SysId affiliateId, ushort flags) :
base(userContext, id, affIdOwner, interfaceId, affiliateId)
{
this.userContext = userContext;
Flags = flags;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
}
base.Dispose(disposing);
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
// Associated data.
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,523 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
using Sarand.BusinessMgr.Net.Standard.Base.Mgr;
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.Interfaces;
using Sarand.Net.Standard.Base.Utils;
using Sarand.Net.Standard.Dbas.Base;
using System;
using System.Collections.Generic;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
{
//=======================================================================
class SbmTransaction_Dbas : SbmTransaction
{
//-------------------------------------------------------------------
// Data members.
private readonly SbmUserContext userContext;
private SbmAccountMgr accountMgr;
private SbmDataItemMgr dataItemMgr;
private SbmStockMgr stockMgr;
private SbmTransactionMgr transactionMgr;
private SbmAccountsDfn accountDfn = null;
private List<SbmTransactionPayment> transactionPayments = new List<SbmTransactionPayment>();
private readonly List<TypeCodeDesc> transactionTypes;
private readonly List<TypeCodeDesc> transactionStatusCats;
private readonly List<TypeCodeDesc> requirementStatusCats;
private readonly List<TypeCodeDesc> constituentStatusCats;
private readonly String statusCancelled = SacsSystem.GetStatusCode(SaStatus.Cancelled);
//-------------------------------------------------------------------
// Construction.
public SbmTransaction_Dbas(SbmUserContext userContext, SysId id, SysId affIdOwner, SysId assocId, Sbm.TransactionType transactionType, ushort flags) :
base(userContext, id, affIdOwner, assocId, transactionType)
{
this.userContext = userContext;
transactionTypes = SbmSystem.GetCodesOfType(userContext, Sbm.SystemCode.TransactionType);
transactionStatusCats = SbmSystem.GetCodesOfType(userContext, Sbm.SystemCode.TransactionStatusCat);
requirementStatusCats = SbmSystem.GetCodesOfType(userContext, Sbm.SystemCode.RequirementStatusCat);
constituentStatusCats = SbmSystem.GetCodesOfType(userContext, Sbm.SystemCode.ConstituentStatusCat);
Flags = flags;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
if (accountMgr != null) accountMgr.Dispose();
if (transactionMgr != null) transactionMgr.Dispose();
if (dataItemMgr != null) dataItemMgr.Dispose();
if (accountDfn != null) accountDfn.Dispose();
}
base.Dispose(disposing);
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
// Utilities.
public override bool IsReadOnly()
{
if (!SysId.IsValid(Id)) return false;
bool bReadOnly = false;
// Transaction can't be updated after it has been exporetd to an accounts system.
if (!bReadOnly)
{
if (accountDfn == null) accountDfn = new SbmAccountsDfn(userContext);
if (accountDfn != null)
{
if (accountDfn.IsTransactionTypeManagedByAccounts(TransactionType))
bReadOnly = true;
}
}
return bReadOnly;
}
public override bool DetailsAreReadOnly()
{
if (!SysId.IsValid(Id)) return false;
if (IsReadOnly()) return true; // If transaction is read only then details must be.
bool detailsAreReadOnly = false;
// User must be allowed to update transactions:
if (!detailsAreReadOnly)
{
// ToDo UserCanUpdateItemType
/*if (!pSys->UserCanUpdateItemType(eSapItemTypeTransaction))
bDetailsAreReadOnly = true;*/
}
// Closed transactions.
if (!detailsAreReadOnly)
{
if (TransactionStatusCat == SbmTransaction.StatusCat.Closed)
{
// Once the 'grace' period has passed, only the status can be modified.
int graceDaysUpdateClosedTrans = Math.Max(0, userContext.GetOwnerOption_UpdateLimit(Sbm.OrgOption_PeriodDays.UpdateClosedTransaction, 0));
DateTime closed = Closed;
detailsAreReadOnly = (DateUtil.IsValid(closed) && closed <= DateTime.Today.AddDays(-graceDaysUpdateClosedTrans));
}
}
return detailsAreReadOnly;
}
//-------------------------------------------------------------------
// Internal Processing.
public bool InitAccountMgr()
{
if (accountMgr == null)
accountMgr = SbmGlobals.System.CreateAccountMgr(userContext);
return (accountMgr != null);
}
public bool InitDataItemMgr()
{
if (dataItemMgr == null)
dataItemMgr = SbmGlobals.System.CreateDataItemMgr(userContext);
return (dataItemMgr != null);
}
public bool InitStockMgr()
{
if (stockMgr == null)
stockMgr = SbmGlobals.System.CreateStockMgr(userContext);
return (stockMgr != null);
}
public bool InitTransactionMgr()
{
if (transactionMgr == null)
transactionMgr = SbmGlobals.System.CreateTransactionMgr(userContext);
return (transactionMgr != null);
}
//-------------------------------------------------------------------
// Associated data.
public override bool IsReferencedByOtherTransactions()
{
ClearErrorState();
InitTransactionMgr();
return transactionMgr.TransactionIsReferencedByOtherTransactions(Id);
}
public override bool HasRequirements(SbmRequirement.StatusCat requirementStatusCat = SbmRequirement.StatusCat.NotDeleted)
{
return (GetRequirementCount(requirementStatusCat) > 0);
}
public override bool HasConstituents(SbmConstituent.StatusCat constituentStatusCat = SbmConstituent.StatusCat.NotDeleted)
{
ClearErrorState();
InitTransactionMgr();
return transactionMgr.TransactionHasConstituents(Id, constituentStatusCat);
}
public override bool HasContainerItems()
{
ClearErrorState();
InitTransactionMgr();
return transactionMgr.TransactionHasContainerItems(Id);
}
public override bool HasStockMovements()
{
ClearErrorState();
InitTransactionMgr();
return transactionMgr.TransactionHasStockMovements(Id);
}
public override bool HasPendingStockMovements()
{
ClearErrorState();
InitTransactionMgr();
return transactionMgr.TransactionHasPendingStockMovements(Id);
}
public override bool HasDiaryLinks()
{
if (!SysId.IsValid(Id)) return false;
/*SbmDiaryConsole diaryConsole = SbmGlobals.Application.GetDiaryConsole(SessionContext);
if (diaryConsole != null)
diaryConsole.DataItemHasLinks((short)Sbm.ItemType.Transaction, Id);*/
return false;
}
//public override void SetDefaults(class SbmRequirement *) const;
public override long GetRequirementCount(SbmRequirement.StatusCat requirementStatusCat = SbmRequirement.StatusCat.Any)
{
ClearErrorState();
if (!SysId.IsValid(Id)) return 0;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
List<String> filter = new List<String>();
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Requirement_TransId) + "=" + Id.ToString());
if (requirementStatusCat == SbmRequirement.StatusCat.NotCancelled)
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Requirement_Status) + "<>'" + statusCancelled + "'");
else if (requirementStatusCat > 0)
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Requirement_StatusCat) + "='" + requirementStatusCats.GetCodeForType(requirementStatusCat) + "'");
return db.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Requirement), filter.Concat(" AND ", "(", ")"));
}
else SetErrorState("database is not available");
return 0;
}
public override List<SbmRequirement> GetRequirements(SbmRequirement.StatusCat requirementStatusCat = SbmRequirement.StatusCat.Any)
{
if (SysId.IsValid(Id) && InitTransactionMgr())
{
// Retrieve the current set of requirements for this transaction.
SbmRequirement.Params prmRequirement = new SbmRequirement.Params();
//prmRequirement.RequirementStatusCat = requirementStatusCat;
prmRequirement.TransIncludedIds.Add(Id);
return transactionMgr.GetRequirementList(prmRequirement);
}
return new List<SbmRequirement>();
}
public override bool ItemsRequireJobNumber()
{
// Check whether Job Number should be allocated:
SbmConfigConsole configConsole = SbmGlobals.GetConfigConsole(userContext.SessionContext);
if (configConsole != null && configConsole.AllowOption(UserContext, Sbm.ConfigOption.SalesOrderItemJobNumber) && SbmGlobals.Application.ColumnExists(userContext.SessionContext, SbmDbDfn.ColumnIdx.Requirement_JobNumber))
return TransactionType == Sbm.TransactionType.SalesOrder;
return false;
}
public override bool UpdateRequirements(List<SbmRequirement> requirements)
{
if (this == null) return false;
ClearErrorState();
SacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext) as SacsDatabase;
if (db == null) return SetErrorState("Database not available");
if (!SysId.IsValid(Id)) return SetErrorState("transaction does not exist");
if (!InitTransactionMgr()) return SetErrorState("requirement manager is not available");
// Verify requirements list.
if (!HasErrorState())
{
// Validate the identity of each each requirement in the list.
foreach (SbmRequirement requirement in requirements)
{
if (requirement == null) continue;
if (SysId.IsValid(requirement.AssociationId) && requirement.AssociationId != AssociationId)
{
SetErrorState("Invalid requirement in list: doesn't belong to association.");
}
else if (SysId.IsValid(requirement.TransactionId) && requirement.TransactionId != Id)
{
SetErrorState("Invalid requirement in list: doesn't belong to transaction.");
}
}
}
// Set identity for each requirements in the list.
if (!HasErrorState())
{
// Set the sequence and identity against each requirement in the list.
for (int requirementIdx = 0; requirementIdx < requirements.Count; requirementIdx++)
{
SbmRequirement requirement = requirements[requirementIdx];
requirement.Seq = (short)(requirementIdx + 1);
requirement.AssociationId = AssociationId;
requirement.TransactionId = Id;
if (ItemsRequireJobNumber() && StringUtil.IsEmpty(requirement.JobNumber))
{
String jobNumberNextIdObject = "JobNumber:" + SysId.ToString(userContext.Organisation.AffiliateId);
/*
// Check for original Job Number 'NextId' key and convert to organisation specific.
String filter = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.NextId_Object) + "='JobNumber'";
if (db.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.NextId), filter) > 0)
{
String query =
"Begin Transaction;\n" + "Update dbo.NextId Set Object='" + jobNumberNextIdObject + "' Where " + filter + ";\n" + "Commit Transaction;\n";
db.ExecuteQuery(query);
}
*/
String jobNumber = SysId.ToString(db.GetNextId(jobNumberNextIdObject, userContext.DbUpdateInfo, false));
requirement.JobNumber = "";
}
SetDefaults(requirement);
}
}
// Make a copy of the list (pointers only) to keep track of those requirements in the list that have not been updated against the database.
List<SbmRequirement> requirementsNotUpdated = new List<SbmRequirement>(requirements);
// Retrieve each of the requirements currently specified for this transaction in turn.
List<SysId> requirementIdsUpdated = new List<SysId>();
if (!HasErrorState() && InitTransactionMgr())
{
List<ColumnDfn> columnsQuery = new List<ColumnDfn>();
String colRequirement_Id = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Requirement_Id);
SbmRequirement.Params prmRequirement = new SbmRequirement.Params();
prmRequirement.TransIncludedIds.Add(Id);
using (DbResultSet dbResultSet = transactionMgr.ExecuteRequirementQuery(columnsQuery, prmRequirement))
{
while (!HasErrorState() && dbResultSet != null && dbResultSet.NextRecord())
{
NamedValue.Map values = dbResultSet.GetRecordValues();
SysId requirementId = new SysId((int)values.GetValue(colRequirement_Id).AsLong());
// Does this requirement exist in the list.
if (requirementsNotUpdated.ExistsById(requirementId))
{
// Requirement still in list - update the details.
SbmRequirement requirement = requirementsNotUpdated[0];
if (transactionMgr.UpdateRequirement(requirement, userContext.DbUpdateInfo))
{
if (!requirement.CommitAssociatedData())
SetErrorState("Failed to update requirement's data: " + requirement.ErrorState);
}
else SetErrorState("Failed to update requirement: " + transactionMgr.ErrorState);
requirementsNotUpdated.Remove(requirement);
}
else
{
// Requirement not in list - remove it.
SbmRequirement requirement = transactionMgr.GetRequirement(prmRequirement);
if (requirement != null)
{
if (!transactionMgr.DeleteRequirement(requirement, TransactionType, userContext.DbUpdateInfo))
SetErrorState("Failed to remove requirement: " + transactionMgr.ErrorState);
}
else SetErrorState("Failed to retrieve requirement for deletion: " + transactionMgr.ErrorState);
}
}
}
}
// Any requirements left in the 'Not Updated' list must be new.
foreach (SbmRequirement requirementNotUpdate in requirementsNotUpdated)
{
if (requirementNotUpdate != null)
{
if (!SysId.IsValid(requirementNotUpdate.Id))
{
// Requirement does not yet exist - create it:
if (transactionMgr.InsertRequirement(requirementNotUpdate, userContext.DbUpdateInfo))
{
if (!requirementNotUpdate.CommitAssociatedData())
SetErrorState("Failed to update requirement's data: " + requirementNotUpdate.ErrorState);
}
else SetErrorState("Failed to create requirement: " + transactionMgr.ErrorState);
}
}
else SetErrorState("null item in list");
requirementsNotUpdated = null;
}
// Clean-up:
requirementsNotUpdated.Clear();
return !HasErrorState();
}
public override bool CommitAssociatedData()
{
ClearErrorState();
if (this == null || !SysId.IsValid(Id)) return false;
if (!HasErrorState()) CommitPayments();
return !HasErrorState();
}
public override bool ClearDependentData()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return false;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
if (!HasErrorState())
{
// Delete interface data items.
SaInterfaceConsole interfaceConsole = SbmGlobals.Application.GetInterfaceConsole(userContext);
if (interfaceConsole != null)
{
if (!interfaceConsole.ClearInterfaceDataItems(new ItemId((short)Sbm.ItemType.Transaction, Id), userContext.DbUpdateInfo))
SetErrorState("Failed to clear interface data items - " + interfaceConsole.ErrorState);
}
else SetErrorState("Failed to retrieve interface console");
interfaceConsole = null; // Do not delete this global object.
}
if (!HasErrorState())
{
/* ToDo itemDocConsole > Remove document references.
SaItemDocConsole itemDocConsole = SbmGlobals.Application.GetItemDocConsole(SessionContext);
if (itemDocConsole != null)
{
if (!itemDocConsole.ClearItemDocs(Sbm.ItemType.Transaction, Id))
SetErrorState(itemDocConsole.ErrorState());
}
else SetErrorState("Failed to retrieve item document console");
itemDocConsole = null; // Do not delete this global object.*/
}
// Delete any associated items links.
if (!HasErrorState())
{
if (InitDataItemMgr())
{
if (!dataItemMgr.ClearDataItem(Sbm.ItemType.Transaction, Id))
SetErrorState("failed to clear transaction item links");
}
else SetErrorState("failed to initialise data item manager");
}
// Delete any constituents that belong to this Transaction.
if (!HasErrorState())
{
String filter = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Constituent_TransId) + "=" + Id.ToString();
if (db.ExecuteDelete(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Constituent), filter) > 0)
SetErrorState("failed to clear Transaction constituents");
}
// Clear requirements.
if (!HasErrorState() && InitTransactionMgr())
{
List<SbmRequirement> requirements = GetRequirements();
if (requirements != null && requirements.Count > 0)
{
foreach (SbmRequirement requirement in requirements)
{
if (!transactionMgr.DeleteRequirement(requirement, TransactionType, userContext.DbUpdateInfo))
SetErrorState(transactionMgr.ErrorState.ToString());
requirements = null;
}
}
if (requirements != null) requirements.Clear();
}
// Clear addresses.
if (!HasErrorState() && InitAccountMgr())
{
if (!accountMgr.ClearAddressesFor(Sbm.ItemType.Transaction, new ItemId()))
SetErrorState("failed to clear addresses - " + accountMgr.ErrorState);
}
// Clear any references to this transaction from other transactions:
if (!HasErrorState())
{
String filter = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Transaction_TransIdSource) + "=" + Id.ToString();
List<StringPair> values = new List<StringPair>();
SacsDatabase.AddValuePair(values, SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Transaction_TransIdSource), "0", false);
db.ExecuteUpdate(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Transaction), values, filter);
SetErrorState("failed to clear Transaction references");
}
}
else SetErrorState("database is unavailable");
return !HasErrorState();
}
public override bool HasPayments()
{
if (transactionPayments != null) return true;
else if (SysId.IsValid(Id) && InitDataItemMgr() && dataItemMgr != null)
{
SbmItemLink.Params prmItemLink = new SbmItemLink.Params
{
ItemLinkType = Sbm.ItemLinkType.Transaction_Payment,
ItemTypeFrom = Sbm.ItemType.Transaction,
ItemIdFrom = Id
};
foreach (SbmItemLink itemLink in dataItemMgr.GetItemLinkList(prmItemLink))
if (itemLink != null) return true;
}
return false;
}
public override List<SbmTransactionPayment> GetPayments()
{
List<SbmTransactionPayment> transactionPaymentsCopy = new List<SbmTransactionPayment>();
if (transactionPayments == null && SysId.IsValid(Id) && InitDataItemMgr() && dataItemMgr != null)
{
SbmItemLink.Params prm = new SbmItemLink.Params();
prm.ItemLinkType = Sbm.ItemLinkType.Transaction_Payment;
prm.ItemTypeFrom = Sbm.ItemType.Transaction;
prm.ItemIdFrom = Id;
List<SbmItemLink> itemLinks = dataItemMgr.GetItemLinkList(prm);
if (itemLinks != null)
{
foreach (SbmItemLink itemLink in itemLinks)
{
if (itemLink == null) continue;
SbmTransactionPayment transactionPayment = new SbmTransactionPayment(UserContext, itemLink.DataContent);
transactionPayment.Notes = itemLink.Notes;
transactionPayment.Changed = false;
if (transactionPayments == null) transactionPayments = new List<SbmTransactionPayment>();
transactionPayments.Add(transactionPayment);
}
// Clean-up.
itemLinks.Clear();
}
}
// Clone the list.
transactionPaymentsCopy = transactionPayments.Clone();
transactionPaymentsCopy.Sort();
return transactionPaymentsCopy;
}
public override bool SetPayments(List<SbmTransactionPayment> transactionPaymentsNew)
{
// Clear the existing list:
if (transactionPayments != null) transactionPayments.Clear();
// Copy all items from the specified list:
transactionPayments = transactionPaymentsNew.Clone();
return true;
}
public override bool CommitPayments()
{
ClearErrorState();
// Do not attempt any updates unless the list has been populated.
if (transactionPayments != null && SysId.IsValid(Id) && InitDataItemMgr() && dataItemMgr != null)
{
// Build an item link list corresponding to the list of payment:
List<SbmItemLink> itemLinks = new List<SbmItemLink>();
foreach (SbmTransactionPayment transactionPayment in transactionPayments)
{
if (transactionPayment == null) continue;
SbmItemLink itemLink = dataItemMgr.CreateItemLink(Sbm.ItemLinkType.Transaction_Payment, Sbm.ItemType.Transaction, Id, Sbm.ItemType.Unknown, new SysId(0));
if (itemLink != null)
{
itemLink.Seq = (short)transactionPayment.CodeSeq;
itemLink.DataContent = transactionPayment.ToString();
itemLink.Notes = transactionPayment.Notes;
itemLinks.Add(itemLink);
itemLink = null; // Now owned by the list.
}
}
// Store these details:
if (dataItemMgr.StoreFromItemLinks(Sbm.ItemLinkType.Transaction_Payment, Sbm.ItemType.Transaction, Id, itemLinks, userContext.DbUpdateInfo))
{
}
else
{
SetErrorState("Failed to save transaction payment item links - " + dataItemMgr.ErrorState);
}
if (itemLinks != null)
itemLinks.Clear();
}
return false;
}
}
//=======================================================================
}
@@ -0,0 +1,140 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.CodeTypes;
using Sarand.Net.Standard.Base.Core;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Interfaces;
using Sarand.Net.Standard.Base.Utils;
using System;
using System.Collections.Generic;
using System.Linq;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
{
//=======================================================================
class SbmVehicleClass_Dbas : SbmVehicleClass
{
//-------------------------------------------------------------------
// Data members.
private readonly SbmUserContext userContext;
//-------------------------------------------------------------------
// Construction.
public SbmVehicleClass_Dbas(SbmUserContext userContext, SysId id, ushort flags) :
base(userContext, id)
{
this.userContext = userContext;
Flags = flags;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
}
base.Dispose(disposing);
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
// ToDo SbmVehicleClass ~ ConstructionCaption on GtDescForCode
public override String ConstructCaption(String makeCode, String model, String derivative)
{
String make = "";
SbmSystem system = SbmGlobals.System;
SaCodeTypeConsole codeTypeConsole = SbmGlobals.Application.GetCodeTypeConsole(userContext);
// Identify make:
if (system == null && codeTypeConsole == null)
{
//make = codeTypeConsole.GetDescForCode(SbmSystem.GetCodeTypeCode(Sbm.ApplCodeType.VehicleMake), makeCode);
}
if (StringUtil.IsEmpty(make)) make = makeCode;
// Build class description:
String caption = derivative;
if (caption.IndexOf(make, 0) < 0 && caption.IndexOf(model, 0) < 0)
{
// Prefix the make and model if neither is found in the caption:
caption = make + " " + model + " " + derivative;
}
return caption.Trim();
}
//-------------------------------------------------------------------
// Associated data.
public override long GetVehicleCount()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return 0;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
String tableVehicle = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaVehicle);
if (db.TableExists(tableVehicle))
{
List<String> filter = new List<String>();
filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaVehicleFeature_VehicleId) + "=" + Id.ToString());
db.GetRowCount(tableVehicle, filter.Concat(" AND ", "(", ")"));
}
}
return 0;
}
public override bool HasVehicles()
{
return GetVehicleCount() > 0;
}
public override bool ClearDependentData()
{
ClearErrorState();
if (this == null || !SysId.IsValid(Id)) return false;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null && !HasErrorState())
{
if (!HasErrorState())
{
/* ToDo SaItemDocConsole for Remove document references:
SaItemDocConsole itemDocConsole = SbmGlobals.Application.GetItemDocConsole(userContext.SessionContext);
if (itemDocConsole != null)
{
if (!itemDocConsole.ClearItemDocs(Sbm.ItemType.AssetCategory, Id))
SetErrorState(itemDocConsole.Exception());
}
else SetErrorState("Failed to retrieve item document console");
itemDocConsole = null;*/ // Do not delete this global object.
}
if (!HasErrorState())
{
/* ToDo SaItemDataConsole for Remove Item Data:
SaItemDataConsole itemDataConsole = SbmGlobals.Application.GetItemDataConsole(userContext.SessionContext);
if (itemDataConsole != null)
{
if (!itemDataConsole.ClearItemData(Sbm.ItemType.AssetCategory, Id, ""))
SetErrorState(itemDataConsole.Exception());
}
else SetErrorState("Failed to retrieve item Dataument console");
itemDataConsole = null;*/ // Do not delete this global object.
}
if (!HasErrorState())
{
// Remove interface data items:
SaInterfaceConsole interfaceConsole = SbmGlobals.Application.GetInterfaceConsole(userContext);
//DbUpdateInfo dbUpdateInfo = userContext.DbUpdateInfo;
if (interfaceConsole != null)
{
if (!interfaceConsole.ClearInterfaceDataItems(new ItemId((short)Sbm.ItemType.AssetCategory, Id), userContext.DbUpdateInfo))
SetErrorState(interfaceConsole.ErrorState.ToString());
}
else SetErrorState("Failed to retrieve interface console");
interfaceConsole = null; // Do not delete this global object.
}
}
else SetErrorState("database is unavailable");
return !HasErrorState();
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,39 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Bus;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
{
//=======================================================================
class SbmVehicleEvent_Dbas : SbmVehicleEvent
{
//-------------------------------------------------------------------
// Data members.
private readonly SbmUserContext userContext;
//-------------------------------------------------------------------
// Construction.
public SbmVehicleEvent_Dbas(SbmUserContext userContext, SysId vehicleId, Sbm.VehicleEventType vehicleEventType, ushort flags) :
base(userContext, vehicleId, vehicleEventType)
{
this.userContext = userContext;
Flags = flags;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
}
base.Dispose(disposing);
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
// Associated data.
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,39 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Bus;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
{
//=======================================================================
class SbmVehicleFeature_Dbas : SbmVehicleFeature
{
//-------------------------------------------------------------------
// Data members.
private readonly SbmUserContext userContext;
//-------------------------------------------------------------------
// Construction.
public SbmVehicleFeature_Dbas(SbmUserContext userContext, SysId vehicleId, Sbm.VehicleFeatureSource vehicleFeatureSource, Sbm.VehicleFeatureType vehicleFeatureType, ushort flags) :
base(userContext, vehicleId, vehicleFeatureSource, vehicleFeatureType)
{
this.userContext = userContext;
Flags = flags;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
}
base.Dispose(disposing);
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
// Associated data.
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,272 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
using Sarand.BusinessMgr.Net.Standard.Base.Mgr;
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.Utils;
using System;
using System.Collections.Generic;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
{
//=======================================================================
class SbmVehicle_Dbas : SbmVehicle
{
//-------------------------------------------------------------------
// Data members.
private readonly SbmUserContext userContext;
//-------------------------------------------------------------------
// Construction.
public SbmVehicle_Dbas(SbmUserContext userContext, SysId id, ushort flags) :
base(userContext, id)
{
this.userContext = userContext;
Flags = flags;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
}
base.Dispose(disposing);
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
// O d o m e t e r R e a d i n g
//-------------------------------------------------------------------
public override bool SetOdometerReading(decimal odometer)
{
if (SysId.IsValid(Id) || odometer < 1) return false;
DateTime todayDate = DateTime.MinValue;
SbmAssetMgr assetMgr = SbmGlobals.System.CreateAssetMgr(userContext);
if (assetMgr != null)
{
// Check whether there is already a reading for today.
SbmVehicleEvent vehicleEventUpdated = null;
SbmVehicleEvent.Params prm = new SbmVehicleEvent.Params();
prm.VehicleId = Id;
prm.VehicleEventType = Sbm.VehicleEventType.Odometer;
foreach (SbmVehicleEvent vehicleEvent in assetMgr.GetVehicleEventList(prm))
{
// Check whether this event should be used in preference to any previously found.
if (vehicleEvent.StartOn.Date == todayDate)
{
// Always refresh any odometer reading recorded today.
vehicleEventUpdated = vehicleEvent;
break;
}
else if (vehicleEventUpdated == null && vehicleEvent.Odometer == odometer)
vehicleEventUpdated = vehicleEvent; // Events with the same reading can be updated (to refresh the date).
else if (vehicleEventUpdated == null && vehicleEvent.StartOn.Date > vehicleEventUpdated.StartOn.Date && vehicleEvent.Odometer == odometer)
vehicleEventUpdated = vehicleEvent; // Events with the same reading and more recent date can be refreshed.
}
if (vehicleEventUpdated != null)
{
vehicleEventUpdated.StartOn = todayDate;
vehicleEventUpdated.FinishOn = todayDate;
vehicleEventUpdated.Odometer = odometer;
if (assetMgr.UpdateVehicleEvent(vehicleEventUpdated, userContext.DbUpdateInfo))
{
}
#if _DEBUG
else TRACE("SapVehicle::SetOdometerReading: Failed to update vehicle event - %s\n", assetMgr.ErrorState.Message.ToString());
#endif
}
else
{
// Create a new reading.
SbmVehicleEvent vehicleEvent = assetMgr.CreateVehicleEvent(Id, Sbm.VehicleEventType.Odometer);
if (vehicleEvent != null)
{
vehicleEventUpdated.StartOn = todayDate;
vehicleEventUpdated.FinishOn = todayDate;
vehicleEventUpdated.Odometer = odometer;
if (assetMgr.InsertVehicleEvent(vehicleEvent, userContext.DbUpdateInfo))
{
}
#if _DEBUG
else TRACE("SapVehicle::SetOdometerReading: Failed to add vehicle event - %s\n", assetMgr.ErrorState.Message.ToString());
#endif
}
#if _DEBUG
else TRACE("SapVehicle::SetOdometerReading: Failed to create vehicle event - %s\n", assetMgr.ErrorState.Message.ToString());
#endif
}
// Update this vehicle itself.
LatestOdo = odometer;
LatestOdoOn = todayDate;
assetMgr.UpdateVehicle(this, userContext.DbUpdateInfo);
}
return true;
}
//-------------------------------------------------------------------
// Associated data.
public override bool HasAssets()
{
if (!SysId.IsValid(Id)) return false;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
String tableAsset = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAsset);
if (db.TableExists(tableAsset))
{
List<String> filter = new List<String>();
filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaAsset_ItemType) + "=" + ((int)Sbm.ItemType.Vehicle).ToString());
filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaAsset_ItemId) + "=" + Id.ToString());
return db.GetRowCount(tableAsset, filter.Concat(" AND ", "(", ")")) > 0;
}
}
return false;
}
public override bool HasProcesses()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return false;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
String tableAssetProcess = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAssetProcess);
if (db.TableExists(tableAssetProcess))
{
List<String> filter = new List<String>();
filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaAssetProcess_AssetId) + "=" + Id.ToString());
return db.GetRowCount(tableAssetProcess, filter.Concat(" AND ", "(", ")")) > 0;
}
}
return false;
}
public override bool HasEvents()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return false;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
String tableVehicleEvent = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaVehicleEvent);
if (db.TableExists(tableVehicleEvent))
{
List<String> filter = new List<String>();
filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaVehicleEvent_VehicleId) + "=" + Id.ToString());
return db.GetRowCount(tableVehicleEvent, filter.Concat(" AND ", "(", ")")) > 0;
}
}
return false;
}
public override long GetFeatureCount()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return 0;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null)
{
String tableVehicleFeature = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaVehicleFeature);
if (db.TableExists(tableVehicleFeature))
{
List<String> filter = new List<String>();
filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaVehicleFeature_VehicleId) + "=" + Id.ToString());
db.GetRowCount(tableVehicleFeature, filter.Concat(" AND ", "(", ")"));
}
}
return 0;
}
public override bool HasFeatures()
{
return GetFeatureCount() > 0;
}
public override bool HasInterfaceDataItems()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return false;
SaInterfaceConsole interfaceConsole = SbmGlobals.Application.GetInterfaceConsole(userContext);
if (interfaceConsole == null) return false;
return interfaceConsole.ItemHasDataItems(new ItemId((short)Sbm.ItemType.Vehicle, Id));
}
public override bool HpiCheckCount()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return false;
// ToDo ItemDataConsole & SbmItemData.Params for HpiCheckCount
/*SaItemDataConsole itemDataConsole = SbmGlobals.Application.GetItemDataConsole(userContext.SessionContext);
if (itemDataConsole == null)
{
SbmItemData.Params prmData = new SbmItemData.Params();
prmData.lItemId.Add(SaItemId.Id, Sbm.ItemType.Vehicle);
List<TypeCodeDesc> itemDataTypes = SbmSystem.GetCodesOfType(Sbm.SystemCode.ItemDataType);
prmData.lDataType.Add(itemDataTypes.GetCodeForType(Sbm.ItemData.Vehicle_HpiResponse));
prmData.lDataType.RemoveEmpty();
if (!StringUtil.IsEmpty(prmData.lDataType))
itemDataConsole.GetItemDataCount(prmData);
}*/
return false;
}
public override bool HasItemData()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return false;
// ToDo ItemDataConsole & SbmItemData.Params for HasItemData
/*SaItemDataConsole itemDataConsole = SbmGlobals.Application.GetItemDataConsole(userContext.SessionContext);
SbmItemData.Params prmData = new SbmItemData.Params();
prmData.lItemId.Add(Id, Sbm.ItemType.Vehicle);
itemDataConsole != null && itemDataConsole.ItemDataExists(prmData);*/
return false;
}
public override bool ClearDependentData()
{
ClearErrorState();
if (this == null || !SysId.IsValid(Id)) return false;
ISacsDatabase db = SbmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db != null && !HasErrorState())
{
if (!HasErrorState())
{
/* ToDo SaItemDocConsole for Remove document references:
SaItemDocConsole itemDocConsole = SbmGlobals.Application.GetItemDocConsole(userContext.SessionContext);
if (itemDocConsole != null)
{
if (!itemDocConsole.ClearItemDocs(Sbm.ItemType.AssetCategory, Id))
SetErrorState(itemDocConsole.Exception());
}
else SetErrorState("Failed to retrieve item document console");
itemDocConsole = null;*/ // Do not delete this global object.
}
if (!HasErrorState())
{
/* ToDo SaItemDataConsole for Remove Item Data:
SaItemDataConsole itemDataConsole = SbmGlobals.Application.GetItemDataConsole(userContext.SessionContext);
if (itemDataConsole != null)
{
if (!itemDataConsole.ClearItemData(Sbm.ItemType.AssetCategory, Id, ""))
SetErrorState(itemDataConsole.Exception());
}
else SetErrorState("Failed to retrieve item Dataument console");
itemDataConsole = null;*/ // Do not delete this global object.
}
if (!HasErrorState())
{
// Remove interface data items.
SaInterfaceConsole interfaceConsole = SbmGlobals.Application.GetInterfaceConsole(userContext);
if (interfaceConsole != null)
{
if (!interfaceConsole.ClearInterfaceDataItems(new ItemId((short)Sbm.ItemType.AssetCategory, Id), userContext.DbUpdateInfo))
SetErrorState(interfaceConsole.ErrorState.ToString());
}
else SetErrorState("Failed to retrieve interface console");
interfaceConsole = null; // Do not delete this global object.
}
}
else SetErrorState("database is unavailable");
return !HasErrorState();
}
}
//=======================================================================
}
@@ -0,0 +1,24 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.Net.Standard.Dbas.Base;
using Sarand.Net.Standard.Dbas.CodeTypes;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Consoles
{
//=======================================================================
public abstract class SbmCodeTypeConsole_Dbas : SaCodeTypeConsole_Dbas
{
//-------------------------------------------------------------------
// Construction.
protected SbmCodeTypeConsole_Dbas(SacsDatabase database) : base(database)
{
}
//-------------------------------------------------------------------
// Properties.
public SbmUserContext UserContext { get; set; }
public SbmSessionContext SessionContext { get { return UserContext.SessionContext; } }
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,24 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.Net.Standard.Dbas.Base;
using Sarand.Net.Standard.Dbas.Diary;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Consoles
{
//=======================================================================
public abstract class SbmDiaryConsole_Dbas : SaDiaryConsole_Dbas
{
//-------------------------------------------------------------------
// Construction.
protected SbmDiaryConsole_Dbas(SacsDatabase database) : base(database)
{
}
//-------------------------------------------------------------------
// Properties.
public SbmUserContext UserContext { get; set; }
public SbmSessionContext SessionContext { get { return UserContext.SessionContext; } }
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,163 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Core;
using Sarand.Net.Standard.Base.Interfaces;
using Sarand.Net.Standard.Base.ItemOptions;
using Sarand.Net.Standard.Base.UpdateLog;
using Sarand.Net.Standard.Base.Utils;
using Sarand.Net.Standard.Dbas.Base;
using Sarand.Net.Standard.Dbas.Interfaces;
using System;
using System.Collections.Generic;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Consoles
{
//=======================================================================
public abstract class SbmInterfaceConsole_Dbas : SaInterfaceConsole_Dbas
{
//-------------------------------------------------------------------
// Data members.
private readonly List<TypeCodeDesc> dataItemTypes;
private readonly List<TypeCodeDesc> interfaceDataTypes;
//-------------------------------------------------------------------
// Construction.
protected SbmInterfaceConsole_Dbas(SbmUserContext userContext) : base(SbmGlobals.Application.GetDatabase(userContext.SessionContext) as SacsDatabase)
{
UserContext = userContext;
dataItemTypes = SbmSystem.GetCodesOfType(UserContext, Sbm.SystemCode.ItemType);
interfaceDataTypes = SbmSystem.GetCodesOfType(UserContext, Sbm.SystemCode.InterfaceDataType);
}
//-------------------------------------------------------------------
// Properties.
public SbmUserContext UserContext { get; }
public SbmSessionContext SessionContext { get { return UserContext.SessionContext; } }
public override short InterfaceDataType { get { return (short)Sbm.ItemType.Interface; } }
public override SaItemOptionConsole ItemOptionConsole { get { return SbmGlobals.Application.GetItemOptionConsole(UserContext); } }
public override SaUpdateLogConsole UpdateLogConsole { get { return SbmGlobals.Application.GetUpdateLogConsole(UserContext); } }
//---------------------------------------------------------------
// Utilities.
public override String GetItemTypeDesc(short itemType)
{
return dataItemTypes.GetDescForType(itemType);
}
public override String GetItemCaption(ItemId itemId)
{
return GetItemTypeDesc(itemId.Type) + " #" + SysId.ToString(itemId.Id);
}
//-------------------------------------------------------------------
// R e g i s t e r I n t e r f a c e s
//-------------------------------------------------------------------
private List<TypeCodeDesc> GetInterfaceTypesForCategory(SaInterfaceCategory interfaceCategory)
{
if (interfaceCategory == SaInterfaceCategory.Website)
return SbmSystem.GetCodesOfType(UserContext, Sbm.SystemCode.InterfaceType_Website);
if (interfaceCategory == SaInterfaceCategory.Accounts)
return SbmSystem.GetCodesOfType(UserContext, Sbm.SystemCode.InterfaceType_Accounts);
if (interfaceCategory == SaInterfaceCategory.System)
return SbmSystem.GetCodesOfType(UserContext, Sbm.SystemCode.InterfaceType_System);
if (interfaceCategory == SaInterfaceCategory.File)
return SbmSystem.GetCodesOfType(UserContext, Sbm.SystemCode.InterfaceType_File);
return new List<TypeCodeDesc>();
}
public void RegisterInterfaces(String context)
{
foreach (SaInterfaceCategory interfaceCategory in EnumUtil.GetValues<SaInterfaceCategory>())
{
List<TypeCodeDesc> interfaceTypesForCategory = new List<TypeCodeDesc>();
foreach (TypeCodeDesc interfaceType in GetInterfaceTypesForCategory(interfaceCategory))
{
if (InterfaceTypeValidForContextCategory(interfaceCategory, (short)interfaceType.Type))
interfaceTypesForCategory.Add(interfaceType);
}
if (interfaceTypesForCategory.Count > 0)
RegisterInterfaces(context, interfaceCategory, interfaceTypesForCategory, InterfaceAllowsDuplicates(interfaceCategory));
}
}
public bool InterfaceAllowsDuplicates(SaInterfaceCategory interfaceCategory)
{
switch (interfaceCategory)
{
case SaInterfaceCategory.File:
return true;
}
return false;
}
public bool InterfaceTypeValidForContextCategory(SaInterfaceCategory interfaceCategory, short interfaceType)
{
return SbmGlobals.GetConfigConsole(UserContext.SessionContext).AllowInterface(UserContext, interfaceCategory, interfaceType);
}
//-------------------------------------------------------------------
// I n t e r f a c e A c c e s s C o n t r o l
//-------------------------------------------------------------------
public override bool CanCreateInterfaces()
{
return true;
}
public override bool CanCreateInterfaces(String context, SaInterfaceCategory interfaceCategory)
{
switch (interfaceCategory)
{
case SaInterfaceCategory.System:
return true;
}
return false;
}
public override bool CanCreateInterface(String context, SaInterfaceCategory interfaceCategory, short interfaceType)
{
switch (interfaceCategory)
{
case SaInterfaceCategory.System:
return true;
}
return false;
}
public override bool CanUpdateInterface(SaInterface interfaceObj)
{
return true;
}
public override bool CanCopyInterfaces()
{
return false;
}
public override bool CanCopyInterfaces(String context, SaInterfaceCategory interfaceCategory)
{
return false;
}
public override bool CanCopyInterface(String context, SaInterfaceCategory interfaceCategory, short interfaceType)
{
return false;
}
public override bool CanCopyInterface(SaInterface interfaceObj)
{
return false;
}
public override bool IsCompatibleForInterfaceCopy(String context, SaInterfaceCategory interfaceCategory, int typeFrom, int typeTo)
{
return false;
}
public override bool CanRemoveInterface(SaInterface interfaceObj)
{
return false;
}
//---------------------------------------------------------------
// I n t e r f a c e E v e n t s
//---------------------------------------------------------------
public override void OnInterfaceCreated(SysId interfaceId)
{
}
public override void OnInterfaceUpdated(SysId interfaceId)
{
}
public override void OnInterfaceRemoved(SysId interfaceId)
{
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,24 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.Net.Standard.Dbas.Base;
using Sarand.Net.Standard.Dbas.ItemData;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Consoles
{
//=======================================================================
public abstract class SbmItemDataConsole_Dbas : SaItemDataConsole_Dbas
{
//-------------------------------------------------------------------
// Construction.
protected SbmItemDataConsole_Dbas(SacsDatabase database) : base(database)
{
}
//-------------------------------------------------------------------
// Properties.
public SbmUserContext UserContext { get; set; }
public SbmSessionContext SessionContext { get { return UserContext.SessionContext; } }
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,24 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.Net.Standard.Dbas.Base;
using Sarand.Net.Standard.Dbas.ItemDocs;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Consoles
{
//=======================================================================
public abstract class SbmItemDocConsole_Dbas : SaItemDocConsole_Dbas
{
//-------------------------------------------------------------------
// Construction.
protected SbmItemDocConsole_Dbas(SacsDatabase database) : base(database)
{
}
//-------------------------------------------------------------------
// Properties.
public SbmUserContext UserContext { get; set; }
public SbmSessionContext SessionContext { get { return UserContext.SessionContext; } }
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,48 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Mgr;
using Sarand.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.ItemOptions;
using Sarand.Net.Standard.Base.UpdateLog;
using Sarand.Net.Standard.Dbas.Base;
using Sarand.Net.Standard.Dbas.ItemOptions;
using System.Collections.Generic;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Consoles
{
//=======================================================================
public abstract class SbmItemOptionConsole_Dbas : SaItemOptionConsole_Dbas
{
//-------------------------------------------------------------------
// Data members.
private SbmAccountMgr accountMgr = null;
//-------------------------------------------------------------------
// Construction.
protected SbmItemOptionConsole_Dbas(SacsDatabase database) : base(database)
{
}
//-------------------------------------------------------------------
// Properties.
public SbmUserContext UserContext { get; set; }
public SbmSessionContext SessionContext { get { return UserContext.SessionContext; } }
public override short ItemOptionDataType { get { return (short)Sbm.ItemType.ItemOption; } }
public override SaUpdateLogConsole UpdateLogConsole { get { return SbmGlobals.Application.GetUpdateLogConsole(UserContext); } }
private SbmAccountMgr AccountMgr { get { if (accountMgr == null) accountMgr = SbmGlobals.System.CreateAccountMgr(UserContext); return accountMgr; } }
//-------------------------------------------------------------------
// I t e m O p t i o n D e f i n i t i o n s
//-------------------------------------------------------------------
public override List<SaItemOptionDfn> GetItemOptionDfnsForItem(ItemId itemId)
{
if (itemId.Type == (int)Sbm.ItemType.Association)
return AccountMgr.GetOrganisationItemOptionDfns(itemId.Id);
if (itemId.Type == (int)Sbm.ItemType.Interface)
return SbmGlobals.Application.GetInterfaceConsole(UserContext).GetInterfaceItemOptionDfns(itemId.Id);
return new List<SaItemOptionDfn>();
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,34 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.Net.Standard.Base.UpdateLog;
using Sarand.Net.Standard.Dbas.Base;
using Sarand.Net.Standard.Dbas.ReferenceData;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Consoles
{
//=======================================================================
public abstract class SbmReferenceDataConsole_Dbas : SaReferenceDataConsole_Dbas
{
//-------------------------------------------------------------------
// Construction.
protected SbmReferenceDataConsole_Dbas(SbmUserContext userContext, SacsDatabase database) :
base(database)
{
UserContext = userContext;
}
//-------------------------------------------------------------------
// Properties.
public SbmSessionContext SessionContext { get; }
public SbmUserContext UserContext { get; }
public override SaUpdateLogConsole UpdateLogConsole { get { return SbmGlobals.Application.GetUpdateLogConsole(UserContext); } }
// Item types.
public override short LanguageItemType { get { return (short)Sbm.ItemDataType.Unknown; } }
public override short RegionItemType { get { return (short)Sbm.ItemDataType.Region; } }
public override short CurrencyItemType { get { return (short)Sbm.ItemDataType.Currency; } }
public override short TaxCodeItemType { get { return (short)Sbm.ItemDataType.Unknown; } }
public override short UnitMeasureItemType { get { return (short)Sbm.ItemDataType.Unknown; } }
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,264 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.App;
using Sarand.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Core;
using Sarand.Net.Standard.Base.Security;
using Sarand.Net.Standard.Base.UpdateLog;
using Sarand.Net.Standard.Dbas.Base;
using Sarand.Net.Standard.Dbas.Security;
using System;
using System.Collections.Generic;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Consoles
{
//=======================================================================
public abstract class SbmSecurityConsole_Dbas : SaSecurityConsole_Dbas
{
//-------------------------------------------------------------------
// Data members.
private readonly SbmConfigConsole configConsole;
private List<TypeCodeDesc> securityRights;
//-------------------------------------------------------------------
// Construction.
protected SbmSecurityConsole_Dbas(SacsDatabase database, SbmConfigConsole configConsole) : base(database)
{
this.configConsole = configConsole;
}
//-------------------------------------------------------------------
// Properties.
public SbmUserContext UserContext { get; set; }
public SbmSessionContext SessionContext { get { return UserContext.SessionContext; } }
public override short SecurityItemDataType { get { return (short)Sbm.ItemType.SecurityItem; } }
public override short SecurityLinkDataType { get { return (short)Sbm.ItemType.SecurityLink; } }
public override SaUpdateLogConsole UpdateLogConsole { get { return SbmGlobals.Application.GetUpdateLogConsole(UserContext); } }
//-------------------------------------------------------------------
// Utilities.
//-------------------------------------------------------------------
// S e c u r i t y R i g h t s
//-------------------------------------------------------------------
protected List<TypeCodeDesc> GetSecurityRights()
{
if (securityRights == null)
{
securityRights = new List<TypeCodeDesc>();
if (configConsole != null && configConsole.AllowOption(UserContext, Sbm.ConfigOption.AllowContacts))
{
securityRights.Add(Sbm.SecurityRight.Affiliate_Create, "AffIns", "Affiliates - Create");
securityRights.Add(Sbm.SecurityRight.Affiliate_Update, "AffUpd", "Affiliates - Update");
securityRights.Add(Sbm.SecurityRight.Association_Create, "AssIns", "Associations - Create");
securityRights.Add(Sbm.SecurityRight.Association_Update, "AssUpd", "Associations - Update");
}
if (configConsole != null && configConsole.AllowOption(UserContext, Sbm.ConfigOption.AllowCommodities))
{
securityRights.Add(Sbm.SecurityRight.Commodity_Create, "CmdIns", "Commodities - Create");
securityRights.Add(Sbm.SecurityRight.Commodity_Update, "CmdUpd", "Commodities - Update");
if (configConsole.GetStockControlConfig(UserContext).AllowStockControl())
{
securityRights.Add(Sbm.SecurityRight.StockTake, "CmdStkTak", "Commodities - Stock Take");
}
}
if (configConsole != null && configConsole.AllowOption(UserContext, Sbm.ConfigOption.AllowAssets))
{
securityRights.Add(Sbm.SecurityRight.Asset_Create, "AssetIns", "Assets - Create");
securityRights.Add(Sbm.SecurityRight.Asset_Update, "AssetUpd", "Assets - Update");
}
if (configConsole != null && configConsole.AllowOption(UserContext, Sbm.ConfigOption.AllowTransactions))
{
securityRights.Add(Sbm.SecurityRight.Transaction_Create, "TraIns", "Transactions - Create");
securityRights.Add(Sbm.SecurityRight.Transaction_Update, "TraUpd", "Transactions - Update");
securityRights.Add(Sbm.SecurityRight.Transaction_Remove, "TraRem", "Transactions - Remove");
securityRights.Add(Sbm.SecurityRight.Transaction_ByType, "TransType", "Transactions - Allow by type");
securityRights.Add(Sbm.SecurityRight.Transaction_UpdateByTypeStatus, "UpdTransTypeStat", "Transactions - Update by type and status");
}
securityRights.Add(Sbm.SecurityRight.Security_Admin, "SecAdm", "Admin - Security");
securityRights.Add(Sbm.SecurityRight.Database_Admin, "DbAdm", "Admin - Database");
securityRights.Add(Sbm.SecurityRight.ReferenceData_Admin, "RefAdm", "Admin - Reference data");
if (configConsole != null && configConsole.AllowInterfaces(UserContext))
{
securityRights.Add(Sbm.SecurityRight.InterfaceConfig, "IntCfg", "Interfaces - Configuration");
securityRights.Add(Sbm.SecurityRight.InterfaceByCategory, "IntCategory", "Interfaces - Allow by category");
}
securityRights.Add(Sbm.SecurityRight.Financial_Update, "FinUpd", "Financials - Update");
securityRights.Add(Sbm.SecurityRight.Financial_View, "FinLst", "Financials - View");
securityRights.Add(Sbm.SecurityRight.Financial_ViewByType, "FinType", "Financials - View by type");
securityRights.Add(Sbm.SecurityRight.Financial_UpdateByType, "FinTypeUpd", "Financials - Update by type");
if (configConsole != null && configConsole.AllowOption(UserContext, Sbm.ConfigOption.TimeRecording))
{
securityRights.Add(Sbm.SecurityRight.TimesheetManager, "TimMgr", "Manage - Timesheets");
}
if (configConsole != null && configConsole.AllowOption(UserContext, Sbm.ConfigOption.AllowTasks))
{
securityRights.Add(Sbm.SecurityRight.TaskManager, "TskMgr", "Manage - Tasks");
}
}
return securityRights;
}
//-------------------------------------------------------------------
// T r a n s a c t i o n s
//-------------------------------------------------------------------
private List<SysIdString> GetTransactionTypeStatusRights(bool fullList)
{
// Construct list of transaction types and statuses to use in security rights.
List<SysIdString> transactionTypesStatus = new List<SysIdString>();
foreach (TypeCodeDesc transactionType in SbmSystem.GetCodesOfType(UserContext, Sbm.SystemCode.TransactionType))
{
Sbm.TransactionType transType = (Sbm.TransactionType)transactionType.Type;
// Only interested in sales quotes and orders for now.
bool bValidTransType = false;
if (!bValidTransType) bValidTransType = (transType == Sbm.TransactionType.SalesQuote);
if (!bValidTransType) bValidTransType = (transType == Sbm.TransactionType.SalesOrder);
if (fullList || bValidTransType && configConsole.AllowTransactionType(UserContext, transType))
{
// Retrieve status categories for transaction type:
foreach (TypeCodeDesc transactionStatus in GetTransactionStatusCats(transType))
{
SbmTransaction.StatusCat transStatusCat = (SbmTransaction.StatusCat)transactionStatus.Type;
String sDesc = transactionType.Desc + " - " + transactionType.Desc;
SysId transactionTypeIdStatus = GetTransactionTypeStatusId(transType, transStatusCat);
if (fullList || configConsole.AllowTransactionType(UserContext, transType))
transactionTypesStatus.Add(transactionTypeIdStatus, transactionStatus.Desc);
}
}
}
return transactionTypesStatus;
}
//-------------------------------------------------------------------
// Status Cats
private List<TypeCodeDesc> GetTransactionStatusCats(Sbm.TransactionType eType)
{
List<TypeCodeDesc> transactionStatusCats = new List<TypeCodeDesc>();
List<TypeCodeDesc> transactionStatusCatsAllowed = SbmSystem.GetCodesOfType(UserContext, Sbm.SystemCode.TransactionStatusCat);
switch (eType)
{
// NB Changes here may also need to be made in SapTransaction::GetTaxEffectiveDate()
// and SapphireConsole::UseInProgressTaxDateAsTaxPoint():
// Transaction types that have no 'Pending' stage:
case Sbm.TransactionType.SalesLead:
transactionStatusCatsAllowed.Add(transactionStatusCats.Find(item => item.Type == (int)SbmTransaction.StatusCat.Open));
transactionStatusCatsAllowed.Add(transactionStatusCats.Find(item => item.Type == (int)SbmTransaction.StatusCat.Closed));
break;
// Transaction types that have no 'Open' stage:
case Sbm.TransactionType.ProformaSalesOrder:
case Sbm.TransactionType.SalesDispatch:
case Sbm.TransactionType.ProformaPurchaseOrder:
case Sbm.TransactionType.PurchaseDelivery:
case Sbm.TransactionType.ProformaSalesInvoice:
transactionStatusCatsAllowed.Add(transactionStatusCatsAllowed.Find(item => item.Type == (int)SbmTransaction.StatusCat.Pending));
transactionStatusCatsAllowed.Add(transactionStatusCatsAllowed.Find(item => item.Type == (int)SbmTransaction.StatusCat.Closed));
break;
default:
// All other types have the complete set:
transactionStatusCats = transactionStatusCatsAllowed;
break;
}
return transactionStatusCats;
}
//-------------------------------------------------------------------
// Status Id.
private SysId GetTransactionTypeStatusId(Sbm.TransactionType transactionType, SbmTransaction.StatusCat transactionStatusCat)
{
return new SysId(((int)transactionType * 100) + (int)transactionStatusCat);
}
//-------------------------------------------------------------------
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// R e g i t e r S e c u r i t y R i g h t s
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Register Security Rights.
public override void RegisterSecurityRights()
{
//---------------------------------------------------------------
// Register data item types. [Not used - to demonstrate option]
RegisterDataItemType((short)Sbm.ItemType.Commodity, "Commodity");
//---------------------------------------------------------------
// Register security rights.
foreach (TypeCodeDesc securityRight in GetSecurityRights())
{
TypeCodeDesc secRight = securityRight;
switch (secRight.Type)
{
case (int)Sbm.SecurityRight.Transaction_ByType:
RegisterSecurityRight(secRight.Code, secRight.Desc, (short)Sbm.ItemType.TransactionType);
break;
case (int)Sbm.SecurityRight.Transaction_UpdateByTypeStatus:
RegisterSecurityRight(secRight.Code, secRight.Desc, (short)Sbm.ItemType.TransactionTypeStatus);
break;
case (int)Sbm.SecurityRight.InterfaceByCategory:
RegisterSecurityRight(secRight.Code, secRight.Desc, (short)Sbm.ItemType.InterfaceCategory);
break;
case (int)Sbm.SecurityRight.Financial_ViewByType:
RegisterSecurityRight(secRight.Code, secRight.Desc, (short)Sbm.ItemType.FinancialType);
break;
case (int)Sbm.SecurityRight.Financial_UpdateByType:
RegisterSecurityRight(secRight.Code, secRight.Desc, (short)Sbm.ItemType.FinancialType);
break;
default:
RegisterSecurityRight(secRight.Code, secRight.Desc);
break;
}
}
//---------------------------------------------------------------
// Register the security data item types.
if (configConsole != null)
{
// Transaction types:
List<SysIdString> transactionTypesDesc = new List<SysIdString>();
List<SysIdString> transactionTypesDescAllowed = new List<SysIdString>();
foreach (TypeCodeDesc transactionType in SbmSystem.GetCodesOfType(UserContext, Sbm.SystemCode.TransactionType))
{
if (configConsole.AllowTransactionType(UserContext, (Sbm.TransactionType)transactionType.Type))
transactionTypesDescAllowed.Add(new SysId(transactionType.Type), transactionType.Desc);
transactionTypesDesc.Add(new SysId(transactionType.Type), transactionType.Desc);
}
RegisterDataItems((short)Sbm.ItemType.TransactionType, transactionTypesDescAllowed, transactionTypesDesc);
// Transaction types with statuses:
List<SysIdString> transactionTypesDescStatus = GetTransactionTypeStatusRights(false);
List<SysIdString> transactionTypesDescStatusAllowed = GetTransactionTypeStatusRights(true);
RegisterDataItems((short)Sbm.ItemType.TransactionTypeStatus, transactionTypesDescStatusAllowed, transactionTypesDescStatus);
// Interface Categories:
List<SysIdString> interfaceCategoriesDesc = new List<SysIdString>();
List<SysIdString> interfaceCategoriesDescAllowed = new List<SysIdString>();
foreach (TypeCodeDesc interfaceCategory in SacsSystem.GetCodesOfType(SaSysCodeType.InterfaceCategory))
{
if (configConsole.AllowInterfaceCategory(UserContext, (SaInterfaceCategory)interfaceCategory.Type))
interfaceCategoriesDescAllowed.Add(new SysId(interfaceCategory.Type), interfaceCategory.Desc);
interfaceCategoriesDesc.Add(new SysId(interfaceCategory.Type), interfaceCategory.Desc);
}
RegisterDataItems((short)Sbm.ItemType.InterfaceCategory, interfaceCategoriesDescAllowed, interfaceCategoriesDesc);
// Financial types:
List<SysIdString> financialTypesDesc = new List<SysIdString>();
List<SysIdString> financialTypesDescAllowed = new List<SysIdString>();
foreach (TypeCodeDesc financialType in SbmSystem.GetCodesOfType(UserContext, Sbm.SystemCode.FinancialType))
{
financialTypesDescAllowed.Add(new SysId(financialType.Type), financialType.Desc);
financialTypesDesc.Add(new SysId(financialType.Type), financialType.Desc);
}
RegisterDataItems((short)Sbm.ItemType.FinancialType, financialTypesDescAllowed, financialTypesDesc);
}
//---------------------------------------------------------------
}
CodeDesc GetSecurityRight(Sbm.SecurityRight securityRight)
{
return securityRights.GetCodeDescForType(securityRight);
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,44 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Security;
using Sarand.Net.Standard.Dbas.Base;
using Sarand.Net.Standard.Dbas.UpdateLog;
using System;
using System.Collections.Generic;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Consoles
{
//=======================================================================
public abstract class SbmUpdateLogConsole_Dbas : SaUpdateLogConsole_Dbas
{
//-------------------------------------------------------------------
// Data members.
//-------------------------------------------------------------------
// Construction.
protected SbmUpdateLogConsole_Dbas(SacsDatabase database) : base(database)
{
}
//-------------------------------------------------------------------
// Properties.
public SbmUserContext UserContext { get; set; }
public SbmSessionContext SessionContext { get { return UserContext.SessionContext; } }
//-------------------------------------------------------------------
// Get name for User Id.
public override Dictionary<SysId, String> GetNameForUserIds(List<SysId> userIds)
{
Dictionary<SysId, String> userNames = new Dictionary<SysId, String>();
SaSecurityConsole securityConsole = SbmGlobals.Application.GetSecurityConsole(UserContext);
if (securityConsole != null)
{
userNames = securityConsole.GetSecurityItemDescriptions(userIds);
}
return userNames;
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,70 @@
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.Net.Standard.Dbas.Data;
using System;
using System.Collections.Generic;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Data
{
//=======================================================================
public abstract class SbmDbDataItem : DbDataItem
{
//-------------------------------------------------------------------
// Definitions.
/// <summary>
/// Database information - object supplied by main application.
/// <para>NB Application may have multiple databases with schema differences.</para>
/// <para>Each instance of a DbDataItem must be database specific.</para>
/// </summary>
public class SbmDatabaseInfo : IDatabaseInfo
{
// Data members.
private readonly List<DbDfnTable> tables;
private static readonly String defaultSchemaName = "dbo";
// Construction.
public SbmDatabaseInfo(String databaseName, List<DbDfnTable> tables)
{
this.DatabaseName = databaseName;
this.tables = tables;
}
// Properties.
public String DatabaseName { get; }
public String Context { get { return StringUtil.OnEmpty(DatabaseName, "UnknownDb"); } }
// Database schema.
public DbDfnTable GetTableDefinition(String schemaName, String tableName)
{
foreach (DbDfnTable table in tables.FindAll(item => item.Name.EqualsCI(tableName)))
{
if (StringUtil.OnEmpty(table.Schema, defaultSchemaName).EqualsCI(StringUtil.OnEmpty(schemaName, defaultSchemaName)))
return table;
}
return null;
}
public bool TableExists(String schemaName, String tableName)
{
return GetTableDefinition(schemaName, tableName) != null;
}
public bool ColumnExists(String schemaName, String tableName, String columnName)
{
DbDfnTable table = GetTableDefinition(schemaName, tableName);
if (table == null) return false;
return table.HasColumnByName(columnName);
}
public List<DbDfnColumn> GetColumnsForTable(String schemaName, String tableName)
{
DbDfnTable table = GetTableDefinition(schemaName, tableName);
if (table != null) return table.Columns;
return new List<DbDfnColumn>();
}
}
//-------------------------------------------------------------------
// Construction.
protected SbmDbDataItem(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,385 @@
using Microsoft.Data.SqlClient;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class Address_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt16 _ItemType { get; } = new ColumnDataInt16("ItemType");
public ColumnDataInt32 _ItemId { get; } = new ColumnDataInt32("ItemId");
public ColumnDataInt32 _AffIdOwner { get; } = new ColumnDataInt32("AffIdOwner");
public ColumnDataInt32 _AddIdRef { get; } = new ColumnDataInt32("AddIdRef");
public ColumnDataString _RefExt { get; } = new ColumnDataString("RefExt");
public ColumnDataInt16 _Type { get; } = new ColumnDataInt16("Type");
public ColumnDataString _Name { get; } = new ColumnDataString("Name");
public ColumnDataString _DescBrief { get; } = new ColumnDataString("DescBrief");
public ColumnDataString _Line1 { get; } = new ColumnDataString("Line1");
public ColumnDataString _Line2 { get; } = new ColumnDataString("Line2");
public ColumnDataString _Line3 { get; } = new ColumnDataString("Line3");
public ColumnDataString _City { get; } = new ColumnDataString("City");
public ColumnDataString _Province { get; } = new ColumnDataString("Province");
public ColumnDataString _Postcode { get; } = new ColumnDataString("Postcode");
public ColumnDataString _PostcodeFmt { get; } = new ColumnDataString("PostcodeFmt");
public ColumnDataString _Country { get; } = new ColumnDataString("Country");
public ColumnDataInt32 _CityRgn { get; } = new ColumnDataInt32("CityRgn");
public ColumnDataInt32 _ProvinceRgn { get; } = new ColumnDataInt32("ProvinceRgn");
public ColumnDataInt32 _CountryRgn { get; } = new ColumnDataInt32("CountryRgn");
public ColumnDataString _Contact { get; } = new ColumnDataString("Contact");
public ColumnDataString _Phone { get; } = new ColumnDataString("Phone");
public ColumnDataString _Fax { get; } = new ColumnDataString("Fax");
public ColumnDataString _Email { get; } = new ColumnDataString("Email");
public ColumnDataString _AccountManagerCode { get; } = new ColumnDataString("AccountManagerCode");
public ColumnDataString _AccountHandlerCode { get; } = new ColumnDataString("AccountHandlerCode");
public ColumnDataString _ContactAreaCode { get; } = new ColumnDataString("ContactAreaCode");
public ColumnDataString _ContactHandlerCode { get; } = new ColumnDataString("ContactHandlerCode");
public ColumnDataString _DeliveryTypeCode { get; } = new ColumnDataString("DeliveryTypeCode");
public ColumnDataString _DeliveryMethodCode { get; } = new ColumnDataString("DeliveryMethodCode");
public ColumnDataString _DeliveryBookInCode { get; } = new ColumnDataString("DeliveryBookInCode");
public ColumnDataDateTime _LastVisitOn { get; } = new ColumnDataDateTime("LastVisitOn");
public ColumnDataDateTime _NextVisitOn { get; } = new ColumnDataDateTime("NextVisitOn");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"ItemType",
"ItemId",
"AffIdOwner",
"AddIdRef",
"RefExt",
"Type",
"Name",
"DescBrief",
"Line1",
"Line2",
"Line3",
"City",
"Province",
"Postcode",
"PostcodeFmt",
"Country",
"CityRgn",
"ProvinceRgn",
"CountryRgn",
"Contact",
"Phone",
"Fax",
"Email",
"AccountManagerCode",
"AccountHandlerCode",
"ContactAreaCode",
"ContactHandlerCode",
"DeliveryTypeCode",
"DeliveryMethodCode",
"DeliveryBookInCode",
"LastVisitOn",
"NextVisitOn",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal Address_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "Address";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int16 _ItemType { get { return Cols._ItemType.Value; } set { Cols._ItemType.Value = value; } }
public Int32 _ItemId { get { return Cols._ItemId.Value; } set { Cols._ItemId.Value = value; } }
public Int32 _AffIdOwner { get { return Cols._AffIdOwner.Value; } set { Cols._AffIdOwner.Value = value; } }
public Int32 _AddIdRef { get { return Cols._AddIdRef.Value; } set { Cols._AddIdRef.Value = value; } }
public String _RefExt { get { return Cols._RefExt.Value; } set { Cols._RefExt.Value = value; } }
public Int16 _Type { get { return Cols._Type.Value; } set { Cols._Type.Value = value; } }
public String _Name { get { return Cols._Name.Value; } set { Cols._Name.Value = value; } }
public String _DescBrief { get { return Cols._DescBrief.Value; } set { Cols._DescBrief.Value = value; } }
public String _Line1 { get { return Cols._Line1.Value; } set { Cols._Line1.Value = value; } }
public String _Line2 { get { return Cols._Line2.Value; } set { Cols._Line2.Value = value; } }
public String _Line3 { get { return Cols._Line3.Value; } set { Cols._Line3.Value = value; } }
public String _City { get { return Cols._City.Value; } set { Cols._City.Value = value; } }
public String _Province { get { return Cols._Province.Value; } set { Cols._Province.Value = value; } }
public String _Postcode { get { return Cols._Postcode.Value; } set { Cols._Postcode.Value = value; } }
public String _PostcodeFmt { get { return Cols._PostcodeFmt.Value; } set { Cols._PostcodeFmt.Value = value; } }
public String _Country { get { return Cols._Country.Value; } set { Cols._Country.Value = value; } }
public Int32 _CityRgn { get { return Cols._CityRgn.Value; } set { Cols._CityRgn.Value = value; } }
public Int32 _ProvinceRgn { get { return Cols._ProvinceRgn.Value; } set { Cols._ProvinceRgn.Value = value; } }
public Int32 _CountryRgn { get { return Cols._CountryRgn.Value; } set { Cols._CountryRgn.Value = value; } }
public String _Contact { get { return Cols._Contact.Value; } set { Cols._Contact.Value = value; } }
public String _Phone { get { return Cols._Phone.Value; } set { Cols._Phone.Value = value; } }
public String _Fax { get { return Cols._Fax.Value; } set { Cols._Fax.Value = value; } }
public String _Email { get { return Cols._Email.Value; } set { Cols._Email.Value = value; } }
public String _AccountManagerCode { get { return Cols._AccountManagerCode.Value; } set { Cols._AccountManagerCode.Value = value; } }
public String _AccountHandlerCode { get { return Cols._AccountHandlerCode.Value; } set { Cols._AccountHandlerCode.Value = value; } }
public String _ContactAreaCode { get { return Cols._ContactAreaCode.Value; } set { Cols._ContactAreaCode.Value = value; } }
public String _ContactHandlerCode { get { return Cols._ContactHandlerCode.Value; } set { Cols._ContactHandlerCode.Value = value; } }
public String _DeliveryTypeCode { get { return Cols._DeliveryTypeCode.Value; } set { Cols._DeliveryTypeCode.Value = value; } }
public String _DeliveryMethodCode { get { return Cols._DeliveryMethodCode.Value; } set { Cols._DeliveryMethodCode.Value = value; } }
public String _DeliveryBookInCode { get { return Cols._DeliveryBookInCode.Value; } set { Cols._DeliveryBookInCode.Value = value; } }
public DateTime _LastVisitOn { get { return Cols._LastVisitOn.Value; } set { Cols._LastVisitOn.Value = value; } }
public DateTime _NextVisitOn { get { return Cols._NextVisitOn.Value; } set { Cols._NextVisitOn.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_ItemType = GetFieldInt16(dbDataReader, "ItemType", _ItemType);
_ItemId = GetFieldInt32(dbDataReader, "ItemId", _ItemId);
_AffIdOwner = GetFieldInt32(dbDataReader, "AffIdOwner", _AffIdOwner);
_AddIdRef = GetFieldInt32(dbDataReader, "AddIdRef", _AddIdRef);
_RefExt = GetFieldString(dbDataReader, "RefExt", _RefExt);
_Type = GetFieldInt16(dbDataReader, "Type", _Type);
_Name = GetFieldString(dbDataReader, "Name", _Name);
_DescBrief = GetFieldString(dbDataReader, "DescBrief", _DescBrief);
_Line1 = GetFieldString(dbDataReader, "Line1", _Line1);
_Line2 = GetFieldString(dbDataReader, "Line2", _Line2);
_Line3 = GetFieldString(dbDataReader, "Line3", _Line3);
_City = GetFieldString(dbDataReader, "City", _City);
_Province = GetFieldString(dbDataReader, "Province", _Province);
_Postcode = GetFieldString(dbDataReader, "Postcode", _Postcode);
_PostcodeFmt = GetFieldString(dbDataReader, "PostcodeFmt", _PostcodeFmt);
_Country = GetFieldString(dbDataReader, "Country", _Country);
_CityRgn = GetFieldInt32(dbDataReader, "CityRgn", _CityRgn);
_ProvinceRgn = GetFieldInt32(dbDataReader, "ProvinceRgn", _ProvinceRgn);
_CountryRgn = GetFieldInt32(dbDataReader, "CountryRgn", _CountryRgn);
_Contact = GetFieldString(dbDataReader, "Contact", _Contact);
_Phone = GetFieldString(dbDataReader, "Phone", _Phone);
_Fax = GetFieldString(dbDataReader, "Fax", _Fax);
_Email = GetFieldString(dbDataReader, "Email", _Email);
_AccountManagerCode = GetFieldString(dbDataReader, "AccountManagerCode", _AccountManagerCode);
_AccountHandlerCode = GetFieldString(dbDataReader, "AccountHandlerCode", _AccountHandlerCode);
_ContactAreaCode = GetFieldString(dbDataReader, "ContactAreaCode", _ContactAreaCode);
_ContactHandlerCode = GetFieldString(dbDataReader, "ContactHandlerCode", _ContactHandlerCode);
_DeliveryTypeCode = GetFieldString(dbDataReader, "DeliveryTypeCode", _DeliveryTypeCode);
_DeliveryMethodCode = GetFieldString(dbDataReader, "DeliveryMethodCode", _DeliveryMethodCode);
_DeliveryBookInCode = GetFieldString(dbDataReader, "DeliveryBookInCode", _DeliveryBookInCode);
_LastVisitOn = GetFieldDateTime(dbDataReader, "LastVisitOn", _LastVisitOn);
_NextVisitOn = GetFieldDateTime(dbDataReader, "NextVisitOn", _NextVisitOn);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("ItemType")) AddCommandParameter(dbCommand, "@ItemType", _ItemType);
if (columnNames.ContainsCI("ItemId")) AddCommandParameter(dbCommand, "@ItemId", _ItemId);
if (columnNames.ContainsCI("AffIdOwner")) AddCommandParameter(dbCommand, "@AffIdOwner", _AffIdOwner);
if (columnNames.ContainsCI("AddIdRef")) AddCommandParameter(dbCommand, "@AddIdRef", _AddIdRef);
if (columnNames.ContainsCI("RefExt")) AddCommandParameter(dbCommand, "@RefExt", _RefExt);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Name")) AddCommandParameter(dbCommand, "@Name", _Name);
if (columnNames.ContainsCI("DescBrief")) AddCommandParameter(dbCommand, "@DescBrief", _DescBrief);
if (columnNames.ContainsCI("Line1")) AddCommandParameter(dbCommand, "@Line1", _Line1);
if (columnNames.ContainsCI("Line2")) AddCommandParameter(dbCommand, "@Line2", _Line2);
if (columnNames.ContainsCI("Line3")) AddCommandParameter(dbCommand, "@Line3", _Line3);
if (columnNames.ContainsCI("City")) AddCommandParameter(dbCommand, "@City", _City);
if (columnNames.ContainsCI("Province")) AddCommandParameter(dbCommand, "@Province", _Province);
if (columnNames.ContainsCI("Postcode")) AddCommandParameter(dbCommand, "@Postcode", _Postcode);
if (columnNames.ContainsCI("PostcodeFmt")) AddCommandParameter(dbCommand, "@PostcodeFmt", _PostcodeFmt);
if (columnNames.ContainsCI("Country")) AddCommandParameter(dbCommand, "@Country", _Country);
if (columnNames.ContainsCI("CityRgn")) AddCommandParameter(dbCommand, "@CityRgn", _CityRgn);
if (columnNames.ContainsCI("ProvinceRgn")) AddCommandParameter(dbCommand, "@ProvinceRgn", _ProvinceRgn);
if (columnNames.ContainsCI("CountryRgn")) AddCommandParameter(dbCommand, "@CountryRgn", _CountryRgn);
if (columnNames.ContainsCI("Contact")) AddCommandParameter(dbCommand, "@Contact", _Contact);
if (columnNames.ContainsCI("Phone")) AddCommandParameter(dbCommand, "@Phone", _Phone);
if (columnNames.ContainsCI("Fax")) AddCommandParameter(dbCommand, "@Fax", _Fax);
if (columnNames.ContainsCI("Email")) AddCommandParameter(dbCommand, "@Email", _Email);
if (columnNames.ContainsCI("AccountManagerCode")) AddCommandParameter(dbCommand, "@AccountManagerCode", _AccountManagerCode);
if (columnNames.ContainsCI("AccountHandlerCode")) AddCommandParameter(dbCommand, "@AccountHandlerCode", _AccountHandlerCode);
if (columnNames.ContainsCI("ContactAreaCode")) AddCommandParameter(dbCommand, "@ContactAreaCode", _ContactAreaCode);
if (columnNames.ContainsCI("ContactHandlerCode")) AddCommandParameter(dbCommand, "@ContactHandlerCode", _ContactHandlerCode);
if (columnNames.ContainsCI("DeliveryTypeCode")) AddCommandParameter(dbCommand, "@DeliveryTypeCode", _DeliveryTypeCode);
if (columnNames.ContainsCI("DeliveryMethodCode")) AddCommandParameter(dbCommand, "@DeliveryMethodCode", _DeliveryMethodCode);
if (columnNames.ContainsCI("DeliveryBookInCode")) AddCommandParameter(dbCommand, "@DeliveryBookInCode", _DeliveryBookInCode);
if (columnNames.ContainsCI("LastVisitOn")) AddCommandParameter(dbCommand, "@LastVisitOn", _LastVisitOn);
if (columnNames.ContainsCI("NextVisitOn")) AddCommandParameter(dbCommand, "@NextVisitOn", _NextVisitOn);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("ItemType")) AddCommandParameter(dbCommand, "@ItemType", _ItemType);
if (columnNames.ContainsCI("ItemId")) AddCommandParameter(dbCommand, "@ItemId", _ItemId);
if (columnNames.ContainsCI("AffIdOwner")) AddCommandParameter(dbCommand, "@AffIdOwner", _AffIdOwner);
if (columnNames.ContainsCI("AddIdRef")) AddCommandParameter(dbCommand, "@AddIdRef", _AddIdRef);
if (columnNames.ContainsCI("RefExt")) AddCommandParameter(dbCommand, "@RefExt", _RefExt);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Name")) AddCommandParameter(dbCommand, "@Name", _Name);
if (columnNames.ContainsCI("DescBrief")) AddCommandParameter(dbCommand, "@DescBrief", _DescBrief);
if (columnNames.ContainsCI("Line1")) AddCommandParameter(dbCommand, "@Line1", _Line1);
if (columnNames.ContainsCI("Line2")) AddCommandParameter(dbCommand, "@Line2", _Line2);
if (columnNames.ContainsCI("Line3")) AddCommandParameter(dbCommand, "@Line3", _Line3);
if (columnNames.ContainsCI("City")) AddCommandParameter(dbCommand, "@City", _City);
if (columnNames.ContainsCI("Province")) AddCommandParameter(dbCommand, "@Province", _Province);
if (columnNames.ContainsCI("Postcode")) AddCommandParameter(dbCommand, "@Postcode", _Postcode);
if (columnNames.ContainsCI("PostcodeFmt")) AddCommandParameter(dbCommand, "@PostcodeFmt", _PostcodeFmt);
if (columnNames.ContainsCI("Country")) AddCommandParameter(dbCommand, "@Country", _Country);
if (columnNames.ContainsCI("CityRgn")) AddCommandParameter(dbCommand, "@CityRgn", _CityRgn);
if (columnNames.ContainsCI("ProvinceRgn")) AddCommandParameter(dbCommand, "@ProvinceRgn", _ProvinceRgn);
if (columnNames.ContainsCI("CountryRgn")) AddCommandParameter(dbCommand, "@CountryRgn", _CountryRgn);
if (columnNames.ContainsCI("Contact")) AddCommandParameter(dbCommand, "@Contact", _Contact);
if (columnNames.ContainsCI("Phone")) AddCommandParameter(dbCommand, "@Phone", _Phone);
if (columnNames.ContainsCI("Fax")) AddCommandParameter(dbCommand, "@Fax", _Fax);
if (columnNames.ContainsCI("Email")) AddCommandParameter(dbCommand, "@Email", _Email);
if (columnNames.ContainsCI("AccountManagerCode")) AddCommandParameter(dbCommand, "@AccountManagerCode", _AccountManagerCode);
if (columnNames.ContainsCI("AccountHandlerCode")) AddCommandParameter(dbCommand, "@AccountHandlerCode", _AccountHandlerCode);
if (columnNames.ContainsCI("ContactAreaCode")) AddCommandParameter(dbCommand, "@ContactAreaCode", _ContactAreaCode);
if (columnNames.ContainsCI("ContactHandlerCode")) AddCommandParameter(dbCommand, "@ContactHandlerCode", _ContactHandlerCode);
if (columnNames.ContainsCI("DeliveryTypeCode")) AddCommandParameter(dbCommand, "@DeliveryTypeCode", _DeliveryTypeCode);
if (columnNames.ContainsCI("DeliveryMethodCode")) AddCommandParameter(dbCommand, "@DeliveryMethodCode", _DeliveryMethodCode);
if (columnNames.ContainsCI("DeliveryBookInCode")) AddCommandParameter(dbCommand, "@DeliveryBookInCode", _DeliveryBookInCode);
if (columnNames.ContainsCI("LastVisitOn")) AddCommandParameter(dbCommand, "@LastVisitOn", _LastVisitOn);
if (columnNames.ContainsCI("NextVisitOn")) AddCommandParameter(dbCommand, "@NextVisitOn", _NextVisitOn);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,361 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class Affiliate_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt16 _Type { get; } = new ColumnDataInt16("Type");
public ColumnDataString _Name { get; } = new ColumnDataString("Name");
public ColumnDataString _Abbrev { get; } = new ColumnDataString("Abbrev");
public ColumnDataInt32 _AffIdParent { get; } = new ColumnDataInt32("AffIdParent");
public ColumnDataString _Title { get; } = new ColumnDataString("Title");
public ColumnDataString _Initials { get; } = new ColumnDataString("Initials");
public ColumnDataString _LastName { get; } = new ColumnDataString("LastName");
public ColumnDataString _FirstName { get; } = new ColumnDataString("FirstName");
public ColumnDataString _Salutation { get; } = new ColumnDataString("Salutation");
public ColumnDataString _Nature { get; } = new ColumnDataString("Nature");
public ColumnDataString _CompanyNo { get; } = new ColumnDataString("CompanyNo");
public ColumnDataString _VatReg { get; } = new ColumnDataString("VatReg");
public ColumnDataString _Contact { get; } = new ColumnDataString("Contact");
public ColumnDataString _PhoneMain { get; } = new ColumnDataString("PhoneMain");
public ColumnDataString _PhoneAlt { get; } = new ColumnDataString("PhoneAlt");
public ColumnDataString _PhoneFax { get; } = new ColumnDataString("PhoneFax");
public ColumnDataString _PhoneMobile { get; } = new ColumnDataString("PhoneMobile");
public ColumnDataString _PhoneDirect { get; } = new ColumnDataString("PhoneDirect");
public ColumnDataString _Email { get; } = new ColumnDataString("Email");
public ColumnDataString _Website { get; } = new ColumnDataString("Website");
public ColumnDataByte _BirthDay { get; } = new ColumnDataByte("BirthDay");
public ColumnDataByte _BirthMonth { get; } = new ColumnDataByte("BirthMonth");
public ColumnDataInt16 _BirthYear { get; } = new ColumnDataInt16("BirthYear");
public ColumnDataString _MaritalStatus { get; } = new ColumnDataString("MaritalStatus");
public ColumnDataString _Spouse { get; } = new ColumnDataString("Spouse");
public ColumnDataString _Children { get; } = new ColumnDataString("Children");
public ColumnDataString _Hometown { get; } = new ColumnDataString("Hometown");
public ColumnDataInt32 _UserId { get; } = new ColumnDataInt32("UserId");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"Type",
"Name",
"Abbrev",
"AffIdParent",
"Title",
"Initials",
"LastName",
"FirstName",
"Salutation",
"Nature",
"CompanyNo",
"VatReg",
"Contact",
"PhoneMain",
"PhoneAlt",
"PhoneFax",
"PhoneMobile",
"PhoneDirect",
"Email",
"Website",
"BirthDay",
"BirthMonth",
"BirthYear",
"MaritalStatus",
"Spouse",
"Children",
"Hometown",
"UserId",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal Affiliate_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "Affiliate";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int16 _Type { get { return Cols._Type.Value; } set { Cols._Type.Value = value; } }
public String _Name { get { return Cols._Name.Value; } set { Cols._Name.Value = value; } }
public String _Abbrev { get { return Cols._Abbrev.Value; } set { Cols._Abbrev.Value = value; } }
public Int32 _AffIdParent { get { return Cols._AffIdParent.Value; } set { Cols._AffIdParent.Value = value; } }
public String _Title { get { return Cols._Title.Value; } set { Cols._Title.Value = value; } }
public String _Initials { get { return Cols._Initials.Value; } set { Cols._Initials.Value = value; } }
public String _LastName { get { return Cols._LastName.Value; } set { Cols._LastName.Value = value; } }
public String _FirstName { get { return Cols._FirstName.Value; } set { Cols._FirstName.Value = value; } }
public String _Salutation { get { return Cols._Salutation.Value; } set { Cols._Salutation.Value = value; } }
public String _Nature { get { return Cols._Nature.Value; } set { Cols._Nature.Value = value; } }
public String _CompanyNo { get { return Cols._CompanyNo.Value; } set { Cols._CompanyNo.Value = value; } }
public String _VatReg { get { return Cols._VatReg.Value; } set { Cols._VatReg.Value = value; } }
public String _Contact { get { return Cols._Contact.Value; } set { Cols._Contact.Value = value; } }
public String _PhoneMain { get { return Cols._PhoneMain.Value; } set { Cols._PhoneMain.Value = value; } }
public String _PhoneAlt { get { return Cols._PhoneAlt.Value; } set { Cols._PhoneAlt.Value = value; } }
public String _PhoneFax { get { return Cols._PhoneFax.Value; } set { Cols._PhoneFax.Value = value; } }
public String _PhoneMobile { get { return Cols._PhoneMobile.Value; } set { Cols._PhoneMobile.Value = value; } }
public String _PhoneDirect { get { return Cols._PhoneDirect.Value; } set { Cols._PhoneDirect.Value = value; } }
public String _Email { get { return Cols._Email.Value; } set { Cols._Email.Value = value; } }
public String _Website { get { return Cols._Website.Value; } set { Cols._Website.Value = value; } }
public Byte _BirthDay { get { return Cols._BirthDay.Value; } set { Cols._BirthDay.Value = value; } }
public Byte _BirthMonth { get { return Cols._BirthMonth.Value; } set { Cols._BirthMonth.Value = value; } }
public Int16 _BirthYear { get { return Cols._BirthYear.Value; } set { Cols._BirthYear.Value = value; } }
public String _MaritalStatus { get { return Cols._MaritalStatus.Value; } set { Cols._MaritalStatus.Value = value; } }
public String _Spouse { get { return Cols._Spouse.Value; } set { Cols._Spouse.Value = value; } }
public String _Children { get { return Cols._Children.Value; } set { Cols._Children.Value = value; } }
public String _Hometown { get { return Cols._Hometown.Value; } set { Cols._Hometown.Value = value; } }
public Int32 _UserId { get { return Cols._UserId.Value; } set { Cols._UserId.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_Type = GetFieldInt16(dbDataReader, "Type", _Type);
_Name = GetFieldString(dbDataReader, "Name", _Name);
_Abbrev = GetFieldString(dbDataReader, "Abbrev", _Abbrev);
_AffIdParent = GetFieldInt32(dbDataReader, "AffIdParent", _AffIdParent);
_Title = GetFieldString(dbDataReader, "Title", _Title);
_Initials = GetFieldString(dbDataReader, "Initials", _Initials);
_LastName = GetFieldString(dbDataReader, "LastName", _LastName);
_FirstName = GetFieldString(dbDataReader, "FirstName", _FirstName);
_Salutation = GetFieldString(dbDataReader, "Salutation", _Salutation);
_Nature = GetFieldString(dbDataReader, "Nature", _Nature);
_CompanyNo = GetFieldString(dbDataReader, "CompanyNo", _CompanyNo);
_VatReg = GetFieldString(dbDataReader, "VatReg", _VatReg);
_Contact = GetFieldString(dbDataReader, "Contact", _Contact);
_PhoneMain = GetFieldString(dbDataReader, "PhoneMain", _PhoneMain);
_PhoneAlt = GetFieldString(dbDataReader, "PhoneAlt", _PhoneAlt);
_PhoneFax = GetFieldString(dbDataReader, "PhoneFax", _PhoneFax);
_PhoneMobile = GetFieldString(dbDataReader, "PhoneMobile", _PhoneMobile);
_PhoneDirect = GetFieldString(dbDataReader, "PhoneDirect", _PhoneDirect);
_Email = GetFieldString(dbDataReader, "Email", _Email);
_Website = GetFieldString(dbDataReader, "Website", _Website);
_BirthDay = GetFieldByte(dbDataReader, "BirthDay", _BirthDay);
_BirthMonth = GetFieldByte(dbDataReader, "BirthMonth", _BirthMonth);
_BirthYear = GetFieldInt16(dbDataReader, "BirthYear", _BirthYear);
_MaritalStatus = GetFieldString(dbDataReader, "MaritalStatus", _MaritalStatus);
_Spouse = GetFieldString(dbDataReader, "Spouse", _Spouse);
_Children = GetFieldString(dbDataReader, "Children", _Children);
_Hometown = GetFieldString(dbDataReader, "Hometown", _Hometown);
_UserId = GetFieldInt32(dbDataReader, "UserId", _UserId);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Name")) AddCommandParameter(dbCommand, "@Name", _Name);
if (columnNames.ContainsCI("Abbrev")) AddCommandParameter(dbCommand, "@Abbrev", _Abbrev);
if (columnNames.ContainsCI("AffIdParent")) AddCommandParameter(dbCommand, "@AffIdParent", _AffIdParent);
if (columnNames.ContainsCI("Title")) AddCommandParameter(dbCommand, "@Title", _Title);
if (columnNames.ContainsCI("Initials")) AddCommandParameter(dbCommand, "@Initials", _Initials);
if (columnNames.ContainsCI("LastName")) AddCommandParameter(dbCommand, "@LastName", _LastName);
if (columnNames.ContainsCI("FirstName")) AddCommandParameter(dbCommand, "@FirstName", _FirstName);
if (columnNames.ContainsCI("Salutation")) AddCommandParameter(dbCommand, "@Salutation", _Salutation);
if (columnNames.ContainsCI("Nature")) AddCommandParameter(dbCommand, "@Nature", _Nature);
if (columnNames.ContainsCI("CompanyNo")) AddCommandParameter(dbCommand, "@CompanyNo", _CompanyNo);
if (columnNames.ContainsCI("VatReg")) AddCommandParameter(dbCommand, "@VatReg", _VatReg);
if (columnNames.ContainsCI("Contact")) AddCommandParameter(dbCommand, "@Contact", _Contact);
if (columnNames.ContainsCI("PhoneMain")) AddCommandParameter(dbCommand, "@PhoneMain", _PhoneMain);
if (columnNames.ContainsCI("PhoneAlt")) AddCommandParameter(dbCommand, "@PhoneAlt", _PhoneAlt);
if (columnNames.ContainsCI("PhoneFax")) AddCommandParameter(dbCommand, "@PhoneFax", _PhoneFax);
if (columnNames.ContainsCI("PhoneMobile")) AddCommandParameter(dbCommand, "@PhoneMobile", _PhoneMobile);
if (columnNames.ContainsCI("PhoneDirect")) AddCommandParameter(dbCommand, "@PhoneDirect", _PhoneDirect);
if (columnNames.ContainsCI("Email")) AddCommandParameter(dbCommand, "@Email", _Email);
if (columnNames.ContainsCI("Website")) AddCommandParameter(dbCommand, "@Website", _Website);
if (columnNames.ContainsCI("BirthDay")) AddCommandParameter(dbCommand, "@BirthDay", _BirthDay);
if (columnNames.ContainsCI("BirthMonth")) AddCommandParameter(dbCommand, "@BirthMonth", _BirthMonth);
if (columnNames.ContainsCI("BirthYear")) AddCommandParameter(dbCommand, "@BirthYear", _BirthYear);
if (columnNames.ContainsCI("MaritalStatus")) AddCommandParameter(dbCommand, "@MaritalStatus", _MaritalStatus);
if (columnNames.ContainsCI("Spouse")) AddCommandParameter(dbCommand, "@Spouse", _Spouse);
if (columnNames.ContainsCI("Children")) AddCommandParameter(dbCommand, "@Children", _Children);
if (columnNames.ContainsCI("Hometown")) AddCommandParameter(dbCommand, "@Hometown", _Hometown);
if (columnNames.ContainsCI("UserId")) AddCommandParameter(dbCommand, "@UserId", _UserId);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Name")) AddCommandParameter(dbCommand, "@Name", _Name);
if (columnNames.ContainsCI("Abbrev")) AddCommandParameter(dbCommand, "@Abbrev", _Abbrev);
if (columnNames.ContainsCI("AffIdParent")) AddCommandParameter(dbCommand, "@AffIdParent", _AffIdParent);
if (columnNames.ContainsCI("Title")) AddCommandParameter(dbCommand, "@Title", _Title);
if (columnNames.ContainsCI("Initials")) AddCommandParameter(dbCommand, "@Initials", _Initials);
if (columnNames.ContainsCI("LastName")) AddCommandParameter(dbCommand, "@LastName", _LastName);
if (columnNames.ContainsCI("FirstName")) AddCommandParameter(dbCommand, "@FirstName", _FirstName);
if (columnNames.ContainsCI("Salutation")) AddCommandParameter(dbCommand, "@Salutation", _Salutation);
if (columnNames.ContainsCI("Nature")) AddCommandParameter(dbCommand, "@Nature", _Nature);
if (columnNames.ContainsCI("CompanyNo")) AddCommandParameter(dbCommand, "@CompanyNo", _CompanyNo);
if (columnNames.ContainsCI("VatReg")) AddCommandParameter(dbCommand, "@VatReg", _VatReg);
if (columnNames.ContainsCI("Contact")) AddCommandParameter(dbCommand, "@Contact", _Contact);
if (columnNames.ContainsCI("PhoneMain")) AddCommandParameter(dbCommand, "@PhoneMain", _PhoneMain);
if (columnNames.ContainsCI("PhoneAlt")) AddCommandParameter(dbCommand, "@PhoneAlt", _PhoneAlt);
if (columnNames.ContainsCI("PhoneFax")) AddCommandParameter(dbCommand, "@PhoneFax", _PhoneFax);
if (columnNames.ContainsCI("PhoneMobile")) AddCommandParameter(dbCommand, "@PhoneMobile", _PhoneMobile);
if (columnNames.ContainsCI("PhoneDirect")) AddCommandParameter(dbCommand, "@PhoneDirect", _PhoneDirect);
if (columnNames.ContainsCI("Email")) AddCommandParameter(dbCommand, "@Email", _Email);
if (columnNames.ContainsCI("Website")) AddCommandParameter(dbCommand, "@Website", _Website);
if (columnNames.ContainsCI("BirthDay")) AddCommandParameter(dbCommand, "@BirthDay", _BirthDay);
if (columnNames.ContainsCI("BirthMonth")) AddCommandParameter(dbCommand, "@BirthMonth", _BirthMonth);
if (columnNames.ContainsCI("BirthYear")) AddCommandParameter(dbCommand, "@BirthYear", _BirthYear);
if (columnNames.ContainsCI("MaritalStatus")) AddCommandParameter(dbCommand, "@MaritalStatus", _MaritalStatus);
if (columnNames.ContainsCI("Spouse")) AddCommandParameter(dbCommand, "@Spouse", _Spouse);
if (columnNames.ContainsCI("Children")) AddCommandParameter(dbCommand, "@Children", _Children);
if (columnNames.ContainsCI("Hometown")) AddCommandParameter(dbCommand, "@Hometown", _Hometown);
if (columnNames.ContainsCI("UserId")) AddCommandParameter(dbCommand, "@UserId", _UserId);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,427 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class Association_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt32 _AffIdOwner { get; } = new ColumnDataInt32("AffIdOwner");
public ColumnDataInt32 _AffIdTarget { get; } = new ColumnDataInt32("AffIdTarget");
public ColumnDataInt16 _Type { get; } = new ColumnDataInt16("Type");
public ColumnDataString _Code { get; } = new ColumnDataString("Code");
public ColumnDataString _ExtRef { get; } = new ColumnDataString("ExtRef");
public ColumnDataString _Location { get; } = new ColumnDataString("Location");
public ColumnDataString _Role { get; } = new ColumnDataString("Role");
public ColumnDataString _PhoneMain { get; } = new ColumnDataString("PhoneMain");
public ColumnDataString _Email { get; } = new ColumnDataString("Email");
public ColumnDataString _Group { get; } = new ColumnDataString("Group");
public ColumnDataString _DescDetail { get; } = new ColumnDataString("DescDetail");
public ColumnDataString _DefaultNominalCode { get; } = new ColumnDataString("DefaultNominalCode");
public ColumnDataString _AccountManagerCode { get; } = new ColumnDataString("AccountManagerCode");
public ColumnDataString _AccountHandlerCode { get; } = new ColumnDataString("AccountHandlerCode");
public ColumnDataString _AccountTypeCode { get; } = new ColumnDataString("AccountTypeCode");
public ColumnDataString _AccountRatingCode { get; } = new ColumnDataString("AccountRatingCode");
public ColumnDataString _ContactAreaCode { get; } = new ColumnDataString("ContactAreaCode");
public ColumnDataString _ContactHandlerCode { get; } = new ColumnDataString("ContactHandlerCode");
public ColumnDataString _ContactMethodCode { get; } = new ColumnDataString("ContactMethodCode");
public ColumnDataString _ContactCallCycleCode { get; } = new ColumnDataString("ContactCallCycleCode");
public ColumnDataInt16 _CallsPerYear { get; } = new ColumnDataInt16("CallsPerYear");
public ColumnDataDateTime _LastCall { get; } = new ColumnDataDateTime("LastCall");
public ColumnDataInt32 _CommodityIdSalesDefault { get; } = new ColumnDataInt32("CommodityIdSalesDefault");
public ColumnDataString _OrderLeadTimeCode { get; } = new ColumnDataString("OrderLeadTimeCode");
public ColumnDataString _DeliveryTypeCode { get; } = new ColumnDataString("DeliveryTypeCode");
public ColumnDataString _DeliveryMethodCode { get; } = new ColumnDataString("DeliveryMethodCode");
public ColumnDataString _DeliveryCourierCode { get; } = new ColumnDataString("DeliveryCourierCode");
public ColumnDataString _DeliveryBookInCode { get; } = new ColumnDataString("DeliveryBookInCode");
public ColumnDataDecimal _AmountTransMax { get; } = new ColumnDataDecimal("AmountTransMax");
public ColumnDataDecimal _AnnualSalesTarget { get; } = new ColumnDataDecimal("AnnualSalesTarget");
public ColumnDataDecimal _CreditLimit { get; } = new ColumnDataDecimal("CreditLimit");
public ColumnDataDecimal _AccountBalance { get; } = new ColumnDataDecimal("AccountBalance");
public ColumnDataInt16 _DiscountType { get; } = new ColumnDataInt16("DiscountType");
public ColumnDataDecimal _DiscountRate { get; } = new ColumnDataDecimal("DiscountRate");
public ColumnDataInt32 _PriceSetId { get; } = new ColumnDataInt32("PriceSetId");
public ColumnDataInt32 _TaxCodeId { get; } = new ColumnDataInt32("TaxCodeId");
public ColumnDataInt16 _PaymentTerms { get; } = new ColumnDataInt16("PaymentTerms");
public ColumnDataString _InvoiceDesc { get; } = new ColumnDataString("InvoiceDesc");
public ColumnDataInt32 _Terminated { get; } = new ColumnDataInt32("Terminated");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"AffIdOwner",
"AffIdTarget",
"Type",
"Code",
"ExtRef",
"Location",
"Role",
"PhoneMain",
"Email",
"Group",
"DescDetail",
"DefaultNominalCode",
"AccountManagerCode",
"AccountHandlerCode",
"AccountTypeCode",
"AccountRatingCode",
"ContactAreaCode",
"ContactHandlerCode",
"ContactMethodCode",
"ContactCallCycleCode",
"CallsPerYear",
"LastCall",
"CommodityIdSalesDefault",
"OrderLeadTimeCode",
"DeliveryTypeCode",
"DeliveryMethodCode",
"DeliveryCourierCode",
"DeliveryBookInCode",
"AmountTransMax",
"AnnualSalesTarget",
"CreditLimit",
"AccountBalance",
"DiscountType",
"DiscountRate",
"PriceSetId",
"TaxCodeId",
"PaymentTerms",
"InvoiceDesc",
"Terminated",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal Association_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "Association";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int32 _AffIdOwner { get { return Cols._AffIdOwner.Value; } set { Cols._AffIdOwner.Value = value; } }
public Int32 _AffIdTarget { get { return Cols._AffIdTarget.Value; } set { Cols._AffIdTarget.Value = value; } }
public Int16 _Type { get { return Cols._Type.Value; } set { Cols._Type.Value = value; } }
public String _Code { get { return Cols._Code.Value; } set { Cols._Code.Value = value; } }
public String _ExtRef { get { return Cols._ExtRef.Value; } set { Cols._ExtRef.Value = value; } }
public String _Location { get { return Cols._Location.Value; } set { Cols._Location.Value = value; } }
public String _Role { get { return Cols._Role.Value; } set { Cols._Role.Value = value; } }
public String _PhoneMain { get { return Cols._PhoneMain.Value; } set { Cols._PhoneMain.Value = value; } }
public String _Email { get { return Cols._Email.Value; } set { Cols._Email.Value = value; } }
public String _Group { get { return Cols._Group.Value; } set { Cols._Group.Value = value; } }
public String _DescDetail { get { return Cols._DescDetail.Value; } set { Cols._DescDetail.Value = value; } }
public String _DefaultNominalCode { get { return Cols._DefaultNominalCode.Value; } set { Cols._DefaultNominalCode.Value = value; } }
public String _AccountManagerCode { get { return Cols._AccountManagerCode.Value; } set { Cols._AccountManagerCode.Value = value; } }
public String _AccountHandlerCode { get { return Cols._AccountHandlerCode.Value; } set { Cols._AccountHandlerCode.Value = value; } }
public String _AccountTypeCode { get { return Cols._AccountTypeCode.Value; } set { Cols._AccountTypeCode.Value = value; } }
public String _AccountRatingCode { get { return Cols._AccountRatingCode.Value; } set { Cols._AccountRatingCode.Value = value; } }
public String _ContactAreaCode { get { return Cols._ContactAreaCode.Value; } set { Cols._ContactAreaCode.Value = value; } }
public String _ContactHandlerCode { get { return Cols._ContactHandlerCode.Value; } set { Cols._ContactHandlerCode.Value = value; } }
public String _ContactMethodCode { get { return Cols._ContactMethodCode.Value; } set { Cols._ContactMethodCode.Value = value; } }
public String _ContactCallCycleCode { get { return Cols._ContactCallCycleCode.Value; } set { Cols._ContactCallCycleCode.Value = value; } }
public Int16 _CallsPerYear { get { return Cols._CallsPerYear.Value; } set { Cols._CallsPerYear.Value = value; } }
public DateTime _LastCall { get { return Cols._LastCall.Value; } set { Cols._LastCall.Value = value; } }
public Int32 _CommodityIdSalesDefault { get { return Cols._CommodityIdSalesDefault.Value; } set { Cols._CommodityIdSalesDefault.Value = value; } }
public String _OrderLeadTimeCode { get { return Cols._OrderLeadTimeCode.Value; } set { Cols._OrderLeadTimeCode.Value = value; } }
public String _DeliveryTypeCode { get { return Cols._DeliveryTypeCode.Value; } set { Cols._DeliveryTypeCode.Value = value; } }
public String _DeliveryMethodCode { get { return Cols._DeliveryMethodCode.Value; } set { Cols._DeliveryMethodCode.Value = value; } }
public String _DeliveryCourierCode { get { return Cols._DeliveryCourierCode.Value; } set { Cols._DeliveryCourierCode.Value = value; } }
public String _DeliveryBookInCode { get { return Cols._DeliveryBookInCode.Value; } set { Cols._DeliveryBookInCode.Value = value; } }
public Decimal _AmountTransMax { get { return Cols._AmountTransMax.Value; } set { Cols._AmountTransMax.Value = value; } }
public Decimal _AnnualSalesTarget { get { return Cols._AnnualSalesTarget.Value; } set { Cols._AnnualSalesTarget.Value = value; } }
public Decimal _CreditLimit { get { return Cols._CreditLimit.Value; } set { Cols._CreditLimit.Value = value; } }
public Decimal _AccountBalance { get { return Cols._AccountBalance.Value; } set { Cols._AccountBalance.Value = value; } }
public Int16 _DiscountType { get { return Cols._DiscountType.Value; } set { Cols._DiscountType.Value = value; } }
public Decimal _DiscountRate { get { return Cols._DiscountRate.Value; } set { Cols._DiscountRate.Value = value; } }
public Int32 _PriceSetId { get { return Cols._PriceSetId.Value; } set { Cols._PriceSetId.Value = value; } }
public Int32 _TaxCodeId { get { return Cols._TaxCodeId.Value; } set { Cols._TaxCodeId.Value = value; } }
public Int16 _PaymentTerms { get { return Cols._PaymentTerms.Value; } set { Cols._PaymentTerms.Value = value; } }
public String _InvoiceDesc { get { return Cols._InvoiceDesc.Value; } set { Cols._InvoiceDesc.Value = value; } }
public Int32 _Terminated { get { return Cols._Terminated.Value; } set { Cols._Terminated.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_AffIdOwner = GetFieldInt32(dbDataReader, "AffIdOwner", _AffIdOwner);
_AffIdTarget = GetFieldInt32(dbDataReader, "AffIdTarget", _AffIdTarget);
_Type = GetFieldInt16(dbDataReader, "Type", _Type);
_Code = GetFieldString(dbDataReader, "Code", _Code);
_ExtRef = GetFieldString(dbDataReader, "ExtRef", _ExtRef);
_Location = GetFieldString(dbDataReader, "Location", _Location);
_Role = GetFieldString(dbDataReader, "Role", _Role);
_PhoneMain = GetFieldString(dbDataReader, "PhoneMain", _PhoneMain);
_Email = GetFieldString(dbDataReader, "Email", _Email);
_Group = GetFieldString(dbDataReader, "Group", _Group);
_DescDetail = GetFieldString(dbDataReader, "DescDetail", _DescDetail);
_DefaultNominalCode = GetFieldString(dbDataReader, "DefaultNominalCode", _DefaultNominalCode);
_AccountManagerCode = GetFieldString(dbDataReader, "AccountManagerCode", _AccountManagerCode);
_AccountHandlerCode = GetFieldString(dbDataReader, "AccountHandlerCode", _AccountHandlerCode);
_AccountTypeCode = GetFieldString(dbDataReader, "AccountTypeCode", _AccountTypeCode);
_AccountRatingCode = GetFieldString(dbDataReader, "AccountRatingCode", _AccountRatingCode);
_ContactAreaCode = GetFieldString(dbDataReader, "ContactAreaCode", _ContactAreaCode);
_ContactHandlerCode = GetFieldString(dbDataReader, "ContactHandlerCode", _ContactHandlerCode);
_ContactMethodCode = GetFieldString(dbDataReader, "ContactMethodCode", _ContactMethodCode);
_ContactCallCycleCode = GetFieldString(dbDataReader, "ContactCallCycleCode", _ContactCallCycleCode);
_CallsPerYear = GetFieldInt16(dbDataReader, "CallsPerYear", _CallsPerYear);
_LastCall = GetFieldDateTime(dbDataReader, "LastCall", _LastCall);
_CommodityIdSalesDefault = GetFieldInt32(dbDataReader, "CommodityIdSalesDefault", _CommodityIdSalesDefault);
_OrderLeadTimeCode = GetFieldString(dbDataReader, "OrderLeadTimeCode", _OrderLeadTimeCode);
_DeliveryTypeCode = GetFieldString(dbDataReader, "DeliveryTypeCode", _DeliveryTypeCode);
_DeliveryMethodCode = GetFieldString(dbDataReader, "DeliveryMethodCode", _DeliveryMethodCode);
_DeliveryCourierCode = GetFieldString(dbDataReader, "DeliveryCourierCode", _DeliveryCourierCode);
_DeliveryBookInCode = GetFieldString(dbDataReader, "DeliveryBookInCode", _DeliveryBookInCode);
_AmountTransMax = GetFieldDecimal(dbDataReader, "AmountTransMax", _AmountTransMax);
_AnnualSalesTarget = GetFieldDecimal(dbDataReader, "AnnualSalesTarget", _AnnualSalesTarget);
_CreditLimit = GetFieldDecimal(dbDataReader, "CreditLimit", _CreditLimit);
_AccountBalance = GetFieldDecimal(dbDataReader, "AccountBalance", _AccountBalance);
_DiscountType = GetFieldInt16(dbDataReader, "DiscountType", _DiscountType);
_DiscountRate = GetFieldDecimal(dbDataReader, "DiscountRate", _DiscountRate);
_PriceSetId = GetFieldInt32(dbDataReader, "PriceSetId", _PriceSetId);
_TaxCodeId = GetFieldInt32(dbDataReader, "TaxCodeId", _TaxCodeId);
_PaymentTerms = GetFieldInt16(dbDataReader, "PaymentTerms", _PaymentTerms);
_InvoiceDesc = GetFieldString(dbDataReader, "InvoiceDesc", _InvoiceDesc);
_Terminated = GetFieldInt32(dbDataReader, "Terminated", _Terminated);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("AffIdOwner")) AddCommandParameter(dbCommand, "@AffIdOwner", _AffIdOwner);
if (columnNames.ContainsCI("AffIdTarget")) AddCommandParameter(dbCommand, "@AffIdTarget", _AffIdTarget);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Code")) AddCommandParameter(dbCommand, "@Code", _Code);
if (columnNames.ContainsCI("ExtRef")) AddCommandParameter(dbCommand, "@ExtRef", _ExtRef);
if (columnNames.ContainsCI("Location")) AddCommandParameter(dbCommand, "@Location", _Location);
if (columnNames.ContainsCI("Role")) AddCommandParameter(dbCommand, "@Role", _Role);
if (columnNames.ContainsCI("PhoneMain")) AddCommandParameter(dbCommand, "@PhoneMain", _PhoneMain);
if (columnNames.ContainsCI("Email")) AddCommandParameter(dbCommand, "@Email", _Email);
if (columnNames.ContainsCI("Group")) AddCommandParameter(dbCommand, "@Group", _Group);
if (columnNames.ContainsCI("DescDetail")) AddCommandParameter(dbCommand, "@DescDetail", _DescDetail);
if (columnNames.ContainsCI("DefaultNominalCode")) AddCommandParameter(dbCommand, "@DefaultNominalCode", _DefaultNominalCode);
if (columnNames.ContainsCI("AccountManagerCode")) AddCommandParameter(dbCommand, "@AccountManagerCode", _AccountManagerCode);
if (columnNames.ContainsCI("AccountHandlerCode")) AddCommandParameter(dbCommand, "@AccountHandlerCode", _AccountHandlerCode);
if (columnNames.ContainsCI("AccountTypeCode")) AddCommandParameter(dbCommand, "@AccountTypeCode", _AccountTypeCode);
if (columnNames.ContainsCI("AccountRatingCode")) AddCommandParameter(dbCommand, "@AccountRatingCode", _AccountRatingCode);
if (columnNames.ContainsCI("ContactAreaCode")) AddCommandParameter(dbCommand, "@ContactAreaCode", _ContactAreaCode);
if (columnNames.ContainsCI("ContactHandlerCode")) AddCommandParameter(dbCommand, "@ContactHandlerCode", _ContactHandlerCode);
if (columnNames.ContainsCI("ContactMethodCode")) AddCommandParameter(dbCommand, "@ContactMethodCode", _ContactMethodCode);
if (columnNames.ContainsCI("ContactCallCycleCode")) AddCommandParameter(dbCommand, "@ContactCallCycleCode", _ContactCallCycleCode);
if (columnNames.ContainsCI("CallsPerYear")) AddCommandParameter(dbCommand, "@CallsPerYear", _CallsPerYear);
if (columnNames.ContainsCI("LastCall")) AddCommandParameter(dbCommand, "@LastCall", _LastCall);
if (columnNames.ContainsCI("CommodityIdSalesDefault")) AddCommandParameter(dbCommand, "@CommodityIdSalesDefault", _CommodityIdSalesDefault);
if (columnNames.ContainsCI("OrderLeadTimeCode")) AddCommandParameter(dbCommand, "@OrderLeadTimeCode", _OrderLeadTimeCode);
if (columnNames.ContainsCI("DeliveryTypeCode")) AddCommandParameter(dbCommand, "@DeliveryTypeCode", _DeliveryTypeCode);
if (columnNames.ContainsCI("DeliveryMethodCode")) AddCommandParameter(dbCommand, "@DeliveryMethodCode", _DeliveryMethodCode);
if (columnNames.ContainsCI("DeliveryCourierCode")) AddCommandParameter(dbCommand, "@DeliveryCourierCode", _DeliveryCourierCode);
if (columnNames.ContainsCI("DeliveryBookInCode")) AddCommandParameter(dbCommand, "@DeliveryBookInCode", _DeliveryBookInCode);
if (columnNames.ContainsCI("AmountTransMax")) AddCommandParameter(dbCommand, "@AmountTransMax", _AmountTransMax);
if (columnNames.ContainsCI("AnnualSalesTarget")) AddCommandParameter(dbCommand, "@AnnualSalesTarget", _AnnualSalesTarget);
if (columnNames.ContainsCI("CreditLimit")) AddCommandParameter(dbCommand, "@CreditLimit", _CreditLimit);
if (columnNames.ContainsCI("AccountBalance")) AddCommandParameter(dbCommand, "@AccountBalance", _AccountBalance);
if (columnNames.ContainsCI("DiscountType")) AddCommandParameter(dbCommand, "@DiscountType", _DiscountType);
if (columnNames.ContainsCI("DiscountRate")) AddCommandParameter(dbCommand, "@DiscountRate", _DiscountRate);
if (columnNames.ContainsCI("PriceSetId")) AddCommandParameter(dbCommand, "@PriceSetId", _PriceSetId);
if (columnNames.ContainsCI("TaxCodeId")) AddCommandParameter(dbCommand, "@TaxCodeId", _TaxCodeId);
if (columnNames.ContainsCI("PaymentTerms")) AddCommandParameter(dbCommand, "@PaymentTerms", _PaymentTerms);
if (columnNames.ContainsCI("InvoiceDesc")) AddCommandParameter(dbCommand, "@InvoiceDesc", _InvoiceDesc);
if (columnNames.ContainsCI("Terminated")) AddCommandParameter(dbCommand, "@Terminated", _Terminated);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("AffIdOwner")) AddCommandParameter(dbCommand, "@AffIdOwner", _AffIdOwner);
if (columnNames.ContainsCI("AffIdTarget")) AddCommandParameter(dbCommand, "@AffIdTarget", _AffIdTarget);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Code")) AddCommandParameter(dbCommand, "@Code", _Code);
if (columnNames.ContainsCI("ExtRef")) AddCommandParameter(dbCommand, "@ExtRef", _ExtRef);
if (columnNames.ContainsCI("Location")) AddCommandParameter(dbCommand, "@Location", _Location);
if (columnNames.ContainsCI("Role")) AddCommandParameter(dbCommand, "@Role", _Role);
if (columnNames.ContainsCI("PhoneMain")) AddCommandParameter(dbCommand, "@PhoneMain", _PhoneMain);
if (columnNames.ContainsCI("Email")) AddCommandParameter(dbCommand, "@Email", _Email);
if (columnNames.ContainsCI("Group")) AddCommandParameter(dbCommand, "@Group", _Group);
if (columnNames.ContainsCI("DescDetail")) AddCommandParameter(dbCommand, "@DescDetail", _DescDetail);
if (columnNames.ContainsCI("DefaultNominalCode")) AddCommandParameter(dbCommand, "@DefaultNominalCode", _DefaultNominalCode);
if (columnNames.ContainsCI("AccountManagerCode")) AddCommandParameter(dbCommand, "@AccountManagerCode", _AccountManagerCode);
if (columnNames.ContainsCI("AccountHandlerCode")) AddCommandParameter(dbCommand, "@AccountHandlerCode", _AccountHandlerCode);
if (columnNames.ContainsCI("AccountTypeCode")) AddCommandParameter(dbCommand, "@AccountTypeCode", _AccountTypeCode);
if (columnNames.ContainsCI("AccountRatingCode")) AddCommandParameter(dbCommand, "@AccountRatingCode", _AccountRatingCode);
if (columnNames.ContainsCI("ContactAreaCode")) AddCommandParameter(dbCommand, "@ContactAreaCode", _ContactAreaCode);
if (columnNames.ContainsCI("ContactHandlerCode")) AddCommandParameter(dbCommand, "@ContactHandlerCode", _ContactHandlerCode);
if (columnNames.ContainsCI("ContactMethodCode")) AddCommandParameter(dbCommand, "@ContactMethodCode", _ContactMethodCode);
if (columnNames.ContainsCI("ContactCallCycleCode")) AddCommandParameter(dbCommand, "@ContactCallCycleCode", _ContactCallCycleCode);
if (columnNames.ContainsCI("CallsPerYear")) AddCommandParameter(dbCommand, "@CallsPerYear", _CallsPerYear);
if (columnNames.ContainsCI("LastCall")) AddCommandParameter(dbCommand, "@LastCall", _LastCall);
if (columnNames.ContainsCI("CommodityIdSalesDefault")) AddCommandParameter(dbCommand, "@CommodityIdSalesDefault", _CommodityIdSalesDefault);
if (columnNames.ContainsCI("OrderLeadTimeCode")) AddCommandParameter(dbCommand, "@OrderLeadTimeCode", _OrderLeadTimeCode);
if (columnNames.ContainsCI("DeliveryTypeCode")) AddCommandParameter(dbCommand, "@DeliveryTypeCode", _DeliveryTypeCode);
if (columnNames.ContainsCI("DeliveryMethodCode")) AddCommandParameter(dbCommand, "@DeliveryMethodCode", _DeliveryMethodCode);
if (columnNames.ContainsCI("DeliveryCourierCode")) AddCommandParameter(dbCommand, "@DeliveryCourierCode", _DeliveryCourierCode);
if (columnNames.ContainsCI("DeliveryBookInCode")) AddCommandParameter(dbCommand, "@DeliveryBookInCode", _DeliveryBookInCode);
if (columnNames.ContainsCI("AmountTransMax")) AddCommandParameter(dbCommand, "@AmountTransMax", _AmountTransMax);
if (columnNames.ContainsCI("AnnualSalesTarget")) AddCommandParameter(dbCommand, "@AnnualSalesTarget", _AnnualSalesTarget);
if (columnNames.ContainsCI("CreditLimit")) AddCommandParameter(dbCommand, "@CreditLimit", _CreditLimit);
if (columnNames.ContainsCI("AccountBalance")) AddCommandParameter(dbCommand, "@AccountBalance", _AccountBalance);
if (columnNames.ContainsCI("DiscountType")) AddCommandParameter(dbCommand, "@DiscountType", _DiscountType);
if (columnNames.ContainsCI("DiscountRate")) AddCommandParameter(dbCommand, "@DiscountRate", _DiscountRate);
if (columnNames.ContainsCI("PriceSetId")) AddCommandParameter(dbCommand, "@PriceSetId", _PriceSetId);
if (columnNames.ContainsCI("TaxCodeId")) AddCommandParameter(dbCommand, "@TaxCodeId", _TaxCodeId);
if (columnNames.ContainsCI("PaymentTerms")) AddCommandParameter(dbCommand, "@PaymentTerms", _PaymentTerms);
if (columnNames.ContainsCI("InvoiceDesc")) AddCommandParameter(dbCommand, "@InvoiceDesc", _InvoiceDesc);
if (columnNames.ContainsCI("Terminated")) AddCommandParameter(dbCommand, "@Terminated", _Terminated);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,224 @@
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class CommodityCustomer_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _CommodityId { get; } = new ColumnDataInt32("CommodityId");
public ColumnDataInt32 _AssocIdCustomer { get; } = new ColumnDataInt32("AssocIdCustomer");
public ColumnDataString _ProductCode { get; } = new ColumnDataString("ProductCode");
public ColumnDataDecimal _AmountRetail { get; } = new ColumnDataDecimal("AmountRetail");
public ColumnDataInt32 _CurrencyIdRetail { get; } = new ColumnDataInt32("CurrencyIdRetail");
public ColumnDataString _PromotionCode { get; } = new ColumnDataString("PromotionCode");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"CommodityId",
"AssocIdCustomer",
"ProductCode",
"AmountRetail",
"CurrencyIdRetail",
"PromotionCode",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"CommodityId",
"AssocIdCustomer",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal CommodityCustomer_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "CommodityCustomer";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _CommodityId { get { return Cols._CommodityId.Value; } set { Cols._CommodityId.Value = value; } }
public Int32 _AssocIdCustomer { get { return Cols._AssocIdCustomer.Value; } set { Cols._AssocIdCustomer.Value = value; } }
public String _ProductCode { get { return Cols._ProductCode.Value; } set { Cols._ProductCode.Value = value; } }
public Decimal _AmountRetail { get { return Cols._AmountRetail.Value; } set { Cols._AmountRetail.Value = value; } }
public Int32 _CurrencyIdRetail { get { return Cols._CurrencyIdRetail.Value; } set { Cols._CurrencyIdRetail.Value = value; } }
public String _PromotionCode { get { return Cols._PromotionCode.Value; } set { Cols._PromotionCode.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_CommodityId = GetFieldInt32(dbDataReader, "CommodityId", _CommodityId);
_AssocIdCustomer = GetFieldInt32(dbDataReader, "AssocIdCustomer", _AssocIdCustomer);
_ProductCode = GetFieldString(dbDataReader, "ProductCode", _ProductCode);
_AmountRetail = GetFieldDecimal(dbDataReader, "AmountRetail", _AmountRetail);
_CurrencyIdRetail = GetFieldInt32(dbDataReader, "CurrencyIdRetail", _CurrencyIdRetail);
_PromotionCode = GetFieldString(dbDataReader, "PromotionCode", _PromotionCode);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("CommodityId")) AddCommandParameter(dbCommand, "@CommodityId", _CommodityId);
if (columnNames.ContainsCI("AssocIdCustomer")) AddCommandParameter(dbCommand, "@AssocIdCustomer", _AssocIdCustomer);
if (columnNames.ContainsCI("ProductCode")) AddCommandParameter(dbCommand, "@ProductCode", _ProductCode);
if (columnNames.ContainsCI("AmountRetail")) AddCommandParameter(dbCommand, "@AmountRetail", _AmountRetail);
if (columnNames.ContainsCI("CurrencyIdRetail")) AddCommandParameter(dbCommand, "@CurrencyIdRetail", _CurrencyIdRetail);
if (columnNames.ContainsCI("PromotionCode")) AddCommandParameter(dbCommand, "@PromotionCode", _PromotionCode);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE CommodityId=@CommodityId AND AssocIdCustomer=@AssocIdCustomer;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE CommodityId=? AND AssocIdCustomer=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("ProductCode")) AddCommandParameter(dbCommand, "@ProductCode", _ProductCode);
if (columnNames.ContainsCI("AmountRetail")) AddCommandParameter(dbCommand, "@AmountRetail", _AmountRetail);
if (columnNames.ContainsCI("CurrencyIdRetail")) AddCommandParameter(dbCommand, "@CurrencyIdRetail", _CurrencyIdRetail);
if (columnNames.ContainsCI("PromotionCode")) AddCommandParameter(dbCommand, "@PromotionCode", _PromotionCode);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@CommodityId", _CommodityId);
AddCommandParameter(dbCommand, "@AssocIdCustomer", _AssocIdCustomer);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,218 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class CommoditySupplier_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _CommodityId { get; } = new ColumnDataInt32("CommodityId");
public ColumnDataInt32 _AssocIdSupplier { get; } = new ColumnDataInt32("AssocIdSupplier");
public ColumnDataString _ProductCode { get; } = new ColumnDataString("ProductCode");
public ColumnDataDecimal _AmountCost { get; } = new ColumnDataDecimal("AmountCost");
public ColumnDataInt32 _CurrencyIdCost { get; } = new ColumnDataInt32("CurrencyIdCost");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"CommodityId",
"AssocIdSupplier",
"ProductCode",
"AmountCost",
"CurrencyIdCost",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"CommodityId",
"AssocIdSupplier",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal CommoditySupplier_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "CommoditySupplier";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _CommodityId { get { return Cols._CommodityId.Value; } set { Cols._CommodityId.Value = value; } }
public Int32 _AssocIdSupplier { get { return Cols._AssocIdSupplier.Value; } set { Cols._AssocIdSupplier.Value = value; } }
public String _ProductCode { get { return Cols._ProductCode.Value; } set { Cols._ProductCode.Value = value; } }
public Decimal _AmountCost { get { return Cols._AmountCost.Value; } set { Cols._AmountCost.Value = value; } }
public Int32 _CurrencyIdCost { get { return Cols._CurrencyIdCost.Value; } set { Cols._CurrencyIdCost.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_CommodityId = GetFieldInt32(dbDataReader, "CommodityId", _CommodityId);
_AssocIdSupplier = GetFieldInt32(dbDataReader, "AssocIdSupplier", _AssocIdSupplier);
_ProductCode = GetFieldString(dbDataReader, "ProductCode", _ProductCode);
_AmountCost = GetFieldDecimal(dbDataReader, "AmountCost", _AmountCost);
_CurrencyIdCost = GetFieldInt32(dbDataReader, "CurrencyIdCost", _CurrencyIdCost);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("CommodityId")) AddCommandParameter(dbCommand, "@CommodityId", _CommodityId);
if (columnNames.ContainsCI("AssocIdSupplier")) AddCommandParameter(dbCommand, "@AssocIdSupplier", _AssocIdSupplier);
if (columnNames.ContainsCI("ProductCode")) AddCommandParameter(dbCommand, "@ProductCode", _ProductCode);
if (columnNames.ContainsCI("AmountCost")) AddCommandParameter(dbCommand, "@AmountCost", _AmountCost);
if (columnNames.ContainsCI("CurrencyIdCost")) AddCommandParameter(dbCommand, "@CurrencyIdCost", _CurrencyIdCost);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE CommodityId=@CommodityId AND AssocIdSupplier=@AssocIdSupplier;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE CommodityId=? AND AssocIdSupplier=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("ProductCode")) AddCommandParameter(dbCommand, "@ProductCode", _ProductCode);
if (columnNames.ContainsCI("AmountCost")) AddCommandParameter(dbCommand, "@AmountCost", _AmountCost);
if (columnNames.ContainsCI("CurrencyIdCost")) AddCommandParameter(dbCommand, "@CurrencyIdCost", _CurrencyIdCost);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@CommodityId", _CommodityId);
AddCommandParameter(dbCommand, "@AssocIdSupplier", _AssocIdSupplier);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,703 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class Commodity_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt32 _AffIdOwner { get; } = new ColumnDataInt32("AffIdOwner");
public ColumnDataInt16 _Type { get; } = new ColumnDataInt16("Type");
public ColumnDataString _Code { get; } = new ColumnDataString("Code");
public ColumnDataString _DescBrief { get; } = new ColumnDataString("DescBrief");
public ColumnDataString _DescOrder { get; } = new ColumnDataString("DescOrder");
public ColumnDataString _DescDetail { get; } = new ColumnDataString("DescDetail");
public ColumnDataString _DrawingNo { get; } = new ColumnDataString("DrawingNo");
public ColumnDataString _DrawingIssue { get; } = new ColumnDataString("DrawingIssue");
public ColumnDataInt32 _AssetCatId { get; } = new ColumnDataInt32("AssetCatId");
public ColumnDataString _ImagePath { get; } = new ColumnDataString("ImagePath");
public ColumnDataString _Category { get; } = new ColumnDataString("Category");
public ColumnDataString _Category2 { get; } = new ColumnDataString("Category2");
public ColumnDataString _Category3 { get; } = new ColumnDataString("Category3");
public ColumnDataString _Location { get; } = new ColumnDataString("Location");
public ColumnDataString _Department { get; } = new ColumnDataString("Department");
public ColumnDataString _CatalogRef { get; } = new ColumnDataString("CatalogRef");
public ColumnDataDecimal _Weight { get; } = new ColumnDataDecimal("Weight");
public ColumnDataInt32 _UomIdWeight { get; } = new ColumnDataInt32("UomIdWeight");
public ColumnDataDecimal _Length { get; } = new ColumnDataDecimal("Length");
public ColumnDataInt32 _UomIdLength { get; } = new ColumnDataInt32("UomIdLength");
public ColumnDataDecimal _Volume { get; } = new ColumnDataDecimal("Volume");
public ColumnDataInt32 _UomIdVolume { get; } = new ColumnDataInt32("UomIdVolume");
public ColumnDataDecimal _Density { get; } = new ColumnDataDecimal("Density");
public ColumnDataInt32 _UomIdDensity { get; } = new ColumnDataInt32("UomIdDensity");
public ColumnDataDecimal _BoxQuantity { get; } = new ColumnDataDecimal("BoxQuantity");
public ColumnDataInt32 _UomIdBox { get; } = new ColumnDataInt32("UomIdBox");
public ColumnDataString _Dimensions { get; } = new ColumnDataString("Dimensions");
public ColumnDataString _SpecSummary { get; } = new ColumnDataString("SpecSummary");
public ColumnDataString _NominalCode { get; } = new ColumnDataString("NominalCode");
public ColumnDataString _NominalCodePurchase { get; } = new ColumnDataString("NominalCodePurchase");
public ColumnDataString _ICNTariffCode { get; } = new ColumnDataString("ICNTariffCode");
public ColumnDataDecimal _TimeProd { get; } = new ColumnDataDecimal("TimeProd");
public ColumnDataInt32 _UomIdTimeProd { get; } = new ColumnDataInt32("UomIdTimeProd");
public ColumnDataString _RangeCode { get; } = new ColumnDataString("RangeCode");
public ColumnDataString _ColourCode { get; } = new ColumnDataString("ColourCode");
public ColumnDataString _SourceCode { get; } = new ColumnDataString("SourceCode");
public ColumnDataString _SupplyMethodCode { get; } = new ColumnDataString("SupplyMethodCode");
public ColumnDataString _HandlingCode { get; } = new ColumnDataString("HandlingCode");
public ColumnDataString _DeliveryCode { get; } = new ColumnDataString("DeliveryCode");
public ColumnDataString _MaterialCode { get; } = new ColumnDataString("MaterialCode");
public ColumnDataString _FinishCode { get; } = new ColumnDataString("FinishCode");
public ColumnDataString _PromotionCode { get; } = new ColumnDataString("PromotionCode");
public ColumnDataInt32 _AssIdSupplier { get; } = new ColumnDataInt32("AssIdSupplier");
public ColumnDataString _SupplierRef { get; } = new ColumnDataString("SupplierRef");
public ColumnDataDecimal _CostPrice { get; } = new ColumnDataDecimal("CostPrice");
public ColumnDataString _PlaceOfOrigin { get; } = new ColumnDataString("PlaceOfOrigin");
public ColumnDataDecimal _MaterialCost { get; } = new ColumnDataDecimal("MaterialCost");
public ColumnDataInt32 _CurrencyIdMaterial { get; } = new ColumnDataInt32("CurrencyIdMaterial");
public ColumnDataDecimal _ExWorksCost { get; } = new ColumnDataDecimal("ExWorksCost");
public ColumnDataInt32 _CurrencyIdExWorks { get; } = new ColumnDataInt32("CurrencyIdExWorks");
public ColumnDataDecimal _ReorderLevel { get; } = new ColumnDataDecimal("ReorderLevel");
public ColumnDataDecimal _ReorderQty { get; } = new ColumnDataDecimal("ReorderQty");
public ColumnDataDecimal _QtyOnOrder { get; } = new ColumnDataDecimal("QtyOnOrder");
public ColumnDataInt32 _AssIdCustomer { get; } = new ColumnDataInt32("AssIdCustomer");
public ColumnDataDecimal _SalesPrice { get; } = new ColumnDataDecimal("SalesPrice");
public ColumnDataDecimal _RetailPrice { get; } = new ColumnDataDecimal("RetailPrice");
public ColumnDataDecimal _RetailPricePlanned { get; } = new ColumnDataDecimal("RetailPricePlanned");
public ColumnDataInt32 _UomIdSale { get; } = new ColumnDataInt32("UomIdSale");
public ColumnDataDecimal _PackQty { get; } = new ColumnDataDecimal("PackQty");
public ColumnDataDecimal _CarriageCostIndicative { get; } = new ColumnDataDecimal("CarriageCostIndicative");
public ColumnDataDecimal _MinOrderQty { get; } = new ColumnDataDecimal("MinOrderQty");
public ColumnDataInt32 _TaxCodeId { get; } = new ColumnDataInt32("TaxCodeId");
public ColumnDataDateTime _LastOrderDate { get; } = new ColumnDataDateTime("LastOrderDate");
public ColumnDataDecimal _LastOrderQty { get; } = new ColumnDataDecimal("LastOrderQty");
public ColumnDataDecimal _QtyInStock { get; } = new ColumnDataDecimal("QtyInStock");
public ColumnDataDecimal _QtyAllocated { get; } = new ColumnDataDecimal("QtyAllocated");
public ColumnDataDecimal _FreeStock { get; } = new ColumnDataDecimal("FreeStock");
public ColumnDataDateTime _StockTakeDate { get; } = new ColumnDataDateTime("StockTakeDate");
public ColumnDataDecimal _StockTakeQty { get; } = new ColumnDataDecimal("StockTakeQty");
public ColumnDataInt16 _OrderQtyDecimals { get; } = new ColumnDataInt16("OrderQtyDecimals");
public ColumnDataInt32 _CommodityIdSalesProj { get; } = new ColumnDataInt32("CommodityIdSalesProj");
public ColumnDataString _SalesProjMonthlyProp { get; } = new ColumnDataString("SalesProjMonthlyProp");
public ColumnDataDecimal _SalesProjAnnual { get; } = new ColumnDataDecimal("SalesProjAnnual");
public ColumnDataDecimal _SalesProjMonth01 { get; } = new ColumnDataDecimal("SalesProjMonth01");
public ColumnDataDecimal _SalesProjMonth02 { get; } = new ColumnDataDecimal("SalesProjMonth02");
public ColumnDataDecimal _SalesProjMonth03 { get; } = new ColumnDataDecimal("SalesProjMonth03");
public ColumnDataDecimal _SalesProjMonth04 { get; } = new ColumnDataDecimal("SalesProjMonth04");
public ColumnDataDecimal _SalesProjMonth05 { get; } = new ColumnDataDecimal("SalesProjMonth05");
public ColumnDataDecimal _SalesProjMonth06 { get; } = new ColumnDataDecimal("SalesProjMonth06");
public ColumnDataDecimal _SalesProjMonth07 { get; } = new ColumnDataDecimal("SalesProjMonth07");
public ColumnDataDecimal _SalesProjMonth08 { get; } = new ColumnDataDecimal("SalesProjMonth08");
public ColumnDataDecimal _SalesProjMonth09 { get; } = new ColumnDataDecimal("SalesProjMonth09");
public ColumnDataDecimal _SalesProjMonth10 { get; } = new ColumnDataDecimal("SalesProjMonth10");
public ColumnDataDecimal _SalesProjMonth11 { get; } = new ColumnDataDecimal("SalesProjMonth11");
public ColumnDataDecimal _SalesProjMonth12 { get; } = new ColumnDataDecimal("SalesProjMonth12");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"AffIdOwner",
"Type",
"Code",
"DescBrief",
"DescOrder",
"DescDetail",
"DrawingNo",
"DrawingIssue",
"AssetCatId",
"ImagePath",
"Category",
"Category2",
"Category3",
"Location",
"Department",
"CatalogRef",
"Weight",
"UomIdWeight",
"Length",
"UomIdLength",
"Volume",
"UomIdVolume",
"Density",
"UomIdDensity",
"BoxQuantity",
"UomIdBox",
"Dimensions",
"SpecSummary",
"NominalCode",
"NominalCodePurchase",
"ICNTariffCode",
"TimeProd",
"UomIdTimeProd",
"RangeCode",
"ColourCode",
"SourceCode",
"SupplyMethodCode",
"HandlingCode",
"DeliveryCode",
"MaterialCode",
"FinishCode",
"PromotionCode",
"AssIdSupplier",
"SupplierRef",
"CostPrice",
"PlaceOfOrigin",
"MaterialCost",
"CurrencyIdMaterial",
"ExWorksCost",
"CurrencyIdExWorks",
"ReorderLevel",
"ReorderQty",
"QtyOnOrder",
"AssIdCustomer",
"SalesPrice",
"RetailPrice",
"RetailPricePlanned",
"UomIdSale",
"PackQty",
"CarriageCostIndicative",
"MinOrderQty",
"TaxCodeId",
"LastOrderDate",
"LastOrderQty",
"QtyInStock",
"QtyAllocated",
"FreeStock",
"StockTakeDate",
"StockTakeQty",
"OrderQtyDecimals",
"CommodityIdSalesProj",
"SalesProjMonthlyProp",
"SalesProjAnnual",
"SalesProjMonth01",
"SalesProjMonth02",
"SalesProjMonth03",
"SalesProjMonth04",
"SalesProjMonth05",
"SalesProjMonth06",
"SalesProjMonth07",
"SalesProjMonth08",
"SalesProjMonth09",
"SalesProjMonth10",
"SalesProjMonth11",
"SalesProjMonth12",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal Commodity_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "Commodity";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int32 _AffIdOwner { get { return Cols._AffIdOwner.Value; } set { Cols._AffIdOwner.Value = value; } }
public Int16 _Type { get { return Cols._Type.Value; } set { Cols._Type.Value = value; } }
public String _Code { get { return Cols._Code.Value; } set { Cols._Code.Value = value; } }
public String _DescBrief { get { return Cols._DescBrief.Value; } set { Cols._DescBrief.Value = value; } }
public String _DescOrder { get { return Cols._DescOrder.Value; } set { Cols._DescOrder.Value = value; } }
public String _DescDetail { get { return Cols._DescDetail.Value; } set { Cols._DescDetail.Value = value; } }
public String _DrawingNo { get { return Cols._DrawingNo.Value; } set { Cols._DrawingNo.Value = value; } }
public String _DrawingIssue { get { return Cols._DrawingIssue.Value; } set { Cols._DrawingIssue.Value = value; } }
public Int32 _AssetCatId { get { return Cols._AssetCatId.Value; } set { Cols._AssetCatId.Value = value; } }
public String _ImagePath { get { return Cols._ImagePath.Value; } set { Cols._ImagePath.Value = value; } }
public String _Category { get { return Cols._Category.Value; } set { Cols._Category.Value = value; } }
public String _Category2 { get { return Cols._Category2.Value; } set { Cols._Category2.Value = value; } }
public String _Category3 { get { return Cols._Category3.Value; } set { Cols._Category3.Value = value; } }
public String _Location { get { return Cols._Location.Value; } set { Cols._Location.Value = value; } }
public String _Department { get { return Cols._Department.Value; } set { Cols._Department.Value = value; } }
public String _CatalogRef { get { return Cols._CatalogRef.Value; } set { Cols._CatalogRef.Value = value; } }
public Decimal _Weight { get { return Cols._Weight.Value; } set { Cols._Weight.Value = value; } }
public Int32 _UomIdWeight { get { return Cols._UomIdWeight.Value; } set { Cols._UomIdWeight.Value = value; } }
public Decimal _Length { get { return Cols._Length.Value; } set { Cols._Length.Value = value; } }
public Int32 _UomIdLength { get { return Cols._UomIdLength.Value; } set { Cols._UomIdLength.Value = value; } }
public Decimal _Volume { get { return Cols._Volume.Value; } set { Cols._Volume.Value = value; } }
public Int32 _UomIdVolume { get { return Cols._UomIdVolume.Value; } set { Cols._UomIdVolume.Value = value; } }
public Decimal _Density { get { return Cols._Density.Value; } set { Cols._Density.Value = value; } }
public Int32 _UomIdDensity { get { return Cols._UomIdDensity.Value; } set { Cols._UomIdDensity.Value = value; } }
public Decimal _BoxQuantity { get { return Cols._BoxQuantity.Value; } set { Cols._BoxQuantity.Value = value; } }
public Int32 _UomIdBox { get { return Cols._UomIdBox.Value; } set { Cols._UomIdBox.Value = value; } }
public String _Dimensions { get { return Cols._Dimensions.Value; } set { Cols._Dimensions.Value = value; } }
public String _SpecSummary { get { return Cols._SpecSummary.Value; } set { Cols._SpecSummary.Value = value; } }
public String _NominalCode { get { return Cols._NominalCode.Value; } set { Cols._NominalCode.Value = value; } }
public String _NominalCodePurchase { get { return Cols._NominalCodePurchase.Value; } set { Cols._NominalCodePurchase.Value = value; } }
public String _ICNTariffCode { get { return Cols._ICNTariffCode.Value; } set { Cols._ICNTariffCode.Value = value; } }
public Decimal _TimeProd { get { return Cols._TimeProd.Value; } set { Cols._TimeProd.Value = value; } }
public Int32 _UomIdTimeProd { get { return Cols._UomIdTimeProd.Value; } set { Cols._UomIdTimeProd.Value = value; } }
public String _RangeCode { get { return Cols._RangeCode.Value; } set { Cols._RangeCode.Value = value; } }
public String _ColourCode { get { return Cols._ColourCode.Value; } set { Cols._ColourCode.Value = value; } }
public String _SourceCode { get { return Cols._SourceCode.Value; } set { Cols._SourceCode.Value = value; } }
public String _SupplyMethodCode { get { return Cols._SupplyMethodCode.Value; } set { Cols._SupplyMethodCode.Value = value; } }
public String _HandlingCode { get { return Cols._HandlingCode.Value; } set { Cols._HandlingCode.Value = value; } }
public String _DeliveryCode { get { return Cols._DeliveryCode.Value; } set { Cols._DeliveryCode.Value = value; } }
public String _MaterialCode { get { return Cols._MaterialCode.Value; } set { Cols._MaterialCode.Value = value; } }
public String _FinishCode { get { return Cols._FinishCode.Value; } set { Cols._FinishCode.Value = value; } }
public String _PromotionCode { get { return Cols._PromotionCode.Value; } set { Cols._PromotionCode.Value = value; } }
public Int32 _AssIdSupplier { get { return Cols._AssIdSupplier.Value; } set { Cols._AssIdSupplier.Value = value; } }
public String _SupplierRef { get { return Cols._SupplierRef.Value; } set { Cols._SupplierRef.Value = value; } }
public Decimal _CostPrice { get { return Cols._CostPrice.Value; } set { Cols._CostPrice.Value = value; } }
public String _PlaceOfOrigin { get { return Cols._PlaceOfOrigin.Value; } set { Cols._PlaceOfOrigin.Value = value; } }
public Decimal _MaterialCost { get { return Cols._MaterialCost.Value; } set { Cols._MaterialCost.Value = value; } }
public Int32 _CurrencyIdMaterial { get { return Cols._CurrencyIdMaterial.Value; } set { Cols._CurrencyIdMaterial.Value = value; } }
public Decimal _ExWorksCost { get { return Cols._ExWorksCost.Value; } set { Cols._ExWorksCost.Value = value; } }
public Int32 _CurrencyIdExWorks { get { return Cols._CurrencyIdExWorks.Value; } set { Cols._CurrencyIdExWorks.Value = value; } }
public Decimal _ReorderLevel { get { return Cols._ReorderLevel.Value; } set { Cols._ReorderLevel.Value = value; } }
public Decimal _ReorderQty { get { return Cols._ReorderQty.Value; } set { Cols._ReorderQty.Value = value; } }
public Decimal _QtyOnOrder { get { return Cols._QtyOnOrder.Value; } set { Cols._QtyOnOrder.Value = value; } }
public Int32 _AssIdCustomer { get { return Cols._AssIdCustomer.Value; } set { Cols._AssIdCustomer.Value = value; } }
public Decimal _SalesPrice { get { return Cols._SalesPrice.Value; } set { Cols._SalesPrice.Value = value; } }
public Decimal _RetailPrice { get { return Cols._RetailPrice.Value; } set { Cols._RetailPrice.Value = value; } }
public Decimal _RetailPricePlanned { get { return Cols._RetailPricePlanned.Value; } set { Cols._RetailPricePlanned.Value = value; } }
public Int32 _UomIdSale { get { return Cols._UomIdSale.Value; } set { Cols._UomIdSale.Value = value; } }
public Decimal _PackQty { get { return Cols._PackQty.Value; } set { Cols._PackQty.Value = value; } }
public Decimal _CarriageCostIndicative { get { return Cols._CarriageCostIndicative.Value; } set { Cols._CarriageCostIndicative.Value = value; } }
public Decimal _MinOrderQty { get { return Cols._MinOrderQty.Value; } set { Cols._MinOrderQty.Value = value; } }
public Int32 _TaxCodeId { get { return Cols._TaxCodeId.Value; } set { Cols._TaxCodeId.Value = value; } }
public DateTime _LastOrderDate { get { return Cols._LastOrderDate.Value; } set { Cols._LastOrderDate.Value = value; } }
public Decimal _LastOrderQty { get { return Cols._LastOrderQty.Value; } set { Cols._LastOrderQty.Value = value; } }
public Decimal _QtyInStock { get { return Cols._QtyInStock.Value; } set { Cols._QtyInStock.Value = value; } }
public Decimal _QtyAllocated { get { return Cols._QtyAllocated.Value; } set { Cols._QtyAllocated.Value = value; } }
public Decimal _FreeStock { get { return Cols._FreeStock.Value; } set { Cols._FreeStock.Value = value; } }
public DateTime _StockTakeDate { get { return Cols._StockTakeDate.Value; } set { Cols._StockTakeDate.Value = value; } }
public Decimal _StockTakeQty { get { return Cols._StockTakeQty.Value; } set { Cols._StockTakeQty.Value = value; } }
public Int16 _OrderQtyDecimals { get { return Cols._OrderQtyDecimals.Value; } set { Cols._OrderQtyDecimals.Value = value; } }
public Int32 _CommodityIdSalesProj { get { return Cols._CommodityIdSalesProj.Value; } set { Cols._CommodityIdSalesProj.Value = value; } }
public String _SalesProjMonthlyProp { get { return Cols._SalesProjMonthlyProp.Value; } set { Cols._SalesProjMonthlyProp.Value = value; } }
public Decimal _SalesProjAnnual { get { return Cols._SalesProjAnnual.Value; } set { Cols._SalesProjAnnual.Value = value; } }
public Decimal _SalesProjMonth01 { get { return Cols._SalesProjMonth01.Value; } set { Cols._SalesProjMonth01.Value = value; } }
public Decimal _SalesProjMonth02 { get { return Cols._SalesProjMonth02.Value; } set { Cols._SalesProjMonth02.Value = value; } }
public Decimal _SalesProjMonth03 { get { return Cols._SalesProjMonth03.Value; } set { Cols._SalesProjMonth03.Value = value; } }
public Decimal _SalesProjMonth04 { get { return Cols._SalesProjMonth04.Value; } set { Cols._SalesProjMonth04.Value = value; } }
public Decimal _SalesProjMonth05 { get { return Cols._SalesProjMonth05.Value; } set { Cols._SalesProjMonth05.Value = value; } }
public Decimal _SalesProjMonth06 { get { return Cols._SalesProjMonth06.Value; } set { Cols._SalesProjMonth06.Value = value; } }
public Decimal _SalesProjMonth07 { get { return Cols._SalesProjMonth07.Value; } set { Cols._SalesProjMonth07.Value = value; } }
public Decimal _SalesProjMonth08 { get { return Cols._SalesProjMonth08.Value; } set { Cols._SalesProjMonth08.Value = value; } }
public Decimal _SalesProjMonth09 { get { return Cols._SalesProjMonth09.Value; } set { Cols._SalesProjMonth09.Value = value; } }
public Decimal _SalesProjMonth10 { get { return Cols._SalesProjMonth10.Value; } set { Cols._SalesProjMonth10.Value = value; } }
public Decimal _SalesProjMonth11 { get { return Cols._SalesProjMonth11.Value; } set { Cols._SalesProjMonth11.Value = value; } }
public Decimal _SalesProjMonth12 { get { return Cols._SalesProjMonth12.Value; } set { Cols._SalesProjMonth12.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_AffIdOwner = GetFieldInt32(dbDataReader, "AffIdOwner", _AffIdOwner);
_Type = GetFieldInt16(dbDataReader, "Type", _Type);
_Code = GetFieldString(dbDataReader, "Code", _Code);
_DescBrief = GetFieldString(dbDataReader, "DescBrief", _DescBrief);
_DescOrder = GetFieldString(dbDataReader, "DescOrder", _DescOrder);
_DescDetail = GetFieldString(dbDataReader, "DescDetail", _DescDetail);
_DrawingNo = GetFieldString(dbDataReader, "DrawingNo", _DrawingNo);
_DrawingIssue = GetFieldString(dbDataReader, "DrawingIssue", _DrawingIssue);
_AssetCatId = GetFieldInt32(dbDataReader, "AssetCatId", _AssetCatId);
_ImagePath = GetFieldString(dbDataReader, "ImagePath", _ImagePath);
_Category = GetFieldString(dbDataReader, "Category", _Category);
_Category2 = GetFieldString(dbDataReader, "Category2", _Category2);
_Category3 = GetFieldString(dbDataReader, "Category3", _Category3);
_Location = GetFieldString(dbDataReader, "Location", _Location);
_Department = GetFieldString(dbDataReader, "Department", _Department);
_CatalogRef = GetFieldString(dbDataReader, "CatalogRef", _CatalogRef);
_Weight = GetFieldDecimal(dbDataReader, "Weight", _Weight);
_UomIdWeight = GetFieldInt32(dbDataReader, "UomIdWeight", _UomIdWeight);
_Length = GetFieldDecimal(dbDataReader, "Length", _Length);
_UomIdLength = GetFieldInt32(dbDataReader, "UomIdLength", _UomIdLength);
_Volume = GetFieldDecimal(dbDataReader, "Volume", _Volume);
_UomIdVolume = GetFieldInt32(dbDataReader, "UomIdVolume", _UomIdVolume);
_Density = GetFieldDecimal(dbDataReader, "Density", _Density);
_UomIdDensity = GetFieldInt32(dbDataReader, "UomIdDensity", _UomIdDensity);
_BoxQuantity = GetFieldDecimal(dbDataReader, "BoxQuantity", _BoxQuantity);
_UomIdBox = GetFieldInt32(dbDataReader, "UomIdBox", _UomIdBox);
_Dimensions = GetFieldString(dbDataReader, "Dimensions", _Dimensions);
_SpecSummary = GetFieldString(dbDataReader, "SpecSummary", _SpecSummary);
_NominalCode = GetFieldString(dbDataReader, "NominalCode", _NominalCode);
_NominalCodePurchase = GetFieldString(dbDataReader, "NominalCodePurchase", _NominalCodePurchase);
_ICNTariffCode = GetFieldString(dbDataReader, "ICNTariffCode", _ICNTariffCode);
_TimeProd = GetFieldDecimal(dbDataReader, "TimeProd", _TimeProd);
_UomIdTimeProd = GetFieldInt32(dbDataReader, "UomIdTimeProd", _UomIdTimeProd);
_RangeCode = GetFieldString(dbDataReader, "RangeCode", _RangeCode);
_ColourCode = GetFieldString(dbDataReader, "ColourCode", _ColourCode);
_SourceCode = GetFieldString(dbDataReader, "SourceCode", _SourceCode);
_SupplyMethodCode = GetFieldString(dbDataReader, "SupplyMethodCode", _SupplyMethodCode);
_HandlingCode = GetFieldString(dbDataReader, "HandlingCode", _HandlingCode);
_DeliveryCode = GetFieldString(dbDataReader, "DeliveryCode", _DeliveryCode);
_MaterialCode = GetFieldString(dbDataReader, "MaterialCode", _MaterialCode);
_FinishCode = GetFieldString(dbDataReader, "FinishCode", _FinishCode);
_PromotionCode = GetFieldString(dbDataReader, "PromotionCode", _PromotionCode);
_AssIdSupplier = GetFieldInt32(dbDataReader, "AssIdSupplier", _AssIdSupplier);
_SupplierRef = GetFieldString(dbDataReader, "SupplierRef", _SupplierRef);
_CostPrice = GetFieldDecimal(dbDataReader, "CostPrice", _CostPrice);
_PlaceOfOrigin = GetFieldString(dbDataReader, "PlaceOfOrigin", _PlaceOfOrigin);
_MaterialCost = GetFieldDecimal(dbDataReader, "MaterialCost", _MaterialCost);
_CurrencyIdMaterial = GetFieldInt32(dbDataReader, "CurrencyIdMaterial", _CurrencyIdMaterial);
_ExWorksCost = GetFieldDecimal(dbDataReader, "ExWorksCost", _ExWorksCost);
_CurrencyIdExWorks = GetFieldInt32(dbDataReader, "CurrencyIdExWorks", _CurrencyIdExWorks);
_ReorderLevel = GetFieldDecimal(dbDataReader, "ReorderLevel", _ReorderLevel);
_ReorderQty = GetFieldDecimal(dbDataReader, "ReorderQty", _ReorderQty);
_QtyOnOrder = GetFieldDecimal(dbDataReader, "QtyOnOrder", _QtyOnOrder);
_AssIdCustomer = GetFieldInt32(dbDataReader, "AssIdCustomer", _AssIdCustomer);
_SalesPrice = GetFieldDecimal(dbDataReader, "SalesPrice", _SalesPrice);
_RetailPrice = GetFieldDecimal(dbDataReader, "RetailPrice", _RetailPrice);
_RetailPricePlanned = GetFieldDecimal(dbDataReader, "RetailPricePlanned", _RetailPricePlanned);
_UomIdSale = GetFieldInt32(dbDataReader, "UomIdSale", _UomIdSale);
_PackQty = GetFieldDecimal(dbDataReader, "PackQty", _PackQty);
_CarriageCostIndicative = GetFieldDecimal(dbDataReader, "CarriageCostIndicative", _CarriageCostIndicative);
_MinOrderQty = GetFieldDecimal(dbDataReader, "MinOrderQty", _MinOrderQty);
_TaxCodeId = GetFieldInt32(dbDataReader, "TaxCodeId", _TaxCodeId);
_LastOrderDate = GetFieldDateTime(dbDataReader, "LastOrderDate", _LastOrderDate);
_LastOrderQty = GetFieldDecimal(dbDataReader, "LastOrderQty", _LastOrderQty);
_QtyInStock = GetFieldDecimal(dbDataReader, "QtyInStock", _QtyInStock);
_QtyAllocated = GetFieldDecimal(dbDataReader, "QtyAllocated", _QtyAllocated);
_FreeStock = GetFieldDecimal(dbDataReader, "FreeStock", _FreeStock);
_StockTakeDate = GetFieldDateTime(dbDataReader, "StockTakeDate", _StockTakeDate);
_StockTakeQty = GetFieldDecimal(dbDataReader, "StockTakeQty", _StockTakeQty);
_OrderQtyDecimals = GetFieldInt16(dbDataReader, "OrderQtyDecimals", _OrderQtyDecimals);
_CommodityIdSalesProj = GetFieldInt32(dbDataReader, "CommodityIdSalesProj", _CommodityIdSalesProj);
_SalesProjMonthlyProp = GetFieldString(dbDataReader, "SalesProjMonthlyProp", _SalesProjMonthlyProp);
_SalesProjAnnual = GetFieldDecimal(dbDataReader, "SalesProjAnnual", _SalesProjAnnual);
_SalesProjMonth01 = GetFieldDecimal(dbDataReader, "SalesProjMonth01", _SalesProjMonth01);
_SalesProjMonth02 = GetFieldDecimal(dbDataReader, "SalesProjMonth02", _SalesProjMonth02);
_SalesProjMonth03 = GetFieldDecimal(dbDataReader, "SalesProjMonth03", _SalesProjMonth03);
_SalesProjMonth04 = GetFieldDecimal(dbDataReader, "SalesProjMonth04", _SalesProjMonth04);
_SalesProjMonth05 = GetFieldDecimal(dbDataReader, "SalesProjMonth05", _SalesProjMonth05);
_SalesProjMonth06 = GetFieldDecimal(dbDataReader, "SalesProjMonth06", _SalesProjMonth06);
_SalesProjMonth07 = GetFieldDecimal(dbDataReader, "SalesProjMonth07", _SalesProjMonth07);
_SalesProjMonth08 = GetFieldDecimal(dbDataReader, "SalesProjMonth08", _SalesProjMonth08);
_SalesProjMonth09 = GetFieldDecimal(dbDataReader, "SalesProjMonth09", _SalesProjMonth09);
_SalesProjMonth10 = GetFieldDecimal(dbDataReader, "SalesProjMonth10", _SalesProjMonth10);
_SalesProjMonth11 = GetFieldDecimal(dbDataReader, "SalesProjMonth11", _SalesProjMonth11);
_SalesProjMonth12 = GetFieldDecimal(dbDataReader, "SalesProjMonth12", _SalesProjMonth12);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("AffIdOwner")) AddCommandParameter(dbCommand, "@AffIdOwner", _AffIdOwner);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Code")) AddCommandParameter(dbCommand, "@Code", _Code);
if (columnNames.ContainsCI("DescBrief")) AddCommandParameter(dbCommand, "@DescBrief", _DescBrief);
if (columnNames.ContainsCI("DescOrder")) AddCommandParameter(dbCommand, "@DescOrder", _DescOrder);
if (columnNames.ContainsCI("DescDetail")) AddCommandParameter(dbCommand, "@DescDetail", _DescDetail);
if (columnNames.ContainsCI("DrawingNo")) AddCommandParameter(dbCommand, "@DrawingNo", _DrawingNo);
if (columnNames.ContainsCI("DrawingIssue")) AddCommandParameter(dbCommand, "@DrawingIssue", _DrawingIssue);
if (columnNames.ContainsCI("AssetCatId")) AddCommandParameter(dbCommand, "@AssetCatId", _AssetCatId);
if (columnNames.ContainsCI("ImagePath")) AddCommandParameter(dbCommand, "@ImagePath", _ImagePath);
if (columnNames.ContainsCI("Category")) AddCommandParameter(dbCommand, "@Category", _Category);
if (columnNames.ContainsCI("Category2")) AddCommandParameter(dbCommand, "@Category2", _Category2);
if (columnNames.ContainsCI("Category3")) AddCommandParameter(dbCommand, "@Category3", _Category3);
if (columnNames.ContainsCI("Location")) AddCommandParameter(dbCommand, "@Location", _Location);
if (columnNames.ContainsCI("Department")) AddCommandParameter(dbCommand, "@Department", _Department);
if (columnNames.ContainsCI("CatalogRef")) AddCommandParameter(dbCommand, "@CatalogRef", _CatalogRef);
if (columnNames.ContainsCI("Weight")) AddCommandParameter(dbCommand, "@Weight", _Weight);
if (columnNames.ContainsCI("UomIdWeight")) AddCommandParameter(dbCommand, "@UomIdWeight", _UomIdWeight);
if (columnNames.ContainsCI("Length")) AddCommandParameter(dbCommand, "@Length", _Length);
if (columnNames.ContainsCI("UomIdLength")) AddCommandParameter(dbCommand, "@UomIdLength", _UomIdLength);
if (columnNames.ContainsCI("Volume")) AddCommandParameter(dbCommand, "@Volume", _Volume);
if (columnNames.ContainsCI("UomIdVolume")) AddCommandParameter(dbCommand, "@UomIdVolume", _UomIdVolume);
if (columnNames.ContainsCI("Density")) AddCommandParameter(dbCommand, "@Density", _Density);
if (columnNames.ContainsCI("UomIdDensity")) AddCommandParameter(dbCommand, "@UomIdDensity", _UomIdDensity);
if (columnNames.ContainsCI("BoxQuantity")) AddCommandParameter(dbCommand, "@BoxQuantity", _BoxQuantity);
if (columnNames.ContainsCI("UomIdBox")) AddCommandParameter(dbCommand, "@UomIdBox", _UomIdBox);
if (columnNames.ContainsCI("Dimensions")) AddCommandParameter(dbCommand, "@Dimensions", _Dimensions);
if (columnNames.ContainsCI("SpecSummary")) AddCommandParameter(dbCommand, "@SpecSummary", _SpecSummary);
if (columnNames.ContainsCI("NominalCode")) AddCommandParameter(dbCommand, "@NominalCode", _NominalCode);
if (columnNames.ContainsCI("NominalCodePurchase")) AddCommandParameter(dbCommand, "@NominalCodePurchase", _NominalCodePurchase);
if (columnNames.ContainsCI("ICNTariffCode")) AddCommandParameter(dbCommand, "@ICNTariffCode", _ICNTariffCode);
if (columnNames.ContainsCI("TimeProd")) AddCommandParameter(dbCommand, "@TimeProd", _TimeProd);
if (columnNames.ContainsCI("UomIdTimeProd")) AddCommandParameter(dbCommand, "@UomIdTimeProd", _UomIdTimeProd);
if (columnNames.ContainsCI("RangeCode")) AddCommandParameter(dbCommand, "@RangeCode", _RangeCode);
if (columnNames.ContainsCI("ColourCode")) AddCommandParameter(dbCommand, "@ColourCode", _ColourCode);
if (columnNames.ContainsCI("SourceCode")) AddCommandParameter(dbCommand, "@SourceCode", _SourceCode);
if (columnNames.ContainsCI("SupplyMethodCode")) AddCommandParameter(dbCommand, "@SupplyMethodCode", _SupplyMethodCode);
if (columnNames.ContainsCI("HandlingCode")) AddCommandParameter(dbCommand, "@HandlingCode", _HandlingCode);
if (columnNames.ContainsCI("DeliveryCode")) AddCommandParameter(dbCommand, "@DeliveryCode", _DeliveryCode);
if (columnNames.ContainsCI("MaterialCode")) AddCommandParameter(dbCommand, "@MaterialCode", _MaterialCode);
if (columnNames.ContainsCI("FinishCode")) AddCommandParameter(dbCommand, "@FinishCode", _FinishCode);
if (columnNames.ContainsCI("PromotionCode")) AddCommandParameter(dbCommand, "@PromotionCode", _PromotionCode);
if (columnNames.ContainsCI("AssIdSupplier")) AddCommandParameter(dbCommand, "@AssIdSupplier", _AssIdSupplier);
if (columnNames.ContainsCI("SupplierRef")) AddCommandParameter(dbCommand, "@SupplierRef", _SupplierRef);
if (columnNames.ContainsCI("CostPrice")) AddCommandParameter(dbCommand, "@CostPrice", _CostPrice);
if (columnNames.ContainsCI("PlaceOfOrigin")) AddCommandParameter(dbCommand, "@PlaceOfOrigin", _PlaceOfOrigin);
if (columnNames.ContainsCI("MaterialCost")) AddCommandParameter(dbCommand, "@MaterialCost", _MaterialCost);
if (columnNames.ContainsCI("CurrencyIdMaterial")) AddCommandParameter(dbCommand, "@CurrencyIdMaterial", _CurrencyIdMaterial);
if (columnNames.ContainsCI("ExWorksCost")) AddCommandParameter(dbCommand, "@ExWorksCost", _ExWorksCost);
if (columnNames.ContainsCI("CurrencyIdExWorks")) AddCommandParameter(dbCommand, "@CurrencyIdExWorks", _CurrencyIdExWorks);
if (columnNames.ContainsCI("ReorderLevel")) AddCommandParameter(dbCommand, "@ReorderLevel", _ReorderLevel);
if (columnNames.ContainsCI("ReorderQty")) AddCommandParameter(dbCommand, "@ReorderQty", _ReorderQty);
if (columnNames.ContainsCI("QtyOnOrder")) AddCommandParameter(dbCommand, "@QtyOnOrder", _QtyOnOrder);
if (columnNames.ContainsCI("AssIdCustomer")) AddCommandParameter(dbCommand, "@AssIdCustomer", _AssIdCustomer);
if (columnNames.ContainsCI("SalesPrice")) AddCommandParameter(dbCommand, "@SalesPrice", _SalesPrice);
if (columnNames.ContainsCI("RetailPrice")) AddCommandParameter(dbCommand, "@RetailPrice", _RetailPrice);
if (columnNames.ContainsCI("RetailPricePlanned")) AddCommandParameter(dbCommand, "@RetailPricePlanned", _RetailPricePlanned);
if (columnNames.ContainsCI("UomIdSale")) AddCommandParameter(dbCommand, "@UomIdSale", _UomIdSale);
if (columnNames.ContainsCI("PackQty")) AddCommandParameter(dbCommand, "@PackQty", _PackQty);
if (columnNames.ContainsCI("CarriageCostIndicative")) AddCommandParameter(dbCommand, "@CarriageCostIndicative", _CarriageCostIndicative);
if (columnNames.ContainsCI("MinOrderQty")) AddCommandParameter(dbCommand, "@MinOrderQty", _MinOrderQty);
if (columnNames.ContainsCI("TaxCodeId")) AddCommandParameter(dbCommand, "@TaxCodeId", _TaxCodeId);
if (columnNames.ContainsCI("LastOrderDate")) AddCommandParameter(dbCommand, "@LastOrderDate", _LastOrderDate);
if (columnNames.ContainsCI("LastOrderQty")) AddCommandParameter(dbCommand, "@LastOrderQty", _LastOrderQty);
if (columnNames.ContainsCI("QtyInStock")) AddCommandParameter(dbCommand, "@QtyInStock", _QtyInStock);
if (columnNames.ContainsCI("QtyAllocated")) AddCommandParameter(dbCommand, "@QtyAllocated", _QtyAllocated);
if (columnNames.ContainsCI("FreeStock")) AddCommandParameter(dbCommand, "@FreeStock", _FreeStock);
if (columnNames.ContainsCI("StockTakeDate")) AddCommandParameter(dbCommand, "@StockTakeDate", _StockTakeDate);
if (columnNames.ContainsCI("StockTakeQty")) AddCommandParameter(dbCommand, "@StockTakeQty", _StockTakeQty);
if (columnNames.ContainsCI("OrderQtyDecimals")) AddCommandParameter(dbCommand, "@OrderQtyDecimals", _OrderQtyDecimals);
if (columnNames.ContainsCI("CommodityIdSalesProj")) AddCommandParameter(dbCommand, "@CommodityIdSalesProj", _CommodityIdSalesProj);
if (columnNames.ContainsCI("SalesProjMonthlyProp")) AddCommandParameter(dbCommand, "@SalesProjMonthlyProp", _SalesProjMonthlyProp);
if (columnNames.ContainsCI("SalesProjAnnual")) AddCommandParameter(dbCommand, "@SalesProjAnnual", _SalesProjAnnual);
if (columnNames.ContainsCI("SalesProjMonth01")) AddCommandParameter(dbCommand, "@SalesProjMonth01", _SalesProjMonth01);
if (columnNames.ContainsCI("SalesProjMonth02")) AddCommandParameter(dbCommand, "@SalesProjMonth02", _SalesProjMonth02);
if (columnNames.ContainsCI("SalesProjMonth03")) AddCommandParameter(dbCommand, "@SalesProjMonth03", _SalesProjMonth03);
if (columnNames.ContainsCI("SalesProjMonth04")) AddCommandParameter(dbCommand, "@SalesProjMonth04", _SalesProjMonth04);
if (columnNames.ContainsCI("SalesProjMonth05")) AddCommandParameter(dbCommand, "@SalesProjMonth05", _SalesProjMonth05);
if (columnNames.ContainsCI("SalesProjMonth06")) AddCommandParameter(dbCommand, "@SalesProjMonth06", _SalesProjMonth06);
if (columnNames.ContainsCI("SalesProjMonth07")) AddCommandParameter(dbCommand, "@SalesProjMonth07", _SalesProjMonth07);
if (columnNames.ContainsCI("SalesProjMonth08")) AddCommandParameter(dbCommand, "@SalesProjMonth08", _SalesProjMonth08);
if (columnNames.ContainsCI("SalesProjMonth09")) AddCommandParameter(dbCommand, "@SalesProjMonth09", _SalesProjMonth09);
if (columnNames.ContainsCI("SalesProjMonth10")) AddCommandParameter(dbCommand, "@SalesProjMonth10", _SalesProjMonth10);
if (columnNames.ContainsCI("SalesProjMonth11")) AddCommandParameter(dbCommand, "@SalesProjMonth11", _SalesProjMonth11);
if (columnNames.ContainsCI("SalesProjMonth12")) AddCommandParameter(dbCommand, "@SalesProjMonth12", _SalesProjMonth12);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("AffIdOwner")) AddCommandParameter(dbCommand, "@AffIdOwner", _AffIdOwner);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Code")) AddCommandParameter(dbCommand, "@Code", _Code);
if (columnNames.ContainsCI("DescBrief")) AddCommandParameter(dbCommand, "@DescBrief", _DescBrief);
if (columnNames.ContainsCI("DescOrder")) AddCommandParameter(dbCommand, "@DescOrder", _DescOrder);
if (columnNames.ContainsCI("DescDetail")) AddCommandParameter(dbCommand, "@DescDetail", _DescDetail);
if (columnNames.ContainsCI("DrawingNo")) AddCommandParameter(dbCommand, "@DrawingNo", _DrawingNo);
if (columnNames.ContainsCI("DrawingIssue")) AddCommandParameter(dbCommand, "@DrawingIssue", _DrawingIssue);
if (columnNames.ContainsCI("AssetCatId")) AddCommandParameter(dbCommand, "@AssetCatId", _AssetCatId);
if (columnNames.ContainsCI("ImagePath")) AddCommandParameter(dbCommand, "@ImagePath", _ImagePath);
if (columnNames.ContainsCI("Category")) AddCommandParameter(dbCommand, "@Category", _Category);
if (columnNames.ContainsCI("Category2")) AddCommandParameter(dbCommand, "@Category2", _Category2);
if (columnNames.ContainsCI("Category3")) AddCommandParameter(dbCommand, "@Category3", _Category3);
if (columnNames.ContainsCI("Location")) AddCommandParameter(dbCommand, "@Location", _Location);
if (columnNames.ContainsCI("Department")) AddCommandParameter(dbCommand, "@Department", _Department);
if (columnNames.ContainsCI("CatalogRef")) AddCommandParameter(dbCommand, "@CatalogRef", _CatalogRef);
if (columnNames.ContainsCI("Weight")) AddCommandParameter(dbCommand, "@Weight", _Weight);
if (columnNames.ContainsCI("UomIdWeight")) AddCommandParameter(dbCommand, "@UomIdWeight", _UomIdWeight);
if (columnNames.ContainsCI("Length")) AddCommandParameter(dbCommand, "@Length", _Length);
if (columnNames.ContainsCI("UomIdLength")) AddCommandParameter(dbCommand, "@UomIdLength", _UomIdLength);
if (columnNames.ContainsCI("Volume")) AddCommandParameter(dbCommand, "@Volume", _Volume);
if (columnNames.ContainsCI("UomIdVolume")) AddCommandParameter(dbCommand, "@UomIdVolume", _UomIdVolume);
if (columnNames.ContainsCI("Density")) AddCommandParameter(dbCommand, "@Density", _Density);
if (columnNames.ContainsCI("UomIdDensity")) AddCommandParameter(dbCommand, "@UomIdDensity", _UomIdDensity);
if (columnNames.ContainsCI("BoxQuantity")) AddCommandParameter(dbCommand, "@BoxQuantity", _BoxQuantity);
if (columnNames.ContainsCI("UomIdBox")) AddCommandParameter(dbCommand, "@UomIdBox", _UomIdBox);
if (columnNames.ContainsCI("Dimensions")) AddCommandParameter(dbCommand, "@Dimensions", _Dimensions);
if (columnNames.ContainsCI("SpecSummary")) AddCommandParameter(dbCommand, "@SpecSummary", _SpecSummary);
if (columnNames.ContainsCI("NominalCode")) AddCommandParameter(dbCommand, "@NominalCode", _NominalCode);
if (columnNames.ContainsCI("NominalCodePurchase")) AddCommandParameter(dbCommand, "@NominalCodePurchase", _NominalCodePurchase);
if (columnNames.ContainsCI("ICNTariffCode")) AddCommandParameter(dbCommand, "@ICNTariffCode", _ICNTariffCode);
if (columnNames.ContainsCI("TimeProd")) AddCommandParameter(dbCommand, "@TimeProd", _TimeProd);
if (columnNames.ContainsCI("UomIdTimeProd")) AddCommandParameter(dbCommand, "@UomIdTimeProd", _UomIdTimeProd);
if (columnNames.ContainsCI("RangeCode")) AddCommandParameter(dbCommand, "@RangeCode", _RangeCode);
if (columnNames.ContainsCI("ColourCode")) AddCommandParameter(dbCommand, "@ColourCode", _ColourCode);
if (columnNames.ContainsCI("SourceCode")) AddCommandParameter(dbCommand, "@SourceCode", _SourceCode);
if (columnNames.ContainsCI("SupplyMethodCode")) AddCommandParameter(dbCommand, "@SupplyMethodCode", _SupplyMethodCode);
if (columnNames.ContainsCI("HandlingCode")) AddCommandParameter(dbCommand, "@HandlingCode", _HandlingCode);
if (columnNames.ContainsCI("DeliveryCode")) AddCommandParameter(dbCommand, "@DeliveryCode", _DeliveryCode);
if (columnNames.ContainsCI("MaterialCode")) AddCommandParameter(dbCommand, "@MaterialCode", _MaterialCode);
if (columnNames.ContainsCI("FinishCode")) AddCommandParameter(dbCommand, "@FinishCode", _FinishCode);
if (columnNames.ContainsCI("PromotionCode")) AddCommandParameter(dbCommand, "@PromotionCode", _PromotionCode);
if (columnNames.ContainsCI("AssIdSupplier")) AddCommandParameter(dbCommand, "@AssIdSupplier", _AssIdSupplier);
if (columnNames.ContainsCI("SupplierRef")) AddCommandParameter(dbCommand, "@SupplierRef", _SupplierRef);
if (columnNames.ContainsCI("CostPrice")) AddCommandParameter(dbCommand, "@CostPrice", _CostPrice);
if (columnNames.ContainsCI("PlaceOfOrigin")) AddCommandParameter(dbCommand, "@PlaceOfOrigin", _PlaceOfOrigin);
if (columnNames.ContainsCI("MaterialCost")) AddCommandParameter(dbCommand, "@MaterialCost", _MaterialCost);
if (columnNames.ContainsCI("CurrencyIdMaterial")) AddCommandParameter(dbCommand, "@CurrencyIdMaterial", _CurrencyIdMaterial);
if (columnNames.ContainsCI("ExWorksCost")) AddCommandParameter(dbCommand, "@ExWorksCost", _ExWorksCost);
if (columnNames.ContainsCI("CurrencyIdExWorks")) AddCommandParameter(dbCommand, "@CurrencyIdExWorks", _CurrencyIdExWorks);
if (columnNames.ContainsCI("ReorderLevel")) AddCommandParameter(dbCommand, "@ReorderLevel", _ReorderLevel);
if (columnNames.ContainsCI("ReorderQty")) AddCommandParameter(dbCommand, "@ReorderQty", _ReorderQty);
if (columnNames.ContainsCI("QtyOnOrder")) AddCommandParameter(dbCommand, "@QtyOnOrder", _QtyOnOrder);
if (columnNames.ContainsCI("AssIdCustomer")) AddCommandParameter(dbCommand, "@AssIdCustomer", _AssIdCustomer);
if (columnNames.ContainsCI("SalesPrice")) AddCommandParameter(dbCommand, "@SalesPrice", _SalesPrice);
if (columnNames.ContainsCI("RetailPrice")) AddCommandParameter(dbCommand, "@RetailPrice", _RetailPrice);
if (columnNames.ContainsCI("RetailPricePlanned")) AddCommandParameter(dbCommand, "@RetailPricePlanned", _RetailPricePlanned);
if (columnNames.ContainsCI("UomIdSale")) AddCommandParameter(dbCommand, "@UomIdSale", _UomIdSale);
if (columnNames.ContainsCI("PackQty")) AddCommandParameter(dbCommand, "@PackQty", _PackQty);
if (columnNames.ContainsCI("CarriageCostIndicative")) AddCommandParameter(dbCommand, "@CarriageCostIndicative", _CarriageCostIndicative);
if (columnNames.ContainsCI("MinOrderQty")) AddCommandParameter(dbCommand, "@MinOrderQty", _MinOrderQty);
if (columnNames.ContainsCI("TaxCodeId")) AddCommandParameter(dbCommand, "@TaxCodeId", _TaxCodeId);
if (columnNames.ContainsCI("LastOrderDate")) AddCommandParameter(dbCommand, "@LastOrderDate", _LastOrderDate);
if (columnNames.ContainsCI("LastOrderQty")) AddCommandParameter(dbCommand, "@LastOrderQty", _LastOrderQty);
if (columnNames.ContainsCI("QtyInStock")) AddCommandParameter(dbCommand, "@QtyInStock", _QtyInStock);
if (columnNames.ContainsCI("QtyAllocated")) AddCommandParameter(dbCommand, "@QtyAllocated", _QtyAllocated);
if (columnNames.ContainsCI("FreeStock")) AddCommandParameter(dbCommand, "@FreeStock", _FreeStock);
if (columnNames.ContainsCI("StockTakeDate")) AddCommandParameter(dbCommand, "@StockTakeDate", _StockTakeDate);
if (columnNames.ContainsCI("StockTakeQty")) AddCommandParameter(dbCommand, "@StockTakeQty", _StockTakeQty);
if (columnNames.ContainsCI("OrderQtyDecimals")) AddCommandParameter(dbCommand, "@OrderQtyDecimals", _OrderQtyDecimals);
if (columnNames.ContainsCI("CommodityIdSalesProj")) AddCommandParameter(dbCommand, "@CommodityIdSalesProj", _CommodityIdSalesProj);
if (columnNames.ContainsCI("SalesProjMonthlyProp")) AddCommandParameter(dbCommand, "@SalesProjMonthlyProp", _SalesProjMonthlyProp);
if (columnNames.ContainsCI("SalesProjAnnual")) AddCommandParameter(dbCommand, "@SalesProjAnnual", _SalesProjAnnual);
if (columnNames.ContainsCI("SalesProjMonth01")) AddCommandParameter(dbCommand, "@SalesProjMonth01", _SalesProjMonth01);
if (columnNames.ContainsCI("SalesProjMonth02")) AddCommandParameter(dbCommand, "@SalesProjMonth02", _SalesProjMonth02);
if (columnNames.ContainsCI("SalesProjMonth03")) AddCommandParameter(dbCommand, "@SalesProjMonth03", _SalesProjMonth03);
if (columnNames.ContainsCI("SalesProjMonth04")) AddCommandParameter(dbCommand, "@SalesProjMonth04", _SalesProjMonth04);
if (columnNames.ContainsCI("SalesProjMonth05")) AddCommandParameter(dbCommand, "@SalesProjMonth05", _SalesProjMonth05);
if (columnNames.ContainsCI("SalesProjMonth06")) AddCommandParameter(dbCommand, "@SalesProjMonth06", _SalesProjMonth06);
if (columnNames.ContainsCI("SalesProjMonth07")) AddCommandParameter(dbCommand, "@SalesProjMonth07", _SalesProjMonth07);
if (columnNames.ContainsCI("SalesProjMonth08")) AddCommandParameter(dbCommand, "@SalesProjMonth08", _SalesProjMonth08);
if (columnNames.ContainsCI("SalesProjMonth09")) AddCommandParameter(dbCommand, "@SalesProjMonth09", _SalesProjMonth09);
if (columnNames.ContainsCI("SalesProjMonth10")) AddCommandParameter(dbCommand, "@SalesProjMonth10", _SalesProjMonth10);
if (columnNames.ContainsCI("SalesProjMonth11")) AddCommandParameter(dbCommand, "@SalesProjMonth11", _SalesProjMonth11);
if (columnNames.ContainsCI("SalesProjMonth12")) AddCommandParameter(dbCommand, "@SalesProjMonth12", _SalesProjMonth12);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,397 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class Constituent_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt32 _AffIdOwner { get; } = new ColumnDataInt32("AffIdOwner");
public ColumnDataInt32 _AffIdTarget { get; } = new ColumnDataInt32("AffIdTarget");
public ColumnDataInt32 _AssocId { get; } = new ColumnDataInt32("AssocId");
public ColumnDataInt32 _TransId { get; } = new ColumnDataInt32("TransId");
public ColumnDataInt32 _ReqntId { get; } = new ColumnDataInt32("ReqntId");
public ColumnDataInt32 _ConstId { get; } = new ColumnDataInt32("ConstId");
public ColumnDataInt32 _ProcessId { get; } = new ColumnDataInt32("ProcessId");
public ColumnDataInt32 _AssocIdContractor { get; } = new ColumnDataInt32("AssocIdContractor");
public ColumnDataInt16 _Type { get; } = new ColumnDataInt16("Type");
public ColumnDataInt16 _Seq { get; } = new ColumnDataInt16("Seq");
public ColumnDataDateTime _Effective { get; } = new ColumnDataDateTime("Effective");
public ColumnDataDateTime _Required { get; } = new ColumnDataDateTime("Required");
public ColumnDataDateTime _Started { get; } = new ColumnDataDateTime("Started");
public ColumnDataDateTime _Completed { get; } = new ColumnDataDateTime("Completed");
public ColumnDataInt32 _AssetId { get; } = new ColumnDataInt32("AssetId");
public ColumnDataString _DescBrief { get; } = new ColumnDataString("DescBrief");
public ColumnDataString _DescOutline { get; } = new ColumnDataString("DescOutline");
public ColumnDataString _DescDetail { get; } = new ColumnDataString("DescDetail");
public ColumnDataInt32 _TaskNumber { get; } = new ColumnDataInt32("TaskNumber");
public ColumnDataInt16 _Priority { get; } = new ColumnDataInt16("Priority");
public ColumnDataString _Category { get; } = new ColumnDataString("Category");
public ColumnDataString _Reference { get; } = new ColumnDataString("Reference");
public ColumnDataDecimal _Quantity { get; } = new ColumnDataDecimal("Quantity");
public ColumnDataInt32 _UomId { get; } = new ColumnDataInt32("UomId");
public ColumnDataDecimal _UnitCost { get; } = new ColumnDataDecimal("UnitCost");
public ColumnDataDecimal _AmountEst { get; } = new ColumnDataDecimal("AmountEst");
public ColumnDataDecimal _AmountNet { get; } = new ColumnDataDecimal("AmountNet");
public ColumnDataInt32 _TaxCodeId { get; } = new ColumnDataInt32("TaxCodeId");
public ColumnDataDecimal _TaxRate { get; } = new ColumnDataDecimal("TaxRate");
public ColumnDataDecimal _AmountTax { get; } = new ColumnDataDecimal("AmountTax");
public ColumnDataDecimal _AmountTot { get; } = new ColumnDataDecimal("AmountTot");
public ColumnDataDecimal _TaxRateRebate { get; } = new ColumnDataDecimal("TaxRateRebate");
public ColumnDataDecimal _AmountTaxRebate { get; } = new ColumnDataDecimal("AmountTaxRebate");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _StatusCat { get; } = new ColumnDataString("StatusCat");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"AffIdOwner",
"AffIdTarget",
"AssocId",
"TransId",
"ReqntId",
"ConstId",
"ProcessId",
"AssocIdContractor",
"Type",
"Seq",
"Effective",
"Required",
"Started",
"Completed",
"AssetId",
"DescBrief",
"DescOutline",
"DescDetail",
"TaskNumber",
"Priority",
"Category",
"Reference",
"Quantity",
"UomId",
"UnitCost",
"AmountEst",
"AmountNet",
"TaxCodeId",
"TaxRate",
"AmountTax",
"AmountTot",
"TaxRateRebate",
"AmountTaxRebate",
"Notes",
"Flags",
"StatusCat",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal Constituent_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "Constituent";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int32 _AffIdOwner { get { return Cols._AffIdOwner.Value; } set { Cols._AffIdOwner.Value = value; } }
public Int32 _AffIdTarget { get { return Cols._AffIdTarget.Value; } set { Cols._AffIdTarget.Value = value; } }
public Int32 _AssocId { get { return Cols._AssocId.Value; } set { Cols._AssocId.Value = value; } }
public Int32 _TransId { get { return Cols._TransId.Value; } set { Cols._TransId.Value = value; } }
public Int32 _ReqntId { get { return Cols._ReqntId.Value; } set { Cols._ReqntId.Value = value; } }
public Int32 _ConstId { get { return Cols._ConstId.Value; } set { Cols._ConstId.Value = value; } }
public Int32 _ProcessId { get { return Cols._ProcessId.Value; } set { Cols._ProcessId.Value = value; } }
public Int32 _AssocIdContractor { get { return Cols._AssocIdContractor.Value; } set { Cols._AssocIdContractor.Value = value; } }
public Int16 _Type { get { return Cols._Type.Value; } set { Cols._Type.Value = value; } }
public Int16 _Seq { get { return Cols._Seq.Value; } set { Cols._Seq.Value = value; } }
public DateTime _Effective { get { return Cols._Effective.Value; } set { Cols._Effective.Value = value; } }
public DateTime _Required { get { return Cols._Required.Value; } set { Cols._Required.Value = value; } }
public DateTime _Started { get { return Cols._Started.Value; } set { Cols._Started.Value = value; } }
public DateTime _Completed { get { return Cols._Completed.Value; } set { Cols._Completed.Value = value; } }
public Int32 _AssetId { get { return Cols._AssetId.Value; } set { Cols._AssetId.Value = value; } }
public String _DescBrief { get { return Cols._DescBrief.Value; } set { Cols._DescBrief.Value = value; } }
public String _DescOutline { get { return Cols._DescOutline.Value; } set { Cols._DescOutline.Value = value; } }
public String _DescDetail { get { return Cols._DescDetail.Value; } set { Cols._DescDetail.Value = value; } }
public Int32 _TaskNumber { get { return Cols._TaskNumber.Value; } set { Cols._TaskNumber.Value = value; } }
public Int16 _Priority { get { return Cols._Priority.Value; } set { Cols._Priority.Value = value; } }
public String _Category { get { return Cols._Category.Value; } set { Cols._Category.Value = value; } }
public String _Reference { get { return Cols._Reference.Value; } set { Cols._Reference.Value = value; } }
public Decimal _Quantity { get { return Cols._Quantity.Value; } set { Cols._Quantity.Value = value; } }
public Int32 _UomId { get { return Cols._UomId.Value; } set { Cols._UomId.Value = value; } }
public Decimal _UnitCost { get { return Cols._UnitCost.Value; } set { Cols._UnitCost.Value = value; } }
public Decimal _AmountEst { get { return Cols._AmountEst.Value; } set { Cols._AmountEst.Value = value; } }
public Decimal _AmountNet { get { return Cols._AmountNet.Value; } set { Cols._AmountNet.Value = value; } }
public Int32 _TaxCodeId { get { return Cols._TaxCodeId.Value; } set { Cols._TaxCodeId.Value = value; } }
public Decimal _TaxRate { get { return Cols._TaxRate.Value; } set { Cols._TaxRate.Value = value; } }
public Decimal _AmountTax { get { return Cols._AmountTax.Value; } set { Cols._AmountTax.Value = value; } }
public Decimal _AmountTot { get { return Cols._AmountTot.Value; } set { Cols._AmountTot.Value = value; } }
public Decimal _TaxRateRebate { get { return Cols._TaxRateRebate.Value; } set { Cols._TaxRateRebate.Value = value; } }
public Decimal _AmountTaxRebate { get { return Cols._AmountTaxRebate.Value; } set { Cols._AmountTaxRebate.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _StatusCat { get { return Cols._StatusCat.Value; } set { Cols._StatusCat.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_AffIdOwner = GetFieldInt32(dbDataReader, "AffIdOwner", _AffIdOwner);
_AffIdTarget = GetFieldInt32(dbDataReader, "AffIdTarget", _AffIdTarget);
_AssocId = GetFieldInt32(dbDataReader, "AssocId", _AssocId);
_TransId = GetFieldInt32(dbDataReader, "TransId", _TransId);
_ReqntId = GetFieldInt32(dbDataReader, "ReqntId", _ReqntId);
_ConstId = GetFieldInt32(dbDataReader, "ConstId", _ConstId);
_ProcessId = GetFieldInt32(dbDataReader, "ProcessId", _ProcessId);
_AssocIdContractor = GetFieldInt32(dbDataReader, "AssocIdContractor", _AssocIdContractor);
_Type = GetFieldInt16(dbDataReader, "Type", _Type);
_Seq = GetFieldInt16(dbDataReader, "Seq", _Seq);
_Effective = GetFieldDateTime(dbDataReader, "Effective", _Effective);
_Required = GetFieldDateTime(dbDataReader, "Required", _Required);
_Started = GetFieldDateTime(dbDataReader, "Started", _Started);
_Completed = GetFieldDateTime(dbDataReader, "Completed", _Completed);
_AssetId = GetFieldInt32(dbDataReader, "AssetId", _AssetId);
_DescBrief = GetFieldString(dbDataReader, "DescBrief", _DescBrief);
_DescOutline = GetFieldString(dbDataReader, "DescOutline", _DescOutline);
_DescDetail = GetFieldString(dbDataReader, "DescDetail", _DescDetail);
_TaskNumber = GetFieldInt32(dbDataReader, "TaskNumber", _TaskNumber);
_Priority = GetFieldInt16(dbDataReader, "Priority", _Priority);
_Category = GetFieldString(dbDataReader, "Category", _Category);
_Reference = GetFieldString(dbDataReader, "Reference", _Reference);
_Quantity = GetFieldDecimal(dbDataReader, "Quantity", _Quantity);
_UomId = GetFieldInt32(dbDataReader, "UomId", _UomId);
_UnitCost = GetFieldDecimal(dbDataReader, "UnitCost", _UnitCost);
_AmountEst = GetFieldDecimal(dbDataReader, "AmountEst", _AmountEst);
_AmountNet = GetFieldDecimal(dbDataReader, "AmountNet", _AmountNet);
_TaxCodeId = GetFieldInt32(dbDataReader, "TaxCodeId", _TaxCodeId);
_TaxRate = GetFieldDecimal(dbDataReader, "TaxRate", _TaxRate);
_AmountTax = GetFieldDecimal(dbDataReader, "AmountTax", _AmountTax);
_AmountTot = GetFieldDecimal(dbDataReader, "AmountTot", _AmountTot);
_TaxRateRebate = GetFieldDecimal(dbDataReader, "TaxRateRebate", _TaxRateRebate);
_AmountTaxRebate = GetFieldDecimal(dbDataReader, "AmountTaxRebate", _AmountTaxRebate);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_StatusCat = GetFieldString(dbDataReader, "StatusCat", _StatusCat);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("AffIdOwner")) AddCommandParameter(dbCommand, "@AffIdOwner", _AffIdOwner);
if (columnNames.ContainsCI("AffIdTarget")) AddCommandParameter(dbCommand, "@AffIdTarget", _AffIdTarget);
if (columnNames.ContainsCI("AssocId")) AddCommandParameter(dbCommand, "@AssocId", _AssocId);
if (columnNames.ContainsCI("TransId")) AddCommandParameter(dbCommand, "@TransId", _TransId);
if (columnNames.ContainsCI("ReqntId")) AddCommandParameter(dbCommand, "@ReqntId", _ReqntId);
if (columnNames.ContainsCI("ConstId")) AddCommandParameter(dbCommand, "@ConstId", _ConstId);
if (columnNames.ContainsCI("ProcessId")) AddCommandParameter(dbCommand, "@ProcessId", _ProcessId);
if (columnNames.ContainsCI("AssocIdContractor")) AddCommandParameter(dbCommand, "@AssocIdContractor", _AssocIdContractor);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Seq")) AddCommandParameter(dbCommand, "@Seq", _Seq);
if (columnNames.ContainsCI("Effective")) AddCommandParameter(dbCommand, "@Effective", _Effective);
if (columnNames.ContainsCI("Required")) AddCommandParameter(dbCommand, "@Required", _Required);
if (columnNames.ContainsCI("Started")) AddCommandParameter(dbCommand, "@Started", _Started);
if (columnNames.ContainsCI("Completed")) AddCommandParameter(dbCommand, "@Completed", _Completed);
if (columnNames.ContainsCI("AssetId")) AddCommandParameter(dbCommand, "@AssetId", _AssetId);
if (columnNames.ContainsCI("DescBrief")) AddCommandParameter(dbCommand, "@DescBrief", _DescBrief);
if (columnNames.ContainsCI("DescOutline")) AddCommandParameter(dbCommand, "@DescOutline", _DescOutline);
if (columnNames.ContainsCI("DescDetail")) AddCommandParameter(dbCommand, "@DescDetail", _DescDetail);
if (columnNames.ContainsCI("TaskNumber")) AddCommandParameter(dbCommand, "@TaskNumber", _TaskNumber);
if (columnNames.ContainsCI("Priority")) AddCommandParameter(dbCommand, "@Priority", _Priority);
if (columnNames.ContainsCI("Category")) AddCommandParameter(dbCommand, "@Category", _Category);
if (columnNames.ContainsCI("Reference")) AddCommandParameter(dbCommand, "@Reference", _Reference);
if (columnNames.ContainsCI("Quantity")) AddCommandParameter(dbCommand, "@Quantity", _Quantity);
if (columnNames.ContainsCI("UomId")) AddCommandParameter(dbCommand, "@UomId", _UomId);
if (columnNames.ContainsCI("UnitCost")) AddCommandParameter(dbCommand, "@UnitCost", _UnitCost);
if (columnNames.ContainsCI("AmountEst")) AddCommandParameter(dbCommand, "@AmountEst", _AmountEst);
if (columnNames.ContainsCI("AmountNet")) AddCommandParameter(dbCommand, "@AmountNet", _AmountNet);
if (columnNames.ContainsCI("TaxCodeId")) AddCommandParameter(dbCommand, "@TaxCodeId", _TaxCodeId);
if (columnNames.ContainsCI("TaxRate")) AddCommandParameter(dbCommand, "@TaxRate", _TaxRate);
if (columnNames.ContainsCI("AmountTax")) AddCommandParameter(dbCommand, "@AmountTax", _AmountTax);
if (columnNames.ContainsCI("AmountTot")) AddCommandParameter(dbCommand, "@AmountTot", _AmountTot);
if (columnNames.ContainsCI("TaxRateRebate")) AddCommandParameter(dbCommand, "@TaxRateRebate", _TaxRateRebate);
if (columnNames.ContainsCI("AmountTaxRebate")) AddCommandParameter(dbCommand, "@AmountTaxRebate", _AmountTaxRebate);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("StatusCat")) AddCommandParameter(dbCommand, "@StatusCat", _StatusCat);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("AffIdOwner")) AddCommandParameter(dbCommand, "@AffIdOwner", _AffIdOwner);
if (columnNames.ContainsCI("AffIdTarget")) AddCommandParameter(dbCommand, "@AffIdTarget", _AffIdTarget);
if (columnNames.ContainsCI("AssocId")) AddCommandParameter(dbCommand, "@AssocId", _AssocId);
if (columnNames.ContainsCI("TransId")) AddCommandParameter(dbCommand, "@TransId", _TransId);
if (columnNames.ContainsCI("ReqntId")) AddCommandParameter(dbCommand, "@ReqntId", _ReqntId);
if (columnNames.ContainsCI("ConstId")) AddCommandParameter(dbCommand, "@ConstId", _ConstId);
if (columnNames.ContainsCI("ProcessId")) AddCommandParameter(dbCommand, "@ProcessId", _ProcessId);
if (columnNames.ContainsCI("AssocIdContractor")) AddCommandParameter(dbCommand, "@AssocIdContractor", _AssocIdContractor);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Seq")) AddCommandParameter(dbCommand, "@Seq", _Seq);
if (columnNames.ContainsCI("Effective")) AddCommandParameter(dbCommand, "@Effective", _Effective);
if (columnNames.ContainsCI("Required")) AddCommandParameter(dbCommand, "@Required", _Required);
if (columnNames.ContainsCI("Started")) AddCommandParameter(dbCommand, "@Started", _Started);
if (columnNames.ContainsCI("Completed")) AddCommandParameter(dbCommand, "@Completed", _Completed);
if (columnNames.ContainsCI("AssetId")) AddCommandParameter(dbCommand, "@AssetId", _AssetId);
if (columnNames.ContainsCI("DescBrief")) AddCommandParameter(dbCommand, "@DescBrief", _DescBrief);
if (columnNames.ContainsCI("DescOutline")) AddCommandParameter(dbCommand, "@DescOutline", _DescOutline);
if (columnNames.ContainsCI("DescDetail")) AddCommandParameter(dbCommand, "@DescDetail", _DescDetail);
if (columnNames.ContainsCI("TaskNumber")) AddCommandParameter(dbCommand, "@TaskNumber", _TaskNumber);
if (columnNames.ContainsCI("Priority")) AddCommandParameter(dbCommand, "@Priority", _Priority);
if (columnNames.ContainsCI("Category")) AddCommandParameter(dbCommand, "@Category", _Category);
if (columnNames.ContainsCI("Reference")) AddCommandParameter(dbCommand, "@Reference", _Reference);
if (columnNames.ContainsCI("Quantity")) AddCommandParameter(dbCommand, "@Quantity", _Quantity);
if (columnNames.ContainsCI("UomId")) AddCommandParameter(dbCommand, "@UomId", _UomId);
if (columnNames.ContainsCI("UnitCost")) AddCommandParameter(dbCommand, "@UnitCost", _UnitCost);
if (columnNames.ContainsCI("AmountEst")) AddCommandParameter(dbCommand, "@AmountEst", _AmountEst);
if (columnNames.ContainsCI("AmountNet")) AddCommandParameter(dbCommand, "@AmountNet", _AmountNet);
if (columnNames.ContainsCI("TaxCodeId")) AddCommandParameter(dbCommand, "@TaxCodeId", _TaxCodeId);
if (columnNames.ContainsCI("TaxRate")) AddCommandParameter(dbCommand, "@TaxRate", _TaxRate);
if (columnNames.ContainsCI("AmountTax")) AddCommandParameter(dbCommand, "@AmountTax", _AmountTax);
if (columnNames.ContainsCI("AmountTot")) AddCommandParameter(dbCommand, "@AmountTot", _AmountTot);
if (columnNames.ContainsCI("TaxRateRebate")) AddCommandParameter(dbCommand, "@TaxRateRebate", _TaxRateRebate);
if (columnNames.ContainsCI("AmountTaxRebate")) AddCommandParameter(dbCommand, "@AmountTaxRebate", _AmountTaxRebate);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("StatusCat")) AddCommandParameter(dbCommand, "@StatusCat", _StatusCat);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,232 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class ContainerItem_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _ContainerId { get; } = new ColumnDataInt32("ContainerId");
public ColumnDataInt16 _ItemSeq { get; } = new ColumnDataInt16("ItemSeq");
public ColumnDataInt16 _ItemType { get; } = new ColumnDataInt16("ItemType");
public ColumnDataInt32 _ItemId { get; } = new ColumnDataInt32("ItemId");
public ColumnDataInt16 _ItemTypeSource { get; } = new ColumnDataInt16("ItemTypeSource");
public ColumnDataInt32 _ItemIdSource { get; } = new ColumnDataInt32("ItemIdSource");
public ColumnDataDecimal _Quantity { get; } = new ColumnDataDecimal("Quantity");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"ContainerId",
"ItemSeq",
"ItemType",
"ItemId",
"ItemTypeSource",
"ItemIdSource",
"Quantity",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"ContainerId",
"ItemSeq",
"ItemType",
"ItemId",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal ContainerItem_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "ContainerItem";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _ContainerId { get { return Cols._ContainerId.Value; } set { Cols._ContainerId.Value = value; } }
public Int16 _ItemSeq { get { return Cols._ItemSeq.Value; } set { Cols._ItemSeq.Value = value; } }
public Int16 _ItemType { get { return Cols._ItemType.Value; } set { Cols._ItemType.Value = value; } }
public Int32 _ItemId { get { return Cols._ItemId.Value; } set { Cols._ItemId.Value = value; } }
public Int16 _ItemTypeSource { get { return Cols._ItemTypeSource.Value; } set { Cols._ItemTypeSource.Value = value; } }
public Int32 _ItemIdSource { get { return Cols._ItemIdSource.Value; } set { Cols._ItemIdSource.Value = value; } }
public Decimal _Quantity { get { return Cols._Quantity.Value; } set { Cols._Quantity.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_ContainerId = GetFieldInt32(dbDataReader, "ContainerId", _ContainerId);
_ItemSeq = GetFieldInt16(dbDataReader, "ItemSeq", _ItemSeq);
_ItemType = GetFieldInt16(dbDataReader, "ItemType", _ItemType);
_ItemId = GetFieldInt32(dbDataReader, "ItemId", _ItemId);
_ItemTypeSource = GetFieldInt16(dbDataReader, "ItemTypeSource", _ItemTypeSource);
_ItemIdSource = GetFieldInt32(dbDataReader, "ItemIdSource", _ItemIdSource);
_Quantity = GetFieldDecimal(dbDataReader, "Quantity", _Quantity);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("ContainerId")) AddCommandParameter(dbCommand, "@ContainerId", _ContainerId);
if (columnNames.ContainsCI("ItemSeq")) AddCommandParameter(dbCommand, "@ItemSeq", _ItemSeq);
if (columnNames.ContainsCI("ItemType")) AddCommandParameter(dbCommand, "@ItemType", _ItemType);
if (columnNames.ContainsCI("ItemId")) AddCommandParameter(dbCommand, "@ItemId", _ItemId);
if (columnNames.ContainsCI("ItemTypeSource")) AddCommandParameter(dbCommand, "@ItemTypeSource", _ItemTypeSource);
if (columnNames.ContainsCI("ItemIdSource")) AddCommandParameter(dbCommand, "@ItemIdSource", _ItemIdSource);
if (columnNames.ContainsCI("Quantity")) AddCommandParameter(dbCommand, "@Quantity", _Quantity);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE ContainerId=@ContainerId AND ItemSeq=@ItemSeq AND ItemType=@ItemType AND ItemId=@ItemId;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE ContainerId=? AND ItemSeq=? AND ItemType=? AND ItemId=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("ItemTypeSource")) AddCommandParameter(dbCommand, "@ItemTypeSource", _ItemTypeSource);
if (columnNames.ContainsCI("ItemIdSource")) AddCommandParameter(dbCommand, "@ItemIdSource", _ItemIdSource);
if (columnNames.ContainsCI("Quantity")) AddCommandParameter(dbCommand, "@Quantity", _Quantity);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@ContainerId", _ContainerId);
AddCommandParameter(dbCommand, "@ItemSeq", _ItemSeq);
AddCommandParameter(dbCommand, "@ItemType", _ItemType);
AddCommandParameter(dbCommand, "@ItemId", _ItemId);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,247 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class Container_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt32 _AffIdOwner { get; } = new ColumnDataInt32("AffIdOwner");
public ColumnDataInt16 _Category { get; } = new ColumnDataInt16("Category");
public ColumnDataString _Type { get; } = new ColumnDataString("Type");
public ColumnDataString _Reference { get; } = new ColumnDataString("Reference");
public ColumnDataString _DescBrief { get; } = new ColumnDataString("DescBrief");
public ColumnDataString _TagId { get; } = new ColumnDataString("TagId");
public ColumnDataInt32 _AssIdSupplier { get; } = new ColumnDataInt32("AssIdSupplier");
public ColumnDataInt32 _AssIdCustomer { get; } = new ColumnDataInt32("AssIdCustomer");
public ColumnDataDateTime _Expected { get; } = new ColumnDataDateTime("Expected");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"AffIdOwner",
"Category",
"Type",
"Reference",
"DescBrief",
"TagId",
"AssIdSupplier",
"AssIdCustomer",
"Expected",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal Container_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "Container";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int32 _AffIdOwner { get { return Cols._AffIdOwner.Value; } set { Cols._AffIdOwner.Value = value; } }
public Int16 _Category { get { return Cols._Category.Value; } set { Cols._Category.Value = value; } }
public String _Type { get { return Cols._Type.Value; } set { Cols._Type.Value = value; } }
public String _Reference { get { return Cols._Reference.Value; } set { Cols._Reference.Value = value; } }
public String _DescBrief { get { return Cols._DescBrief.Value; } set { Cols._DescBrief.Value = value; } }
public String _TagId { get { return Cols._TagId.Value; } set { Cols._TagId.Value = value; } }
public Int32 _AssIdSupplier { get { return Cols._AssIdSupplier.Value; } set { Cols._AssIdSupplier.Value = value; } }
public Int32 _AssIdCustomer { get { return Cols._AssIdCustomer.Value; } set { Cols._AssIdCustomer.Value = value; } }
public DateTime _Expected { get { return Cols._Expected.Value; } set { Cols._Expected.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_AffIdOwner = GetFieldInt32(dbDataReader, "AffIdOwner", _AffIdOwner);
_Category = GetFieldInt16(dbDataReader, "Category", _Category);
_Type = GetFieldString(dbDataReader, "Type", _Type);
_Reference = GetFieldString(dbDataReader, "Reference", _Reference);
_DescBrief = GetFieldString(dbDataReader, "DescBrief", _DescBrief);
_TagId = GetFieldString(dbDataReader, "TagId", _TagId);
_AssIdSupplier = GetFieldInt32(dbDataReader, "AssIdSupplier", _AssIdSupplier);
_AssIdCustomer = GetFieldInt32(dbDataReader, "AssIdCustomer", _AssIdCustomer);
_Expected = GetFieldDateTime(dbDataReader, "Expected", _Expected);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("AffIdOwner")) AddCommandParameter(dbCommand, "@AffIdOwner", _AffIdOwner);
if (columnNames.ContainsCI("Category")) AddCommandParameter(dbCommand, "@Category", _Category);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Reference")) AddCommandParameter(dbCommand, "@Reference", _Reference);
if (columnNames.ContainsCI("DescBrief")) AddCommandParameter(dbCommand, "@DescBrief", _DescBrief);
if (columnNames.ContainsCI("TagId")) AddCommandParameter(dbCommand, "@TagId", _TagId);
if (columnNames.ContainsCI("AssIdSupplier")) AddCommandParameter(dbCommand, "@AssIdSupplier", _AssIdSupplier);
if (columnNames.ContainsCI("AssIdCustomer")) AddCommandParameter(dbCommand, "@AssIdCustomer", _AssIdCustomer);
if (columnNames.ContainsCI("Expected")) AddCommandParameter(dbCommand, "@Expected", _Expected);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("AffIdOwner")) AddCommandParameter(dbCommand, "@AffIdOwner", _AffIdOwner);
if (columnNames.ContainsCI("Category")) AddCommandParameter(dbCommand, "@Category", _Category);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Reference")) AddCommandParameter(dbCommand, "@Reference", _Reference);
if (columnNames.ContainsCI("DescBrief")) AddCommandParameter(dbCommand, "@DescBrief", _DescBrief);
if (columnNames.ContainsCI("TagId")) AddCommandParameter(dbCommand, "@TagId", _TagId);
if (columnNames.ContainsCI("AssIdSupplier")) AddCommandParameter(dbCommand, "@AssIdSupplier", _AssIdSupplier);
if (columnNames.ContainsCI("AssIdCustomer")) AddCommandParameter(dbCommand, "@AssIdCustomer", _AssIdCustomer);
if (columnNames.ContainsCI("Expected")) AddCommandParameter(dbCommand, "@Expected", _Expected);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,229 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class Currency_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataString _Code { get; } = new ColumnDataString("Code");
public ColumnDataString _Name { get; } = new ColumnDataString("Name");
public ColumnDataInt32 _Primary { get; } = new ColumnDataInt32("Primary");
public ColumnDataString _Division { get; } = new ColumnDataString("Division");
public ColumnDataInt32 _Region { get; } = new ColumnDataInt32("Region");
public ColumnDataString _Symbol { get; } = new ColumnDataString("Symbol");
public ColumnDataBoolean _Suffix { get; } = new ColumnDataBoolean("Suffix");
public ColumnDataBoolean _IncSpace { get; } = new ColumnDataBoolean("IncSpace");
public ColumnDataInt16 _Decimals { get; } = new ColumnDataInt16("Decimals");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"Code",
"Name",
"Primary",
"Division",
"Region",
"Symbol",
"Suffix",
"IncSpace",
"Decimals",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal Currency_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "Currency";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public String _Code { get { return Cols._Code.Value; } set { Cols._Code.Value = value; } }
public String _Name { get { return Cols._Name.Value; } set { Cols._Name.Value = value; } }
public Int32 _Primary { get { return Cols._Primary.Value; } set { Cols._Primary.Value = value; } }
public String _Division { get { return Cols._Division.Value; } set { Cols._Division.Value = value; } }
public Int32 _Region { get { return Cols._Region.Value; } set { Cols._Region.Value = value; } }
public String _Symbol { get { return Cols._Symbol.Value; } set { Cols._Symbol.Value = value; } }
public Boolean _Suffix { get { return Cols._Suffix.Value; } set { Cols._Suffix.Value = value; } }
public Boolean _IncSpace { get { return Cols._IncSpace.Value; } set { Cols._IncSpace.Value = value; } }
public Int16 _Decimals { get { return Cols._Decimals.Value; } set { Cols._Decimals.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_Code = GetFieldString(dbDataReader, "Code", _Code);
_Name = GetFieldString(dbDataReader, "Name", _Name);
_Primary = GetFieldInt32(dbDataReader, "Primary", _Primary);
_Division = GetFieldString(dbDataReader, "Division", _Division);
_Region = GetFieldInt32(dbDataReader, "Region", _Region);
_Symbol = GetFieldString(dbDataReader, "Symbol", _Symbol);
_Suffix = GetFieldBoolean(dbDataReader, "Suffix", _Suffix);
_IncSpace = GetFieldBoolean(dbDataReader, "IncSpace", _IncSpace);
_Decimals = GetFieldInt16(dbDataReader, "Decimals", _Decimals);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("Code")) AddCommandParameter(dbCommand, "@Code", _Code);
if (columnNames.ContainsCI("Name")) AddCommandParameter(dbCommand, "@Name", _Name);
if (columnNames.ContainsCI("Primary")) AddCommandParameter(dbCommand, "@Primary", _Primary);
if (columnNames.ContainsCI("Division")) AddCommandParameter(dbCommand, "@Division", _Division);
if (columnNames.ContainsCI("Region")) AddCommandParameter(dbCommand, "@Region", _Region);
if (columnNames.ContainsCI("Symbol")) AddCommandParameter(dbCommand, "@Symbol", _Symbol);
if (columnNames.ContainsCI("Suffix")) AddCommandParameter(dbCommand, "@Suffix", _Suffix);
if (columnNames.ContainsCI("IncSpace")) AddCommandParameter(dbCommand, "@IncSpace", _IncSpace);
if (columnNames.ContainsCI("Decimals")) AddCommandParameter(dbCommand, "@Decimals", _Decimals);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Code")) AddCommandParameter(dbCommand, "@Code", _Code);
if (columnNames.ContainsCI("Name")) AddCommandParameter(dbCommand, "@Name", _Name);
if (columnNames.ContainsCI("Primary")) AddCommandParameter(dbCommand, "@Primary", _Primary);
if (columnNames.ContainsCI("Division")) AddCommandParameter(dbCommand, "@Division", _Division);
if (columnNames.ContainsCI("Region")) AddCommandParameter(dbCommand, "@Region", _Region);
if (columnNames.ContainsCI("Symbol")) AddCommandParameter(dbCommand, "@Symbol", _Symbol);
if (columnNames.ContainsCI("Suffix")) AddCommandParameter(dbCommand, "@Suffix", _Suffix);
if (columnNames.ContainsCI("IncSpace")) AddCommandParameter(dbCommand, "@IncSpace", _IncSpace);
if (columnNames.ContainsCI("Decimals")) AddCommandParameter(dbCommand, "@Decimals", _Decimals);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,215 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class IndexDefragLog_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _IndexDefragId { get; } = new ColumnDataInt32("IndexDefragId", true);
public ColumnDataInt32 _DatabaseID { get; } = new ColumnDataInt32("DatabaseID");
public ColumnDataString _DatabaseName { get; } = new ColumnDataString("DatabaseName");
public ColumnDataInt32 _ObjectID { get; } = new ColumnDataInt32("ObjectID");
public ColumnDataString _ObjectName { get; } = new ColumnDataString("ObjectName");
public ColumnDataInt32 _IndexID { get; } = new ColumnDataInt32("IndexID");
public ColumnDataString _IndexName { get; } = new ColumnDataString("IndexName");
public ColumnDataInt16 _PartitionNumber { get; } = new ColumnDataInt16("PartitionNumber");
public ColumnDataDecimal _Fragmentation { get; } = new ColumnDataDecimal("Fragmentation");
public ColumnDataInt32 _PageCount { get; } = new ColumnDataInt32("PageCount");
public ColumnDataDateTime _DateTimeStart { get; } = new ColumnDataDateTime("DateTimeStart");
public ColumnDataInt32 _DurationSeconds { get; } = new ColumnDataInt32("DurationSeconds");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"IndexDefragId",
"DatabaseID",
"DatabaseName",
"ObjectID",
"ObjectName",
"IndexID",
"IndexName",
"PartitionNumber",
"Fragmentation",
"PageCount",
"DateTimeStart",
"DurationSeconds",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
"IndexDefragId",
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"IndexDefragId",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal IndexDefragLog_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "IndexDefragLog";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _IndexDefragId { get { return Cols._IndexDefragId.Value; } set { Cols._IndexDefragId.Value = value; } }
public Int32 _DatabaseID { get { return Cols._DatabaseID.Value; } set { Cols._DatabaseID.Value = value; } }
public String _DatabaseName { get { return Cols._DatabaseName.Value; } set { Cols._DatabaseName.Value = value; } }
public Int32 _ObjectID { get { return Cols._ObjectID.Value; } set { Cols._ObjectID.Value = value; } }
public String _ObjectName { get { return Cols._ObjectName.Value; } set { Cols._ObjectName.Value = value; } }
public Int32 _IndexID { get { return Cols._IndexID.Value; } set { Cols._IndexID.Value = value; } }
public String _IndexName { get { return Cols._IndexName.Value; } set { Cols._IndexName.Value = value; } }
public Int16 _PartitionNumber { get { return Cols._PartitionNumber.Value; } set { Cols._PartitionNumber.Value = value; } }
public Decimal _Fragmentation { get { return Cols._Fragmentation.Value; } set { Cols._Fragmentation.Value = value; } }
public Int32 _PageCount { get { return Cols._PageCount.Value; } set { Cols._PageCount.Value = value; } }
public DateTime _DateTimeStart { get { return Cols._DateTimeStart.Value; } set { Cols._DateTimeStart.Value = value; } }
public Int32 _DurationSeconds { get { return Cols._DurationSeconds.Value; } set { Cols._DurationSeconds.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_IndexDefragId = GetFieldInt32(dbDataReader, "IndexDefragId", _IndexDefragId);
_DatabaseID = GetFieldInt32(dbDataReader, "DatabaseID", _DatabaseID);
_DatabaseName = GetFieldString(dbDataReader, "DatabaseName", _DatabaseName);
_ObjectID = GetFieldInt32(dbDataReader, "ObjectID", _ObjectID);
_ObjectName = GetFieldString(dbDataReader, "ObjectName", _ObjectName);
_IndexID = GetFieldInt32(dbDataReader, "IndexID", _IndexID);
_IndexName = GetFieldString(dbDataReader, "IndexName", _IndexName);
_PartitionNumber = GetFieldInt16(dbDataReader, "PartitionNumber", _PartitionNumber);
_Fragmentation = GetFieldDecimal(dbDataReader, "Fragmentation", _Fragmentation);
_PageCount = GetFieldInt32(dbDataReader, "PageCount", _PageCount);
_DateTimeStart = GetFieldDateTime(dbDataReader, "DateTimeStart", _DateTimeStart);
_DurationSeconds = GetFieldInt32(dbDataReader, "DurationSeconds", _DurationSeconds);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Avoid insert if Identity field is already valid.
if (_IndexDefragId != 0) throw new Exception("Invalid for Insert - item already has a valid Id");
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
query += "Output Inserted.IndexDefragId ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("DatabaseID")) AddCommandParameter(dbCommand, "@DatabaseID", _DatabaseID);
if (columnNames.ContainsCI("DatabaseName")) AddCommandParameter(dbCommand, "@DatabaseName", _DatabaseName);
if (columnNames.ContainsCI("ObjectID")) AddCommandParameter(dbCommand, "@ObjectID", _ObjectID);
if (columnNames.ContainsCI("ObjectName")) AddCommandParameter(dbCommand, "@ObjectName", _ObjectName);
if (columnNames.ContainsCI("IndexID")) AddCommandParameter(dbCommand, "@IndexID", _IndexID);
if (columnNames.ContainsCI("IndexName")) AddCommandParameter(dbCommand, "@IndexName", _IndexName);
if (columnNames.ContainsCI("PartitionNumber")) AddCommandParameter(dbCommand, "@PartitionNumber", _PartitionNumber);
if (columnNames.ContainsCI("Fragmentation")) AddCommandParameter(dbCommand, "@Fragmentation", _Fragmentation);
if (columnNames.ContainsCI("PageCount")) AddCommandParameter(dbCommand, "@PageCount", _PageCount);
if (columnNames.ContainsCI("DateTimeStart")) AddCommandParameter(dbCommand, "@DateTimeStart", _DateTimeStart);
if (columnNames.ContainsCI("DurationSeconds")) AddCommandParameter(dbCommand, "@DurationSeconds", _DurationSeconds);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
dbCommand.CommandText = "SELECT Max(IndexDefragId) FROM " + TableNameFmt + ";";
_IndexDefragId = Convert.ToInt32(dbCommand.ExecuteScalar());
commandSuccess = (_IndexDefragId > 0);
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Avoid update if Identity field isn't valid.
if (_IndexDefragId == 0) throw new Exception("Invalid for Update - item has an invalid Id");
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE IndexDefragId=@IndexDefragId;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE IndexDefragId=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("DatabaseID")) AddCommandParameter(dbCommand, "@DatabaseID", _DatabaseID);
if (columnNames.ContainsCI("DatabaseName")) AddCommandParameter(dbCommand, "@DatabaseName", _DatabaseName);
if (columnNames.ContainsCI("ObjectID")) AddCommandParameter(dbCommand, "@ObjectID", _ObjectID);
if (columnNames.ContainsCI("ObjectName")) AddCommandParameter(dbCommand, "@ObjectName", _ObjectName);
if (columnNames.ContainsCI("IndexID")) AddCommandParameter(dbCommand, "@IndexID", _IndexID);
if (columnNames.ContainsCI("IndexName")) AddCommandParameter(dbCommand, "@IndexName", _IndexName);
if (columnNames.ContainsCI("PartitionNumber")) AddCommandParameter(dbCommand, "@PartitionNumber", _PartitionNumber);
if (columnNames.ContainsCI("Fragmentation")) AddCommandParameter(dbCommand, "@Fragmentation", _Fragmentation);
if (columnNames.ContainsCI("PageCount")) AddCommandParameter(dbCommand, "@PageCount", _PageCount);
if (columnNames.ContainsCI("DateTimeStart")) AddCommandParameter(dbCommand, "@DateTimeStart", _DateTimeStart);
if (columnNames.ContainsCI("DurationSeconds")) AddCommandParameter(dbCommand, "@DurationSeconds", _DurationSeconds);
AddCommandParameter(dbCommand, "@IndexDefragId", _IndexDefragId);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,253 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class InterfaceDataItem_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt32 _InterfaceId { get; } = new ColumnDataInt32("InterfaceId");
public ColumnDataInt16 _Direction { get; } = new ColumnDataInt16("Direction");
public ColumnDataString _ExternalRef { get; } = new ColumnDataString("ExternalRef");
public ColumnDataInt16 _ItemType { get; } = new ColumnDataInt16("ItemType");
public ColumnDataInt32 _ItemId { get; } = new ColumnDataInt32("ItemId");
public ColumnDataString _ProcessStatus { get; } = new ColumnDataString("ProcessStatus");
public ColumnDataInt32 _ProcessStatusBy { get; } = new ColumnDataInt32("ProcessStatusBy");
public ColumnDataInt32 _ProcessStatusOn { get; } = new ColumnDataInt32("ProcessStatusOn");
public ColumnDataString _ItemStatus { get; } = new ColumnDataString("ItemStatus");
public ColumnDataInt32 _ItemStatusBy { get; } = new ColumnDataInt32("ItemStatusBy");
public ColumnDataInt32 _ItemStatusOn { get; } = new ColumnDataInt32("ItemStatusOn");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"InterfaceId",
"Direction",
"ExternalRef",
"ItemType",
"ItemId",
"ProcessStatus",
"ProcessStatusBy",
"ProcessStatusOn",
"ItemStatus",
"ItemStatusBy",
"ItemStatusOn",
"Notes",
"Flags",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal InterfaceDataItem_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "InterfaceDataItem";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int32 _InterfaceId { get { return Cols._InterfaceId.Value; } set { Cols._InterfaceId.Value = value; } }
public Int16 _Direction { get { return Cols._Direction.Value; } set { Cols._Direction.Value = value; } }
public String _ExternalRef { get { return Cols._ExternalRef.Value; } set { Cols._ExternalRef.Value = value; } }
public Int16 _ItemType { get { return Cols._ItemType.Value; } set { Cols._ItemType.Value = value; } }
public Int32 _ItemId { get { return Cols._ItemId.Value; } set { Cols._ItemId.Value = value; } }
public String _ProcessStatus { get { return Cols._ProcessStatus.Value; } set { Cols._ProcessStatus.Value = value; } }
public Int32 _ProcessStatusBy { get { return Cols._ProcessStatusBy.Value; } set { Cols._ProcessStatusBy.Value = value; } }
public Int32 _ProcessStatusOn { get { return Cols._ProcessStatusOn.Value; } set { Cols._ProcessStatusOn.Value = value; } }
public String _ItemStatus { get { return Cols._ItemStatus.Value; } set { Cols._ItemStatus.Value = value; } }
public Int32 _ItemStatusBy { get { return Cols._ItemStatusBy.Value; } set { Cols._ItemStatusBy.Value = value; } }
public Int32 _ItemStatusOn { get { return Cols._ItemStatusOn.Value; } set { Cols._ItemStatusOn.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_InterfaceId = GetFieldInt32(dbDataReader, "InterfaceId", _InterfaceId);
_Direction = GetFieldInt16(dbDataReader, "Direction", _Direction);
_ExternalRef = GetFieldString(dbDataReader, "ExternalRef", _ExternalRef);
_ItemType = GetFieldInt16(dbDataReader, "ItemType", _ItemType);
_ItemId = GetFieldInt32(dbDataReader, "ItemId", _ItemId);
_ProcessStatus = GetFieldString(dbDataReader, "ProcessStatus", _ProcessStatus);
_ProcessStatusBy = GetFieldInt32(dbDataReader, "ProcessStatusBy", _ProcessStatusBy);
_ProcessStatusOn = GetFieldInt32(dbDataReader, "ProcessStatusOn", _ProcessStatusOn);
_ItemStatus = GetFieldString(dbDataReader, "ItemStatus", _ItemStatus);
_ItemStatusBy = GetFieldInt32(dbDataReader, "ItemStatusBy", _ItemStatusBy);
_ItemStatusOn = GetFieldInt32(dbDataReader, "ItemStatusOn", _ItemStatusOn);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("InterfaceId")) AddCommandParameter(dbCommand, "@InterfaceId", _InterfaceId);
if (columnNames.ContainsCI("Direction")) AddCommandParameter(dbCommand, "@Direction", _Direction);
if (columnNames.ContainsCI("ExternalRef")) AddCommandParameter(dbCommand, "@ExternalRef", _ExternalRef);
if (columnNames.ContainsCI("ItemType")) AddCommandParameter(dbCommand, "@ItemType", _ItemType);
if (columnNames.ContainsCI("ItemId")) AddCommandParameter(dbCommand, "@ItemId", _ItemId);
if (columnNames.ContainsCI("ProcessStatus")) AddCommandParameter(dbCommand, "@ProcessStatus", _ProcessStatus);
if (columnNames.ContainsCI("ProcessStatusBy")) AddCommandParameter(dbCommand, "@ProcessStatusBy", _ProcessStatusBy);
if (columnNames.ContainsCI("ProcessStatusOn")) AddCommandParameter(dbCommand, "@ProcessStatusOn", _ProcessStatusOn);
if (columnNames.ContainsCI("ItemStatus")) AddCommandParameter(dbCommand, "@ItemStatus", _ItemStatus);
if (columnNames.ContainsCI("ItemStatusBy")) AddCommandParameter(dbCommand, "@ItemStatusBy", _ItemStatusBy);
if (columnNames.ContainsCI("ItemStatusOn")) AddCommandParameter(dbCommand, "@ItemStatusOn", _ItemStatusOn);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("InterfaceId")) AddCommandParameter(dbCommand, "@InterfaceId", _InterfaceId);
if (columnNames.ContainsCI("Direction")) AddCommandParameter(dbCommand, "@Direction", _Direction);
if (columnNames.ContainsCI("ExternalRef")) AddCommandParameter(dbCommand, "@ExternalRef", _ExternalRef);
if (columnNames.ContainsCI("ItemType")) AddCommandParameter(dbCommand, "@ItemType", _ItemType);
if (columnNames.ContainsCI("ItemId")) AddCommandParameter(dbCommand, "@ItemId", _ItemId);
if (columnNames.ContainsCI("ProcessStatus")) AddCommandParameter(dbCommand, "@ProcessStatus", _ProcessStatus);
if (columnNames.ContainsCI("ProcessStatusBy")) AddCommandParameter(dbCommand, "@ProcessStatusBy", _ProcessStatusBy);
if (columnNames.ContainsCI("ProcessStatusOn")) AddCommandParameter(dbCommand, "@ProcessStatusOn", _ProcessStatusOn);
if (columnNames.ContainsCI("ItemStatus")) AddCommandParameter(dbCommand, "@ItemStatus", _ItemStatus);
if (columnNames.ContainsCI("ItemStatusBy")) AddCommandParameter(dbCommand, "@ItemStatusBy", _ItemStatusBy);
if (columnNames.ContainsCI("ItemStatusOn")) AddCommandParameter(dbCommand, "@ItemStatusOn", _ItemStatusOn);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,200 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class InterfaceProcessDataItem_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _ProcessId { get; } = new ColumnDataInt32("ProcessId");
public ColumnDataInt32 _InterfaceDataItemId { get; } = new ColumnDataInt32("InterfaceDataItemId");
public ColumnDataString _ItemData { get; } = new ColumnDataString("ItemData");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"ProcessId",
"InterfaceDataItemId",
"ItemData",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"ProcessId",
"InterfaceDataItemId",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal InterfaceProcessDataItem_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "InterfaceProcessDataItem";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _ProcessId { get { return Cols._ProcessId.Value; } set { Cols._ProcessId.Value = value; } }
public Int32 _InterfaceDataItemId { get { return Cols._InterfaceDataItemId.Value; } set { Cols._InterfaceDataItemId.Value = value; } }
public String _ItemData { get { return Cols._ItemData.Value; } set { Cols._ItemData.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_ProcessId = GetFieldInt32(dbDataReader, "ProcessId", _ProcessId);
_InterfaceDataItemId = GetFieldInt32(dbDataReader, "InterfaceDataItemId", _InterfaceDataItemId);
_ItemData = GetFieldString(dbDataReader, "ItemData", _ItemData);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("ProcessId")) AddCommandParameter(dbCommand, "@ProcessId", _ProcessId);
if (columnNames.ContainsCI("InterfaceDataItemId")) AddCommandParameter(dbCommand, "@InterfaceDataItemId", _InterfaceDataItemId);
if (columnNames.ContainsCI("ItemData")) AddCommandParameter(dbCommand, "@ItemData", _ItemData);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE ProcessId=@ProcessId AND InterfaceDataItemId=@InterfaceDataItemId;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE ProcessId=? AND InterfaceDataItemId=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("ItemData")) AddCommandParameter(dbCommand, "@ItemData", _ItemData);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@ProcessId", _ProcessId);
AddCommandParameter(dbCommand, "@InterfaceDataItemId", _InterfaceDataItemId);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,229 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class InterfaceProcessMessage_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt32 _ProcessId { get; } = new ColumnDataInt32("ProcessId");
public ColumnDataString _MsgType { get; } = new ColumnDataString("MsgType");
public ColumnDataString _Msg { get; } = new ColumnDataString("Msg");
public ColumnDataString _FileName { get; } = new ColumnDataString("FileName");
public ColumnDataInt32 _LineNumber { get; } = new ColumnDataInt32("LineNumber");
public ColumnDataInt16 _ItemType { get; } = new ColumnDataInt16("ItemType");
public ColumnDataInt32 _ItemId { get; } = new ColumnDataInt32("ItemId");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"ProcessId",
"MsgType",
"Msg",
"FileName",
"LineNumber",
"ItemType",
"ItemId",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal InterfaceProcessMessage_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "InterfaceProcessMessage";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int32 _ProcessId { get { return Cols._ProcessId.Value; } set { Cols._ProcessId.Value = value; } }
public String _MsgType { get { return Cols._MsgType.Value; } set { Cols._MsgType.Value = value; } }
public String _Msg { get { return Cols._Msg.Value; } set { Cols._Msg.Value = value; } }
public String _FileName { get { return Cols._FileName.Value; } set { Cols._FileName.Value = value; } }
public Int32 _LineNumber { get { return Cols._LineNumber.Value; } set { Cols._LineNumber.Value = value; } }
public Int16 _ItemType { get { return Cols._ItemType.Value; } set { Cols._ItemType.Value = value; } }
public Int32 _ItemId { get { return Cols._ItemId.Value; } set { Cols._ItemId.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_ProcessId = GetFieldInt32(dbDataReader, "ProcessId", _ProcessId);
_MsgType = GetFieldString(dbDataReader, "MsgType", _MsgType);
_Msg = GetFieldString(dbDataReader, "Msg", _Msg);
_FileName = GetFieldString(dbDataReader, "FileName", _FileName);
_LineNumber = GetFieldInt32(dbDataReader, "LineNumber", _LineNumber);
_ItemType = GetFieldInt16(dbDataReader, "ItemType", _ItemType);
_ItemId = GetFieldInt32(dbDataReader, "ItemId", _ItemId);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("ProcessId")) AddCommandParameter(dbCommand, "@ProcessId", _ProcessId);
if (columnNames.ContainsCI("MsgType")) AddCommandParameter(dbCommand, "@MsgType", _MsgType);
if (columnNames.ContainsCI("Msg")) AddCommandParameter(dbCommand, "@Msg", _Msg);
if (columnNames.ContainsCI("FileName")) AddCommandParameter(dbCommand, "@FileName", _FileName);
if (columnNames.ContainsCI("LineNumber")) AddCommandParameter(dbCommand, "@LineNumber", _LineNumber);
if (columnNames.ContainsCI("ItemType")) AddCommandParameter(dbCommand, "@ItemType", _ItemType);
if (columnNames.ContainsCI("ItemId")) AddCommandParameter(dbCommand, "@ItemId", _ItemId);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("ProcessId")) AddCommandParameter(dbCommand, "@ProcessId", _ProcessId);
if (columnNames.ContainsCI("MsgType")) AddCommandParameter(dbCommand, "@MsgType", _MsgType);
if (columnNames.ContainsCI("Msg")) AddCommandParameter(dbCommand, "@Msg", _Msg);
if (columnNames.ContainsCI("FileName")) AddCommandParameter(dbCommand, "@FileName", _FileName);
if (columnNames.ContainsCI("LineNumber")) AddCommandParameter(dbCommand, "@LineNumber", _LineNumber);
if (columnNames.ContainsCI("ItemType")) AddCommandParameter(dbCommand, "@ItemType", _ItemType);
if (columnNames.ContainsCI("ItemId")) AddCommandParameter(dbCommand, "@ItemId", _ItemId);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,247 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class InterfaceProcess_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt32 _InterfaceId { get; } = new ColumnDataInt32("InterfaceId");
public ColumnDataInt16 _Direction { get; } = new ColumnDataInt16("Direction");
public ColumnDataString _ProcRef { get; } = new ColumnDataString("ProcRef");
public ColumnDataInt32 _ProcSeq { get; } = new ColumnDataInt32("ProcSeq");
public ColumnDataInt32 _ProcDate { get; } = new ColumnDataInt32("ProcDate");
public ColumnDataInt32 _ProcTime { get; } = new ColumnDataInt32("ProcTime");
public ColumnDataInt32 _BatchDate { get; } = new ColumnDataInt32("BatchDate");
public ColumnDataInt32 _BatchTime { get; } = new ColumnDataInt32("BatchTime");
public ColumnDataInt32 _ElapseSecs { get; } = new ColumnDataInt32("ElapseSecs");
public ColumnDataInt32 _ItemCount { get; } = new ColumnDataInt32("ItemCount");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"InterfaceId",
"Direction",
"ProcRef",
"ProcSeq",
"ProcDate",
"ProcTime",
"BatchDate",
"BatchTime",
"ElapseSecs",
"ItemCount",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal InterfaceProcess_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "InterfaceProcess";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int32 _InterfaceId { get { return Cols._InterfaceId.Value; } set { Cols._InterfaceId.Value = value; } }
public Int16 _Direction { get { return Cols._Direction.Value; } set { Cols._Direction.Value = value; } }
public String _ProcRef { get { return Cols._ProcRef.Value; } set { Cols._ProcRef.Value = value; } }
public Int32 _ProcSeq { get { return Cols._ProcSeq.Value; } set { Cols._ProcSeq.Value = value; } }
public Int32 _ProcDate { get { return Cols._ProcDate.Value; } set { Cols._ProcDate.Value = value; } }
public Int32 _ProcTime { get { return Cols._ProcTime.Value; } set { Cols._ProcTime.Value = value; } }
public Int32 _BatchDate { get { return Cols._BatchDate.Value; } set { Cols._BatchDate.Value = value; } }
public Int32 _BatchTime { get { return Cols._BatchTime.Value; } set { Cols._BatchTime.Value = value; } }
public Int32 _ElapseSecs { get { return Cols._ElapseSecs.Value; } set { Cols._ElapseSecs.Value = value; } }
public Int32 _ItemCount { get { return Cols._ItemCount.Value; } set { Cols._ItemCount.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_InterfaceId = GetFieldInt32(dbDataReader, "InterfaceId", _InterfaceId);
_Direction = GetFieldInt16(dbDataReader, "Direction", _Direction);
_ProcRef = GetFieldString(dbDataReader, "ProcRef", _ProcRef);
_ProcSeq = GetFieldInt32(dbDataReader, "ProcSeq", _ProcSeq);
_ProcDate = GetFieldInt32(dbDataReader, "ProcDate", _ProcDate);
_ProcTime = GetFieldInt32(dbDataReader, "ProcTime", _ProcTime);
_BatchDate = GetFieldInt32(dbDataReader, "BatchDate", _BatchDate);
_BatchTime = GetFieldInt32(dbDataReader, "BatchTime", _BatchTime);
_ElapseSecs = GetFieldInt32(dbDataReader, "ElapseSecs", _ElapseSecs);
_ItemCount = GetFieldInt32(dbDataReader, "ItemCount", _ItemCount);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("InterfaceId")) AddCommandParameter(dbCommand, "@InterfaceId", _InterfaceId);
if (columnNames.ContainsCI("Direction")) AddCommandParameter(dbCommand, "@Direction", _Direction);
if (columnNames.ContainsCI("ProcRef")) AddCommandParameter(dbCommand, "@ProcRef", _ProcRef);
if (columnNames.ContainsCI("ProcSeq")) AddCommandParameter(dbCommand, "@ProcSeq", _ProcSeq);
if (columnNames.ContainsCI("ProcDate")) AddCommandParameter(dbCommand, "@ProcDate", _ProcDate);
if (columnNames.ContainsCI("ProcTime")) AddCommandParameter(dbCommand, "@ProcTime", _ProcTime);
if (columnNames.ContainsCI("BatchDate")) AddCommandParameter(dbCommand, "@BatchDate", _BatchDate);
if (columnNames.ContainsCI("BatchTime")) AddCommandParameter(dbCommand, "@BatchTime", _BatchTime);
if (columnNames.ContainsCI("ElapseSecs")) AddCommandParameter(dbCommand, "@ElapseSecs", _ElapseSecs);
if (columnNames.ContainsCI("ItemCount")) AddCommandParameter(dbCommand, "@ItemCount", _ItemCount);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("InterfaceId")) AddCommandParameter(dbCommand, "@InterfaceId", _InterfaceId);
if (columnNames.ContainsCI("Direction")) AddCommandParameter(dbCommand, "@Direction", _Direction);
if (columnNames.ContainsCI("ProcRef")) AddCommandParameter(dbCommand, "@ProcRef", _ProcRef);
if (columnNames.ContainsCI("ProcSeq")) AddCommandParameter(dbCommand, "@ProcSeq", _ProcSeq);
if (columnNames.ContainsCI("ProcDate")) AddCommandParameter(dbCommand, "@ProcDate", _ProcDate);
if (columnNames.ContainsCI("ProcTime")) AddCommandParameter(dbCommand, "@ProcTime", _ProcTime);
if (columnNames.ContainsCI("BatchDate")) AddCommandParameter(dbCommand, "@BatchDate", _BatchDate);
if (columnNames.ContainsCI("BatchTime")) AddCommandParameter(dbCommand, "@BatchTime", _BatchTime);
if (columnNames.ContainsCI("ElapseSecs")) AddCommandParameter(dbCommand, "@ElapseSecs", _ElapseSecs);
if (columnNames.ContainsCI("ItemCount")) AddCommandParameter(dbCommand, "@ItemCount", _ItemCount);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,223 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class Interface_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataString _Context { get; } = new ColumnDataString("Context");
public ColumnDataString _Code { get; } = new ColumnDataString("Code");
public ColumnDataInt16 _Category { get; } = new ColumnDataInt16("Category");
public ColumnDataInt16 _Type { get; } = new ColumnDataInt16("Type");
public ColumnDataString _Caption { get; } = new ColumnDataString("Caption");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"Context",
"Code",
"Category",
"Type",
"Caption",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal Interface_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "Interface";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public String _Context { get { return Cols._Context.Value; } set { Cols._Context.Value = value; } }
public String _Code { get { return Cols._Code.Value; } set { Cols._Code.Value = value; } }
public Int16 _Category { get { return Cols._Category.Value; } set { Cols._Category.Value = value; } }
public Int16 _Type { get { return Cols._Type.Value; } set { Cols._Type.Value = value; } }
public String _Caption { get { return Cols._Caption.Value; } set { Cols._Caption.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_Context = GetFieldString(dbDataReader, "Context", _Context);
_Code = GetFieldString(dbDataReader, "Code", _Code);
_Category = GetFieldInt16(dbDataReader, "Category", _Category);
_Type = GetFieldInt16(dbDataReader, "Type", _Type);
_Caption = GetFieldString(dbDataReader, "Caption", _Caption);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("Context")) AddCommandParameter(dbCommand, "@Context", _Context);
if (columnNames.ContainsCI("Code")) AddCommandParameter(dbCommand, "@Code", _Code);
if (columnNames.ContainsCI("Category")) AddCommandParameter(dbCommand, "@Category", _Category);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Caption")) AddCommandParameter(dbCommand, "@Caption", _Caption);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Context")) AddCommandParameter(dbCommand, "@Context", _Context);
if (columnNames.ContainsCI("Code")) AddCommandParameter(dbCommand, "@Code", _Code);
if (columnNames.ContainsCI("Category")) AddCommandParameter(dbCommand, "@Category", _Category);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Caption")) AddCommandParameter(dbCommand, "@Caption", _Caption);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,223 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class ItemBatch_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt32 _AffIdOwner { get; } = new ColumnDataInt32("AffIdOwner");
public ColumnDataInt16 _Type { get; } = new ColumnDataInt16("Type");
public ColumnDataString _Ref { get; } = new ColumnDataString("Ref");
public ColumnDataString _ProcessType { get; } = new ColumnDataString("ProcessType");
public ColumnDataString _DescBrief { get; } = new ColumnDataString("DescBrief");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"AffIdOwner",
"Type",
"Ref",
"ProcessType",
"DescBrief",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal ItemBatch_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "ItemBatch";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int32 _AffIdOwner { get { return Cols._AffIdOwner.Value; } set { Cols._AffIdOwner.Value = value; } }
public Int16 _Type { get { return Cols._Type.Value; } set { Cols._Type.Value = value; } }
public String _Ref { get { return Cols._Ref.Value; } set { Cols._Ref.Value = value; } }
public String _ProcessType { get { return Cols._ProcessType.Value; } set { Cols._ProcessType.Value = value; } }
public String _DescBrief { get { return Cols._DescBrief.Value; } set { Cols._DescBrief.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_AffIdOwner = GetFieldInt32(dbDataReader, "AffIdOwner", _AffIdOwner);
_Type = GetFieldInt16(dbDataReader, "Type", _Type);
_Ref = GetFieldString(dbDataReader, "Ref", _Ref);
_ProcessType = GetFieldString(dbDataReader, "ProcessType", _ProcessType);
_DescBrief = GetFieldString(dbDataReader, "DescBrief", _DescBrief);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("AffIdOwner")) AddCommandParameter(dbCommand, "@AffIdOwner", _AffIdOwner);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Ref")) AddCommandParameter(dbCommand, "@Ref", _Ref);
if (columnNames.ContainsCI("ProcessType")) AddCommandParameter(dbCommand, "@ProcessType", _ProcessType);
if (columnNames.ContainsCI("DescBrief")) AddCommandParameter(dbCommand, "@DescBrief", _DescBrief);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("AffIdOwner")) AddCommandParameter(dbCommand, "@AffIdOwner", _AffIdOwner);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Ref")) AddCommandParameter(dbCommand, "@Ref", _Ref);
if (columnNames.ContainsCI("ProcessType")) AddCommandParameter(dbCommand, "@ProcessType", _ProcessType);
if (columnNames.ContainsCI("DescBrief")) AddCommandParameter(dbCommand, "@DescBrief", _DescBrief);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,240 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class ItemLink_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt16 _Type { get; } = new ColumnDataInt16("Type");
public ColumnDataInt16 _ItemTypeFrom { get; } = new ColumnDataInt16("ItemTypeFrom");
public ColumnDataInt32 _ItemIdFrom { get; } = new ColumnDataInt32("ItemIdFrom");
public ColumnDataInt16 _ItemTypeTo { get; } = new ColumnDataInt16("ItemTypeTo");
public ColumnDataInt32 _ItemIdTo { get; } = new ColumnDataInt32("ItemIdTo");
public ColumnDataInt16 _Seq { get; } = new ColumnDataInt16("Seq");
public ColumnDataDateTime _Completed { get; } = new ColumnDataDateTime("Completed");
public ColumnDataString _DataContent { get; } = new ColumnDataString("DataContent");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Type",
"ItemTypeFrom",
"ItemIdFrom",
"ItemTypeTo",
"ItemIdTo",
"Seq",
"Completed",
"DataContent",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Type",
"ItemTypeFrom",
"ItemIdFrom",
"ItemTypeTo",
"ItemIdTo",
"Seq",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal ItemLink_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "ItemLink";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int16 _Type { get { return Cols._Type.Value; } set { Cols._Type.Value = value; } }
public Int16 _ItemTypeFrom { get { return Cols._ItemTypeFrom.Value; } set { Cols._ItemTypeFrom.Value = value; } }
public Int32 _ItemIdFrom { get { return Cols._ItemIdFrom.Value; } set { Cols._ItemIdFrom.Value = value; } }
public Int16 _ItemTypeTo { get { return Cols._ItemTypeTo.Value; } set { Cols._ItemTypeTo.Value = value; } }
public Int32 _ItemIdTo { get { return Cols._ItemIdTo.Value; } set { Cols._ItemIdTo.Value = value; } }
public Int16 _Seq { get { return Cols._Seq.Value; } set { Cols._Seq.Value = value; } }
public DateTime _Completed { get { return Cols._Completed.Value; } set { Cols._Completed.Value = value; } }
public String _DataContent { get { return Cols._DataContent.Value; } set { Cols._DataContent.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Type = GetFieldInt16(dbDataReader, "Type", _Type);
_ItemTypeFrom = GetFieldInt16(dbDataReader, "ItemTypeFrom", _ItemTypeFrom);
_ItemIdFrom = GetFieldInt32(dbDataReader, "ItemIdFrom", _ItemIdFrom);
_ItemTypeTo = GetFieldInt16(dbDataReader, "ItemTypeTo", _ItemTypeTo);
_ItemIdTo = GetFieldInt32(dbDataReader, "ItemIdTo", _ItemIdTo);
_Seq = GetFieldInt16(dbDataReader, "Seq", _Seq);
_Completed = GetFieldDateTime(dbDataReader, "Completed", _Completed);
_DataContent = GetFieldString(dbDataReader, "DataContent", _DataContent);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("ItemTypeFrom")) AddCommandParameter(dbCommand, "@ItemTypeFrom", _ItemTypeFrom);
if (columnNames.ContainsCI("ItemIdFrom")) AddCommandParameter(dbCommand, "@ItemIdFrom", _ItemIdFrom);
if (columnNames.ContainsCI("ItemTypeTo")) AddCommandParameter(dbCommand, "@ItemTypeTo", _ItemTypeTo);
if (columnNames.ContainsCI("ItemIdTo")) AddCommandParameter(dbCommand, "@ItemIdTo", _ItemIdTo);
if (columnNames.ContainsCI("Seq")) AddCommandParameter(dbCommand, "@Seq", _Seq);
if (columnNames.ContainsCI("Completed")) AddCommandParameter(dbCommand, "@Completed", _Completed);
if (columnNames.ContainsCI("DataContent")) AddCommandParameter(dbCommand, "@DataContent", _DataContent);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Type=@Type AND ItemTypeFrom=@ItemTypeFrom AND ItemIdFrom=@ItemIdFrom AND ItemTypeTo=@ItemTypeTo AND ItemIdTo=@ItemIdTo AND Seq=@Seq;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Type=? AND ItemTypeFrom=? AND ItemIdFrom=? AND ItemTypeTo=? AND ItemIdTo=? AND Seq=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Completed")) AddCommandParameter(dbCommand, "@Completed", _Completed);
if (columnNames.ContainsCI("DataContent")) AddCommandParameter(dbCommand, "@DataContent", _DataContent);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Type", _Type);
AddCommandParameter(dbCommand, "@ItemTypeFrom", _ItemTypeFrom);
AddCommandParameter(dbCommand, "@ItemIdFrom", _ItemIdFrom);
AddCommandParameter(dbCommand, "@ItemTypeTo", _ItemTypeTo);
AddCommandParameter(dbCommand, "@ItemIdTo", _ItemIdTo);
AddCommandParameter(dbCommand, "@Seq", _Seq);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,205 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class Language_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataString _Code { get; } = new ColumnDataString("Code");
public ColumnDataString _Name { get; } = new ColumnDataString("Name");
public ColumnDataInt32 _Primary { get; } = new ColumnDataInt32("Primary");
public ColumnDataBoolean _Unicode { get; } = new ColumnDataBoolean("Unicode");
public ColumnDataBoolean _Translation { get; } = new ColumnDataBoolean("Translation");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"Code",
"Name",
"Primary",
"Unicode",
"Translation",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal Language_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "Language";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public String _Code { get { return Cols._Code.Value; } set { Cols._Code.Value = value; } }
public String _Name { get { return Cols._Name.Value; } set { Cols._Name.Value = value; } }
public Int32 _Primary { get { return Cols._Primary.Value; } set { Cols._Primary.Value = value; } }
public Boolean _Unicode { get { return Cols._Unicode.Value; } set { Cols._Unicode.Value = value; } }
public Boolean _Translation { get { return Cols._Translation.Value; } set { Cols._Translation.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_Code = GetFieldString(dbDataReader, "Code", _Code);
_Name = GetFieldString(dbDataReader, "Name", _Name);
_Primary = GetFieldInt32(dbDataReader, "Primary", _Primary);
_Unicode = GetFieldBoolean(dbDataReader, "Unicode", _Unicode);
_Translation = GetFieldBoolean(dbDataReader, "Translation", _Translation);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("Code")) AddCommandParameter(dbCommand, "@Code", _Code);
if (columnNames.ContainsCI("Name")) AddCommandParameter(dbCommand, "@Name", _Name);
if (columnNames.ContainsCI("Primary")) AddCommandParameter(dbCommand, "@Primary", _Primary);
if (columnNames.ContainsCI("Unicode")) AddCommandParameter(dbCommand, "@Unicode", _Unicode);
if (columnNames.ContainsCI("Translation")) AddCommandParameter(dbCommand, "@Translation", _Translation);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Code")) AddCommandParameter(dbCommand, "@Code", _Code);
if (columnNames.ContainsCI("Name")) AddCommandParameter(dbCommand, "@Name", _Name);
if (columnNames.ContainsCI("Primary")) AddCommandParameter(dbCommand, "@Primary", _Primary);
if (columnNames.ContainsCI("Unicode")) AddCommandParameter(dbCommand, "@Unicode", _Unicode);
if (columnNames.ContainsCI("Translation")) AddCommandParameter(dbCommand, "@Translation", _Translation);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,217 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class Location_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt32 _AffIdOwner { get; } = new ColumnDataInt32("AffIdOwner");
public ColumnDataInt16 _Category { get; } = new ColumnDataInt16("Category");
public ColumnDataString _Code { get; } = new ColumnDataString("Code");
public ColumnDataString _Name { get; } = new ColumnDataString("Name");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"AffIdOwner",
"Category",
"Code",
"Name",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal Location_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "Location";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int32 _AffIdOwner { get { return Cols._AffIdOwner.Value; } set { Cols._AffIdOwner.Value = value; } }
public Int16 _Category { get { return Cols._Category.Value; } set { Cols._Category.Value = value; } }
public String _Code { get { return Cols._Code.Value; } set { Cols._Code.Value = value; } }
public String _Name { get { return Cols._Name.Value; } set { Cols._Name.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_AffIdOwner = GetFieldInt32(dbDataReader, "AffIdOwner", _AffIdOwner);
_Category = GetFieldInt16(dbDataReader, "Category", _Category);
_Code = GetFieldString(dbDataReader, "Code", _Code);
_Name = GetFieldString(dbDataReader, "Name", _Name);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("AffIdOwner")) AddCommandParameter(dbCommand, "@AffIdOwner", _AffIdOwner);
if (columnNames.ContainsCI("Category")) AddCommandParameter(dbCommand, "@Category", _Category);
if (columnNames.ContainsCI("Code")) AddCommandParameter(dbCommand, "@Code", _Code);
if (columnNames.ContainsCI("Name")) AddCommandParameter(dbCommand, "@Name", _Name);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("AffIdOwner")) AddCommandParameter(dbCommand, "@AffIdOwner", _AffIdOwner);
if (columnNames.ContainsCI("Category")) AddCommandParameter(dbCommand, "@Category", _Category);
if (columnNames.ContainsCI("Code")) AddCommandParameter(dbCommand, "@Code", _Code);
if (columnNames.ContainsCI("Name")) AddCommandParameter(dbCommand, "@Name", _Name);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,253 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class Movement_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt16 _ItemType { get; } = new ColumnDataInt16("ItemType");
public ColumnDataInt32 _ItemId { get; } = new ColumnDataInt32("ItemId");
public ColumnDataInt16 _Type { get; } = new ColumnDataInt16("Type");
public ColumnDataDateTime _Movement { get; } = new ColumnDataDateTime("Movement");
public ColumnDataInt32 _LocationIdFrom { get; } = new ColumnDataInt32("LocationIdFrom");
public ColumnDataInt32 _LocationIdTo { get; } = new ColumnDataInt32("LocationIdTo");
public ColumnDataDecimal _Quantity { get; } = new ColumnDataDecimal("Quantity");
public ColumnDataInt32 _MovementIdSource { get; } = new ColumnDataInt32("MovementIdSource");
public ColumnDataInt16 _ItemTypeSource { get; } = new ColumnDataInt16("ItemTypeSource");
public ColumnDataInt32 _ItemIdSource { get; } = new ColumnDataInt32("ItemIdSource");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"ItemType",
"ItemId",
"Type",
"Movement",
"LocationIdFrom",
"LocationIdTo",
"Quantity",
"MovementIdSource",
"ItemTypeSource",
"ItemIdSource",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal Movement_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "Movement";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int16 _ItemType { get { return Cols._ItemType.Value; } set { Cols._ItemType.Value = value; } }
public Int32 _ItemId { get { return Cols._ItemId.Value; } set { Cols._ItemId.Value = value; } }
public Int16 _Type { get { return Cols._Type.Value; } set { Cols._Type.Value = value; } }
public DateTime _Movement { get { return Cols._Movement.Value; } set { Cols._Movement.Value = value; } }
public Int32 _LocationIdFrom { get { return Cols._LocationIdFrom.Value; } set { Cols._LocationIdFrom.Value = value; } }
public Int32 _LocationIdTo { get { return Cols._LocationIdTo.Value; } set { Cols._LocationIdTo.Value = value; } }
public Decimal _Quantity { get { return Cols._Quantity.Value; } set { Cols._Quantity.Value = value; } }
public Int32 _MovementIdSource { get { return Cols._MovementIdSource.Value; } set { Cols._MovementIdSource.Value = value; } }
public Int16 _ItemTypeSource { get { return Cols._ItemTypeSource.Value; } set { Cols._ItemTypeSource.Value = value; } }
public Int32 _ItemIdSource { get { return Cols._ItemIdSource.Value; } set { Cols._ItemIdSource.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_ItemType = GetFieldInt16(dbDataReader, "ItemType", _ItemType);
_ItemId = GetFieldInt32(dbDataReader, "ItemId", _ItemId);
_Type = GetFieldInt16(dbDataReader, "Type", _Type);
_Movement = GetFieldDateTime(dbDataReader, "Movement", _Movement);
_LocationIdFrom = GetFieldInt32(dbDataReader, "LocationIdFrom", _LocationIdFrom);
_LocationIdTo = GetFieldInt32(dbDataReader, "LocationIdTo", _LocationIdTo);
_Quantity = GetFieldDecimal(dbDataReader, "Quantity", _Quantity);
_MovementIdSource = GetFieldInt32(dbDataReader, "MovementIdSource", _MovementIdSource);
_ItemTypeSource = GetFieldInt16(dbDataReader, "ItemTypeSource", _ItemTypeSource);
_ItemIdSource = GetFieldInt32(dbDataReader, "ItemIdSource", _ItemIdSource);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("ItemType")) AddCommandParameter(dbCommand, "@ItemType", _ItemType);
if (columnNames.ContainsCI("ItemId")) AddCommandParameter(dbCommand, "@ItemId", _ItemId);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Movement")) AddCommandParameter(dbCommand, "@Movement", _Movement);
if (columnNames.ContainsCI("LocationIdFrom")) AddCommandParameter(dbCommand, "@LocationIdFrom", _LocationIdFrom);
if (columnNames.ContainsCI("LocationIdTo")) AddCommandParameter(dbCommand, "@LocationIdTo", _LocationIdTo);
if (columnNames.ContainsCI("Quantity")) AddCommandParameter(dbCommand, "@Quantity", _Quantity);
if (columnNames.ContainsCI("MovementIdSource")) AddCommandParameter(dbCommand, "@MovementIdSource", _MovementIdSource);
if (columnNames.ContainsCI("ItemTypeSource")) AddCommandParameter(dbCommand, "@ItemTypeSource", _ItemTypeSource);
if (columnNames.ContainsCI("ItemIdSource")) AddCommandParameter(dbCommand, "@ItemIdSource", _ItemIdSource);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("ItemType")) AddCommandParameter(dbCommand, "@ItemType", _ItemType);
if (columnNames.ContainsCI("ItemId")) AddCommandParameter(dbCommand, "@ItemId", _ItemId);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Movement")) AddCommandParameter(dbCommand, "@Movement", _Movement);
if (columnNames.ContainsCI("LocationIdFrom")) AddCommandParameter(dbCommand, "@LocationIdFrom", _LocationIdFrom);
if (columnNames.ContainsCI("LocationIdTo")) AddCommandParameter(dbCommand, "@LocationIdTo", _LocationIdTo);
if (columnNames.ContainsCI("Quantity")) AddCommandParameter(dbCommand, "@Quantity", _Quantity);
if (columnNames.ContainsCI("MovementIdSource")) AddCommandParameter(dbCommand, "@MovementIdSource", _MovementIdSource);
if (columnNames.ContainsCI("ItemTypeSource")) AddCommandParameter(dbCommand, "@ItemTypeSource", _ItemTypeSource);
if (columnNames.ContainsCI("ItemIdSource")) AddCommandParameter(dbCommand, "@ItemIdSource", _ItemIdSource);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,259 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class PortfolioItem_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt32 _AffIdOwner { get; } = new ColumnDataInt32("AffIdOwner");
public ColumnDataInt32 _ItemIdParent { get; } = new ColumnDataInt32("ItemIdParent");
public ColumnDataInt16 _Seq { get; } = new ColumnDataInt16("Seq");
public ColumnDataInt16 _Type { get; } = new ColumnDataInt16("Type");
public ColumnDataInt32 _ItemIdRef { get; } = new ColumnDataInt32("ItemIdRef");
public ColumnDataString _Code { get; } = new ColumnDataString("Code");
public ColumnDataString _ShortCut { get; } = new ColumnDataString("ShortCut");
public ColumnDataString _Caption { get; } = new ColumnDataString("Caption");
public ColumnDataString _DescBrief { get; } = new ColumnDataString("DescBrief");
public ColumnDataString _DescDetail { get; } = new ColumnDataString("DescDetail");
public ColumnDataInt32 _CommodityId { get; } = new ColumnDataInt32("CommodityId");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"AffIdOwner",
"ItemIdParent",
"Seq",
"Type",
"ItemIdRef",
"Code",
"ShortCut",
"Caption",
"DescBrief",
"DescDetail",
"CommodityId",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal PortfolioItem_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "PortfolioItem";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int32 _AffIdOwner { get { return Cols._AffIdOwner.Value; } set { Cols._AffIdOwner.Value = value; } }
public Int32 _ItemIdParent { get { return Cols._ItemIdParent.Value; } set { Cols._ItemIdParent.Value = value; } }
public Int16 _Seq { get { return Cols._Seq.Value; } set { Cols._Seq.Value = value; } }
public Int16 _Type { get { return Cols._Type.Value; } set { Cols._Type.Value = value; } }
public Int32 _ItemIdRef { get { return Cols._ItemIdRef.Value; } set { Cols._ItemIdRef.Value = value; } }
public String _Code { get { return Cols._Code.Value; } set { Cols._Code.Value = value; } }
public String _ShortCut { get { return Cols._ShortCut.Value; } set { Cols._ShortCut.Value = value; } }
public String _Caption { get { return Cols._Caption.Value; } set { Cols._Caption.Value = value; } }
public String _DescBrief { get { return Cols._DescBrief.Value; } set { Cols._DescBrief.Value = value; } }
public String _DescDetail { get { return Cols._DescDetail.Value; } set { Cols._DescDetail.Value = value; } }
public Int32 _CommodityId { get { return Cols._CommodityId.Value; } set { Cols._CommodityId.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_AffIdOwner = GetFieldInt32(dbDataReader, "AffIdOwner", _AffIdOwner);
_ItemIdParent = GetFieldInt32(dbDataReader, "ItemIdParent", _ItemIdParent);
_Seq = GetFieldInt16(dbDataReader, "Seq", _Seq);
_Type = GetFieldInt16(dbDataReader, "Type", _Type);
_ItemIdRef = GetFieldInt32(dbDataReader, "ItemIdRef", _ItemIdRef);
_Code = GetFieldString(dbDataReader, "Code", _Code);
_ShortCut = GetFieldString(dbDataReader, "ShortCut", _ShortCut);
_Caption = GetFieldString(dbDataReader, "Caption", _Caption);
_DescBrief = GetFieldString(dbDataReader, "DescBrief", _DescBrief);
_DescDetail = GetFieldString(dbDataReader, "DescDetail", _DescDetail);
_CommodityId = GetFieldInt32(dbDataReader, "CommodityId", _CommodityId);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("AffIdOwner")) AddCommandParameter(dbCommand, "@AffIdOwner", _AffIdOwner);
if (columnNames.ContainsCI("ItemIdParent")) AddCommandParameter(dbCommand, "@ItemIdParent", _ItemIdParent);
if (columnNames.ContainsCI("Seq")) AddCommandParameter(dbCommand, "@Seq", _Seq);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("ItemIdRef")) AddCommandParameter(dbCommand, "@ItemIdRef", _ItemIdRef);
if (columnNames.ContainsCI("Code")) AddCommandParameter(dbCommand, "@Code", _Code);
if (columnNames.ContainsCI("ShortCut")) AddCommandParameter(dbCommand, "@ShortCut", _ShortCut);
if (columnNames.ContainsCI("Caption")) AddCommandParameter(dbCommand, "@Caption", _Caption);
if (columnNames.ContainsCI("DescBrief")) AddCommandParameter(dbCommand, "@DescBrief", _DescBrief);
if (columnNames.ContainsCI("DescDetail")) AddCommandParameter(dbCommand, "@DescDetail", _DescDetail);
if (columnNames.ContainsCI("CommodityId")) AddCommandParameter(dbCommand, "@CommodityId", _CommodityId);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("AffIdOwner")) AddCommandParameter(dbCommand, "@AffIdOwner", _AffIdOwner);
if (columnNames.ContainsCI("ItemIdParent")) AddCommandParameter(dbCommand, "@ItemIdParent", _ItemIdParent);
if (columnNames.ContainsCI("Seq")) AddCommandParameter(dbCommand, "@Seq", _Seq);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("ItemIdRef")) AddCommandParameter(dbCommand, "@ItemIdRef", _ItemIdRef);
if (columnNames.ContainsCI("Code")) AddCommandParameter(dbCommand, "@Code", _Code);
if (columnNames.ContainsCI("ShortCut")) AddCommandParameter(dbCommand, "@ShortCut", _ShortCut);
if (columnNames.ContainsCI("Caption")) AddCommandParameter(dbCommand, "@Caption", _Caption);
if (columnNames.ContainsCI("DescBrief")) AddCommandParameter(dbCommand, "@DescBrief", _DescBrief);
if (columnNames.ContainsCI("DescDetail")) AddCommandParameter(dbCommand, "@DescDetail", _DescDetail);
if (columnNames.ContainsCI("CommodityId")) AddCommandParameter(dbCommand, "@CommodityId", _CommodityId);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,229 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class Process_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt32 _AffIdOwner { get; } = new ColumnDataInt32("AffIdOwner");
public ColumnDataInt16 _Category { get; } = new ColumnDataInt16("Category");
public ColumnDataInt16 _Type { get; } = new ColumnDataInt16("Type");
public ColumnDataInt16 _Seq { get; } = new ColumnDataInt16("Seq");
public ColumnDataString _DescBrief { get; } = new ColumnDataString("DescBrief");
public ColumnDataString _DescOutline { get; } = new ColumnDataString("DescOutline");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"AffIdOwner",
"Category",
"Type",
"Seq",
"DescBrief",
"DescOutline",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal Process_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "Process";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int32 _AffIdOwner { get { return Cols._AffIdOwner.Value; } set { Cols._AffIdOwner.Value = value; } }
public Int16 _Category { get { return Cols._Category.Value; } set { Cols._Category.Value = value; } }
public Int16 _Type { get { return Cols._Type.Value; } set { Cols._Type.Value = value; } }
public Int16 _Seq { get { return Cols._Seq.Value; } set { Cols._Seq.Value = value; } }
public String _DescBrief { get { return Cols._DescBrief.Value; } set { Cols._DescBrief.Value = value; } }
public String _DescOutline { get { return Cols._DescOutline.Value; } set { Cols._DescOutline.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_AffIdOwner = GetFieldInt32(dbDataReader, "AffIdOwner", _AffIdOwner);
_Category = GetFieldInt16(dbDataReader, "Category", _Category);
_Type = GetFieldInt16(dbDataReader, "Type", _Type);
_Seq = GetFieldInt16(dbDataReader, "Seq", _Seq);
_DescBrief = GetFieldString(dbDataReader, "DescBrief", _DescBrief);
_DescOutline = GetFieldString(dbDataReader, "DescOutline", _DescOutline);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("AffIdOwner")) AddCommandParameter(dbCommand, "@AffIdOwner", _AffIdOwner);
if (columnNames.ContainsCI("Category")) AddCommandParameter(dbCommand, "@Category", _Category);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Seq")) AddCommandParameter(dbCommand, "@Seq", _Seq);
if (columnNames.ContainsCI("DescBrief")) AddCommandParameter(dbCommand, "@DescBrief", _DescBrief);
if (columnNames.ContainsCI("DescOutline")) AddCommandParameter(dbCommand, "@DescOutline", _DescOutline);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("AffIdOwner")) AddCommandParameter(dbCommand, "@AffIdOwner", _AffIdOwner);
if (columnNames.ContainsCI("Category")) AddCommandParameter(dbCommand, "@Category", _Category);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Seq")) AddCommandParameter(dbCommand, "@Seq", _Seq);
if (columnNames.ContainsCI("DescBrief")) AddCommandParameter(dbCommand, "@DescBrief", _DescBrief);
if (columnNames.ContainsCI("DescOutline")) AddCommandParameter(dbCommand, "@DescOutline", _DescOutline);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,211 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class Region_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataString _Type { get; } = new ColumnDataString("Type");
public ColumnDataString _Name { get; } = new ColumnDataString("Name");
public ColumnDataInt32 _Parent { get; } = new ColumnDataInt32("Parent");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"Type",
"Name",
"Parent",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal Region_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "Region";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public String _Type { get { return Cols._Type.Value; } set { Cols._Type.Value = value; } }
public String _Name { get { return Cols._Name.Value; } set { Cols._Name.Value = value; } }
public Int32 _Parent { get { return Cols._Parent.Value; } set { Cols._Parent.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_Type = GetFieldString(dbDataReader, "Type", _Type);
_Name = GetFieldString(dbDataReader, "Name", _Name);
_Parent = GetFieldInt32(dbDataReader, "Parent", _Parent);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Name")) AddCommandParameter(dbCommand, "@Name", _Name);
if (columnNames.ContainsCI("Parent")) AddCommandParameter(dbCommand, "@Parent", _Parent);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Name")) AddCommandParameter(dbCommand, "@Name", _Name);
if (columnNames.ContainsCI("Parent")) AddCommandParameter(dbCommand, "@Parent", _Parent);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,493 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class Requirement_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt32 _AffIdOwner { get; } = new ColumnDataInt32("AffIdOwner");
public ColumnDataInt32 _AssocId { get; } = new ColumnDataInt32("AssocId");
public ColumnDataInt32 _TransId { get; } = new ColumnDataInt32("TransId");
public ColumnDataInt16 _Type { get; } = new ColumnDataInt16("Type");
public ColumnDataInt16 _Seq { get; } = new ColumnDataInt16("Seq");
public ColumnDataInt32 _ReqntIdSource { get; } = new ColumnDataInt32("ReqntIdSource");
public ColumnDataDateTime _Required { get; } = new ColumnDataDateTime("Required");
public ColumnDataDateTime _Started { get; } = new ColumnDataDateTime("Started");
public ColumnDataDateTime _Completed { get; } = new ColumnDataDateTime("Completed");
public ColumnDataString _JobNumber { get; } = new ColumnDataString("JobNumber");
public ColumnDataInt32 _AssIdSubcontract { get; } = new ColumnDataInt32("AssIdSubcontract");
public ColumnDataInt32 _CommodityId { get; } = new ColumnDataInt32("CommodityId");
public ColumnDataString _ProductCode { get; } = new ColumnDataString("ProductCode");
public ColumnDataInt32 _AssetId { get; } = new ColumnDataInt32("AssetId");
public ColumnDataString _DescBrief { get; } = new ColumnDataString("DescBrief");
public ColumnDataString _DescIntro { get; } = new ColumnDataString("DescIntro");
public ColumnDataString _DescOutline { get; } = new ColumnDataString("DescOutline");
public ColumnDataString _DescDetail { get; } = new ColumnDataString("DescDetail");
public ColumnDataString _PromotionCode { get; } = new ColumnDataString("PromotionCode");
public ColumnDataString _NominalCode { get; } = new ColumnDataString("NominalCode");
public ColumnDataDecimal _Quantity { get; } = new ColumnDataDecimal("Quantity");
public ColumnDataDecimal _QuantityProd { get; } = new ColumnDataDecimal("QuantityProd");
public ColumnDataInt32 _UomId { get; } = new ColumnDataInt32("UomId");
public ColumnDataDecimal _Weight { get; } = new ColumnDataDecimal("Weight");
public ColumnDataInt32 _UomIdWeight { get; } = new ColumnDataInt32("UomIdWeight");
public ColumnDataString _MaterialSourceCode { get; } = new ColumnDataString("MaterialSourceCode");
public ColumnDataDecimal _AmountUnit { get; } = new ColumnDataDecimal("AmountUnit");
public ColumnDataDecimal _AmountAct { get; } = new ColumnDataDecimal("AmountAct");
public ColumnDataDecimal _AmountDisc { get; } = new ColumnDataDecimal("AmountDisc");
public ColumnDataDecimal _AmountNet { get; } = new ColumnDataDecimal("AmountNet");
public ColumnDataInt32 _TaxCodeId { get; } = new ColumnDataInt32("TaxCodeId");
public ColumnDataDecimal _TaxRate { get; } = new ColumnDataDecimal("TaxRate");
public ColumnDataDecimal _AmountTax { get; } = new ColumnDataDecimal("AmountTax");
public ColumnDataDecimal _AmountTot { get; } = new ColumnDataDecimal("AmountTot");
public ColumnDataString _TimeEstChunks { get; } = new ColumnDataString("TimeEstChunks");
public ColumnDataDecimal _TimeEst { get; } = new ColumnDataDecimal("TimeEst");
public ColumnDataString _TimeActChunks { get; } = new ColumnDataString("TimeActChunks");
public ColumnDataDecimal _TimeAct { get; } = new ColumnDataDecimal("TimeAct");
public ColumnDataDecimal _TimeTot { get; } = new ColumnDataDecimal("TimeTot");
public ColumnDataInt32 _LocationIdStock { get; } = new ColumnDataInt32("LocationIdStock");
public ColumnDataDecimal _CostLabourHours { get; } = new ColumnDataDecimal("CostLabourHours");
public ColumnDataDecimal _CostLabourRateHour { get; } = new ColumnDataDecimal("CostLabourRateHour");
public ColumnDataDecimal _CostLabour { get; } = new ColumnDataDecimal("CostLabour");
public ColumnDataDecimal _CostCommodity { get; } = new ColumnDataDecimal("CostCommodity");
public ColumnDataDecimal _CostPurchase { get; } = new ColumnDataDecimal("CostPurchase");
public ColumnDataDecimal _CostProcess { get; } = new ColumnDataDecimal("CostProcess");
public ColumnDataDecimal _CostAdditional { get; } = new ColumnDataDecimal("CostAdditional");
public ColumnDataDecimal _CostTotal { get; } = new ColumnDataDecimal("CostTotal");
public ColumnDataDateTime _CostCalculated { get; } = new ColumnDataDateTime("CostCalculated");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _StatusCat { get; } = new ColumnDataString("StatusCat");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"AffIdOwner",
"AssocId",
"TransId",
"Type",
"Seq",
"ReqntIdSource",
"Required",
"Started",
"Completed",
"JobNumber",
"AssIdSubcontract",
"CommodityId",
"ProductCode",
"AssetId",
"DescBrief",
"DescIntro",
"DescOutline",
"DescDetail",
"PromotionCode",
"NominalCode",
"Quantity",
"QuantityProd",
"UomId",
"Weight",
"UomIdWeight",
"MaterialSourceCode",
"AmountUnit",
"AmountAct",
"AmountDisc",
"AmountNet",
"TaxCodeId",
"TaxRate",
"AmountTax",
"AmountTot",
"TimeEstChunks",
"TimeEst",
"TimeActChunks",
"TimeAct",
"TimeTot",
"LocationIdStock",
"CostLabourHours",
"CostLabourRateHour",
"CostLabour",
"CostCommodity",
"CostPurchase",
"CostProcess",
"CostAdditional",
"CostTotal",
"CostCalculated",
"Notes",
"Flags",
"StatusCat",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal Requirement_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "Requirement";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int32 _AffIdOwner { get { return Cols._AffIdOwner.Value; } set { Cols._AffIdOwner.Value = value; } }
public Int32 _AssocId { get { return Cols._AssocId.Value; } set { Cols._AssocId.Value = value; } }
public Int32 _TransId { get { return Cols._TransId.Value; } set { Cols._TransId.Value = value; } }
public Int16 _Type { get { return Cols._Type.Value; } set { Cols._Type.Value = value; } }
public Int16 _Seq { get { return Cols._Seq.Value; } set { Cols._Seq.Value = value; } }
public Int32 _ReqntIdSource { get { return Cols._ReqntIdSource.Value; } set { Cols._ReqntIdSource.Value = value; } }
public DateTime _Required { get { return Cols._Required.Value; } set { Cols._Required.Value = value; } }
public DateTime _Started { get { return Cols._Started.Value; } set { Cols._Started.Value = value; } }
public DateTime _Completed { get { return Cols._Completed.Value; } set { Cols._Completed.Value = value; } }
public String _JobNumber { get { return Cols._JobNumber.Value; } set { Cols._JobNumber.Value = value; } }
public Int32 _AssIdSubcontract { get { return Cols._AssIdSubcontract.Value; } set { Cols._AssIdSubcontract.Value = value; } }
public Int32 _CommodityId { get { return Cols._CommodityId.Value; } set { Cols._CommodityId.Value = value; } }
public String _ProductCode { get { return Cols._ProductCode.Value; } set { Cols._ProductCode.Value = value; } }
public Int32 _AssetId { get { return Cols._AssetId.Value; } set { Cols._AssetId.Value = value; } }
public String _DescBrief { get { return Cols._DescBrief.Value; } set { Cols._DescBrief.Value = value; } }
public String _DescIntro { get { return Cols._DescIntro.Value; } set { Cols._DescIntro.Value = value; } }
public String _DescOutline { get { return Cols._DescOutline.Value; } set { Cols._DescOutline.Value = value; } }
public String _DescDetail { get { return Cols._DescDetail.Value; } set { Cols._DescDetail.Value = value; } }
public String _PromotionCode { get { return Cols._PromotionCode.Value; } set { Cols._PromotionCode.Value = value; } }
public String _NominalCode { get { return Cols._NominalCode.Value; } set { Cols._NominalCode.Value = value; } }
public Decimal _Quantity { get { return Cols._Quantity.Value; } set { Cols._Quantity.Value = value; } }
public Decimal _QuantityProd { get { return Cols._QuantityProd.Value; } set { Cols._QuantityProd.Value = value; } }
public Int32 _UomId { get { return Cols._UomId.Value; } set { Cols._UomId.Value = value; } }
public Decimal _Weight { get { return Cols._Weight.Value; } set { Cols._Weight.Value = value; } }
public Int32 _UomIdWeight { get { return Cols._UomIdWeight.Value; } set { Cols._UomIdWeight.Value = value; } }
public String _MaterialSourceCode { get { return Cols._MaterialSourceCode.Value; } set { Cols._MaterialSourceCode.Value = value; } }
public Decimal _AmountUnit { get { return Cols._AmountUnit.Value; } set { Cols._AmountUnit.Value = value; } }
public Decimal _AmountAct { get { return Cols._AmountAct.Value; } set { Cols._AmountAct.Value = value; } }
public Decimal _AmountDisc { get { return Cols._AmountDisc.Value; } set { Cols._AmountDisc.Value = value; } }
public Decimal _AmountNet { get { return Cols._AmountNet.Value; } set { Cols._AmountNet.Value = value; } }
public Int32 _TaxCodeId { get { return Cols._TaxCodeId.Value; } set { Cols._TaxCodeId.Value = value; } }
public Decimal _TaxRate { get { return Cols._TaxRate.Value; } set { Cols._TaxRate.Value = value; } }
public Decimal _AmountTax { get { return Cols._AmountTax.Value; } set { Cols._AmountTax.Value = value; } }
public Decimal _AmountTot { get { return Cols._AmountTot.Value; } set { Cols._AmountTot.Value = value; } }
public String _TimeEstChunks { get { return Cols._TimeEstChunks.Value; } set { Cols._TimeEstChunks.Value = value; } }
public Decimal _TimeEst { get { return Cols._TimeEst.Value; } set { Cols._TimeEst.Value = value; } }
public String _TimeActChunks { get { return Cols._TimeActChunks.Value; } set { Cols._TimeActChunks.Value = value; } }
public Decimal _TimeAct { get { return Cols._TimeAct.Value; } set { Cols._TimeAct.Value = value; } }
public Decimal _TimeTot { get { return Cols._TimeTot.Value; } set { Cols._TimeTot.Value = value; } }
public Int32 _LocationIdStock { get { return Cols._LocationIdStock.Value; } set { Cols._LocationIdStock.Value = value; } }
public Decimal _CostLabourHours { get { return Cols._CostLabourHours.Value; } set { Cols._CostLabourHours.Value = value; } }
public Decimal _CostLabourRateHour { get { return Cols._CostLabourRateHour.Value; } set { Cols._CostLabourRateHour.Value = value; } }
public Decimal _CostLabour { get { return Cols._CostLabour.Value; } set { Cols._CostLabour.Value = value; } }
public Decimal _CostCommodity { get { return Cols._CostCommodity.Value; } set { Cols._CostCommodity.Value = value; } }
public Decimal _CostPurchase { get { return Cols._CostPurchase.Value; } set { Cols._CostPurchase.Value = value; } }
public Decimal _CostProcess { get { return Cols._CostProcess.Value; } set { Cols._CostProcess.Value = value; } }
public Decimal _CostAdditional { get { return Cols._CostAdditional.Value; } set { Cols._CostAdditional.Value = value; } }
public Decimal _CostTotal { get { return Cols._CostTotal.Value; } set { Cols._CostTotal.Value = value; } }
public DateTime _CostCalculated { get { return Cols._CostCalculated.Value; } set { Cols._CostCalculated.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _StatusCat { get { return Cols._StatusCat.Value; } set { Cols._StatusCat.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_AffIdOwner = GetFieldInt32(dbDataReader, "AffIdOwner", _AffIdOwner);
_AssocId = GetFieldInt32(dbDataReader, "AssocId", _AssocId);
_TransId = GetFieldInt32(dbDataReader, "TransId", _TransId);
_Type = GetFieldInt16(dbDataReader, "Type", _Type);
_Seq = GetFieldInt16(dbDataReader, "Seq", _Seq);
_ReqntIdSource = GetFieldInt32(dbDataReader, "ReqntIdSource", _ReqntIdSource);
_Required = GetFieldDateTime(dbDataReader, "Required", _Required);
_Started = GetFieldDateTime(dbDataReader, "Started", _Started);
_Completed = GetFieldDateTime(dbDataReader, "Completed", _Completed);
_JobNumber = GetFieldString(dbDataReader, "JobNumber", _JobNumber);
_AssIdSubcontract = GetFieldInt32(dbDataReader, "AssIdSubcontract", _AssIdSubcontract);
_CommodityId = GetFieldInt32(dbDataReader, "CommodityId", _CommodityId);
_ProductCode = GetFieldString(dbDataReader, "ProductCode", _ProductCode);
_AssetId = GetFieldInt32(dbDataReader, "AssetId", _AssetId);
_DescBrief = GetFieldString(dbDataReader, "DescBrief", _DescBrief);
_DescIntro = GetFieldString(dbDataReader, "DescIntro", _DescIntro);
_DescOutline = GetFieldString(dbDataReader, "DescOutline", _DescOutline);
_DescDetail = GetFieldString(dbDataReader, "DescDetail", _DescDetail);
_PromotionCode = GetFieldString(dbDataReader, "PromotionCode", _PromotionCode);
_NominalCode = GetFieldString(dbDataReader, "NominalCode", _NominalCode);
_Quantity = GetFieldDecimal(dbDataReader, "Quantity", _Quantity);
_QuantityProd = GetFieldDecimal(dbDataReader, "QuantityProd", _QuantityProd);
_UomId = GetFieldInt32(dbDataReader, "UomId", _UomId);
_Weight = GetFieldDecimal(dbDataReader, "Weight", _Weight);
_UomIdWeight = GetFieldInt32(dbDataReader, "UomIdWeight", _UomIdWeight);
_MaterialSourceCode = GetFieldString(dbDataReader, "MaterialSourceCode", _MaterialSourceCode);
_AmountUnit = GetFieldDecimal(dbDataReader, "AmountUnit", _AmountUnit);
_AmountAct = GetFieldDecimal(dbDataReader, "AmountAct", _AmountAct);
_AmountDisc = GetFieldDecimal(dbDataReader, "AmountDisc", _AmountDisc);
_AmountNet = GetFieldDecimal(dbDataReader, "AmountNet", _AmountNet);
_TaxCodeId = GetFieldInt32(dbDataReader, "TaxCodeId", _TaxCodeId);
_TaxRate = GetFieldDecimal(dbDataReader, "TaxRate", _TaxRate);
_AmountTax = GetFieldDecimal(dbDataReader, "AmountTax", _AmountTax);
_AmountTot = GetFieldDecimal(dbDataReader, "AmountTot", _AmountTot);
_TimeEstChunks = GetFieldString(dbDataReader, "TimeEstChunks", _TimeEstChunks);
_TimeEst = GetFieldDecimal(dbDataReader, "TimeEst", _TimeEst);
_TimeActChunks = GetFieldString(dbDataReader, "TimeActChunks", _TimeActChunks);
_TimeAct = GetFieldDecimal(dbDataReader, "TimeAct", _TimeAct);
_TimeTot = GetFieldDecimal(dbDataReader, "TimeTot", _TimeTot);
_LocationIdStock = GetFieldInt32(dbDataReader, "LocationIdStock", _LocationIdStock);
_CostLabourHours = GetFieldDecimal(dbDataReader, "CostLabourHours", _CostLabourHours);
_CostLabourRateHour = GetFieldDecimal(dbDataReader, "CostLabourRateHour", _CostLabourRateHour);
_CostLabour = GetFieldDecimal(dbDataReader, "CostLabour", _CostLabour);
_CostCommodity = GetFieldDecimal(dbDataReader, "CostCommodity", _CostCommodity);
_CostPurchase = GetFieldDecimal(dbDataReader, "CostPurchase", _CostPurchase);
_CostProcess = GetFieldDecimal(dbDataReader, "CostProcess", _CostProcess);
_CostAdditional = GetFieldDecimal(dbDataReader, "CostAdditional", _CostAdditional);
_CostTotal = GetFieldDecimal(dbDataReader, "CostTotal", _CostTotal);
_CostCalculated = GetFieldDateTime(dbDataReader, "CostCalculated", _CostCalculated);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_StatusCat = GetFieldString(dbDataReader, "StatusCat", _StatusCat);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("AffIdOwner")) AddCommandParameter(dbCommand, "@AffIdOwner", _AffIdOwner);
if (columnNames.ContainsCI("AssocId")) AddCommandParameter(dbCommand, "@AssocId", _AssocId);
if (columnNames.ContainsCI("TransId")) AddCommandParameter(dbCommand, "@TransId", _TransId);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Seq")) AddCommandParameter(dbCommand, "@Seq", _Seq);
if (columnNames.ContainsCI("ReqntIdSource")) AddCommandParameter(dbCommand, "@ReqntIdSource", _ReqntIdSource);
if (columnNames.ContainsCI("Required")) AddCommandParameter(dbCommand, "@Required", _Required);
if (columnNames.ContainsCI("Started")) AddCommandParameter(dbCommand, "@Started", _Started);
if (columnNames.ContainsCI("Completed")) AddCommandParameter(dbCommand, "@Completed", _Completed);
if (columnNames.ContainsCI("JobNumber")) AddCommandParameter(dbCommand, "@JobNumber", _JobNumber);
if (columnNames.ContainsCI("AssIdSubcontract")) AddCommandParameter(dbCommand, "@AssIdSubcontract", _AssIdSubcontract);
if (columnNames.ContainsCI("CommodityId")) AddCommandParameter(dbCommand, "@CommodityId", _CommodityId);
if (columnNames.ContainsCI("ProductCode")) AddCommandParameter(dbCommand, "@ProductCode", _ProductCode);
if (columnNames.ContainsCI("AssetId")) AddCommandParameter(dbCommand, "@AssetId", _AssetId);
if (columnNames.ContainsCI("DescBrief")) AddCommandParameter(dbCommand, "@DescBrief", _DescBrief);
if (columnNames.ContainsCI("DescIntro")) AddCommandParameter(dbCommand, "@DescIntro", _DescIntro);
if (columnNames.ContainsCI("DescOutline")) AddCommandParameter(dbCommand, "@DescOutline", _DescOutline);
if (columnNames.ContainsCI("DescDetail")) AddCommandParameter(dbCommand, "@DescDetail", _DescDetail);
if (columnNames.ContainsCI("PromotionCode")) AddCommandParameter(dbCommand, "@PromotionCode", _PromotionCode);
if (columnNames.ContainsCI("NominalCode")) AddCommandParameter(dbCommand, "@NominalCode", _NominalCode);
if (columnNames.ContainsCI("Quantity")) AddCommandParameter(dbCommand, "@Quantity", _Quantity);
if (columnNames.ContainsCI("QuantityProd")) AddCommandParameter(dbCommand, "@QuantityProd", _QuantityProd);
if (columnNames.ContainsCI("UomId")) AddCommandParameter(dbCommand, "@UomId", _UomId);
if (columnNames.ContainsCI("Weight")) AddCommandParameter(dbCommand, "@Weight", _Weight);
if (columnNames.ContainsCI("UomIdWeight")) AddCommandParameter(dbCommand, "@UomIdWeight", _UomIdWeight);
if (columnNames.ContainsCI("MaterialSourceCode")) AddCommandParameter(dbCommand, "@MaterialSourceCode", _MaterialSourceCode);
if (columnNames.ContainsCI("AmountUnit")) AddCommandParameter(dbCommand, "@AmountUnit", _AmountUnit);
if (columnNames.ContainsCI("AmountAct")) AddCommandParameter(dbCommand, "@AmountAct", _AmountAct);
if (columnNames.ContainsCI("AmountDisc")) AddCommandParameter(dbCommand, "@AmountDisc", _AmountDisc);
if (columnNames.ContainsCI("AmountNet")) AddCommandParameter(dbCommand, "@AmountNet", _AmountNet);
if (columnNames.ContainsCI("TaxCodeId")) AddCommandParameter(dbCommand, "@TaxCodeId", _TaxCodeId);
if (columnNames.ContainsCI("TaxRate")) AddCommandParameter(dbCommand, "@TaxRate", _TaxRate);
if (columnNames.ContainsCI("AmountTax")) AddCommandParameter(dbCommand, "@AmountTax", _AmountTax);
if (columnNames.ContainsCI("AmountTot")) AddCommandParameter(dbCommand, "@AmountTot", _AmountTot);
if (columnNames.ContainsCI("TimeEstChunks")) AddCommandParameter(dbCommand, "@TimeEstChunks", _TimeEstChunks);
if (columnNames.ContainsCI("TimeEst")) AddCommandParameter(dbCommand, "@TimeEst", _TimeEst);
if (columnNames.ContainsCI("TimeActChunks")) AddCommandParameter(dbCommand, "@TimeActChunks", _TimeActChunks);
if (columnNames.ContainsCI("TimeAct")) AddCommandParameter(dbCommand, "@TimeAct", _TimeAct);
if (columnNames.ContainsCI("TimeTot")) AddCommandParameter(dbCommand, "@TimeTot", _TimeTot);
if (columnNames.ContainsCI("LocationIdStock")) AddCommandParameter(dbCommand, "@LocationIdStock", _LocationIdStock);
if (columnNames.ContainsCI("CostLabourHours")) AddCommandParameter(dbCommand, "@CostLabourHours", _CostLabourHours);
if (columnNames.ContainsCI("CostLabourRateHour")) AddCommandParameter(dbCommand, "@CostLabourRateHour", _CostLabourRateHour);
if (columnNames.ContainsCI("CostLabour")) AddCommandParameter(dbCommand, "@CostLabour", _CostLabour);
if (columnNames.ContainsCI("CostCommodity")) AddCommandParameter(dbCommand, "@CostCommodity", _CostCommodity);
if (columnNames.ContainsCI("CostPurchase")) AddCommandParameter(dbCommand, "@CostPurchase", _CostPurchase);
if (columnNames.ContainsCI("CostProcess")) AddCommandParameter(dbCommand, "@CostProcess", _CostProcess);
if (columnNames.ContainsCI("CostAdditional")) AddCommandParameter(dbCommand, "@CostAdditional", _CostAdditional);
if (columnNames.ContainsCI("CostTotal")) AddCommandParameter(dbCommand, "@CostTotal", _CostTotal);
if (columnNames.ContainsCI("CostCalculated")) AddCommandParameter(dbCommand, "@CostCalculated", _CostCalculated);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("StatusCat")) AddCommandParameter(dbCommand, "@StatusCat", _StatusCat);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("AffIdOwner")) AddCommandParameter(dbCommand, "@AffIdOwner", _AffIdOwner);
if (columnNames.ContainsCI("AssocId")) AddCommandParameter(dbCommand, "@AssocId", _AssocId);
if (columnNames.ContainsCI("TransId")) AddCommandParameter(dbCommand, "@TransId", _TransId);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Seq")) AddCommandParameter(dbCommand, "@Seq", _Seq);
if (columnNames.ContainsCI("ReqntIdSource")) AddCommandParameter(dbCommand, "@ReqntIdSource", _ReqntIdSource);
if (columnNames.ContainsCI("Required")) AddCommandParameter(dbCommand, "@Required", _Required);
if (columnNames.ContainsCI("Started")) AddCommandParameter(dbCommand, "@Started", _Started);
if (columnNames.ContainsCI("Completed")) AddCommandParameter(dbCommand, "@Completed", _Completed);
if (columnNames.ContainsCI("JobNumber")) AddCommandParameter(dbCommand, "@JobNumber", _JobNumber);
if (columnNames.ContainsCI("AssIdSubcontract")) AddCommandParameter(dbCommand, "@AssIdSubcontract", _AssIdSubcontract);
if (columnNames.ContainsCI("CommodityId")) AddCommandParameter(dbCommand, "@CommodityId", _CommodityId);
if (columnNames.ContainsCI("ProductCode")) AddCommandParameter(dbCommand, "@ProductCode", _ProductCode);
if (columnNames.ContainsCI("AssetId")) AddCommandParameter(dbCommand, "@AssetId", _AssetId);
if (columnNames.ContainsCI("DescBrief")) AddCommandParameter(dbCommand, "@DescBrief", _DescBrief);
if (columnNames.ContainsCI("DescIntro")) AddCommandParameter(dbCommand, "@DescIntro", _DescIntro);
if (columnNames.ContainsCI("DescOutline")) AddCommandParameter(dbCommand, "@DescOutline", _DescOutline);
if (columnNames.ContainsCI("DescDetail")) AddCommandParameter(dbCommand, "@DescDetail", _DescDetail);
if (columnNames.ContainsCI("PromotionCode")) AddCommandParameter(dbCommand, "@PromotionCode", _PromotionCode);
if (columnNames.ContainsCI("NominalCode")) AddCommandParameter(dbCommand, "@NominalCode", _NominalCode);
if (columnNames.ContainsCI("Quantity")) AddCommandParameter(dbCommand, "@Quantity", _Quantity);
if (columnNames.ContainsCI("QuantityProd")) AddCommandParameter(dbCommand, "@QuantityProd", _QuantityProd);
if (columnNames.ContainsCI("UomId")) AddCommandParameter(dbCommand, "@UomId", _UomId);
if (columnNames.ContainsCI("Weight")) AddCommandParameter(dbCommand, "@Weight", _Weight);
if (columnNames.ContainsCI("UomIdWeight")) AddCommandParameter(dbCommand, "@UomIdWeight", _UomIdWeight);
if (columnNames.ContainsCI("MaterialSourceCode")) AddCommandParameter(dbCommand, "@MaterialSourceCode", _MaterialSourceCode);
if (columnNames.ContainsCI("AmountUnit")) AddCommandParameter(dbCommand, "@AmountUnit", _AmountUnit);
if (columnNames.ContainsCI("AmountAct")) AddCommandParameter(dbCommand, "@AmountAct", _AmountAct);
if (columnNames.ContainsCI("AmountDisc")) AddCommandParameter(dbCommand, "@AmountDisc", _AmountDisc);
if (columnNames.ContainsCI("AmountNet")) AddCommandParameter(dbCommand, "@AmountNet", _AmountNet);
if (columnNames.ContainsCI("TaxCodeId")) AddCommandParameter(dbCommand, "@TaxCodeId", _TaxCodeId);
if (columnNames.ContainsCI("TaxRate")) AddCommandParameter(dbCommand, "@TaxRate", _TaxRate);
if (columnNames.ContainsCI("AmountTax")) AddCommandParameter(dbCommand, "@AmountTax", _AmountTax);
if (columnNames.ContainsCI("AmountTot")) AddCommandParameter(dbCommand, "@AmountTot", _AmountTot);
if (columnNames.ContainsCI("TimeEstChunks")) AddCommandParameter(dbCommand, "@TimeEstChunks", _TimeEstChunks);
if (columnNames.ContainsCI("TimeEst")) AddCommandParameter(dbCommand, "@TimeEst", _TimeEst);
if (columnNames.ContainsCI("TimeActChunks")) AddCommandParameter(dbCommand, "@TimeActChunks", _TimeActChunks);
if (columnNames.ContainsCI("TimeAct")) AddCommandParameter(dbCommand, "@TimeAct", _TimeAct);
if (columnNames.ContainsCI("TimeTot")) AddCommandParameter(dbCommand, "@TimeTot", _TimeTot);
if (columnNames.ContainsCI("LocationIdStock")) AddCommandParameter(dbCommand, "@LocationIdStock", _LocationIdStock);
if (columnNames.ContainsCI("CostLabourHours")) AddCommandParameter(dbCommand, "@CostLabourHours", _CostLabourHours);
if (columnNames.ContainsCI("CostLabourRateHour")) AddCommandParameter(dbCommand, "@CostLabourRateHour", _CostLabourRateHour);
if (columnNames.ContainsCI("CostLabour")) AddCommandParameter(dbCommand, "@CostLabour", _CostLabour);
if (columnNames.ContainsCI("CostCommodity")) AddCommandParameter(dbCommand, "@CostCommodity", _CostCommodity);
if (columnNames.ContainsCI("CostPurchase")) AddCommandParameter(dbCommand, "@CostPurchase", _CostPurchase);
if (columnNames.ContainsCI("CostProcess")) AddCommandParameter(dbCommand, "@CostProcess", _CostProcess);
if (columnNames.ContainsCI("CostAdditional")) AddCommandParameter(dbCommand, "@CostAdditional", _CostAdditional);
if (columnNames.ContainsCI("CostTotal")) AddCommandParameter(dbCommand, "@CostTotal", _CostTotal);
if (columnNames.ContainsCI("CostCalculated")) AddCommandParameter(dbCommand, "@CostCalculated", _CostCalculated);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("StatusCat")) AddCommandParameter(dbCommand, "@StatusCat", _StatusCat);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,289 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class SaAssetCategory_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt32 _AffIdOwner { get; } = new ColumnDataInt32("AffIdOwner");
public ColumnDataInt16 _AssetType { get; } = new ColumnDataInt16("AssetType");
public ColumnDataString _Code { get; } = new ColumnDataString("Code");
public ColumnDataString _DescBrief { get; } = new ColumnDataString("DescBrief");
public ColumnDataInt16 _IncomeType { get; } = new ColumnDataInt16("IncomeType");
public ColumnDataInt32 _AssocIdSupplier { get; } = new ColumnDataInt32("AssocIdSupplier");
public ColumnDataInt16 _PaymentTerms { get; } = new ColumnDataInt16("PaymentTerms");
public ColumnDataInt32 _TaxCodeIdPurchase { get; } = new ColumnDataInt32("TaxCodeIdPurchase");
public ColumnDataInt32 _AssocIdCustomer { get; } = new ColumnDataInt32("AssocIdCustomer");
public ColumnDataInt32 _TaxCodeIdSell { get; } = new ColumnDataInt32("TaxCodeIdSell");
public ColumnDataInt32 _TaxCodeIdProfit { get; } = new ColumnDataInt32("TaxCodeIdProfit");
public ColumnDataInt32 _UomIdRentalCost { get; } = new ColumnDataInt32("UomIdRentalCost");
public ColumnDataInt32 _TaxCodeIdRentalCost { get; } = new ColumnDataInt32("TaxCodeIdRentalCost");
public ColumnDataInt32 _UomIdRentalPrice { get; } = new ColumnDataInt32("UomIdRentalPrice");
public ColumnDataInt32 _TaxCodeIdRentalPrice { get; } = new ColumnDataInt32("TaxCodeIdRentalPrice");
public ColumnDataString _DisposeCode { get; } = new ColumnDataString("DisposeCode");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"AffIdOwner",
"AssetType",
"Code",
"DescBrief",
"IncomeType",
"AssocIdSupplier",
"PaymentTerms",
"TaxCodeIdPurchase",
"AssocIdCustomer",
"TaxCodeIdSell",
"TaxCodeIdProfit",
"UomIdRentalCost",
"TaxCodeIdRentalCost",
"UomIdRentalPrice",
"TaxCodeIdRentalPrice",
"DisposeCode",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal SaAssetCategory_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "SaAssetCategory";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int32 _AffIdOwner { get { return Cols._AffIdOwner.Value; } set { Cols._AffIdOwner.Value = value; } }
public Int16 _AssetType { get { return Cols._AssetType.Value; } set { Cols._AssetType.Value = value; } }
public String _Code { get { return Cols._Code.Value; } set { Cols._Code.Value = value; } }
public String _DescBrief { get { return Cols._DescBrief.Value; } set { Cols._DescBrief.Value = value; } }
public Int16 _IncomeType { get { return Cols._IncomeType.Value; } set { Cols._IncomeType.Value = value; } }
public Int32 _AssocIdSupplier { get { return Cols._AssocIdSupplier.Value; } set { Cols._AssocIdSupplier.Value = value; } }
public Int16 _PaymentTerms { get { return Cols._PaymentTerms.Value; } set { Cols._PaymentTerms.Value = value; } }
public Int32 _TaxCodeIdPurchase { get { return Cols._TaxCodeIdPurchase.Value; } set { Cols._TaxCodeIdPurchase.Value = value; } }
public Int32 _AssocIdCustomer { get { return Cols._AssocIdCustomer.Value; } set { Cols._AssocIdCustomer.Value = value; } }
public Int32 _TaxCodeIdSell { get { return Cols._TaxCodeIdSell.Value; } set { Cols._TaxCodeIdSell.Value = value; } }
public Int32 _TaxCodeIdProfit { get { return Cols._TaxCodeIdProfit.Value; } set { Cols._TaxCodeIdProfit.Value = value; } }
public Int32 _UomIdRentalCost { get { return Cols._UomIdRentalCost.Value; } set { Cols._UomIdRentalCost.Value = value; } }
public Int32 _TaxCodeIdRentalCost { get { return Cols._TaxCodeIdRentalCost.Value; } set { Cols._TaxCodeIdRentalCost.Value = value; } }
public Int32 _UomIdRentalPrice { get { return Cols._UomIdRentalPrice.Value; } set { Cols._UomIdRentalPrice.Value = value; } }
public Int32 _TaxCodeIdRentalPrice { get { return Cols._TaxCodeIdRentalPrice.Value; } set { Cols._TaxCodeIdRentalPrice.Value = value; } }
public String _DisposeCode { get { return Cols._DisposeCode.Value; } set { Cols._DisposeCode.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_AffIdOwner = GetFieldInt32(dbDataReader, "AffIdOwner", _AffIdOwner);
_AssetType = GetFieldInt16(dbDataReader, "AssetType", _AssetType);
_Code = GetFieldString(dbDataReader, "Code", _Code);
_DescBrief = GetFieldString(dbDataReader, "DescBrief", _DescBrief);
_IncomeType = GetFieldInt16(dbDataReader, "IncomeType", _IncomeType);
_AssocIdSupplier = GetFieldInt32(dbDataReader, "AssocIdSupplier", _AssocIdSupplier);
_PaymentTerms = GetFieldInt16(dbDataReader, "PaymentTerms", _PaymentTerms);
_TaxCodeIdPurchase = GetFieldInt32(dbDataReader, "TaxCodeIdPurchase", _TaxCodeIdPurchase);
_AssocIdCustomer = GetFieldInt32(dbDataReader, "AssocIdCustomer", _AssocIdCustomer);
_TaxCodeIdSell = GetFieldInt32(dbDataReader, "TaxCodeIdSell", _TaxCodeIdSell);
_TaxCodeIdProfit = GetFieldInt32(dbDataReader, "TaxCodeIdProfit", _TaxCodeIdProfit);
_UomIdRentalCost = GetFieldInt32(dbDataReader, "UomIdRentalCost", _UomIdRentalCost);
_TaxCodeIdRentalCost = GetFieldInt32(dbDataReader, "TaxCodeIdRentalCost", _TaxCodeIdRentalCost);
_UomIdRentalPrice = GetFieldInt32(dbDataReader, "UomIdRentalPrice", _UomIdRentalPrice);
_TaxCodeIdRentalPrice = GetFieldInt32(dbDataReader, "TaxCodeIdRentalPrice", _TaxCodeIdRentalPrice);
_DisposeCode = GetFieldString(dbDataReader, "DisposeCode", _DisposeCode);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("AffIdOwner")) AddCommandParameter(dbCommand, "@AffIdOwner", _AffIdOwner);
if (columnNames.ContainsCI("AssetType")) AddCommandParameter(dbCommand, "@AssetType", _AssetType);
if (columnNames.ContainsCI("Code")) AddCommandParameter(dbCommand, "@Code", _Code);
if (columnNames.ContainsCI("DescBrief")) AddCommandParameter(dbCommand, "@DescBrief", _DescBrief);
if (columnNames.ContainsCI("IncomeType")) AddCommandParameter(dbCommand, "@IncomeType", _IncomeType);
if (columnNames.ContainsCI("AssocIdSupplier")) AddCommandParameter(dbCommand, "@AssocIdSupplier", _AssocIdSupplier);
if (columnNames.ContainsCI("PaymentTerms")) AddCommandParameter(dbCommand, "@PaymentTerms", _PaymentTerms);
if (columnNames.ContainsCI("TaxCodeIdPurchase")) AddCommandParameter(dbCommand, "@TaxCodeIdPurchase", _TaxCodeIdPurchase);
if (columnNames.ContainsCI("AssocIdCustomer")) AddCommandParameter(dbCommand, "@AssocIdCustomer", _AssocIdCustomer);
if (columnNames.ContainsCI("TaxCodeIdSell")) AddCommandParameter(dbCommand, "@TaxCodeIdSell", _TaxCodeIdSell);
if (columnNames.ContainsCI("TaxCodeIdProfit")) AddCommandParameter(dbCommand, "@TaxCodeIdProfit", _TaxCodeIdProfit);
if (columnNames.ContainsCI("UomIdRentalCost")) AddCommandParameter(dbCommand, "@UomIdRentalCost", _UomIdRentalCost);
if (columnNames.ContainsCI("TaxCodeIdRentalCost")) AddCommandParameter(dbCommand, "@TaxCodeIdRentalCost", _TaxCodeIdRentalCost);
if (columnNames.ContainsCI("UomIdRentalPrice")) AddCommandParameter(dbCommand, "@UomIdRentalPrice", _UomIdRentalPrice);
if (columnNames.ContainsCI("TaxCodeIdRentalPrice")) AddCommandParameter(dbCommand, "@TaxCodeIdRentalPrice", _TaxCodeIdRentalPrice);
if (columnNames.ContainsCI("DisposeCode")) AddCommandParameter(dbCommand, "@DisposeCode", _DisposeCode);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("AffIdOwner")) AddCommandParameter(dbCommand, "@AffIdOwner", _AffIdOwner);
if (columnNames.ContainsCI("AssetType")) AddCommandParameter(dbCommand, "@AssetType", _AssetType);
if (columnNames.ContainsCI("Code")) AddCommandParameter(dbCommand, "@Code", _Code);
if (columnNames.ContainsCI("DescBrief")) AddCommandParameter(dbCommand, "@DescBrief", _DescBrief);
if (columnNames.ContainsCI("IncomeType")) AddCommandParameter(dbCommand, "@IncomeType", _IncomeType);
if (columnNames.ContainsCI("AssocIdSupplier")) AddCommandParameter(dbCommand, "@AssocIdSupplier", _AssocIdSupplier);
if (columnNames.ContainsCI("PaymentTerms")) AddCommandParameter(dbCommand, "@PaymentTerms", _PaymentTerms);
if (columnNames.ContainsCI("TaxCodeIdPurchase")) AddCommandParameter(dbCommand, "@TaxCodeIdPurchase", _TaxCodeIdPurchase);
if (columnNames.ContainsCI("AssocIdCustomer")) AddCommandParameter(dbCommand, "@AssocIdCustomer", _AssocIdCustomer);
if (columnNames.ContainsCI("TaxCodeIdSell")) AddCommandParameter(dbCommand, "@TaxCodeIdSell", _TaxCodeIdSell);
if (columnNames.ContainsCI("TaxCodeIdProfit")) AddCommandParameter(dbCommand, "@TaxCodeIdProfit", _TaxCodeIdProfit);
if (columnNames.ContainsCI("UomIdRentalCost")) AddCommandParameter(dbCommand, "@UomIdRentalCost", _UomIdRentalCost);
if (columnNames.ContainsCI("TaxCodeIdRentalCost")) AddCommandParameter(dbCommand, "@TaxCodeIdRentalCost", _TaxCodeIdRentalCost);
if (columnNames.ContainsCI("UomIdRentalPrice")) AddCommandParameter(dbCommand, "@UomIdRentalPrice", _UomIdRentalPrice);
if (columnNames.ContainsCI("TaxCodeIdRentalPrice")) AddCommandParameter(dbCommand, "@TaxCodeIdRentalPrice", _TaxCodeIdRentalPrice);
if (columnNames.ContainsCI("DisposeCode")) AddCommandParameter(dbCommand, "@DisposeCode", _DisposeCode);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,229 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class SaAssetProcess_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt32 _AssetId { get; } = new ColumnDataInt32("AssetId");
public ColumnDataInt16 _Seq { get; } = new ColumnDataInt16("Seq");
public ColumnDataInt32 _ProcessId { get; } = new ColumnDataInt32("ProcessId");
public ColumnDataDateTime _RequiredOn { get; } = new ColumnDataDateTime("RequiredOn");
public ColumnDataDateTime _ExpectedOn { get; } = new ColumnDataDateTime("ExpectedOn");
public ColumnDataDateTime _ProcessedOn { get; } = new ColumnDataDateTime("ProcessedOn");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"AssetId",
"Seq",
"ProcessId",
"RequiredOn",
"ExpectedOn",
"ProcessedOn",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal SaAssetProcess_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "SaAssetProcess";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int32 _AssetId { get { return Cols._AssetId.Value; } set { Cols._AssetId.Value = value; } }
public Int16 _Seq { get { return Cols._Seq.Value; } set { Cols._Seq.Value = value; } }
public Int32 _ProcessId { get { return Cols._ProcessId.Value; } set { Cols._ProcessId.Value = value; } }
public DateTime _RequiredOn { get { return Cols._RequiredOn.Value; } set { Cols._RequiredOn.Value = value; } }
public DateTime _ExpectedOn { get { return Cols._ExpectedOn.Value; } set { Cols._ExpectedOn.Value = value; } }
public DateTime _ProcessedOn { get { return Cols._ProcessedOn.Value; } set { Cols._ProcessedOn.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_AssetId = GetFieldInt32(dbDataReader, "AssetId", _AssetId);
_Seq = GetFieldInt16(dbDataReader, "Seq", _Seq);
_ProcessId = GetFieldInt32(dbDataReader, "ProcessId", _ProcessId);
_RequiredOn = GetFieldDateTime(dbDataReader, "RequiredOn", _RequiredOn);
_ExpectedOn = GetFieldDateTime(dbDataReader, "ExpectedOn", _ExpectedOn);
_ProcessedOn = GetFieldDateTime(dbDataReader, "ProcessedOn", _ProcessedOn);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("AssetId")) AddCommandParameter(dbCommand, "@AssetId", _AssetId);
if (columnNames.ContainsCI("Seq")) AddCommandParameter(dbCommand, "@Seq", _Seq);
if (columnNames.ContainsCI("ProcessId")) AddCommandParameter(dbCommand, "@ProcessId", _ProcessId);
if (columnNames.ContainsCI("RequiredOn")) AddCommandParameter(dbCommand, "@RequiredOn", _RequiredOn);
if (columnNames.ContainsCI("ExpectedOn")) AddCommandParameter(dbCommand, "@ExpectedOn", _ExpectedOn);
if (columnNames.ContainsCI("ProcessedOn")) AddCommandParameter(dbCommand, "@ProcessedOn", _ProcessedOn);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("AssetId")) AddCommandParameter(dbCommand, "@AssetId", _AssetId);
if (columnNames.ContainsCI("Seq")) AddCommandParameter(dbCommand, "@Seq", _Seq);
if (columnNames.ContainsCI("ProcessId")) AddCommandParameter(dbCommand, "@ProcessId", _ProcessId);
if (columnNames.ContainsCI("RequiredOn")) AddCommandParameter(dbCommand, "@RequiredOn", _RequiredOn);
if (columnNames.ContainsCI("ExpectedOn")) AddCommandParameter(dbCommand, "@ExpectedOn", _ExpectedOn);
if (columnNames.ContainsCI("ProcessedOn")) AddCommandParameter(dbCommand, "@ProcessedOn", _ProcessedOn);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,403 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class SaAsset_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt32 _AssetCategoryId { get; } = new ColumnDataInt32("AssetCategoryId");
public ColumnDataString _SerialNumber { get; } = new ColumnDataString("SerialNumber");
public ColumnDataString _SerialFmt { get; } = new ColumnDataString("SerialFmt");
public ColumnDataString _RefExt { get; } = new ColumnDataString("RefExt");
public ColumnDataString _DescBrief { get; } = new ColumnDataString("DescBrief");
public ColumnDataInt16 _ItemType { get; } = new ColumnDataInt16("ItemType");
public ColumnDataInt32 _ItemId { get; } = new ColumnDataInt32("ItemId");
public ColumnDataDateTime _PurchaseOn { get; } = new ColumnDataDateTime("PurchaseOn");
public ColumnDataInt32 _AssocIdSupplier { get; } = new ColumnDataInt32("AssocIdSupplier");
public ColumnDataString _PurchaseInvoiceRef { get; } = new ColumnDataString("PurchaseInvoiceRef");
public ColumnDataInt16 _PaymentTerms { get; } = new ColumnDataInt16("PaymentTerms");
public ColumnDataDecimal _AmountPurchase { get; } = new ColumnDataDecimal("AmountPurchase");
public ColumnDataInt32 _TaxCodeIdPurchase { get; } = new ColumnDataInt32("TaxCodeIdPurchase");
public ColumnDataDecimal _AmountPurchaseGross { get; } = new ColumnDataDecimal("AmountPurchaseGross");
public ColumnDataDecimal _AmountSettlementGross { get; } = new ColumnDataDecimal("AmountSettlementGross");
public ColumnDataDecimal _AmountEnhancementGross { get; } = new ColumnDataDecimal("AmountEnhancementGross");
public ColumnDataInt32 _AssocIdCustomer { get; } = new ColumnDataInt32("AssocIdCustomer");
public ColumnDataString _SellCategoryCode { get; } = new ColumnDataString("SellCategoryCode");
public ColumnDataDecimal _AmountSell { get; } = new ColumnDataDecimal("AmountSell");
public ColumnDataInt32 _TaxCodeIdSell { get; } = new ColumnDataInt32("TaxCodeIdSell");
public ColumnDataDecimal _AmountSellGross { get; } = new ColumnDataDecimal("AmountSellGross");
public ColumnDataInt32 _TaxCodeIdProfit { get; } = new ColumnDataInt32("TaxCodeIdProfit");
public ColumnDataDateTime _SoldOn { get; } = new ColumnDataDateTime("SoldOn");
public ColumnDataDecimal _AmountSold { get; } = new ColumnDataDecimal("AmountSold");
public ColumnDataDecimal _AmountSoldGross { get; } = new ColumnDataDecimal("AmountSoldGross");
public ColumnDataString _DisposeCode { get; } = new ColumnDataString("DisposeCode");
public ColumnDataDateTime _DisposeOn { get; } = new ColumnDataDateTime("DisposeOn");
public ColumnDataDateTime _DueBackOn { get; } = new ColumnDataDateTime("DueBackOn");
public ColumnDataDecimal _AmountRentalCost { get; } = new ColumnDataDecimal("AmountRentalCost");
public ColumnDataInt32 _UomIdRentalCost { get; } = new ColumnDataInt32("UomIdRentalCost");
public ColumnDataInt32 _TaxCodeIdRentalCost { get; } = new ColumnDataInt32("TaxCodeIdRentalCost");
public ColumnDataDecimal _AmountRentalPrice { get; } = new ColumnDataDecimal("AmountRentalPrice");
public ColumnDataInt32 _UomIdRentalPrice { get; } = new ColumnDataInt32("UomIdRentalPrice");
public ColumnDataInt32 _TaxCodeIdRentalPrice { get; } = new ColumnDataInt32("TaxCodeIdRentalPrice");
public ColumnDataInt32 _ProcessIdNext { get; } = new ColumnDataInt32("ProcessIdNext");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"AssetCategoryId",
"SerialNumber",
"SerialFmt",
"RefExt",
"DescBrief",
"ItemType",
"ItemId",
"PurchaseOn",
"AssocIdSupplier",
"PurchaseInvoiceRef",
"PaymentTerms",
"AmountPurchase",
"TaxCodeIdPurchase",
"AmountPurchaseGross",
"AmountSettlementGross",
"AmountEnhancementGross",
"AssocIdCustomer",
"SellCategoryCode",
"AmountSell",
"TaxCodeIdSell",
"AmountSellGross",
"TaxCodeIdProfit",
"SoldOn",
"AmountSold",
"AmountSoldGross",
"DisposeCode",
"DisposeOn",
"DueBackOn",
"AmountRentalCost",
"UomIdRentalCost",
"TaxCodeIdRentalCost",
"AmountRentalPrice",
"UomIdRentalPrice",
"TaxCodeIdRentalPrice",
"ProcessIdNext",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal SaAsset_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "SaAsset";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int32 _AssetCategoryId { get { return Cols._AssetCategoryId.Value; } set { Cols._AssetCategoryId.Value = value; } }
public String _SerialNumber { get { return Cols._SerialNumber.Value; } set { Cols._SerialNumber.Value = value; } }
public String _SerialFmt { get { return Cols._SerialFmt.Value; } set { Cols._SerialFmt.Value = value; } }
public String _RefExt { get { return Cols._RefExt.Value; } set { Cols._RefExt.Value = value; } }
public String _DescBrief { get { return Cols._DescBrief.Value; } set { Cols._DescBrief.Value = value; } }
public Int16 _ItemType { get { return Cols._ItemType.Value; } set { Cols._ItemType.Value = value; } }
public Int32 _ItemId { get { return Cols._ItemId.Value; } set { Cols._ItemId.Value = value; } }
public DateTime _PurchaseOn { get { return Cols._PurchaseOn.Value; } set { Cols._PurchaseOn.Value = value; } }
public Int32 _AssocIdSupplier { get { return Cols._AssocIdSupplier.Value; } set { Cols._AssocIdSupplier.Value = value; } }
public String _PurchaseInvoiceRef { get { return Cols._PurchaseInvoiceRef.Value; } set { Cols._PurchaseInvoiceRef.Value = value; } }
public Int16 _PaymentTerms { get { return Cols._PaymentTerms.Value; } set { Cols._PaymentTerms.Value = value; } }
public Decimal _AmountPurchase { get { return Cols._AmountPurchase.Value; } set { Cols._AmountPurchase.Value = value; } }
public Int32 _TaxCodeIdPurchase { get { return Cols._TaxCodeIdPurchase.Value; } set { Cols._TaxCodeIdPurchase.Value = value; } }
public Decimal _AmountPurchaseGross { get { return Cols._AmountPurchaseGross.Value; } set { Cols._AmountPurchaseGross.Value = value; } }
public Decimal _AmountSettlementGross { get { return Cols._AmountSettlementGross.Value; } set { Cols._AmountSettlementGross.Value = value; } }
public Decimal _AmountEnhancementGross { get { return Cols._AmountEnhancementGross.Value; } set { Cols._AmountEnhancementGross.Value = value; } }
public Int32 _AssocIdCustomer { get { return Cols._AssocIdCustomer.Value; } set { Cols._AssocIdCustomer.Value = value; } }
public String _SellCategoryCode { get { return Cols._SellCategoryCode.Value; } set { Cols._SellCategoryCode.Value = value; } }
public Decimal _AmountSell { get { return Cols._AmountSell.Value; } set { Cols._AmountSell.Value = value; } }
public Int32 _TaxCodeIdSell { get { return Cols._TaxCodeIdSell.Value; } set { Cols._TaxCodeIdSell.Value = value; } }
public Decimal _AmountSellGross { get { return Cols._AmountSellGross.Value; } set { Cols._AmountSellGross.Value = value; } }
public Int32 _TaxCodeIdProfit { get { return Cols._TaxCodeIdProfit.Value; } set { Cols._TaxCodeIdProfit.Value = value; } }
public DateTime _SoldOn { get { return Cols._SoldOn.Value; } set { Cols._SoldOn.Value = value; } }
public Decimal _AmountSold { get { return Cols._AmountSold.Value; } set { Cols._AmountSold.Value = value; } }
public Decimal _AmountSoldGross { get { return Cols._AmountSoldGross.Value; } set { Cols._AmountSoldGross.Value = value; } }
public String _DisposeCode { get { return Cols._DisposeCode.Value; } set { Cols._DisposeCode.Value = value; } }
public DateTime _DisposeOn { get { return Cols._DisposeOn.Value; } set { Cols._DisposeOn.Value = value; } }
public DateTime _DueBackOn { get { return Cols._DueBackOn.Value; } set { Cols._DueBackOn.Value = value; } }
public Decimal _AmountRentalCost { get { return Cols._AmountRentalCost.Value; } set { Cols._AmountRentalCost.Value = value; } }
public Int32 _UomIdRentalCost { get { return Cols._UomIdRentalCost.Value; } set { Cols._UomIdRentalCost.Value = value; } }
public Int32 _TaxCodeIdRentalCost { get { return Cols._TaxCodeIdRentalCost.Value; } set { Cols._TaxCodeIdRentalCost.Value = value; } }
public Decimal _AmountRentalPrice { get { return Cols._AmountRentalPrice.Value; } set { Cols._AmountRentalPrice.Value = value; } }
public Int32 _UomIdRentalPrice { get { return Cols._UomIdRentalPrice.Value; } set { Cols._UomIdRentalPrice.Value = value; } }
public Int32 _TaxCodeIdRentalPrice { get { return Cols._TaxCodeIdRentalPrice.Value; } set { Cols._TaxCodeIdRentalPrice.Value = value; } }
public Int32 _ProcessIdNext { get { return Cols._ProcessIdNext.Value; } set { Cols._ProcessIdNext.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_AssetCategoryId = GetFieldInt32(dbDataReader, "AssetCategoryId", _AssetCategoryId);
_SerialNumber = GetFieldString(dbDataReader, "SerialNumber", _SerialNumber);
_SerialFmt = GetFieldString(dbDataReader, "SerialFmt", _SerialFmt);
_RefExt = GetFieldString(dbDataReader, "RefExt", _RefExt);
_DescBrief = GetFieldString(dbDataReader, "DescBrief", _DescBrief);
_ItemType = GetFieldInt16(dbDataReader, "ItemType", _ItemType);
_ItemId = GetFieldInt32(dbDataReader, "ItemId", _ItemId);
_PurchaseOn = GetFieldDateTime(dbDataReader, "PurchaseOn", _PurchaseOn);
_AssocIdSupplier = GetFieldInt32(dbDataReader, "AssocIdSupplier", _AssocIdSupplier);
_PurchaseInvoiceRef = GetFieldString(dbDataReader, "PurchaseInvoiceRef", _PurchaseInvoiceRef);
_PaymentTerms = GetFieldInt16(dbDataReader, "PaymentTerms", _PaymentTerms);
_AmountPurchase = GetFieldDecimal(dbDataReader, "AmountPurchase", _AmountPurchase);
_TaxCodeIdPurchase = GetFieldInt32(dbDataReader, "TaxCodeIdPurchase", _TaxCodeIdPurchase);
_AmountPurchaseGross = GetFieldDecimal(dbDataReader, "AmountPurchaseGross", _AmountPurchaseGross);
_AmountSettlementGross = GetFieldDecimal(dbDataReader, "AmountSettlementGross", _AmountSettlementGross);
_AmountEnhancementGross = GetFieldDecimal(dbDataReader, "AmountEnhancementGross", _AmountEnhancementGross);
_AssocIdCustomer = GetFieldInt32(dbDataReader, "AssocIdCustomer", _AssocIdCustomer);
_SellCategoryCode = GetFieldString(dbDataReader, "SellCategoryCode", _SellCategoryCode);
_AmountSell = GetFieldDecimal(dbDataReader, "AmountSell", _AmountSell);
_TaxCodeIdSell = GetFieldInt32(dbDataReader, "TaxCodeIdSell", _TaxCodeIdSell);
_AmountSellGross = GetFieldDecimal(dbDataReader, "AmountSellGross", _AmountSellGross);
_TaxCodeIdProfit = GetFieldInt32(dbDataReader, "TaxCodeIdProfit", _TaxCodeIdProfit);
_SoldOn = GetFieldDateTime(dbDataReader, "SoldOn", _SoldOn);
_AmountSold = GetFieldDecimal(dbDataReader, "AmountSold", _AmountSold);
_AmountSoldGross = GetFieldDecimal(dbDataReader, "AmountSoldGross", _AmountSoldGross);
_DisposeCode = GetFieldString(dbDataReader, "DisposeCode", _DisposeCode);
_DisposeOn = GetFieldDateTime(dbDataReader, "DisposeOn", _DisposeOn);
_DueBackOn = GetFieldDateTime(dbDataReader, "DueBackOn", _DueBackOn);
_AmountRentalCost = GetFieldDecimal(dbDataReader, "AmountRentalCost", _AmountRentalCost);
_UomIdRentalCost = GetFieldInt32(dbDataReader, "UomIdRentalCost", _UomIdRentalCost);
_TaxCodeIdRentalCost = GetFieldInt32(dbDataReader, "TaxCodeIdRentalCost", _TaxCodeIdRentalCost);
_AmountRentalPrice = GetFieldDecimal(dbDataReader, "AmountRentalPrice", _AmountRentalPrice);
_UomIdRentalPrice = GetFieldInt32(dbDataReader, "UomIdRentalPrice", _UomIdRentalPrice);
_TaxCodeIdRentalPrice = GetFieldInt32(dbDataReader, "TaxCodeIdRentalPrice", _TaxCodeIdRentalPrice);
_ProcessIdNext = GetFieldInt32(dbDataReader, "ProcessIdNext", _ProcessIdNext);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("AssetCategoryId")) AddCommandParameter(dbCommand, "@AssetCategoryId", _AssetCategoryId);
if (columnNames.ContainsCI("SerialNumber")) AddCommandParameter(dbCommand, "@SerialNumber", _SerialNumber);
if (columnNames.ContainsCI("SerialFmt")) AddCommandParameter(dbCommand, "@SerialFmt", _SerialFmt);
if (columnNames.ContainsCI("RefExt")) AddCommandParameter(dbCommand, "@RefExt", _RefExt);
if (columnNames.ContainsCI("DescBrief")) AddCommandParameter(dbCommand, "@DescBrief", _DescBrief);
if (columnNames.ContainsCI("ItemType")) AddCommandParameter(dbCommand, "@ItemType", _ItemType);
if (columnNames.ContainsCI("ItemId")) AddCommandParameter(dbCommand, "@ItemId", _ItemId);
if (columnNames.ContainsCI("PurchaseOn")) AddCommandParameter(dbCommand, "@PurchaseOn", _PurchaseOn);
if (columnNames.ContainsCI("AssocIdSupplier")) AddCommandParameter(dbCommand, "@AssocIdSupplier", _AssocIdSupplier);
if (columnNames.ContainsCI("PurchaseInvoiceRef")) AddCommandParameter(dbCommand, "@PurchaseInvoiceRef", _PurchaseInvoiceRef);
if (columnNames.ContainsCI("PaymentTerms")) AddCommandParameter(dbCommand, "@PaymentTerms", _PaymentTerms);
if (columnNames.ContainsCI("AmountPurchase")) AddCommandParameter(dbCommand, "@AmountPurchase", _AmountPurchase);
if (columnNames.ContainsCI("TaxCodeIdPurchase")) AddCommandParameter(dbCommand, "@TaxCodeIdPurchase", _TaxCodeIdPurchase);
if (columnNames.ContainsCI("AmountPurchaseGross")) AddCommandParameter(dbCommand, "@AmountPurchaseGross", _AmountPurchaseGross);
if (columnNames.ContainsCI("AmountSettlementGross")) AddCommandParameter(dbCommand, "@AmountSettlementGross", _AmountSettlementGross);
if (columnNames.ContainsCI("AmountEnhancementGross")) AddCommandParameter(dbCommand, "@AmountEnhancementGross", _AmountEnhancementGross);
if (columnNames.ContainsCI("AssocIdCustomer")) AddCommandParameter(dbCommand, "@AssocIdCustomer", _AssocIdCustomer);
if (columnNames.ContainsCI("SellCategoryCode")) AddCommandParameter(dbCommand, "@SellCategoryCode", _SellCategoryCode);
if (columnNames.ContainsCI("AmountSell")) AddCommandParameter(dbCommand, "@AmountSell", _AmountSell);
if (columnNames.ContainsCI("TaxCodeIdSell")) AddCommandParameter(dbCommand, "@TaxCodeIdSell", _TaxCodeIdSell);
if (columnNames.ContainsCI("AmountSellGross")) AddCommandParameter(dbCommand, "@AmountSellGross", _AmountSellGross);
if (columnNames.ContainsCI("TaxCodeIdProfit")) AddCommandParameter(dbCommand, "@TaxCodeIdProfit", _TaxCodeIdProfit);
if (columnNames.ContainsCI("SoldOn")) AddCommandParameter(dbCommand, "@SoldOn", _SoldOn);
if (columnNames.ContainsCI("AmountSold")) AddCommandParameter(dbCommand, "@AmountSold", _AmountSold);
if (columnNames.ContainsCI("AmountSoldGross")) AddCommandParameter(dbCommand, "@AmountSoldGross", _AmountSoldGross);
if (columnNames.ContainsCI("DisposeCode")) AddCommandParameter(dbCommand, "@DisposeCode", _DisposeCode);
if (columnNames.ContainsCI("DisposeOn")) AddCommandParameter(dbCommand, "@DisposeOn", _DisposeOn);
if (columnNames.ContainsCI("DueBackOn")) AddCommandParameter(dbCommand, "@DueBackOn", _DueBackOn);
if (columnNames.ContainsCI("AmountRentalCost")) AddCommandParameter(dbCommand, "@AmountRentalCost", _AmountRentalCost);
if (columnNames.ContainsCI("UomIdRentalCost")) AddCommandParameter(dbCommand, "@UomIdRentalCost", _UomIdRentalCost);
if (columnNames.ContainsCI("TaxCodeIdRentalCost")) AddCommandParameter(dbCommand, "@TaxCodeIdRentalCost", _TaxCodeIdRentalCost);
if (columnNames.ContainsCI("AmountRentalPrice")) AddCommandParameter(dbCommand, "@AmountRentalPrice", _AmountRentalPrice);
if (columnNames.ContainsCI("UomIdRentalPrice")) AddCommandParameter(dbCommand, "@UomIdRentalPrice", _UomIdRentalPrice);
if (columnNames.ContainsCI("TaxCodeIdRentalPrice")) AddCommandParameter(dbCommand, "@TaxCodeIdRentalPrice", _TaxCodeIdRentalPrice);
if (columnNames.ContainsCI("ProcessIdNext")) AddCommandParameter(dbCommand, "@ProcessIdNext", _ProcessIdNext);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("AssetCategoryId")) AddCommandParameter(dbCommand, "@AssetCategoryId", _AssetCategoryId);
if (columnNames.ContainsCI("SerialNumber")) AddCommandParameter(dbCommand, "@SerialNumber", _SerialNumber);
if (columnNames.ContainsCI("SerialFmt")) AddCommandParameter(dbCommand, "@SerialFmt", _SerialFmt);
if (columnNames.ContainsCI("RefExt")) AddCommandParameter(dbCommand, "@RefExt", _RefExt);
if (columnNames.ContainsCI("DescBrief")) AddCommandParameter(dbCommand, "@DescBrief", _DescBrief);
if (columnNames.ContainsCI("ItemType")) AddCommandParameter(dbCommand, "@ItemType", _ItemType);
if (columnNames.ContainsCI("ItemId")) AddCommandParameter(dbCommand, "@ItemId", _ItemId);
if (columnNames.ContainsCI("PurchaseOn")) AddCommandParameter(dbCommand, "@PurchaseOn", _PurchaseOn);
if (columnNames.ContainsCI("AssocIdSupplier")) AddCommandParameter(dbCommand, "@AssocIdSupplier", _AssocIdSupplier);
if (columnNames.ContainsCI("PurchaseInvoiceRef")) AddCommandParameter(dbCommand, "@PurchaseInvoiceRef", _PurchaseInvoiceRef);
if (columnNames.ContainsCI("PaymentTerms")) AddCommandParameter(dbCommand, "@PaymentTerms", _PaymentTerms);
if (columnNames.ContainsCI("AmountPurchase")) AddCommandParameter(dbCommand, "@AmountPurchase", _AmountPurchase);
if (columnNames.ContainsCI("TaxCodeIdPurchase")) AddCommandParameter(dbCommand, "@TaxCodeIdPurchase", _TaxCodeIdPurchase);
if (columnNames.ContainsCI("AmountPurchaseGross")) AddCommandParameter(dbCommand, "@AmountPurchaseGross", _AmountPurchaseGross);
if (columnNames.ContainsCI("AmountSettlementGross")) AddCommandParameter(dbCommand, "@AmountSettlementGross", _AmountSettlementGross);
if (columnNames.ContainsCI("AmountEnhancementGross")) AddCommandParameter(dbCommand, "@AmountEnhancementGross", _AmountEnhancementGross);
if (columnNames.ContainsCI("AssocIdCustomer")) AddCommandParameter(dbCommand, "@AssocIdCustomer", _AssocIdCustomer);
if (columnNames.ContainsCI("SellCategoryCode")) AddCommandParameter(dbCommand, "@SellCategoryCode", _SellCategoryCode);
if (columnNames.ContainsCI("AmountSell")) AddCommandParameter(dbCommand, "@AmountSell", _AmountSell);
if (columnNames.ContainsCI("TaxCodeIdSell")) AddCommandParameter(dbCommand, "@TaxCodeIdSell", _TaxCodeIdSell);
if (columnNames.ContainsCI("AmountSellGross")) AddCommandParameter(dbCommand, "@AmountSellGross", _AmountSellGross);
if (columnNames.ContainsCI("TaxCodeIdProfit")) AddCommandParameter(dbCommand, "@TaxCodeIdProfit", _TaxCodeIdProfit);
if (columnNames.ContainsCI("SoldOn")) AddCommandParameter(dbCommand, "@SoldOn", _SoldOn);
if (columnNames.ContainsCI("AmountSold")) AddCommandParameter(dbCommand, "@AmountSold", _AmountSold);
if (columnNames.ContainsCI("AmountSoldGross")) AddCommandParameter(dbCommand, "@AmountSoldGross", _AmountSoldGross);
if (columnNames.ContainsCI("DisposeCode")) AddCommandParameter(dbCommand, "@DisposeCode", _DisposeCode);
if (columnNames.ContainsCI("DisposeOn")) AddCommandParameter(dbCommand, "@DisposeOn", _DisposeOn);
if (columnNames.ContainsCI("DueBackOn")) AddCommandParameter(dbCommand, "@DueBackOn", _DueBackOn);
if (columnNames.ContainsCI("AmountRentalCost")) AddCommandParameter(dbCommand, "@AmountRentalCost", _AmountRentalCost);
if (columnNames.ContainsCI("UomIdRentalCost")) AddCommandParameter(dbCommand, "@UomIdRentalCost", _UomIdRentalCost);
if (columnNames.ContainsCI("TaxCodeIdRentalCost")) AddCommandParameter(dbCommand, "@TaxCodeIdRentalCost", _TaxCodeIdRentalCost);
if (columnNames.ContainsCI("AmountRentalPrice")) AddCommandParameter(dbCommand, "@AmountRentalPrice", _AmountRentalPrice);
if (columnNames.ContainsCI("UomIdRentalPrice")) AddCommandParameter(dbCommand, "@UomIdRentalPrice", _UomIdRentalPrice);
if (columnNames.ContainsCI("TaxCodeIdRentalPrice")) AddCommandParameter(dbCommand, "@TaxCodeIdRentalPrice", _TaxCodeIdRentalPrice);
if (columnNames.ContainsCI("ProcessIdNext")) AddCommandParameter(dbCommand, "@ProcessIdNext", _ProcessIdNext);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,229 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class SaDiaryEntry_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt16 _Category { get; } = new ColumnDataInt16("Category");
public ColumnDataInt16 _Type { get; } = new ColumnDataInt16("Type");
public ColumnDataDateTime _Start { get; } = new ColumnDataDateTime("Start");
public ColumnDataDateTime _Finish { get; } = new ColumnDataDateTime("Finish");
public ColumnDataInt32 _Duration { get; } = new ColumnDataInt32("Duration");
public ColumnDataString _Description { get; } = new ColumnDataString("Description");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"Category",
"Type",
"Start",
"Finish",
"Duration",
"Description",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal SaDiaryEntry_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "SaDiaryEntry";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int16 _Category { get { return Cols._Category.Value; } set { Cols._Category.Value = value; } }
public Int16 _Type { get { return Cols._Type.Value; } set { Cols._Type.Value = value; } }
public DateTime _Start { get { return Cols._Start.Value; } set { Cols._Start.Value = value; } }
public DateTime _Finish { get { return Cols._Finish.Value; } set { Cols._Finish.Value = value; } }
public Int32 _Duration { get { return Cols._Duration.Value; } set { Cols._Duration.Value = value; } }
public String _Description { get { return Cols._Description.Value; } set { Cols._Description.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_Category = GetFieldInt16(dbDataReader, "Category", _Category);
_Type = GetFieldInt16(dbDataReader, "Type", _Type);
_Start = GetFieldDateTime(dbDataReader, "Start", _Start);
_Finish = GetFieldDateTime(dbDataReader, "Finish", _Finish);
_Duration = GetFieldInt32(dbDataReader, "Duration", _Duration);
_Description = GetFieldString(dbDataReader, "Description", _Description);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("Category")) AddCommandParameter(dbCommand, "@Category", _Category);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Start")) AddCommandParameter(dbCommand, "@Start", _Start);
if (columnNames.ContainsCI("Finish")) AddCommandParameter(dbCommand, "@Finish", _Finish);
if (columnNames.ContainsCI("Duration")) AddCommandParameter(dbCommand, "@Duration", _Duration);
if (columnNames.ContainsCI("Description")) AddCommandParameter(dbCommand, "@Description", _Description);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Category")) AddCommandParameter(dbCommand, "@Category", _Category);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Start")) AddCommandParameter(dbCommand, "@Start", _Start);
if (columnNames.ContainsCI("Finish")) AddCommandParameter(dbCommand, "@Finish", _Finish);
if (columnNames.ContainsCI("Duration")) AddCommandParameter(dbCommand, "@Duration", _Duration);
if (columnNames.ContainsCI("Description")) AddCommandParameter(dbCommand, "@Description", _Description);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,207 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class SaDiaryLink_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _EntryId { get; } = new ColumnDataInt32("EntryId");
public ColumnDataInt16 _ItemType { get; } = new ColumnDataInt16("ItemType");
public ColumnDataInt32 _ItemId { get; } = new ColumnDataInt32("ItemId");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"EntryId",
"ItemType",
"ItemId",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"EntryId",
"ItemType",
"ItemId",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal SaDiaryLink_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "SaDiaryLink";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _EntryId { get { return Cols._EntryId.Value; } set { Cols._EntryId.Value = value; } }
public Int16 _ItemType { get { return Cols._ItemType.Value; } set { Cols._ItemType.Value = value; } }
public Int32 _ItemId { get { return Cols._ItemId.Value; } set { Cols._ItemId.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_EntryId = GetFieldInt32(dbDataReader, "EntryId", _EntryId);
_ItemType = GetFieldInt16(dbDataReader, "ItemType", _ItemType);
_ItemId = GetFieldInt32(dbDataReader, "ItemId", _ItemId);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("EntryId")) AddCommandParameter(dbCommand, "@EntryId", _EntryId);
if (columnNames.ContainsCI("ItemType")) AddCommandParameter(dbCommand, "@ItemType", _ItemType);
if (columnNames.ContainsCI("ItemId")) AddCommandParameter(dbCommand, "@ItemId", _ItemId);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE EntryId=@EntryId AND ItemType=@ItemType AND ItemId=@ItemId;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE EntryId=? AND ItemType=? AND ItemId=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@EntryId", _EntryId);
AddCommandParameter(dbCommand, "@ItemType", _ItemType);
AddCommandParameter(dbCommand, "@ItemId", _ItemId);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,223 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class SaPriceSet_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt32 _AffIdOwner { get; } = new ColumnDataInt32("AffIdOwner");
public ColumnDataInt16 _Type { get; } = new ColumnDataInt16("Type");
public ColumnDataString _Ref { get; } = new ColumnDataString("Ref");
public ColumnDataString _Name { get; } = new ColumnDataString("Name");
public ColumnDataInt32 _CurrencyId { get; } = new ColumnDataInt32("CurrencyId");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"AffIdOwner",
"Type",
"Ref",
"Name",
"CurrencyId",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal SaPriceSet_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "SaPriceSet";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int32 _AffIdOwner { get { return Cols._AffIdOwner.Value; } set { Cols._AffIdOwner.Value = value; } }
public Int16 _Type { get { return Cols._Type.Value; } set { Cols._Type.Value = value; } }
public String _Ref { get { return Cols._Ref.Value; } set { Cols._Ref.Value = value; } }
public String _Name { get { return Cols._Name.Value; } set { Cols._Name.Value = value; } }
public Int32 _CurrencyId { get { return Cols._CurrencyId.Value; } set { Cols._CurrencyId.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_AffIdOwner = GetFieldInt32(dbDataReader, "AffIdOwner", _AffIdOwner);
_Type = GetFieldInt16(dbDataReader, "Type", _Type);
_Ref = GetFieldString(dbDataReader, "Ref", _Ref);
_Name = GetFieldString(dbDataReader, "Name", _Name);
_CurrencyId = GetFieldInt32(dbDataReader, "CurrencyId", _CurrencyId);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("AffIdOwner")) AddCommandParameter(dbCommand, "@AffIdOwner", _AffIdOwner);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Ref")) AddCommandParameter(dbCommand, "@Ref", _Ref);
if (columnNames.ContainsCI("Name")) AddCommandParameter(dbCommand, "@Name", _Name);
if (columnNames.ContainsCI("CurrencyId")) AddCommandParameter(dbCommand, "@CurrencyId", _CurrencyId);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("AffIdOwner")) AddCommandParameter(dbCommand, "@AffIdOwner", _AffIdOwner);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Ref")) AddCommandParameter(dbCommand, "@Ref", _Ref);
if (columnNames.ContainsCI("Name")) AddCommandParameter(dbCommand, "@Name", _Name);
if (columnNames.ContainsCI("CurrencyId")) AddCommandParameter(dbCommand, "@CurrencyId", _CurrencyId);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,242 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class SaPrice_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _PriceSetId { get; } = new ColumnDataInt32("PriceSetId");
public ColumnDataInt32 _CommodityId { get; } = new ColumnDataInt32("CommodityId");
public ColumnDataInt16 _Type { get; } = new ColumnDataInt16("Type");
public ColumnDataInt16 _CalcMethod { get; } = new ColumnDataInt16("CalcMethod");
public ColumnDataDecimal _CalcValue { get; } = new ColumnDataDecimal("CalcValue");
public ColumnDataInt16 _RounderMethod { get; } = new ColumnDataInt16("RounderMethod");
public ColumnDataInt16 _RounderDirection { get; } = new ColumnDataInt16("RounderDirection");
public ColumnDataDecimal _RounderMultipleOf { get; } = new ColumnDataDecimal("RounderMultipleOf");
public ColumnDataDecimal _RounderAdjustment { get; } = new ColumnDataDecimal("RounderAdjustment");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"PriceSetId",
"CommodityId",
"Type",
"CalcMethod",
"CalcValue",
"RounderMethod",
"RounderDirection",
"RounderMultipleOf",
"RounderAdjustment",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"PriceSetId",
"CommodityId",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal SaPrice_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "SaPrice";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _PriceSetId { get { return Cols._PriceSetId.Value; } set { Cols._PriceSetId.Value = value; } }
public Int32 _CommodityId { get { return Cols._CommodityId.Value; } set { Cols._CommodityId.Value = value; } }
public Int16 _Type { get { return Cols._Type.Value; } set { Cols._Type.Value = value; } }
public Int16 _CalcMethod { get { return Cols._CalcMethod.Value; } set { Cols._CalcMethod.Value = value; } }
public Decimal _CalcValue { get { return Cols._CalcValue.Value; } set { Cols._CalcValue.Value = value; } }
public Int16 _RounderMethod { get { return Cols._RounderMethod.Value; } set { Cols._RounderMethod.Value = value; } }
public Int16 _RounderDirection { get { return Cols._RounderDirection.Value; } set { Cols._RounderDirection.Value = value; } }
public Decimal _RounderMultipleOf { get { return Cols._RounderMultipleOf.Value; } set { Cols._RounderMultipleOf.Value = value; } }
public Decimal _RounderAdjustment { get { return Cols._RounderAdjustment.Value; } set { Cols._RounderAdjustment.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_PriceSetId = GetFieldInt32(dbDataReader, "PriceSetId", _PriceSetId);
_CommodityId = GetFieldInt32(dbDataReader, "CommodityId", _CommodityId);
_Type = GetFieldInt16(dbDataReader, "Type", _Type);
_CalcMethod = GetFieldInt16(dbDataReader, "CalcMethod", _CalcMethod);
_CalcValue = GetFieldDecimal(dbDataReader, "CalcValue", _CalcValue);
_RounderMethod = GetFieldInt16(dbDataReader, "RounderMethod", _RounderMethod);
_RounderDirection = GetFieldInt16(dbDataReader, "RounderDirection", _RounderDirection);
_RounderMultipleOf = GetFieldDecimal(dbDataReader, "RounderMultipleOf", _RounderMultipleOf);
_RounderAdjustment = GetFieldDecimal(dbDataReader, "RounderAdjustment", _RounderAdjustment);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("PriceSetId")) AddCommandParameter(dbCommand, "@PriceSetId", _PriceSetId);
if (columnNames.ContainsCI("CommodityId")) AddCommandParameter(dbCommand, "@CommodityId", _CommodityId);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("CalcMethod")) AddCommandParameter(dbCommand, "@CalcMethod", _CalcMethod);
if (columnNames.ContainsCI("CalcValue")) AddCommandParameter(dbCommand, "@CalcValue", _CalcValue);
if (columnNames.ContainsCI("RounderMethod")) AddCommandParameter(dbCommand, "@RounderMethod", _RounderMethod);
if (columnNames.ContainsCI("RounderDirection")) AddCommandParameter(dbCommand, "@RounderDirection", _RounderDirection);
if (columnNames.ContainsCI("RounderMultipleOf")) AddCommandParameter(dbCommand, "@RounderMultipleOf", _RounderMultipleOf);
if (columnNames.ContainsCI("RounderAdjustment")) AddCommandParameter(dbCommand, "@RounderAdjustment", _RounderAdjustment);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE PriceSetId=@PriceSetId AND CommodityId=@CommodityId;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE PriceSetId=? AND CommodityId=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("CalcMethod")) AddCommandParameter(dbCommand, "@CalcMethod", _CalcMethod);
if (columnNames.ContainsCI("CalcValue")) AddCommandParameter(dbCommand, "@CalcValue", _CalcValue);
if (columnNames.ContainsCI("RounderMethod")) AddCommandParameter(dbCommand, "@RounderMethod", _RounderMethod);
if (columnNames.ContainsCI("RounderDirection")) AddCommandParameter(dbCommand, "@RounderDirection", _RounderDirection);
if (columnNames.ContainsCI("RounderMultipleOf")) AddCommandParameter(dbCommand, "@RounderMultipleOf", _RounderMultipleOf);
if (columnNames.ContainsCI("RounderAdjustment")) AddCommandParameter(dbCommand, "@RounderAdjustment", _RounderAdjustment);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@PriceSetId", _PriceSetId);
AddCommandParameter(dbCommand, "@CommodityId", _CommodityId);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,301 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class SaVehicleClass_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataString _MakeCode { get; } = new ColumnDataString("MakeCode");
public ColumnDataString _Model { get; } = new ColumnDataString("Model");
public ColumnDataString _Derivative { get; } = new ColumnDataString("Derivative");
public ColumnDataString _DescBrief { get; } = new ColumnDataString("DescBrief");
public ColumnDataInt16 _VehicleType { get; } = new ColumnDataInt16("VehicleType");
public ColumnDataString _VehicleCategoryCode { get; } = new ColumnDataString("VehicleCategoryCode");
public ColumnDataInt16 _FuelType { get; } = new ColumnDataInt16("FuelType");
public ColumnDataInt16 _OdometerUnits { get; } = new ColumnDataInt16("OdometerUnits");
public ColumnDataInt16 _Seats { get; } = new ColumnDataInt16("Seats");
public ColumnDataDecimal _Weight { get; } = new ColumnDataDecimal("Weight");
public ColumnDataString _InsuranceCode { get; } = new ColumnDataString("InsuranceCode");
public ColumnDataInt32 _FirstServiceOdo { get; } = new ColumnDataInt32("FirstServiceOdo");
public ColumnDataInt32 _ServiceOdo { get; } = new ColumnDataInt32("ServiceOdo");
public ColumnDataInt16 _ServiceWeeks { get; } = new ColumnDataInt16("ServiceWeeks");
public ColumnDataDecimal _AmountRentalCost { get; } = new ColumnDataDecimal("AmountRentalCost");
public ColumnDataInt32 _UomIdRentalCost { get; } = new ColumnDataInt32("UomIdRentalCost");
public ColumnDataDecimal _AmountRentalPrice { get; } = new ColumnDataDecimal("AmountRentalPrice");
public ColumnDataInt32 _UomIdRentalPrice { get; } = new ColumnDataInt32("UomIdRentalPrice");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"MakeCode",
"Model",
"Derivative",
"DescBrief",
"VehicleType",
"VehicleCategoryCode",
"FuelType",
"OdometerUnits",
"Seats",
"Weight",
"InsuranceCode",
"FirstServiceOdo",
"ServiceOdo",
"ServiceWeeks",
"AmountRentalCost",
"UomIdRentalCost",
"AmountRentalPrice",
"UomIdRentalPrice",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal SaVehicleClass_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "SaVehicleClass";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public String _MakeCode { get { return Cols._MakeCode.Value; } set { Cols._MakeCode.Value = value; } }
public String _Model { get { return Cols._Model.Value; } set { Cols._Model.Value = value; } }
public String _Derivative { get { return Cols._Derivative.Value; } set { Cols._Derivative.Value = value; } }
public String _DescBrief { get { return Cols._DescBrief.Value; } set { Cols._DescBrief.Value = value; } }
public Int16 _VehicleType { get { return Cols._VehicleType.Value; } set { Cols._VehicleType.Value = value; } }
public String _VehicleCategoryCode { get { return Cols._VehicleCategoryCode.Value; } set { Cols._VehicleCategoryCode.Value = value; } }
public Int16 _FuelType { get { return Cols._FuelType.Value; } set { Cols._FuelType.Value = value; } }
public Int16 _OdometerUnits { get { return Cols._OdometerUnits.Value; } set { Cols._OdometerUnits.Value = value; } }
public Int16 _Seats { get { return Cols._Seats.Value; } set { Cols._Seats.Value = value; } }
public Decimal _Weight { get { return Cols._Weight.Value; } set { Cols._Weight.Value = value; } }
public String _InsuranceCode { get { return Cols._InsuranceCode.Value; } set { Cols._InsuranceCode.Value = value; } }
public Int32 _FirstServiceOdo { get { return Cols._FirstServiceOdo.Value; } set { Cols._FirstServiceOdo.Value = value; } }
public Int32 _ServiceOdo { get { return Cols._ServiceOdo.Value; } set { Cols._ServiceOdo.Value = value; } }
public Int16 _ServiceWeeks { get { return Cols._ServiceWeeks.Value; } set { Cols._ServiceWeeks.Value = value; } }
public Decimal _AmountRentalCost { get { return Cols._AmountRentalCost.Value; } set { Cols._AmountRentalCost.Value = value; } }
public Int32 _UomIdRentalCost { get { return Cols._UomIdRentalCost.Value; } set { Cols._UomIdRentalCost.Value = value; } }
public Decimal _AmountRentalPrice { get { return Cols._AmountRentalPrice.Value; } set { Cols._AmountRentalPrice.Value = value; } }
public Int32 _UomIdRentalPrice { get { return Cols._UomIdRentalPrice.Value; } set { Cols._UomIdRentalPrice.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_MakeCode = GetFieldString(dbDataReader, "MakeCode", _MakeCode);
_Model = GetFieldString(dbDataReader, "Model", _Model);
_Derivative = GetFieldString(dbDataReader, "Derivative", _Derivative);
_DescBrief = GetFieldString(dbDataReader, "DescBrief", _DescBrief);
_VehicleType = GetFieldInt16(dbDataReader, "VehicleType", _VehicleType);
_VehicleCategoryCode = GetFieldString(dbDataReader, "VehicleCategoryCode", _VehicleCategoryCode);
_FuelType = GetFieldInt16(dbDataReader, "FuelType", _FuelType);
_OdometerUnits = GetFieldInt16(dbDataReader, "OdometerUnits", _OdometerUnits);
_Seats = GetFieldInt16(dbDataReader, "Seats", _Seats);
_Weight = GetFieldDecimal(dbDataReader, "Weight", _Weight);
_InsuranceCode = GetFieldString(dbDataReader, "InsuranceCode", _InsuranceCode);
_FirstServiceOdo = GetFieldInt32(dbDataReader, "FirstServiceOdo", _FirstServiceOdo);
_ServiceOdo = GetFieldInt32(dbDataReader, "ServiceOdo", _ServiceOdo);
_ServiceWeeks = GetFieldInt16(dbDataReader, "ServiceWeeks", _ServiceWeeks);
_AmountRentalCost = GetFieldDecimal(dbDataReader, "AmountRentalCost", _AmountRentalCost);
_UomIdRentalCost = GetFieldInt32(dbDataReader, "UomIdRentalCost", _UomIdRentalCost);
_AmountRentalPrice = GetFieldDecimal(dbDataReader, "AmountRentalPrice", _AmountRentalPrice);
_UomIdRentalPrice = GetFieldInt32(dbDataReader, "UomIdRentalPrice", _UomIdRentalPrice);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("MakeCode")) AddCommandParameter(dbCommand, "@MakeCode", _MakeCode);
if (columnNames.ContainsCI("Model")) AddCommandParameter(dbCommand, "@Model", _Model);
if (columnNames.ContainsCI("Derivative")) AddCommandParameter(dbCommand, "@Derivative", _Derivative);
if (columnNames.ContainsCI("DescBrief")) AddCommandParameter(dbCommand, "@DescBrief", _DescBrief);
if (columnNames.ContainsCI("VehicleType")) AddCommandParameter(dbCommand, "@VehicleType", _VehicleType);
if (columnNames.ContainsCI("VehicleCategoryCode")) AddCommandParameter(dbCommand, "@VehicleCategoryCode", _VehicleCategoryCode);
if (columnNames.ContainsCI("FuelType")) AddCommandParameter(dbCommand, "@FuelType", _FuelType);
if (columnNames.ContainsCI("OdometerUnits")) AddCommandParameter(dbCommand, "@OdometerUnits", _OdometerUnits);
if (columnNames.ContainsCI("Seats")) AddCommandParameter(dbCommand, "@Seats", _Seats);
if (columnNames.ContainsCI("Weight")) AddCommandParameter(dbCommand, "@Weight", _Weight);
if (columnNames.ContainsCI("InsuranceCode")) AddCommandParameter(dbCommand, "@InsuranceCode", _InsuranceCode);
if (columnNames.ContainsCI("FirstServiceOdo")) AddCommandParameter(dbCommand, "@FirstServiceOdo", _FirstServiceOdo);
if (columnNames.ContainsCI("ServiceOdo")) AddCommandParameter(dbCommand, "@ServiceOdo", _ServiceOdo);
if (columnNames.ContainsCI("ServiceWeeks")) AddCommandParameter(dbCommand, "@ServiceWeeks", _ServiceWeeks);
if (columnNames.ContainsCI("AmountRentalCost")) AddCommandParameter(dbCommand, "@AmountRentalCost", _AmountRentalCost);
if (columnNames.ContainsCI("UomIdRentalCost")) AddCommandParameter(dbCommand, "@UomIdRentalCost", _UomIdRentalCost);
if (columnNames.ContainsCI("AmountRentalPrice")) AddCommandParameter(dbCommand, "@AmountRentalPrice", _AmountRentalPrice);
if (columnNames.ContainsCI("UomIdRentalPrice")) AddCommandParameter(dbCommand, "@UomIdRentalPrice", _UomIdRentalPrice);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("MakeCode")) AddCommandParameter(dbCommand, "@MakeCode", _MakeCode);
if (columnNames.ContainsCI("Model")) AddCommandParameter(dbCommand, "@Model", _Model);
if (columnNames.ContainsCI("Derivative")) AddCommandParameter(dbCommand, "@Derivative", _Derivative);
if (columnNames.ContainsCI("DescBrief")) AddCommandParameter(dbCommand, "@DescBrief", _DescBrief);
if (columnNames.ContainsCI("VehicleType")) AddCommandParameter(dbCommand, "@VehicleType", _VehicleType);
if (columnNames.ContainsCI("VehicleCategoryCode")) AddCommandParameter(dbCommand, "@VehicleCategoryCode", _VehicleCategoryCode);
if (columnNames.ContainsCI("FuelType")) AddCommandParameter(dbCommand, "@FuelType", _FuelType);
if (columnNames.ContainsCI("OdometerUnits")) AddCommandParameter(dbCommand, "@OdometerUnits", _OdometerUnits);
if (columnNames.ContainsCI("Seats")) AddCommandParameter(dbCommand, "@Seats", _Seats);
if (columnNames.ContainsCI("Weight")) AddCommandParameter(dbCommand, "@Weight", _Weight);
if (columnNames.ContainsCI("InsuranceCode")) AddCommandParameter(dbCommand, "@InsuranceCode", _InsuranceCode);
if (columnNames.ContainsCI("FirstServiceOdo")) AddCommandParameter(dbCommand, "@FirstServiceOdo", _FirstServiceOdo);
if (columnNames.ContainsCI("ServiceOdo")) AddCommandParameter(dbCommand, "@ServiceOdo", _ServiceOdo);
if (columnNames.ContainsCI("ServiceWeeks")) AddCommandParameter(dbCommand, "@ServiceWeeks", _ServiceWeeks);
if (columnNames.ContainsCI("AmountRentalCost")) AddCommandParameter(dbCommand, "@AmountRentalCost", _AmountRentalCost);
if (columnNames.ContainsCI("UomIdRentalCost")) AddCommandParameter(dbCommand, "@UomIdRentalCost", _UomIdRentalCost);
if (columnNames.ContainsCI("AmountRentalPrice")) AddCommandParameter(dbCommand, "@AmountRentalPrice", _AmountRentalPrice);
if (columnNames.ContainsCI("UomIdRentalPrice")) AddCommandParameter(dbCommand, "@UomIdRentalPrice", _UomIdRentalPrice);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,265 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class SaVehicleEvent_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt32 _VehicleId { get; } = new ColumnDataInt32("VehicleId");
public ColumnDataInt16 _EventType { get; } = new ColumnDataInt16("EventType");
public ColumnDataDateTime _StartOn { get; } = new ColumnDataDateTime("StartOn");
public ColumnDataDateTime _FinishOn { get; } = new ColumnDataDateTime("FinishOn");
public ColumnDataInt32 _Odometer { get; } = new ColumnDataInt32("Odometer");
public ColumnDataString _DescBrief { get; } = new ColumnDataString("DescBrief");
public ColumnDataString _DescDetail { get; } = new ColumnDataString("DescDetail");
public ColumnDataDecimal _AmountNet { get; } = new ColumnDataDecimal("AmountNet");
public ColumnDataInt32 _TaxCodeId { get; } = new ColumnDataInt32("TaxCodeId");
public ColumnDataDecimal _TaxRate { get; } = new ColumnDataDecimal("TaxRate");
public ColumnDataDecimal _AmountTax { get; } = new ColumnDataDecimal("AmountTax");
public ColumnDataDecimal _AmountTot { get; } = new ColumnDataDecimal("AmountTot");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"VehicleId",
"EventType",
"StartOn",
"FinishOn",
"Odometer",
"DescBrief",
"DescDetail",
"AmountNet",
"TaxCodeId",
"TaxRate",
"AmountTax",
"AmountTot",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal SaVehicleEvent_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "SaVehicleEvent";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int32 _VehicleId { get { return Cols._VehicleId.Value; } set { Cols._VehicleId.Value = value; } }
public Int16 _EventType { get { return Cols._EventType.Value; } set { Cols._EventType.Value = value; } }
public DateTime _StartOn { get { return Cols._StartOn.Value; } set { Cols._StartOn.Value = value; } }
public DateTime _FinishOn { get { return Cols._FinishOn.Value; } set { Cols._FinishOn.Value = value; } }
public Int32 _Odometer { get { return Cols._Odometer.Value; } set { Cols._Odometer.Value = value; } }
public String _DescBrief { get { return Cols._DescBrief.Value; } set { Cols._DescBrief.Value = value; } }
public String _DescDetail { get { return Cols._DescDetail.Value; } set { Cols._DescDetail.Value = value; } }
public Decimal _AmountNet { get { return Cols._AmountNet.Value; } set { Cols._AmountNet.Value = value; } }
public Int32 _TaxCodeId { get { return Cols._TaxCodeId.Value; } set { Cols._TaxCodeId.Value = value; } }
public Decimal _TaxRate { get { return Cols._TaxRate.Value; } set { Cols._TaxRate.Value = value; } }
public Decimal _AmountTax { get { return Cols._AmountTax.Value; } set { Cols._AmountTax.Value = value; } }
public Decimal _AmountTot { get { return Cols._AmountTot.Value; } set { Cols._AmountTot.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_VehicleId = GetFieldInt32(dbDataReader, "VehicleId", _VehicleId);
_EventType = GetFieldInt16(dbDataReader, "EventType", _EventType);
_StartOn = GetFieldDateTime(dbDataReader, "StartOn", _StartOn);
_FinishOn = GetFieldDateTime(dbDataReader, "FinishOn", _FinishOn);
_Odometer = GetFieldInt32(dbDataReader, "Odometer", _Odometer);
_DescBrief = GetFieldString(dbDataReader, "DescBrief", _DescBrief);
_DescDetail = GetFieldString(dbDataReader, "DescDetail", _DescDetail);
_AmountNet = GetFieldDecimal(dbDataReader, "AmountNet", _AmountNet);
_TaxCodeId = GetFieldInt32(dbDataReader, "TaxCodeId", _TaxCodeId);
_TaxRate = GetFieldDecimal(dbDataReader, "TaxRate", _TaxRate);
_AmountTax = GetFieldDecimal(dbDataReader, "AmountTax", _AmountTax);
_AmountTot = GetFieldDecimal(dbDataReader, "AmountTot", _AmountTot);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("VehicleId")) AddCommandParameter(dbCommand, "@VehicleId", _VehicleId);
if (columnNames.ContainsCI("EventType")) AddCommandParameter(dbCommand, "@EventType", _EventType);
if (columnNames.ContainsCI("StartOn")) AddCommandParameter(dbCommand, "@StartOn", _StartOn);
if (columnNames.ContainsCI("FinishOn")) AddCommandParameter(dbCommand, "@FinishOn", _FinishOn);
if (columnNames.ContainsCI("Odometer")) AddCommandParameter(dbCommand, "@Odometer", _Odometer);
if (columnNames.ContainsCI("DescBrief")) AddCommandParameter(dbCommand, "@DescBrief", _DescBrief);
if (columnNames.ContainsCI("DescDetail")) AddCommandParameter(dbCommand, "@DescDetail", _DescDetail);
if (columnNames.ContainsCI("AmountNet")) AddCommandParameter(dbCommand, "@AmountNet", _AmountNet);
if (columnNames.ContainsCI("TaxCodeId")) AddCommandParameter(dbCommand, "@TaxCodeId", _TaxCodeId);
if (columnNames.ContainsCI("TaxRate")) AddCommandParameter(dbCommand, "@TaxRate", _TaxRate);
if (columnNames.ContainsCI("AmountTax")) AddCommandParameter(dbCommand, "@AmountTax", _AmountTax);
if (columnNames.ContainsCI("AmountTot")) AddCommandParameter(dbCommand, "@AmountTot", _AmountTot);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("VehicleId")) AddCommandParameter(dbCommand, "@VehicleId", _VehicleId);
if (columnNames.ContainsCI("EventType")) AddCommandParameter(dbCommand, "@EventType", _EventType);
if (columnNames.ContainsCI("StartOn")) AddCommandParameter(dbCommand, "@StartOn", _StartOn);
if (columnNames.ContainsCI("FinishOn")) AddCommandParameter(dbCommand, "@FinishOn", _FinishOn);
if (columnNames.ContainsCI("Odometer")) AddCommandParameter(dbCommand, "@Odometer", _Odometer);
if (columnNames.ContainsCI("DescBrief")) AddCommandParameter(dbCommand, "@DescBrief", _DescBrief);
if (columnNames.ContainsCI("DescDetail")) AddCommandParameter(dbCommand, "@DescDetail", _DescDetail);
if (columnNames.ContainsCI("AmountNet")) AddCommandParameter(dbCommand, "@AmountNet", _AmountNet);
if (columnNames.ContainsCI("TaxCodeId")) AddCommandParameter(dbCommand, "@TaxCodeId", _TaxCodeId);
if (columnNames.ContainsCI("TaxRate")) AddCommandParameter(dbCommand, "@TaxRate", _TaxRate);
if (columnNames.ContainsCI("AmountTax")) AddCommandParameter(dbCommand, "@AmountTax", _AmountTax);
if (columnNames.ContainsCI("AmountTot")) AddCommandParameter(dbCommand, "@AmountTot", _AmountTot);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,229 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class SaVehicleFeature_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _VehicleId { get; } = new ColumnDataInt32("VehicleId");
public ColumnDataInt16 _Source { get; } = new ColumnDataInt16("Source");
public ColumnDataInt16 _Type { get; } = new ColumnDataInt16("Type");
public ColumnDataString _CategoryCode { get; } = new ColumnDataString("CategoryCode");
public ColumnDataString _CategoryDesc { get; } = new ColumnDataString("CategoryDesc");
public ColumnDataString _FeatureCode { get; } = new ColumnDataString("FeatureCode");
public ColumnDataString _FeatureDesc { get; } = new ColumnDataString("FeatureDesc");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"VehicleId",
"Source",
"Type",
"CategoryCode",
"CategoryDesc",
"FeatureCode",
"FeatureDesc",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"VehicleId",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal SaVehicleFeature_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "SaVehicleFeature";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _VehicleId { get { return Cols._VehicleId.Value; } set { Cols._VehicleId.Value = value; } }
public Int16 _Source { get { return Cols._Source.Value; } set { Cols._Source.Value = value; } }
public Int16 _Type { get { return Cols._Type.Value; } set { Cols._Type.Value = value; } }
public String _CategoryCode { get { return Cols._CategoryCode.Value; } set { Cols._CategoryCode.Value = value; } }
public String _CategoryDesc { get { return Cols._CategoryDesc.Value; } set { Cols._CategoryDesc.Value = value; } }
public String _FeatureCode { get { return Cols._FeatureCode.Value; } set { Cols._FeatureCode.Value = value; } }
public String _FeatureDesc { get { return Cols._FeatureDesc.Value; } set { Cols._FeatureDesc.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_VehicleId = GetFieldInt32(dbDataReader, "VehicleId", _VehicleId);
_Source = GetFieldInt16(dbDataReader, "Source", _Source);
_Type = GetFieldInt16(dbDataReader, "Type", _Type);
_CategoryCode = GetFieldString(dbDataReader, "CategoryCode", _CategoryCode);
_CategoryDesc = GetFieldString(dbDataReader, "CategoryDesc", _CategoryDesc);
_FeatureCode = GetFieldString(dbDataReader, "FeatureCode", _FeatureCode);
_FeatureDesc = GetFieldString(dbDataReader, "FeatureDesc", _FeatureDesc);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("VehicleId")) AddCommandParameter(dbCommand, "@VehicleId", _VehicleId);
if (columnNames.ContainsCI("Source")) AddCommandParameter(dbCommand, "@Source", _Source);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("CategoryCode")) AddCommandParameter(dbCommand, "@CategoryCode", _CategoryCode);
if (columnNames.ContainsCI("CategoryDesc")) AddCommandParameter(dbCommand, "@CategoryDesc", _CategoryDesc);
if (columnNames.ContainsCI("FeatureCode")) AddCommandParameter(dbCommand, "@FeatureCode", _FeatureCode);
if (columnNames.ContainsCI("FeatureDesc")) AddCommandParameter(dbCommand, "@FeatureDesc", _FeatureDesc);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE VehicleId=@VehicleId;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE VehicleId=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Source")) AddCommandParameter(dbCommand, "@Source", _Source);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("CategoryCode")) AddCommandParameter(dbCommand, "@CategoryCode", _CategoryCode);
if (columnNames.ContainsCI("CategoryDesc")) AddCommandParameter(dbCommand, "@CategoryDesc", _CategoryDesc);
if (columnNames.ContainsCI("FeatureCode")) AddCommandParameter(dbCommand, "@FeatureCode", _FeatureCode);
if (columnNames.ContainsCI("FeatureDesc")) AddCommandParameter(dbCommand, "@FeatureDesc", _FeatureDesc);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@VehicleId", _VehicleId);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,355 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class SaVehicle_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt32 _VehicleClassId { get; } = new ColumnDataInt32("VehicleClassId");
public ColumnDataString _RegNumber { get; } = new ColumnDataString("RegNumber");
public ColumnDataString _VIN { get; } = new ColumnDataString("VIN");
public ColumnDataString _CapCode { get; } = new ColumnDataString("CapCode");
public ColumnDataString _KeyNumber { get; } = new ColumnDataString("KeyNumber");
public ColumnDataString _KeyLocation { get; } = new ColumnDataString("KeyLocation");
public ColumnDataString _EngineNumber { get; } = new ColumnDataString("EngineNumber");
public ColumnDataInt16 _EngineCapacity { get; } = new ColumnDataInt16("EngineCapacity");
public ColumnDataInt16 _Seats { get; } = new ColumnDataInt16("Seats");
public ColumnDataInt16 _Weight { get; } = new ColumnDataInt16("Weight");
public ColumnDataInt16 _ManufactureYear { get; } = new ColumnDataInt16("ManufactureYear");
public ColumnDataDateTime _BuildOn { get; } = new ColumnDataDateTime("BuildOn");
public ColumnDataDateTime _FirstRegisterOn { get; } = new ColumnDataDateTime("FirstRegisterOn");
public ColumnDataDateTime _RegisterOn { get; } = new ColumnDataDateTime("RegisterOn");
public ColumnDataString _RegNumberPrev { get; } = new ColumnDataString("RegNumberPrev");
public ColumnDataInt32 _PurchaseOdo { get; } = new ColumnDataInt32("PurchaseOdo");
public ColumnDataString _TachoCode { get; } = new ColumnDataString("TachoCode");
public ColumnDataString _TachoId { get; } = new ColumnDataString("TachoId");
public ColumnDataInt32 _LastServiceOdo { get; } = new ColumnDataInt32("LastServiceOdo");
public ColumnDataDateTime _LastServiceOn { get; } = new ColumnDataDateTime("LastServiceOn");
public ColumnDataInt32 _NextServiceOdo { get; } = new ColumnDataInt32("NextServiceOdo");
public ColumnDataDateTime _NextServiceOn { get; } = new ColumnDataDateTime("NextServiceOn");
public ColumnDataDateTime _MotOn { get; } = new ColumnDataDateTime("MotOn");
public ColumnDataString _MotNo { get; } = new ColumnDataString("MotNo");
public ColumnDataDateTime _NextTaxOn { get; } = new ColumnDataDateTime("NextTaxOn");
public ColumnDataInt32 _LatestOdo { get; } = new ColumnDataInt32("LatestOdo");
public ColumnDataDateTime _LatestOdoOn { get; } = new ColumnDataDateTime("LatestOdoOn");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"VehicleClassId",
"RegNumber",
"VIN",
"CapCode",
"KeyNumber",
"KeyLocation",
"EngineNumber",
"EngineCapacity",
"Seats",
"Weight",
"ManufactureYear",
"BuildOn",
"FirstRegisterOn",
"RegisterOn",
"RegNumberPrev",
"PurchaseOdo",
"TachoCode",
"TachoId",
"LastServiceOdo",
"LastServiceOn",
"NextServiceOdo",
"NextServiceOn",
"MotOn",
"MotNo",
"NextTaxOn",
"LatestOdo",
"LatestOdoOn",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal SaVehicle_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "SaVehicle";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int32 _VehicleClassId { get { return Cols._VehicleClassId.Value; } set { Cols._VehicleClassId.Value = value; } }
public String _RegNumber { get { return Cols._RegNumber.Value; } set { Cols._RegNumber.Value = value; } }
public String _VIN { get { return Cols._VIN.Value; } set { Cols._VIN.Value = value; } }
public String _CapCode { get { return Cols._CapCode.Value; } set { Cols._CapCode.Value = value; } }
public String _KeyNumber { get { return Cols._KeyNumber.Value; } set { Cols._KeyNumber.Value = value; } }
public String _KeyLocation { get { return Cols._KeyLocation.Value; } set { Cols._KeyLocation.Value = value; } }
public String _EngineNumber { get { return Cols._EngineNumber.Value; } set { Cols._EngineNumber.Value = value; } }
public Int16 _EngineCapacity { get { return Cols._EngineCapacity.Value; } set { Cols._EngineCapacity.Value = value; } }
public Int16 _Seats { get { return Cols._Seats.Value; } set { Cols._Seats.Value = value; } }
public Int16 _Weight { get { return Cols._Weight.Value; } set { Cols._Weight.Value = value; } }
public Int16 _ManufactureYear { get { return Cols._ManufactureYear.Value; } set { Cols._ManufactureYear.Value = value; } }
public DateTime _BuildOn { get { return Cols._BuildOn.Value; } set { Cols._BuildOn.Value = value; } }
public DateTime _FirstRegisterOn { get { return Cols._FirstRegisterOn.Value; } set { Cols._FirstRegisterOn.Value = value; } }
public DateTime _RegisterOn { get { return Cols._RegisterOn.Value; } set { Cols._RegisterOn.Value = value; } }
public String _RegNumberPrev { get { return Cols._RegNumberPrev.Value; } set { Cols._RegNumberPrev.Value = value; } }
public Int32 _PurchaseOdo { get { return Cols._PurchaseOdo.Value; } set { Cols._PurchaseOdo.Value = value; } }
public String _TachoCode { get { return Cols._TachoCode.Value; } set { Cols._TachoCode.Value = value; } }
public String _TachoId { get { return Cols._TachoId.Value; } set { Cols._TachoId.Value = value; } }
public Int32 _LastServiceOdo { get { return Cols._LastServiceOdo.Value; } set { Cols._LastServiceOdo.Value = value; } }
public DateTime _LastServiceOn { get { return Cols._LastServiceOn.Value; } set { Cols._LastServiceOn.Value = value; } }
public Int32 _NextServiceOdo { get { return Cols._NextServiceOdo.Value; } set { Cols._NextServiceOdo.Value = value; } }
public DateTime _NextServiceOn { get { return Cols._NextServiceOn.Value; } set { Cols._NextServiceOn.Value = value; } }
public DateTime _MotOn { get { return Cols._MotOn.Value; } set { Cols._MotOn.Value = value; } }
public String _MotNo { get { return Cols._MotNo.Value; } set { Cols._MotNo.Value = value; } }
public DateTime _NextTaxOn { get { return Cols._NextTaxOn.Value; } set { Cols._NextTaxOn.Value = value; } }
public Int32 _LatestOdo { get { return Cols._LatestOdo.Value; } set { Cols._LatestOdo.Value = value; } }
public DateTime _LatestOdoOn { get { return Cols._LatestOdoOn.Value; } set { Cols._LatestOdoOn.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_VehicleClassId = GetFieldInt32(dbDataReader, "VehicleClassId", _VehicleClassId);
_RegNumber = GetFieldString(dbDataReader, "RegNumber", _RegNumber);
_VIN = GetFieldString(dbDataReader, "VIN", _VIN);
_CapCode = GetFieldString(dbDataReader, "CapCode", _CapCode);
_KeyNumber = GetFieldString(dbDataReader, "KeyNumber", _KeyNumber);
_KeyLocation = GetFieldString(dbDataReader, "KeyLocation", _KeyLocation);
_EngineNumber = GetFieldString(dbDataReader, "EngineNumber", _EngineNumber);
_EngineCapacity = GetFieldInt16(dbDataReader, "EngineCapacity", _EngineCapacity);
_Seats = GetFieldInt16(dbDataReader, "Seats", _Seats);
_Weight = GetFieldInt16(dbDataReader, "Weight", _Weight);
_ManufactureYear = GetFieldInt16(dbDataReader, "ManufactureYear", _ManufactureYear);
_BuildOn = GetFieldDateTime(dbDataReader, "BuildOn", _BuildOn);
_FirstRegisterOn = GetFieldDateTime(dbDataReader, "FirstRegisterOn", _FirstRegisterOn);
_RegisterOn = GetFieldDateTime(dbDataReader, "RegisterOn", _RegisterOn);
_RegNumberPrev = GetFieldString(dbDataReader, "RegNumberPrev", _RegNumberPrev);
_PurchaseOdo = GetFieldInt32(dbDataReader, "PurchaseOdo", _PurchaseOdo);
_TachoCode = GetFieldString(dbDataReader, "TachoCode", _TachoCode);
_TachoId = GetFieldString(dbDataReader, "TachoId", _TachoId);
_LastServiceOdo = GetFieldInt32(dbDataReader, "LastServiceOdo", _LastServiceOdo);
_LastServiceOn = GetFieldDateTime(dbDataReader, "LastServiceOn", _LastServiceOn);
_NextServiceOdo = GetFieldInt32(dbDataReader, "NextServiceOdo", _NextServiceOdo);
_NextServiceOn = GetFieldDateTime(dbDataReader, "NextServiceOn", _NextServiceOn);
_MotOn = GetFieldDateTime(dbDataReader, "MotOn", _MotOn);
_MotNo = GetFieldString(dbDataReader, "MotNo", _MotNo);
_NextTaxOn = GetFieldDateTime(dbDataReader, "NextTaxOn", _NextTaxOn);
_LatestOdo = GetFieldInt32(dbDataReader, "LatestOdo", _LatestOdo);
_LatestOdoOn = GetFieldDateTime(dbDataReader, "LatestOdoOn", _LatestOdoOn);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("VehicleClassId")) AddCommandParameter(dbCommand, "@VehicleClassId", _VehicleClassId);
if (columnNames.ContainsCI("RegNumber")) AddCommandParameter(dbCommand, "@RegNumber", _RegNumber);
if (columnNames.ContainsCI("VIN")) AddCommandParameter(dbCommand, "@VIN", _VIN);
if (columnNames.ContainsCI("CapCode")) AddCommandParameter(dbCommand, "@CapCode", _CapCode);
if (columnNames.ContainsCI("KeyNumber")) AddCommandParameter(dbCommand, "@KeyNumber", _KeyNumber);
if (columnNames.ContainsCI("KeyLocation")) AddCommandParameter(dbCommand, "@KeyLocation", _KeyLocation);
if (columnNames.ContainsCI("EngineNumber")) AddCommandParameter(dbCommand, "@EngineNumber", _EngineNumber);
if (columnNames.ContainsCI("EngineCapacity")) AddCommandParameter(dbCommand, "@EngineCapacity", _EngineCapacity);
if (columnNames.ContainsCI("Seats")) AddCommandParameter(dbCommand, "@Seats", _Seats);
if (columnNames.ContainsCI("Weight")) AddCommandParameter(dbCommand, "@Weight", _Weight);
if (columnNames.ContainsCI("ManufactureYear")) AddCommandParameter(dbCommand, "@ManufactureYear", _ManufactureYear);
if (columnNames.ContainsCI("BuildOn")) AddCommandParameter(dbCommand, "@BuildOn", _BuildOn);
if (columnNames.ContainsCI("FirstRegisterOn")) AddCommandParameter(dbCommand, "@FirstRegisterOn", _FirstRegisterOn);
if (columnNames.ContainsCI("RegisterOn")) AddCommandParameter(dbCommand, "@RegisterOn", _RegisterOn);
if (columnNames.ContainsCI("RegNumberPrev")) AddCommandParameter(dbCommand, "@RegNumberPrev", _RegNumberPrev);
if (columnNames.ContainsCI("PurchaseOdo")) AddCommandParameter(dbCommand, "@PurchaseOdo", _PurchaseOdo);
if (columnNames.ContainsCI("TachoCode")) AddCommandParameter(dbCommand, "@TachoCode", _TachoCode);
if (columnNames.ContainsCI("TachoId")) AddCommandParameter(dbCommand, "@TachoId", _TachoId);
if (columnNames.ContainsCI("LastServiceOdo")) AddCommandParameter(dbCommand, "@LastServiceOdo", _LastServiceOdo);
if (columnNames.ContainsCI("LastServiceOn")) AddCommandParameter(dbCommand, "@LastServiceOn", _LastServiceOn);
if (columnNames.ContainsCI("NextServiceOdo")) AddCommandParameter(dbCommand, "@NextServiceOdo", _NextServiceOdo);
if (columnNames.ContainsCI("NextServiceOn")) AddCommandParameter(dbCommand, "@NextServiceOn", _NextServiceOn);
if (columnNames.ContainsCI("MotOn")) AddCommandParameter(dbCommand, "@MotOn", _MotOn);
if (columnNames.ContainsCI("MotNo")) AddCommandParameter(dbCommand, "@MotNo", _MotNo);
if (columnNames.ContainsCI("NextTaxOn")) AddCommandParameter(dbCommand, "@NextTaxOn", _NextTaxOn);
if (columnNames.ContainsCI("LatestOdo")) AddCommandParameter(dbCommand, "@LatestOdo", _LatestOdo);
if (columnNames.ContainsCI("LatestOdoOn")) AddCommandParameter(dbCommand, "@LatestOdoOn", _LatestOdoOn);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("VehicleClassId")) AddCommandParameter(dbCommand, "@VehicleClassId", _VehicleClassId);
if (columnNames.ContainsCI("RegNumber")) AddCommandParameter(dbCommand, "@RegNumber", _RegNumber);
if (columnNames.ContainsCI("VIN")) AddCommandParameter(dbCommand, "@VIN", _VIN);
if (columnNames.ContainsCI("CapCode")) AddCommandParameter(dbCommand, "@CapCode", _CapCode);
if (columnNames.ContainsCI("KeyNumber")) AddCommandParameter(dbCommand, "@KeyNumber", _KeyNumber);
if (columnNames.ContainsCI("KeyLocation")) AddCommandParameter(dbCommand, "@KeyLocation", _KeyLocation);
if (columnNames.ContainsCI("EngineNumber")) AddCommandParameter(dbCommand, "@EngineNumber", _EngineNumber);
if (columnNames.ContainsCI("EngineCapacity")) AddCommandParameter(dbCommand, "@EngineCapacity", _EngineCapacity);
if (columnNames.ContainsCI("Seats")) AddCommandParameter(dbCommand, "@Seats", _Seats);
if (columnNames.ContainsCI("Weight")) AddCommandParameter(dbCommand, "@Weight", _Weight);
if (columnNames.ContainsCI("ManufactureYear")) AddCommandParameter(dbCommand, "@ManufactureYear", _ManufactureYear);
if (columnNames.ContainsCI("BuildOn")) AddCommandParameter(dbCommand, "@BuildOn", _BuildOn);
if (columnNames.ContainsCI("FirstRegisterOn")) AddCommandParameter(dbCommand, "@FirstRegisterOn", _FirstRegisterOn);
if (columnNames.ContainsCI("RegisterOn")) AddCommandParameter(dbCommand, "@RegisterOn", _RegisterOn);
if (columnNames.ContainsCI("RegNumberPrev")) AddCommandParameter(dbCommand, "@RegNumberPrev", _RegNumberPrev);
if (columnNames.ContainsCI("PurchaseOdo")) AddCommandParameter(dbCommand, "@PurchaseOdo", _PurchaseOdo);
if (columnNames.ContainsCI("TachoCode")) AddCommandParameter(dbCommand, "@TachoCode", _TachoCode);
if (columnNames.ContainsCI("TachoId")) AddCommandParameter(dbCommand, "@TachoId", _TachoId);
if (columnNames.ContainsCI("LastServiceOdo")) AddCommandParameter(dbCommand, "@LastServiceOdo", _LastServiceOdo);
if (columnNames.ContainsCI("LastServiceOn")) AddCommandParameter(dbCommand, "@LastServiceOn", _LastServiceOn);
if (columnNames.ContainsCI("NextServiceOdo")) AddCommandParameter(dbCommand, "@NextServiceOdo", _NextServiceOdo);
if (columnNames.ContainsCI("NextServiceOn")) AddCommandParameter(dbCommand, "@NextServiceOn", _NextServiceOn);
if (columnNames.ContainsCI("MotOn")) AddCommandParameter(dbCommand, "@MotOn", _MotOn);
if (columnNames.ContainsCI("MotNo")) AddCommandParameter(dbCommand, "@MotNo", _MotNo);
if (columnNames.ContainsCI("NextTaxOn")) AddCommandParameter(dbCommand, "@NextTaxOn", _NextTaxOn);
if (columnNames.ContainsCI("LatestOdo")) AddCommandParameter(dbCommand, "@LatestOdo", _LatestOdo);
if (columnNames.ContainsCI("LatestOdoOn")) AddCommandParameter(dbCommand, "@LatestOdoOn", _LatestOdoOn);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,247 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class StockLevel_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt32 _CommodityId { get; } = new ColumnDataInt32("CommodityId");
public ColumnDataInt32 _LocationId { get; } = new ColumnDataInt32("LocationId");
public ColumnDataInt16 _Type { get; } = new ColumnDataInt16("Type");
public ColumnDataInt16 _Source { get; } = new ColumnDataInt16("Source");
public ColumnDataDateTime _Recorded { get; } = new ColumnDataDateTime("Recorded");
public ColumnDataDecimal _Quantity { get; } = new ColumnDataDecimal("Quantity");
public ColumnDataString _Bay1 { get; } = new ColumnDataString("Bay1");
public ColumnDataString _Bay2 { get; } = new ColumnDataString("Bay2");
public ColumnDataString _Bay3 { get; } = new ColumnDataString("Bay3");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"CommodityId",
"LocationId",
"Type",
"Source",
"Recorded",
"Quantity",
"Bay1",
"Bay2",
"Bay3",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal StockLevel_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "StockLevel";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int32 _CommodityId { get { return Cols._CommodityId.Value; } set { Cols._CommodityId.Value = value; } }
public Int32 _LocationId { get { return Cols._LocationId.Value; } set { Cols._LocationId.Value = value; } }
public Int16 _Type { get { return Cols._Type.Value; } set { Cols._Type.Value = value; } }
public Int16 _Source { get { return Cols._Source.Value; } set { Cols._Source.Value = value; } }
public DateTime _Recorded { get { return Cols._Recorded.Value; } set { Cols._Recorded.Value = value; } }
public Decimal _Quantity { get { return Cols._Quantity.Value; } set { Cols._Quantity.Value = value; } }
public String _Bay1 { get { return Cols._Bay1.Value; } set { Cols._Bay1.Value = value; } }
public String _Bay2 { get { return Cols._Bay2.Value; } set { Cols._Bay2.Value = value; } }
public String _Bay3 { get { return Cols._Bay3.Value; } set { Cols._Bay3.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_CommodityId = GetFieldInt32(dbDataReader, "CommodityId", _CommodityId);
_LocationId = GetFieldInt32(dbDataReader, "LocationId", _LocationId);
_Type = GetFieldInt16(dbDataReader, "Type", _Type);
_Source = GetFieldInt16(dbDataReader, "Source", _Source);
_Recorded = GetFieldDateTime(dbDataReader, "Recorded", _Recorded);
_Quantity = GetFieldDecimal(dbDataReader, "Quantity", _Quantity);
_Bay1 = GetFieldString(dbDataReader, "Bay1", _Bay1);
_Bay2 = GetFieldString(dbDataReader, "Bay2", _Bay2);
_Bay3 = GetFieldString(dbDataReader, "Bay3", _Bay3);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("CommodityId")) AddCommandParameter(dbCommand, "@CommodityId", _CommodityId);
if (columnNames.ContainsCI("LocationId")) AddCommandParameter(dbCommand, "@LocationId", _LocationId);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Source")) AddCommandParameter(dbCommand, "@Source", _Source);
if (columnNames.ContainsCI("Recorded")) AddCommandParameter(dbCommand, "@Recorded", _Recorded);
if (columnNames.ContainsCI("Quantity")) AddCommandParameter(dbCommand, "@Quantity", _Quantity);
if (columnNames.ContainsCI("Bay1")) AddCommandParameter(dbCommand, "@Bay1", _Bay1);
if (columnNames.ContainsCI("Bay2")) AddCommandParameter(dbCommand, "@Bay2", _Bay2);
if (columnNames.ContainsCI("Bay3")) AddCommandParameter(dbCommand, "@Bay3", _Bay3);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("CommodityId")) AddCommandParameter(dbCommand, "@CommodityId", _CommodityId);
if (columnNames.ContainsCI("LocationId")) AddCommandParameter(dbCommand, "@LocationId", _LocationId);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Source")) AddCommandParameter(dbCommand, "@Source", _Source);
if (columnNames.ContainsCI("Recorded")) AddCommandParameter(dbCommand, "@Recorded", _Recorded);
if (columnNames.ContainsCI("Quantity")) AddCommandParameter(dbCommand, "@Quantity", _Quantity);
if (columnNames.ContainsCI("Bay1")) AddCommandParameter(dbCommand, "@Bay1", _Bay1);
if (columnNames.ContainsCI("Bay2")) AddCommandParameter(dbCommand, "@Bay2", _Bay2);
if (columnNames.ContainsCI("Bay3")) AddCommandParameter(dbCommand, "@Bay3", _Bay3);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,223 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class SysParam_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt16 _Cat { get; } = new ColumnDataInt16("Cat");
public ColumnDataString _Name { get; } = new ColumnDataString("Name");
public ColumnDataString _Value { get; } = new ColumnDataString("Value");
public ColumnDataInt32 _AffIdOwner { get; } = new ColumnDataInt32("AffIdOwner");
public ColumnDataInt32 _AffIdTarget { get; } = new ColumnDataInt32("AffIdTarget");
public ColumnDataInt32 _AssocId { get; } = new ColumnDataInt32("AssocId");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"Cat",
"Name",
"Value",
"AffIdOwner",
"AffIdTarget",
"AssocId",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal SysParam_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "SysParam";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int16 _Cat { get { return Cols._Cat.Value; } set { Cols._Cat.Value = value; } }
public String _Name { get { return Cols._Name.Value; } set { Cols._Name.Value = value; } }
public String _Value { get { return Cols._Value.Value; } set { Cols._Value.Value = value; } }
public Int32 _AffIdOwner { get { return Cols._AffIdOwner.Value; } set { Cols._AffIdOwner.Value = value; } }
public Int32 _AffIdTarget { get { return Cols._AffIdTarget.Value; } set { Cols._AffIdTarget.Value = value; } }
public Int32 _AssocId { get { return Cols._AssocId.Value; } set { Cols._AssocId.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_Cat = GetFieldInt16(dbDataReader, "Cat", _Cat);
_Name = GetFieldString(dbDataReader, "Name", _Name);
_Value = GetFieldString(dbDataReader, "Value", _Value);
_AffIdOwner = GetFieldInt32(dbDataReader, "AffIdOwner", _AffIdOwner);
_AffIdTarget = GetFieldInt32(dbDataReader, "AffIdTarget", _AffIdTarget);
_AssocId = GetFieldInt32(dbDataReader, "AssocId", _AssocId);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("Cat")) AddCommandParameter(dbCommand, "@Cat", _Cat);
if (columnNames.ContainsCI("Name")) AddCommandParameter(dbCommand, "@Name", _Name);
if (columnNames.ContainsCI("Value")) AddCommandParameter(dbCommand, "@Value", _Value);
if (columnNames.ContainsCI("AffIdOwner")) AddCommandParameter(dbCommand, "@AffIdOwner", _AffIdOwner);
if (columnNames.ContainsCI("AffIdTarget")) AddCommandParameter(dbCommand, "@AffIdTarget", _AffIdTarget);
if (columnNames.ContainsCI("AssocId")) AddCommandParameter(dbCommand, "@AssocId", _AssocId);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Cat")) AddCommandParameter(dbCommand, "@Cat", _Cat);
if (columnNames.ContainsCI("Name")) AddCommandParameter(dbCommand, "@Name", _Name);
if (columnNames.ContainsCI("Value")) AddCommandParameter(dbCommand, "@Value", _Value);
if (columnNames.ContainsCI("AffIdOwner")) AddCommandParameter(dbCommand, "@AffIdOwner", _AffIdOwner);
if (columnNames.ContainsCI("AffIdTarget")) AddCommandParameter(dbCommand, "@AffIdTarget", _AffIdTarget);
if (columnNames.ContainsCI("AssocId")) AddCommandParameter(dbCommand, "@AssocId", _AssocId);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,200 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class SystemAccountUser_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _AccountId { get; } = new ColumnDataInt32("AccountId");
public ColumnDataInt32 _UserId { get; } = new ColumnDataInt32("UserId");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"AccountId",
"UserId",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"AccountId",
"UserId",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal SystemAccountUser_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "SystemAccountUser";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _AccountId { get { return Cols._AccountId.Value; } set { Cols._AccountId.Value = value; } }
public Int32 _UserId { get { return Cols._UserId.Value; } set { Cols._UserId.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_AccountId = GetFieldInt32(dbDataReader, "AccountId", _AccountId);
_UserId = GetFieldInt32(dbDataReader, "UserId", _UserId);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("AccountId")) AddCommandParameter(dbCommand, "@AccountId", _AccountId);
if (columnNames.ContainsCI("UserId")) AddCommandParameter(dbCommand, "@UserId", _UserId);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE AccountId=@AccountId AND UserId=@UserId;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE AccountId=? AND UserId=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@AccountId", _AccountId);
AddCommandParameter(dbCommand, "@UserId", _UserId);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,235 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class SystemAccount_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt32 _AffIdOwner { get; } = new ColumnDataInt32("AffIdOwner");
public ColumnDataInt16 _Type { get; } = new ColumnDataInt16("Type");
public ColumnDataInt32 _InterfaceId { get; } = new ColumnDataInt32("InterfaceId");
public ColumnDataInt32 _AssocId { get; } = new ColumnDataInt32("AssocId");
public ColumnDataString _Code { get; } = new ColumnDataString("Code");
public ColumnDataString _Name { get; } = new ColumnDataString("Name");
public ColumnDataString _AuthCodeEnc { get; } = new ColumnDataString("AuthCodeEnc");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"AffIdOwner",
"Type",
"InterfaceId",
"AssocId",
"Code",
"Name",
"AuthCodeEnc",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal SystemAccount_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "SystemAccount";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int32 _AffIdOwner { get { return Cols._AffIdOwner.Value; } set { Cols._AffIdOwner.Value = value; } }
public Int16 _Type { get { return Cols._Type.Value; } set { Cols._Type.Value = value; } }
public Int32 _InterfaceId { get { return Cols._InterfaceId.Value; } set { Cols._InterfaceId.Value = value; } }
public Int32 _AssocId { get { return Cols._AssocId.Value; } set { Cols._AssocId.Value = value; } }
public String _Code { get { return Cols._Code.Value; } set { Cols._Code.Value = value; } }
public String _Name { get { return Cols._Name.Value; } set { Cols._Name.Value = value; } }
public String _AuthCodeEnc { get { return Cols._AuthCodeEnc.Value; } set { Cols._AuthCodeEnc.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_AffIdOwner = GetFieldInt32(dbDataReader, "AffIdOwner", _AffIdOwner);
_Type = GetFieldInt16(dbDataReader, "Type", _Type);
_InterfaceId = GetFieldInt32(dbDataReader, "InterfaceId", _InterfaceId);
_AssocId = GetFieldInt32(dbDataReader, "AssocId", _AssocId);
_Code = GetFieldString(dbDataReader, "Code", _Code);
_Name = GetFieldString(dbDataReader, "Name", _Name);
_AuthCodeEnc = GetFieldString(dbDataReader, "AuthCodeEnc", _AuthCodeEnc);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("AffIdOwner")) AddCommandParameter(dbCommand, "@AffIdOwner", _AffIdOwner);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("InterfaceId")) AddCommandParameter(dbCommand, "@InterfaceId", _InterfaceId);
if (columnNames.ContainsCI("AssocId")) AddCommandParameter(dbCommand, "@AssocId", _AssocId);
if (columnNames.ContainsCI("Code")) AddCommandParameter(dbCommand, "@Code", _Code);
if (columnNames.ContainsCI("Name")) AddCommandParameter(dbCommand, "@Name", _Name);
if (columnNames.ContainsCI("AuthCodeEnc")) AddCommandParameter(dbCommand, "@AuthCodeEnc", _AuthCodeEnc);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("AffIdOwner")) AddCommandParameter(dbCommand, "@AffIdOwner", _AffIdOwner);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("InterfaceId")) AddCommandParameter(dbCommand, "@InterfaceId", _InterfaceId);
if (columnNames.ContainsCI("AssocId")) AddCommandParameter(dbCommand, "@AssocId", _AssocId);
if (columnNames.ContainsCI("Code")) AddCommandParameter(dbCommand, "@Code", _Code);
if (columnNames.ContainsCI("Name")) AddCommandParameter(dbCommand, "@Name", _Name);
if (columnNames.ContainsCI("AuthCodeEnc")) AddCommandParameter(dbCommand, "@AuthCodeEnc", _AuthCodeEnc);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,223 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class SystemUser_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt32 _AffIdOwner { get; } = new ColumnDataInt32("AffIdOwner");
public ColumnDataInt32 _InterfaceId { get; } = new ColumnDataInt32("InterfaceId");
public ColumnDataInt32 _AffiliateId { get; } = new ColumnDataInt32("AffiliateId");
public ColumnDataString _Code { get; } = new ColumnDataString("Code");
public ColumnDataString _AuthCodeEnc { get; } = new ColumnDataString("AuthCodeEnc");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"AffIdOwner",
"InterfaceId",
"AffiliateId",
"Code",
"AuthCodeEnc",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal SystemUser_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "SystemUser";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int32 _AffIdOwner { get { return Cols._AffIdOwner.Value; } set { Cols._AffIdOwner.Value = value; } }
public Int32 _InterfaceId { get { return Cols._InterfaceId.Value; } set { Cols._InterfaceId.Value = value; } }
public Int32 _AffiliateId { get { return Cols._AffiliateId.Value; } set { Cols._AffiliateId.Value = value; } }
public String _Code { get { return Cols._Code.Value; } set { Cols._Code.Value = value; } }
public String _AuthCodeEnc { get { return Cols._AuthCodeEnc.Value; } set { Cols._AuthCodeEnc.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_AffIdOwner = GetFieldInt32(dbDataReader, "AffIdOwner", _AffIdOwner);
_InterfaceId = GetFieldInt32(dbDataReader, "InterfaceId", _InterfaceId);
_AffiliateId = GetFieldInt32(dbDataReader, "AffiliateId", _AffiliateId);
_Code = GetFieldString(dbDataReader, "Code", _Code);
_AuthCodeEnc = GetFieldString(dbDataReader, "AuthCodeEnc", _AuthCodeEnc);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("AffIdOwner")) AddCommandParameter(dbCommand, "@AffIdOwner", _AffIdOwner);
if (columnNames.ContainsCI("InterfaceId")) AddCommandParameter(dbCommand, "@InterfaceId", _InterfaceId);
if (columnNames.ContainsCI("AffiliateId")) AddCommandParameter(dbCommand, "@AffiliateId", _AffiliateId);
if (columnNames.ContainsCI("Code")) AddCommandParameter(dbCommand, "@Code", _Code);
if (columnNames.ContainsCI("AuthCodeEnc")) AddCommandParameter(dbCommand, "@AuthCodeEnc", _AuthCodeEnc);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("AffIdOwner")) AddCommandParameter(dbCommand, "@AffIdOwner", _AffIdOwner);
if (columnNames.ContainsCI("InterfaceId")) AddCommandParameter(dbCommand, "@InterfaceId", _InterfaceId);
if (columnNames.ContainsCI("AffiliateId")) AddCommandParameter(dbCommand, "@AffiliateId", _AffiliateId);
if (columnNames.ContainsCI("Code")) AddCommandParameter(dbCommand, "@Code", _Code);
if (columnNames.ContainsCI("AuthCodeEnc")) AddCommandParameter(dbCommand, "@AuthCodeEnc", _AuthCodeEnc);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,253 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class TaxCode_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataString _Code { get; } = new ColumnDataString("Code");
public ColumnDataString _CodeAlt1 { get; } = new ColumnDataString("CodeAlt1");
public ColumnDataString _CodeAlt2 { get; } = new ColumnDataString("CodeAlt2");
public ColumnDataString _Description { get; } = new ColumnDataString("Description");
public ColumnDataInt32 _RegionId { get; } = new ColumnDataInt32("RegionId");
public ColumnDataDateTime _EffectFrom { get; } = new ColumnDataDateTime("EffectFrom");
public ColumnDataDateTime _EffectTo { get; } = new ColumnDataDateTime("EffectTo");
public ColumnDataDecimal _TaxRate { get; } = new ColumnDataDecimal("TaxRate");
public ColumnDataDecimal _TaxRatePrev { get; } = new ColumnDataDecimal("TaxRatePrev");
public ColumnDataInt32 _TaxCodeIdLink { get; } = new ColumnDataInt32("TaxCodeIdLink");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"Code",
"CodeAlt1",
"CodeAlt2",
"Description",
"RegionId",
"EffectFrom",
"EffectTo",
"TaxRate",
"TaxRatePrev",
"TaxCodeIdLink",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal TaxCode_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "TaxCode";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public String _Code { get { return Cols._Code.Value; } set { Cols._Code.Value = value; } }
public String _CodeAlt1 { get { return Cols._CodeAlt1.Value; } set { Cols._CodeAlt1.Value = value; } }
public String _CodeAlt2 { get { return Cols._CodeAlt2.Value; } set { Cols._CodeAlt2.Value = value; } }
public String _Description { get { return Cols._Description.Value; } set { Cols._Description.Value = value; } }
public Int32 _RegionId { get { return Cols._RegionId.Value; } set { Cols._RegionId.Value = value; } }
public DateTime _EffectFrom { get { return Cols._EffectFrom.Value; } set { Cols._EffectFrom.Value = value; } }
public DateTime _EffectTo { get { return Cols._EffectTo.Value; } set { Cols._EffectTo.Value = value; } }
public Decimal _TaxRate { get { return Cols._TaxRate.Value; } set { Cols._TaxRate.Value = value; } }
public Decimal _TaxRatePrev { get { return Cols._TaxRatePrev.Value; } set { Cols._TaxRatePrev.Value = value; } }
public Int32 _TaxCodeIdLink { get { return Cols._TaxCodeIdLink.Value; } set { Cols._TaxCodeIdLink.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_Code = GetFieldString(dbDataReader, "Code", _Code);
_CodeAlt1 = GetFieldString(dbDataReader, "CodeAlt1", _CodeAlt1);
_CodeAlt2 = GetFieldString(dbDataReader, "CodeAlt2", _CodeAlt2);
_Description = GetFieldString(dbDataReader, "Description", _Description);
_RegionId = GetFieldInt32(dbDataReader, "RegionId", _RegionId);
_EffectFrom = GetFieldDateTime(dbDataReader, "EffectFrom", _EffectFrom);
_EffectTo = GetFieldDateTime(dbDataReader, "EffectTo", _EffectTo);
_TaxRate = GetFieldDecimal(dbDataReader, "TaxRate", _TaxRate);
_TaxRatePrev = GetFieldDecimal(dbDataReader, "TaxRatePrev", _TaxRatePrev);
_TaxCodeIdLink = GetFieldInt32(dbDataReader, "TaxCodeIdLink", _TaxCodeIdLink);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("Code")) AddCommandParameter(dbCommand, "@Code", _Code);
if (columnNames.ContainsCI("CodeAlt1")) AddCommandParameter(dbCommand, "@CodeAlt1", _CodeAlt1);
if (columnNames.ContainsCI("CodeAlt2")) AddCommandParameter(dbCommand, "@CodeAlt2", _CodeAlt2);
if (columnNames.ContainsCI("Description")) AddCommandParameter(dbCommand, "@Description", _Description);
if (columnNames.ContainsCI("RegionId")) AddCommandParameter(dbCommand, "@RegionId", _RegionId);
if (columnNames.ContainsCI("EffectFrom")) AddCommandParameter(dbCommand, "@EffectFrom", _EffectFrom);
if (columnNames.ContainsCI("EffectTo")) AddCommandParameter(dbCommand, "@EffectTo", _EffectTo);
if (columnNames.ContainsCI("TaxRate")) AddCommandParameter(dbCommand, "@TaxRate", _TaxRate);
if (columnNames.ContainsCI("TaxRatePrev")) AddCommandParameter(dbCommand, "@TaxRatePrev", _TaxRatePrev);
if (columnNames.ContainsCI("TaxCodeIdLink")) AddCommandParameter(dbCommand, "@TaxCodeIdLink", _TaxCodeIdLink);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Code")) AddCommandParameter(dbCommand, "@Code", _Code);
if (columnNames.ContainsCI("CodeAlt1")) AddCommandParameter(dbCommand, "@CodeAlt1", _CodeAlt1);
if (columnNames.ContainsCI("CodeAlt2")) AddCommandParameter(dbCommand, "@CodeAlt2", _CodeAlt2);
if (columnNames.ContainsCI("Description")) AddCommandParameter(dbCommand, "@Description", _Description);
if (columnNames.ContainsCI("RegionId")) AddCommandParameter(dbCommand, "@RegionId", _RegionId);
if (columnNames.ContainsCI("EffectFrom")) AddCommandParameter(dbCommand, "@EffectFrom", _EffectFrom);
if (columnNames.ContainsCI("EffectTo")) AddCommandParameter(dbCommand, "@EffectTo", _EffectTo);
if (columnNames.ContainsCI("TaxRate")) AddCommandParameter(dbCommand, "@TaxRate", _TaxRate);
if (columnNames.ContainsCI("TaxRatePrev")) AddCommandParameter(dbCommand, "@TaxRatePrev", _TaxRatePrev);
if (columnNames.ContainsCI("TaxCodeIdLink")) AddCommandParameter(dbCommand, "@TaxCodeIdLink", _TaxCodeIdLink);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,571 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class Transaction_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt32 _AffIdOwner { get; } = new ColumnDataInt32("AffIdOwner");
public ColumnDataInt32 _AssocId { get; } = new ColumnDataInt32("AssocId");
public ColumnDataInt16 _Type { get; } = new ColumnDataInt16("Type");
public ColumnDataString _Ref { get; } = new ColumnDataString("Ref");
public ColumnDataInt32 _RefInt { get; } = new ColumnDataInt32("RefInt");
public ColumnDataString _RefExt { get; } = new ColumnDataString("RefExt");
public ColumnDataString _RaisedBy { get; } = new ColumnDataString("RaisedBy");
public ColumnDataInt32 _AffIdRaise { get; } = new ColumnDataInt32("AffIdRaise");
public ColumnDataInt32 _AssocIdOffice { get; } = new ColumnDataInt32("AssocIdOffice");
public ColumnDataString _ContactName { get; } = new ColumnDataString("ContactName");
public ColumnDataString _Likelihood { get; } = new ColumnDataString("Likelihood");
public ColumnDataInt32 _TransIdSource { get; } = new ColumnDataInt32("TransIdSource");
public ColumnDataString _ReferCode { get; } = new ColumnDataString("ReferCode");
public ColumnDataString _ReferSource { get; } = new ColumnDataString("ReferSource");
public ColumnDataInt32 _AffIdRefer { get; } = new ColumnDataInt32("AffIdRefer");
public ColumnDataInt32 _AssocIdContract { get; } = new ColumnDataInt32("AssocIdContract");
public ColumnDataInt32 _AssIdDeliver { get; } = new ColumnDataInt32("AssIdDeliver");
public ColumnDataDateTime _Raised { get; } = new ColumnDataDateTime("Raised");
public ColumnDataDateTime _Required { get; } = new ColumnDataDateTime("Required");
public ColumnDataDateTime _InProgress { get; } = new ColumnDataDateTime("InProgress");
public ColumnDataDateTime _DeliveredEst { get; } = new ColumnDataDateTime("DeliveredEst");
public ColumnDataDateTime _DeliveredAct { get; } = new ColumnDataDateTime("DeliveredAct");
public ColumnDataDateTime _Closed { get; } = new ColumnDataDateTime("Closed");
public ColumnDataString _Department { get; } = new ColumnDataString("Department");
public ColumnDataString _DescBrief { get; } = new ColumnDataString("DescBrief");
public ColumnDataString _DescIntro { get; } = new ColumnDataString("DescIntro");
public ColumnDataString _DescOutline { get; } = new ColumnDataString("DescOutline");
public ColumnDataString _DescDetail { get; } = new ColumnDataString("DescDetail");
public ColumnDataString _ResponseCode { get; } = new ColumnDataString("ResponseCode");
public ColumnDataString _ContactAreaCode { get; } = new ColumnDataString("ContactAreaCode");
public ColumnDataString _Postcode { get; } = new ColumnDataString("Postcode");
public ColumnDataInt32 _CurrencyId { get; } = new ColumnDataInt32("CurrencyId");
public ColumnDataInt32 _TaxCodeId { get; } = new ColumnDataInt32("TaxCodeId");
public ColumnDataDecimal _AmountEst { get; } = new ColumnDataDecimal("AmountEst");
public ColumnDataDecimal _AmountMax { get; } = new ColumnDataDecimal("AmountMax");
public ColumnDataDecimal _AmountNet { get; } = new ColumnDataDecimal("AmountNet");
public ColumnDataDecimal _AmountTax { get; } = new ColumnDataDecimal("AmountTax");
public ColumnDataDecimal _AmountTot { get; } = new ColumnDataDecimal("AmountTot");
public ColumnDataString _TimeEstChunks { get; } = new ColumnDataString("TimeEstChunks");
public ColumnDataDecimal _TimeEst { get; } = new ColumnDataDecimal("TimeEst");
public ColumnDataString _TimeActChunks { get; } = new ColumnDataString("TimeActChunks");
public ColumnDataDecimal _TimeAct { get; } = new ColumnDataDecimal("TimeAct");
public ColumnDataDecimal _TimeTot { get; } = new ColumnDataDecimal("TimeTot");
public ColumnDataInt32 _LocationIdStock { get; } = new ColumnDataInt32("LocationIdStock");
public ColumnDataDecimal _Weight { get; } = new ColumnDataDecimal("Weight");
public ColumnDataInt32 _UomIdWeight { get; } = new ColumnDataInt32("UomIdWeight");
public ColumnDataString _BoxCount { get; } = new ColumnDataString("BoxCount");
public ColumnDataString _DeliveryStatusCode { get; } = new ColumnDataString("DeliveryStatusCode");
public ColumnDataString _DeliveryTypeCode { get; } = new ColumnDataString("DeliveryTypeCode");
public ColumnDataString _DeliveryMethodCode { get; } = new ColumnDataString("DeliveryMethodCode");
public ColumnDataString _DeliveryCourierCode { get; } = new ColumnDataString("DeliveryCourierCode");
public ColumnDataString _DeliveryBookInCode { get; } = new ColumnDataString("DeliveryBookInCode");
public ColumnDataString _StockPickerCode { get; } = new ColumnDataString("StockPickerCode");
public ColumnDataString _DeliveryRef { get; } = new ColumnDataString("DeliveryRef");
public ColumnDataString _DeliveryComment { get; } = new ColumnDataString("DeliveryComment");
public ColumnDataDecimal _DeliveryAmountNet { get; } = new ColumnDataDecimal("DeliveryAmountNet");
public ColumnDataInt32 _TaxCodeIdDelivery { get; } = new ColumnDataInt32("TaxCodeIdDelivery");
public ColumnDataDecimal _DeliveryAmountTax { get; } = new ColumnDataDecimal("DeliveryAmountTax");
public ColumnDataDecimal _DeliveryAmountTot { get; } = new ColumnDataDecimal("DeliveryAmountTot");
public ColumnDataString _DeliveryDepartment { get; } = new ColumnDataString("DeliveryDepartment");
public ColumnDataString _DeliveryNominalCode { get; } = new ColumnDataString("DeliveryNominalCode");
public ColumnDataDecimal _CostLabourRateHour { get; } = new ColumnDataDecimal("CostLabourRateHour");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _StatusCat { get; } = new ColumnDataString("StatusCat");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"AffIdOwner",
"AssocId",
"Type",
"Ref",
"RefInt",
"RefExt",
"RaisedBy",
"AffIdRaise",
"AssocIdOffice",
"ContactName",
"Likelihood",
"TransIdSource",
"ReferCode",
"ReferSource",
"AffIdRefer",
"AssocIdContract",
"AssIdDeliver",
"Raised",
"Required",
"InProgress",
"DeliveredEst",
"DeliveredAct",
"Closed",
"Department",
"DescBrief",
"DescIntro",
"DescOutline",
"DescDetail",
"ResponseCode",
"ContactAreaCode",
"Postcode",
"CurrencyId",
"TaxCodeId",
"AmountEst",
"AmountMax",
"AmountNet",
"AmountTax",
"AmountTot",
"TimeEstChunks",
"TimeEst",
"TimeActChunks",
"TimeAct",
"TimeTot",
"LocationIdStock",
"Weight",
"UomIdWeight",
"BoxCount",
"DeliveryStatusCode",
"DeliveryTypeCode",
"DeliveryMethodCode",
"DeliveryCourierCode",
"DeliveryBookInCode",
"StockPickerCode",
"DeliveryRef",
"DeliveryComment",
"DeliveryAmountNet",
"TaxCodeIdDelivery",
"DeliveryAmountTax",
"DeliveryAmountTot",
"DeliveryDepartment",
"DeliveryNominalCode",
"CostLabourRateHour",
"Notes",
"Flags",
"StatusCat",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal Transaction_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "Transaction";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int32 _AffIdOwner { get { return Cols._AffIdOwner.Value; } set { Cols._AffIdOwner.Value = value; } }
public Int32 _AssocId { get { return Cols._AssocId.Value; } set { Cols._AssocId.Value = value; } }
public Int16 _Type { get { return Cols._Type.Value; } set { Cols._Type.Value = value; } }
public String _Ref { get { return Cols._Ref.Value; } set { Cols._Ref.Value = value; } }
public Int32 _RefInt { get { return Cols._RefInt.Value; } set { Cols._RefInt.Value = value; } }
public String _RefExt { get { return Cols._RefExt.Value; } set { Cols._RefExt.Value = value; } }
public String _RaisedBy { get { return Cols._RaisedBy.Value; } set { Cols._RaisedBy.Value = value; } }
public Int32 _AffIdRaise { get { return Cols._AffIdRaise.Value; } set { Cols._AffIdRaise.Value = value; } }
public Int32 _AssocIdOffice { get { return Cols._AssocIdOffice.Value; } set { Cols._AssocIdOffice.Value = value; } }
public String _ContactName { get { return Cols._ContactName.Value; } set { Cols._ContactName.Value = value; } }
public String _Likelihood { get { return Cols._Likelihood.Value; } set { Cols._Likelihood.Value = value; } }
public Int32 _TransIdSource { get { return Cols._TransIdSource.Value; } set { Cols._TransIdSource.Value = value; } }
public String _ReferCode { get { return Cols._ReferCode.Value; } set { Cols._ReferCode.Value = value; } }
public String _ReferSource { get { return Cols._ReferSource.Value; } set { Cols._ReferSource.Value = value; } }
public Int32 _AffIdRefer { get { return Cols._AffIdRefer.Value; } set { Cols._AffIdRefer.Value = value; } }
public Int32 _AssocIdContract { get { return Cols._AssocIdContract.Value; } set { Cols._AssocIdContract.Value = value; } }
public Int32 _AssIdDeliver { get { return Cols._AssIdDeliver.Value; } set { Cols._AssIdDeliver.Value = value; } }
public DateTime _Raised { get { return Cols._Raised.Value; } set { Cols._Raised.Value = value; } }
public DateTime _Required { get { return Cols._Required.Value; } set { Cols._Required.Value = value; } }
public DateTime _InProgress { get { return Cols._InProgress.Value; } set { Cols._InProgress.Value = value; } }
public DateTime _DeliveredEst { get { return Cols._DeliveredEst.Value; } set { Cols._DeliveredEst.Value = value; } }
public DateTime _DeliveredAct { get { return Cols._DeliveredAct.Value; } set { Cols._DeliveredAct.Value = value; } }
public DateTime _Closed { get { return Cols._Closed.Value; } set { Cols._Closed.Value = value; } }
public String _Department { get { return Cols._Department.Value; } set { Cols._Department.Value = value; } }
public String _DescBrief { get { return Cols._DescBrief.Value; } set { Cols._DescBrief.Value = value; } }
public String _DescIntro { get { return Cols._DescIntro.Value; } set { Cols._DescIntro.Value = value; } }
public String _DescOutline { get { return Cols._DescOutline.Value; } set { Cols._DescOutline.Value = value; } }
public String _DescDetail { get { return Cols._DescDetail.Value; } set { Cols._DescDetail.Value = value; } }
public String _ResponseCode { get { return Cols._ResponseCode.Value; } set { Cols._ResponseCode.Value = value; } }
public String _ContactAreaCode { get { return Cols._ContactAreaCode.Value; } set { Cols._ContactAreaCode.Value = value; } }
public String _Postcode { get { return Cols._Postcode.Value; } set { Cols._Postcode.Value = value; } }
public Int32 _CurrencyId { get { return Cols._CurrencyId.Value; } set { Cols._CurrencyId.Value = value; } }
public Int32 _TaxCodeId { get { return Cols._TaxCodeId.Value; } set { Cols._TaxCodeId.Value = value; } }
public Decimal _AmountEst { get { return Cols._AmountEst.Value; } set { Cols._AmountEst.Value = value; } }
public Decimal _AmountMax { get { return Cols._AmountMax.Value; } set { Cols._AmountMax.Value = value; } }
public Decimal _AmountNet { get { return Cols._AmountNet.Value; } set { Cols._AmountNet.Value = value; } }
public Decimal _AmountTax { get { return Cols._AmountTax.Value; } set { Cols._AmountTax.Value = value; } }
public Decimal _AmountTot { get { return Cols._AmountTot.Value; } set { Cols._AmountTot.Value = value; } }
public String _TimeEstChunks { get { return Cols._TimeEstChunks.Value; } set { Cols._TimeEstChunks.Value = value; } }
public Decimal _TimeEst { get { return Cols._TimeEst.Value; } set { Cols._TimeEst.Value = value; } }
public String _TimeActChunks { get { return Cols._TimeActChunks.Value; } set { Cols._TimeActChunks.Value = value; } }
public Decimal _TimeAct { get { return Cols._TimeAct.Value; } set { Cols._TimeAct.Value = value; } }
public Decimal _TimeTot { get { return Cols._TimeTot.Value; } set { Cols._TimeTot.Value = value; } }
public Int32 _LocationIdStock { get { return Cols._LocationIdStock.Value; } set { Cols._LocationIdStock.Value = value; } }
public Decimal _Weight { get { return Cols._Weight.Value; } set { Cols._Weight.Value = value; } }
public Int32 _UomIdWeight { get { return Cols._UomIdWeight.Value; } set { Cols._UomIdWeight.Value = value; } }
public String _BoxCount { get { return Cols._BoxCount.Value; } set { Cols._BoxCount.Value = value; } }
public String _DeliveryStatusCode { get { return Cols._DeliveryStatusCode.Value; } set { Cols._DeliveryStatusCode.Value = value; } }
public String _DeliveryTypeCode { get { return Cols._DeliveryTypeCode.Value; } set { Cols._DeliveryTypeCode.Value = value; } }
public String _DeliveryMethodCode { get { return Cols._DeliveryMethodCode.Value; } set { Cols._DeliveryMethodCode.Value = value; } }
public String _DeliveryCourierCode { get { return Cols._DeliveryCourierCode.Value; } set { Cols._DeliveryCourierCode.Value = value; } }
public String _DeliveryBookInCode { get { return Cols._DeliveryBookInCode.Value; } set { Cols._DeliveryBookInCode.Value = value; } }
public String _StockPickerCode { get { return Cols._StockPickerCode.Value; } set { Cols._StockPickerCode.Value = value; } }
public String _DeliveryRef { get { return Cols._DeliveryRef.Value; } set { Cols._DeliveryRef.Value = value; } }
public String _DeliveryComment { get { return Cols._DeliveryComment.Value; } set { Cols._DeliveryComment.Value = value; } }
public Decimal _DeliveryAmountNet { get { return Cols._DeliveryAmountNet.Value; } set { Cols._DeliveryAmountNet.Value = value; } }
public Int32 _TaxCodeIdDelivery { get { return Cols._TaxCodeIdDelivery.Value; } set { Cols._TaxCodeIdDelivery.Value = value; } }
public Decimal _DeliveryAmountTax { get { return Cols._DeliveryAmountTax.Value; } set { Cols._DeliveryAmountTax.Value = value; } }
public Decimal _DeliveryAmountTot { get { return Cols._DeliveryAmountTot.Value; } set { Cols._DeliveryAmountTot.Value = value; } }
public String _DeliveryDepartment { get { return Cols._DeliveryDepartment.Value; } set { Cols._DeliveryDepartment.Value = value; } }
public String _DeliveryNominalCode { get { return Cols._DeliveryNominalCode.Value; } set { Cols._DeliveryNominalCode.Value = value; } }
public Decimal _CostLabourRateHour { get { return Cols._CostLabourRateHour.Value; } set { Cols._CostLabourRateHour.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _StatusCat { get { return Cols._StatusCat.Value; } set { Cols._StatusCat.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_AffIdOwner = GetFieldInt32(dbDataReader, "AffIdOwner", _AffIdOwner);
_AssocId = GetFieldInt32(dbDataReader, "AssocId", _AssocId);
_Type = GetFieldInt16(dbDataReader, "Type", _Type);
_Ref = GetFieldString(dbDataReader, "Ref", _Ref);
_RefInt = GetFieldInt32(dbDataReader, "RefInt", _RefInt);
_RefExt = GetFieldString(dbDataReader, "RefExt", _RefExt);
_RaisedBy = GetFieldString(dbDataReader, "RaisedBy", _RaisedBy);
_AffIdRaise = GetFieldInt32(dbDataReader, "AffIdRaise", _AffIdRaise);
_AssocIdOffice = GetFieldInt32(dbDataReader, "AssocIdOffice", _AssocIdOffice);
_ContactName = GetFieldString(dbDataReader, "ContactName", _ContactName);
_Likelihood = GetFieldString(dbDataReader, "Likelihood", _Likelihood);
_TransIdSource = GetFieldInt32(dbDataReader, "TransIdSource", _TransIdSource);
_ReferCode = GetFieldString(dbDataReader, "ReferCode", _ReferCode);
_ReferSource = GetFieldString(dbDataReader, "ReferSource", _ReferSource);
_AffIdRefer = GetFieldInt32(dbDataReader, "AffIdRefer", _AffIdRefer);
_AssocIdContract = GetFieldInt32(dbDataReader, "AssocIdContract", _AssocIdContract);
_AssIdDeliver = GetFieldInt32(dbDataReader, "AssIdDeliver", _AssIdDeliver);
_Raised = GetFieldDateTime(dbDataReader, "Raised", _Raised);
_Required = GetFieldDateTime(dbDataReader, "Required", _Required);
_InProgress = GetFieldDateTime(dbDataReader, "InProgress", _InProgress);
_DeliveredEst = GetFieldDateTime(dbDataReader, "DeliveredEst", _DeliveredEst);
_DeliveredAct = GetFieldDateTime(dbDataReader, "DeliveredAct", _DeliveredAct);
_Closed = GetFieldDateTime(dbDataReader, "Closed", _Closed);
_Department = GetFieldString(dbDataReader, "Department", _Department);
_DescBrief = GetFieldString(dbDataReader, "DescBrief", _DescBrief);
_DescIntro = GetFieldString(dbDataReader, "DescIntro", _DescIntro);
_DescOutline = GetFieldString(dbDataReader, "DescOutline", _DescOutline);
_DescDetail = GetFieldString(dbDataReader, "DescDetail", _DescDetail);
_ResponseCode = GetFieldString(dbDataReader, "ResponseCode", _ResponseCode);
_ContactAreaCode = GetFieldString(dbDataReader, "ContactAreaCode", _ContactAreaCode);
_Postcode = GetFieldString(dbDataReader, "Postcode", _Postcode);
_CurrencyId = GetFieldInt32(dbDataReader, "CurrencyId", _CurrencyId);
_TaxCodeId = GetFieldInt32(dbDataReader, "TaxCodeId", _TaxCodeId);
_AmountEst = GetFieldDecimal(dbDataReader, "AmountEst", _AmountEst);
_AmountMax = GetFieldDecimal(dbDataReader, "AmountMax", _AmountMax);
_AmountNet = GetFieldDecimal(dbDataReader, "AmountNet", _AmountNet);
_AmountTax = GetFieldDecimal(dbDataReader, "AmountTax", _AmountTax);
_AmountTot = GetFieldDecimal(dbDataReader, "AmountTot", _AmountTot);
_TimeEstChunks = GetFieldString(dbDataReader, "TimeEstChunks", _TimeEstChunks);
_TimeEst = GetFieldDecimal(dbDataReader, "TimeEst", _TimeEst);
_TimeActChunks = GetFieldString(dbDataReader, "TimeActChunks", _TimeActChunks);
_TimeAct = GetFieldDecimal(dbDataReader, "TimeAct", _TimeAct);
_TimeTot = GetFieldDecimal(dbDataReader, "TimeTot", _TimeTot);
_LocationIdStock = GetFieldInt32(dbDataReader, "LocationIdStock", _LocationIdStock);
_Weight = GetFieldDecimal(dbDataReader, "Weight", _Weight);
_UomIdWeight = GetFieldInt32(dbDataReader, "UomIdWeight", _UomIdWeight);
_BoxCount = GetFieldString(dbDataReader, "BoxCount", _BoxCount);
_DeliveryStatusCode = GetFieldString(dbDataReader, "DeliveryStatusCode", _DeliveryStatusCode);
_DeliveryTypeCode = GetFieldString(dbDataReader, "DeliveryTypeCode", _DeliveryTypeCode);
_DeliveryMethodCode = GetFieldString(dbDataReader, "DeliveryMethodCode", _DeliveryMethodCode);
_DeliveryCourierCode = GetFieldString(dbDataReader, "DeliveryCourierCode", _DeliveryCourierCode);
_DeliveryBookInCode = GetFieldString(dbDataReader, "DeliveryBookInCode", _DeliveryBookInCode);
_StockPickerCode = GetFieldString(dbDataReader, "StockPickerCode", _StockPickerCode);
_DeliveryRef = GetFieldString(dbDataReader, "DeliveryRef", _DeliveryRef);
_DeliveryComment = GetFieldString(dbDataReader, "DeliveryComment", _DeliveryComment);
_DeliveryAmountNet = GetFieldDecimal(dbDataReader, "DeliveryAmountNet", _DeliveryAmountNet);
_TaxCodeIdDelivery = GetFieldInt32(dbDataReader, "TaxCodeIdDelivery", _TaxCodeIdDelivery);
_DeliveryAmountTax = GetFieldDecimal(dbDataReader, "DeliveryAmountTax", _DeliveryAmountTax);
_DeliveryAmountTot = GetFieldDecimal(dbDataReader, "DeliveryAmountTot", _DeliveryAmountTot);
_DeliveryDepartment = GetFieldString(dbDataReader, "DeliveryDepartment", _DeliveryDepartment);
_DeliveryNominalCode = GetFieldString(dbDataReader, "DeliveryNominalCode", _DeliveryNominalCode);
_CostLabourRateHour = GetFieldDecimal(dbDataReader, "CostLabourRateHour", _CostLabourRateHour);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_StatusCat = GetFieldString(dbDataReader, "StatusCat", _StatusCat);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("AffIdOwner")) AddCommandParameter(dbCommand, "@AffIdOwner", _AffIdOwner);
if (columnNames.ContainsCI("AssocId")) AddCommandParameter(dbCommand, "@AssocId", _AssocId);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Ref")) AddCommandParameter(dbCommand, "@Ref", _Ref);
if (columnNames.ContainsCI("RefInt")) AddCommandParameter(dbCommand, "@RefInt", _RefInt);
if (columnNames.ContainsCI("RefExt")) AddCommandParameter(dbCommand, "@RefExt", _RefExt);
if (columnNames.ContainsCI("RaisedBy")) AddCommandParameter(dbCommand, "@RaisedBy", _RaisedBy);
if (columnNames.ContainsCI("AffIdRaise")) AddCommandParameter(dbCommand, "@AffIdRaise", _AffIdRaise);
if (columnNames.ContainsCI("AssocIdOffice")) AddCommandParameter(dbCommand, "@AssocIdOffice", _AssocIdOffice);
if (columnNames.ContainsCI("ContactName")) AddCommandParameter(dbCommand, "@ContactName", _ContactName);
if (columnNames.ContainsCI("Likelihood")) AddCommandParameter(dbCommand, "@Likelihood", _Likelihood);
if (columnNames.ContainsCI("TransIdSource")) AddCommandParameter(dbCommand, "@TransIdSource", _TransIdSource);
if (columnNames.ContainsCI("ReferCode")) AddCommandParameter(dbCommand, "@ReferCode", _ReferCode);
if (columnNames.ContainsCI("ReferSource")) AddCommandParameter(dbCommand, "@ReferSource", _ReferSource);
if (columnNames.ContainsCI("AffIdRefer")) AddCommandParameter(dbCommand, "@AffIdRefer", _AffIdRefer);
if (columnNames.ContainsCI("AssocIdContract")) AddCommandParameter(dbCommand, "@AssocIdContract", _AssocIdContract);
if (columnNames.ContainsCI("AssIdDeliver")) AddCommandParameter(dbCommand, "@AssIdDeliver", _AssIdDeliver);
if (columnNames.ContainsCI("Raised")) AddCommandParameter(dbCommand, "@Raised", _Raised);
if (columnNames.ContainsCI("Required")) AddCommandParameter(dbCommand, "@Required", _Required);
if (columnNames.ContainsCI("InProgress")) AddCommandParameter(dbCommand, "@InProgress", _InProgress);
if (columnNames.ContainsCI("DeliveredEst")) AddCommandParameter(dbCommand, "@DeliveredEst", _DeliveredEst);
if (columnNames.ContainsCI("DeliveredAct")) AddCommandParameter(dbCommand, "@DeliveredAct", _DeliveredAct);
if (columnNames.ContainsCI("Closed")) AddCommandParameter(dbCommand, "@Closed", _Closed);
if (columnNames.ContainsCI("Department")) AddCommandParameter(dbCommand, "@Department", _Department);
if (columnNames.ContainsCI("DescBrief")) AddCommandParameter(dbCommand, "@DescBrief", _DescBrief);
if (columnNames.ContainsCI("DescIntro")) AddCommandParameter(dbCommand, "@DescIntro", _DescIntro);
if (columnNames.ContainsCI("DescOutline")) AddCommandParameter(dbCommand, "@DescOutline", _DescOutline);
if (columnNames.ContainsCI("DescDetail")) AddCommandParameter(dbCommand, "@DescDetail", _DescDetail);
if (columnNames.ContainsCI("ResponseCode")) AddCommandParameter(dbCommand, "@ResponseCode", _ResponseCode);
if (columnNames.ContainsCI("ContactAreaCode")) AddCommandParameter(dbCommand, "@ContactAreaCode", _ContactAreaCode);
if (columnNames.ContainsCI("Postcode")) AddCommandParameter(dbCommand, "@Postcode", _Postcode);
if (columnNames.ContainsCI("CurrencyId")) AddCommandParameter(dbCommand, "@CurrencyId", _CurrencyId);
if (columnNames.ContainsCI("TaxCodeId")) AddCommandParameter(dbCommand, "@TaxCodeId", _TaxCodeId);
if (columnNames.ContainsCI("AmountEst")) AddCommandParameter(dbCommand, "@AmountEst", _AmountEst);
if (columnNames.ContainsCI("AmountMax")) AddCommandParameter(dbCommand, "@AmountMax", _AmountMax);
if (columnNames.ContainsCI("AmountNet")) AddCommandParameter(dbCommand, "@AmountNet", _AmountNet);
if (columnNames.ContainsCI("AmountTax")) AddCommandParameter(dbCommand, "@AmountTax", _AmountTax);
if (columnNames.ContainsCI("AmountTot")) AddCommandParameter(dbCommand, "@AmountTot", _AmountTot);
if (columnNames.ContainsCI("TimeEstChunks")) AddCommandParameter(dbCommand, "@TimeEstChunks", _TimeEstChunks);
if (columnNames.ContainsCI("TimeEst")) AddCommandParameter(dbCommand, "@TimeEst", _TimeEst);
if (columnNames.ContainsCI("TimeActChunks")) AddCommandParameter(dbCommand, "@TimeActChunks", _TimeActChunks);
if (columnNames.ContainsCI("TimeAct")) AddCommandParameter(dbCommand, "@TimeAct", _TimeAct);
if (columnNames.ContainsCI("TimeTot")) AddCommandParameter(dbCommand, "@TimeTot", _TimeTot);
if (columnNames.ContainsCI("LocationIdStock")) AddCommandParameter(dbCommand, "@LocationIdStock", _LocationIdStock);
if (columnNames.ContainsCI("Weight")) AddCommandParameter(dbCommand, "@Weight", _Weight);
if (columnNames.ContainsCI("UomIdWeight")) AddCommandParameter(dbCommand, "@UomIdWeight", _UomIdWeight);
if (columnNames.ContainsCI("BoxCount")) AddCommandParameter(dbCommand, "@BoxCount", _BoxCount);
if (columnNames.ContainsCI("DeliveryStatusCode")) AddCommandParameter(dbCommand, "@DeliveryStatusCode", _DeliveryStatusCode);
if (columnNames.ContainsCI("DeliveryTypeCode")) AddCommandParameter(dbCommand, "@DeliveryTypeCode", _DeliveryTypeCode);
if (columnNames.ContainsCI("DeliveryMethodCode")) AddCommandParameter(dbCommand, "@DeliveryMethodCode", _DeliveryMethodCode);
if (columnNames.ContainsCI("DeliveryCourierCode")) AddCommandParameter(dbCommand, "@DeliveryCourierCode", _DeliveryCourierCode);
if (columnNames.ContainsCI("DeliveryBookInCode")) AddCommandParameter(dbCommand, "@DeliveryBookInCode", _DeliveryBookInCode);
if (columnNames.ContainsCI("StockPickerCode")) AddCommandParameter(dbCommand, "@StockPickerCode", _StockPickerCode);
if (columnNames.ContainsCI("DeliveryRef")) AddCommandParameter(dbCommand, "@DeliveryRef", _DeliveryRef);
if (columnNames.ContainsCI("DeliveryComment")) AddCommandParameter(dbCommand, "@DeliveryComment", _DeliveryComment);
if (columnNames.ContainsCI("DeliveryAmountNet")) AddCommandParameter(dbCommand, "@DeliveryAmountNet", _DeliveryAmountNet);
if (columnNames.ContainsCI("TaxCodeIdDelivery")) AddCommandParameter(dbCommand, "@TaxCodeIdDelivery", _TaxCodeIdDelivery);
if (columnNames.ContainsCI("DeliveryAmountTax")) AddCommandParameter(dbCommand, "@DeliveryAmountTax", _DeliveryAmountTax);
if (columnNames.ContainsCI("DeliveryAmountTot")) AddCommandParameter(dbCommand, "@DeliveryAmountTot", _DeliveryAmountTot);
if (columnNames.ContainsCI("DeliveryDepartment")) AddCommandParameter(dbCommand, "@DeliveryDepartment", _DeliveryDepartment);
if (columnNames.ContainsCI("DeliveryNominalCode")) AddCommandParameter(dbCommand, "@DeliveryNominalCode", _DeliveryNominalCode);
if (columnNames.ContainsCI("CostLabourRateHour")) AddCommandParameter(dbCommand, "@CostLabourRateHour", _CostLabourRateHour);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("StatusCat")) AddCommandParameter(dbCommand, "@StatusCat", _StatusCat);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("AffIdOwner")) AddCommandParameter(dbCommand, "@AffIdOwner", _AffIdOwner);
if (columnNames.ContainsCI("AssocId")) AddCommandParameter(dbCommand, "@AssocId", _AssocId);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Ref")) AddCommandParameter(dbCommand, "@Ref", _Ref);
if (columnNames.ContainsCI("RefInt")) AddCommandParameter(dbCommand, "@RefInt", _RefInt);
if (columnNames.ContainsCI("RefExt")) AddCommandParameter(dbCommand, "@RefExt", _RefExt);
if (columnNames.ContainsCI("RaisedBy")) AddCommandParameter(dbCommand, "@RaisedBy", _RaisedBy);
if (columnNames.ContainsCI("AffIdRaise")) AddCommandParameter(dbCommand, "@AffIdRaise", _AffIdRaise);
if (columnNames.ContainsCI("AssocIdOffice")) AddCommandParameter(dbCommand, "@AssocIdOffice", _AssocIdOffice);
if (columnNames.ContainsCI("ContactName")) AddCommandParameter(dbCommand, "@ContactName", _ContactName);
if (columnNames.ContainsCI("Likelihood")) AddCommandParameter(dbCommand, "@Likelihood", _Likelihood);
if (columnNames.ContainsCI("TransIdSource")) AddCommandParameter(dbCommand, "@TransIdSource", _TransIdSource);
if (columnNames.ContainsCI("ReferCode")) AddCommandParameter(dbCommand, "@ReferCode", _ReferCode);
if (columnNames.ContainsCI("ReferSource")) AddCommandParameter(dbCommand, "@ReferSource", _ReferSource);
if (columnNames.ContainsCI("AffIdRefer")) AddCommandParameter(dbCommand, "@AffIdRefer", _AffIdRefer);
if (columnNames.ContainsCI("AssocIdContract")) AddCommandParameter(dbCommand, "@AssocIdContract", _AssocIdContract);
if (columnNames.ContainsCI("AssIdDeliver")) AddCommandParameter(dbCommand, "@AssIdDeliver", _AssIdDeliver);
if (columnNames.ContainsCI("Raised")) AddCommandParameter(dbCommand, "@Raised", _Raised);
if (columnNames.ContainsCI("Required")) AddCommandParameter(dbCommand, "@Required", _Required);
if (columnNames.ContainsCI("InProgress")) AddCommandParameter(dbCommand, "@InProgress", _InProgress);
if (columnNames.ContainsCI("DeliveredEst")) AddCommandParameter(dbCommand, "@DeliveredEst", _DeliveredEst);
if (columnNames.ContainsCI("DeliveredAct")) AddCommandParameter(dbCommand, "@DeliveredAct", _DeliveredAct);
if (columnNames.ContainsCI("Closed")) AddCommandParameter(dbCommand, "@Closed", _Closed);
if (columnNames.ContainsCI("Department")) AddCommandParameter(dbCommand, "@Department", _Department);
if (columnNames.ContainsCI("DescBrief")) AddCommandParameter(dbCommand, "@DescBrief", _DescBrief);
if (columnNames.ContainsCI("DescIntro")) AddCommandParameter(dbCommand, "@DescIntro", _DescIntro);
if (columnNames.ContainsCI("DescOutline")) AddCommandParameter(dbCommand, "@DescOutline", _DescOutline);
if (columnNames.ContainsCI("DescDetail")) AddCommandParameter(dbCommand, "@DescDetail", _DescDetail);
if (columnNames.ContainsCI("ResponseCode")) AddCommandParameter(dbCommand, "@ResponseCode", _ResponseCode);
if (columnNames.ContainsCI("ContactAreaCode")) AddCommandParameter(dbCommand, "@ContactAreaCode", _ContactAreaCode);
if (columnNames.ContainsCI("Postcode")) AddCommandParameter(dbCommand, "@Postcode", _Postcode);
if (columnNames.ContainsCI("CurrencyId")) AddCommandParameter(dbCommand, "@CurrencyId", _CurrencyId);
if (columnNames.ContainsCI("TaxCodeId")) AddCommandParameter(dbCommand, "@TaxCodeId", _TaxCodeId);
if (columnNames.ContainsCI("AmountEst")) AddCommandParameter(dbCommand, "@AmountEst", _AmountEst);
if (columnNames.ContainsCI("AmountMax")) AddCommandParameter(dbCommand, "@AmountMax", _AmountMax);
if (columnNames.ContainsCI("AmountNet")) AddCommandParameter(dbCommand, "@AmountNet", _AmountNet);
if (columnNames.ContainsCI("AmountTax")) AddCommandParameter(dbCommand, "@AmountTax", _AmountTax);
if (columnNames.ContainsCI("AmountTot")) AddCommandParameter(dbCommand, "@AmountTot", _AmountTot);
if (columnNames.ContainsCI("TimeEstChunks")) AddCommandParameter(dbCommand, "@TimeEstChunks", _TimeEstChunks);
if (columnNames.ContainsCI("TimeEst")) AddCommandParameter(dbCommand, "@TimeEst", _TimeEst);
if (columnNames.ContainsCI("TimeActChunks")) AddCommandParameter(dbCommand, "@TimeActChunks", _TimeActChunks);
if (columnNames.ContainsCI("TimeAct")) AddCommandParameter(dbCommand, "@TimeAct", _TimeAct);
if (columnNames.ContainsCI("TimeTot")) AddCommandParameter(dbCommand, "@TimeTot", _TimeTot);
if (columnNames.ContainsCI("LocationIdStock")) AddCommandParameter(dbCommand, "@LocationIdStock", _LocationIdStock);
if (columnNames.ContainsCI("Weight")) AddCommandParameter(dbCommand, "@Weight", _Weight);
if (columnNames.ContainsCI("UomIdWeight")) AddCommandParameter(dbCommand, "@UomIdWeight", _UomIdWeight);
if (columnNames.ContainsCI("BoxCount")) AddCommandParameter(dbCommand, "@BoxCount", _BoxCount);
if (columnNames.ContainsCI("DeliveryStatusCode")) AddCommandParameter(dbCommand, "@DeliveryStatusCode", _DeliveryStatusCode);
if (columnNames.ContainsCI("DeliveryTypeCode")) AddCommandParameter(dbCommand, "@DeliveryTypeCode", _DeliveryTypeCode);
if (columnNames.ContainsCI("DeliveryMethodCode")) AddCommandParameter(dbCommand, "@DeliveryMethodCode", _DeliveryMethodCode);
if (columnNames.ContainsCI("DeliveryCourierCode")) AddCommandParameter(dbCommand, "@DeliveryCourierCode", _DeliveryCourierCode);
if (columnNames.ContainsCI("DeliveryBookInCode")) AddCommandParameter(dbCommand, "@DeliveryBookInCode", _DeliveryBookInCode);
if (columnNames.ContainsCI("StockPickerCode")) AddCommandParameter(dbCommand, "@StockPickerCode", _StockPickerCode);
if (columnNames.ContainsCI("DeliveryRef")) AddCommandParameter(dbCommand, "@DeliveryRef", _DeliveryRef);
if (columnNames.ContainsCI("DeliveryComment")) AddCommandParameter(dbCommand, "@DeliveryComment", _DeliveryComment);
if (columnNames.ContainsCI("DeliveryAmountNet")) AddCommandParameter(dbCommand, "@DeliveryAmountNet", _DeliveryAmountNet);
if (columnNames.ContainsCI("TaxCodeIdDelivery")) AddCommandParameter(dbCommand, "@TaxCodeIdDelivery", _TaxCodeIdDelivery);
if (columnNames.ContainsCI("DeliveryAmountTax")) AddCommandParameter(dbCommand, "@DeliveryAmountTax", _DeliveryAmountTax);
if (columnNames.ContainsCI("DeliveryAmountTot")) AddCommandParameter(dbCommand, "@DeliveryAmountTot", _DeliveryAmountTot);
if (columnNames.ContainsCI("DeliveryDepartment")) AddCommandParameter(dbCommand, "@DeliveryDepartment", _DeliveryDepartment);
if (columnNames.ContainsCI("DeliveryNominalCode")) AddCommandParameter(dbCommand, "@DeliveryNominalCode", _DeliveryNominalCode);
if (columnNames.ContainsCI("CostLabourRateHour")) AddCommandParameter(dbCommand, "@CostLabourRateHour", _CostLabourRateHour);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("StatusCat")) AddCommandParameter(dbCommand, "@StatusCat", _StatusCat);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,271 @@
using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Core;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Mon 8-Jun-2020 16:53:26
//---------------------------------------------------------------------------
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Internal
{
internal class UnitMeasure_Db : SbmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt16 _Category { get; } = new ColumnDataInt16("Category");
public ColumnDataInt16 _Type { get; } = new ColumnDataInt16("Type");
public ColumnDataInt16 _UnitType { get; } = new ColumnDataInt16("UnitType");
public ColumnDataString _Code { get; } = new ColumnDataString("Code");
public ColumnDataString _Abbr { get; } = new ColumnDataString("Abbr");
public ColumnDataString _Single { get; } = new ColumnDataString("Single");
public ColumnDataString _Multiple { get; } = new ColumnDataString("Multiple");
public ColumnDataDecimal _EquValue { get; } = new ColumnDataDecimal("EquValue");
public ColumnDataInt32 _UomIdEqu { get; } = new ColumnDataInt32("UomIdEqu");
public ColumnDataInt32 _EquAlgorythm { get; } = new ColumnDataInt32("EquAlgorythm");
public ColumnDataInt32 _UomIdRef1 { get; } = new ColumnDataInt32("UomIdRef1");
public ColumnDataInt32 _UomIdRef2 { get; } = new ColumnDataInt32("UomIdRef2");
public ColumnDataInt32 _UomIdRef3 { get; } = new ColumnDataInt32("UomIdRef3");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
protected static List<String> fields { get; } = new List<String>()
{
"Id",
"Category",
"Type",
"UnitType",
"Code",
"Abbr",
"Single",
"Multiple",
"EquValue",
"UomIdEqu",
"EquAlgorythm",
"UomIdRef1",
"UomIdRef2",
"UomIdRef3",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
protected static List<String> fieldsId { get; } = new List<String>()
{
};
protected static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal UnitMeasure_Db(IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "UnitMeasure";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int16 _Category { get { return Cols._Category.Value; } set { Cols._Category.Value = value; } }
public Int16 _Type { get { return Cols._Type.Value; } set { Cols._Type.Value = value; } }
public Int16 _UnitType { get { return Cols._UnitType.Value; } set { Cols._UnitType.Value = value; } }
public String _Code { get { return Cols._Code.Value; } set { Cols._Code.Value = value; } }
public String _Abbr { get { return Cols._Abbr.Value; } set { Cols._Abbr.Value = value; } }
public String _Single { get { return Cols._Single.Value; } set { Cols._Single.Value = value; } }
public String _Multiple { get { return Cols._Multiple.Value; } set { Cols._Multiple.Value = value; } }
public Decimal _EquValue { get { return Cols._EquValue.Value; } set { Cols._EquValue.Value = value; } }
public Int32 _UomIdEqu { get { return Cols._UomIdEqu.Value; } set { Cols._UomIdEqu.Value = value; } }
public Int32 _EquAlgorythm { get { return Cols._EquAlgorythm.Value; } set { Cols._EquAlgorythm.Value = value; } }
public Int32 _UomIdRef1 { get { return Cols._UomIdRef1.Value; } set { Cols._UomIdRef1.Value = value; } }
public Int32 _UomIdRef2 { get { return Cols._UomIdRef2.Value; } set { Cols._UomIdRef2.Value = value; } }
public Int32 _UomIdRef3 { get { return Cols._UomIdRef3.Value; } set { Cols._UomIdRef3.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom(DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom(DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_Category = GetFieldInt16(dbDataReader, "Category", _Category);
_Type = GetFieldInt16(dbDataReader, "Type", _Type);
_UnitType = GetFieldInt16(dbDataReader, "UnitType", _UnitType);
_Code = GetFieldString(dbDataReader, "Code", _Code);
_Abbr = GetFieldString(dbDataReader, "Abbr", _Abbr);
_Single = GetFieldString(dbDataReader, "Single", _Single);
_Multiple = GetFieldString(dbDataReader, "Multiple", _Multiple);
_EquValue = GetFieldDecimal(dbDataReader, "EquValue", _EquValue);
_UomIdEqu = GetFieldInt32(dbDataReader, "UomIdEqu", _UomIdEqu);
_EquAlgorythm = GetFieldInt32(dbDataReader, "EquAlgorythm", _EquAlgorythm);
_UomIdRef1 = GetFieldInt32(dbDataReader, "UomIdRef1", _UomIdRef1);
_UomIdRef2 = GetFieldInt32(dbDataReader, "UomIdRef2", _UomIdRef2);
_UomIdRef3 = GetFieldInt32(dbDataReader, "UomIdRef3", _UomIdRef3);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand(DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"(" + columnNames.Concat(",", "[", "]") + ") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("Category")) AddCommandParameter(dbCommand, "@Category", _Category);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("UnitType")) AddCommandParameter(dbCommand, "@UnitType", _UnitType);
if (columnNames.ContainsCI("Code")) AddCommandParameter(dbCommand, "@Code", _Code);
if (columnNames.ContainsCI("Abbr")) AddCommandParameter(dbCommand, "@Abbr", _Abbr);
if (columnNames.ContainsCI("Single")) AddCommandParameter(dbCommand, "@Single", _Single);
if (columnNames.ContainsCI("Multiple")) AddCommandParameter(dbCommand, "@Multiple", _Multiple);
if (columnNames.ContainsCI("EquValue")) AddCommandParameter(dbCommand, "@EquValue", _EquValue);
if (columnNames.ContainsCI("UomIdEqu")) AddCommandParameter(dbCommand, "@UomIdEqu", _UomIdEqu);
if (columnNames.ContainsCI("EquAlgorythm")) AddCommandParameter(dbCommand, "@EquAlgorythm", _EquAlgorythm);
if (columnNames.ContainsCI("UomIdRef1")) AddCommandParameter(dbCommand, "@UomIdRef1", _UomIdRef1);
if (columnNames.ContainsCI("UomIdRef2")) AddCommandParameter(dbCommand, "@UomIdRef2", _UomIdRef2);
if (columnNames.ContainsCI("UomIdRef3")) AddCommandParameter(dbCommand, "@UomIdRef3", _UomIdRef3);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand(DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames.Bracket("[", "]"), columnNames).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Category")) AddCommandParameter(dbCommand, "@Category", _Category);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("UnitType")) AddCommandParameter(dbCommand, "@UnitType", _UnitType);
if (columnNames.ContainsCI("Code")) AddCommandParameter(dbCommand, "@Code", _Code);
if (columnNames.ContainsCI("Abbr")) AddCommandParameter(dbCommand, "@Abbr", _Abbr);
if (columnNames.ContainsCI("Single")) AddCommandParameter(dbCommand, "@Single", _Single);
if (columnNames.ContainsCI("Multiple")) AddCommandParameter(dbCommand, "@Multiple", _Multiple);
if (columnNames.ContainsCI("EquValue")) AddCommandParameter(dbCommand, "@EquValue", _EquValue);
if (columnNames.ContainsCI("UomIdEqu")) AddCommandParameter(dbCommand, "@UomIdEqu", _UomIdEqu);
if (columnNames.ContainsCI("EquAlgorythm")) AddCommandParameter(dbCommand, "@EquAlgorythm", _EquAlgorythm);
if (columnNames.ContainsCI("UomIdRef1")) AddCommandParameter(dbCommand, "@UomIdRef1", _UomIdRef1);
if (columnNames.ContainsCI("UomIdRef2")) AddCommandParameter(dbCommand, "@UomIdRef2", _UomIdRef2);
if (columnNames.ContainsCI("UomIdRef3")) AddCommandParameter(dbCommand, "@UomIdRef3", _UomIdRef3);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,794 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
using Sarand.BusinessMgr.Net.Standard.Base.Mgr;
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
{
//=======================================================================
internal partial class SbmAccountMgr_Dbas : SbmAccountMgr
{
//*******************************************************************
// A d d r e s s e s
//*******************************************************************
// Utilities.
/* public override SbmAddress CloneAddress(SbmAddress addressSource, bool copyId)
{
}*/
private List<StringPair> GetLogProperties(SbmAddress address)
{
return new List<StringPair>()
{
new StringPair("Id",SysId.ToString(address.Id)),
new StringPair("Postcode",address.Postcode),
new StringPair("Status",address.StatusCode)
};
}
public override bool VerifyAsPrimaryAddress(SbmAddress addressPrimary)
{
// Check that this is the only primary address for the item.
ClearErrorState();
if (addressPrimary == null) return SetErrorState("item not specified");
if (!SysId.IsValid(addressPrimary.Id)) return SetErrorState("invalid item id");
if (!addressPrimary.IsPrimary) return SetErrorState("address is not primary");
if (db == null) return SetErrorState("database not available");
SysId addressPrimaryId = addressPrimary.Id;
String colAddress_Id = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Address_Id);
// Identify the other addresses for the same item that are also primary.
DbQuery qry = new DbQuery(db.DbmsType);
qry.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Address));
qry.Columns.Add(colAddress_Id);
qry.Filters.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Address_ItemType) + "=" + ((int)addressPrimary.ItemType).ToString());
qry.Filters.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Address_ItemId) + "=" + addressPrimary.ItemId.ToString());
qry.Filters.Add(colAddress_Id + "<>" + addressPrimaryId.ToString());
qry.Filters.Add(GetPrimaryAddressFilter(true, aliasAddress));
using (DbResultSet dbResultSet = DbResultSet_DataReader.ExecuteQuery(db, qry.ToString()))
{
if (dbResultSet != null && dbResultSet.NextRecord())
{
NamedValue.Map values = dbResultSet.GetRecordValues();
SbmAddress address = GetAddressById(new SysId((int)values.GetValue(colAddress_Id).AsLong()));
if (address != null && address.Id != addressPrimaryId && address.IsPrimary)
{
address.IsPrimary = false;
if (!UpdateAddress(address, UserContext.DbUpdateInfo)) SetErrorState("failed to update adress - " + ErrorState);
}
}
}
return !HasErrorState();
}
//-------------------------------------------------------------------
// Create Address.
public override SbmAddress CreateAddress(Sbm.ItemType itemType, SysId idItem, Sbm.AddressType addressType)
{
return new SbmAddress_Dbas(UserContext, null, itemType, idItem, addressType, 0);
}
private SbmAddress_Dbas CreateAddress(Address_Db dbAddress)
{
ClearErrorState();
Sbm.ItemType itemType = (Sbm.ItemType)dbAddress._ItemType;
SysId itemId = new SysId(dbAddress._ItemId);
if (dbAddress._AffIdOwner > 0 && !SysId.IsValid(itemId))
{
// 'AffiliateIdOwner' is legacy field prior to ItemType/ItemId being added.
// Populate ItemTYpe/Id if ItemId not found in data and ItemType consistent (Affiliate or undefined).
if (itemType == Sbm.ItemType.Affiliate || (int)itemType < 1)
{
itemType = Sbm.ItemType.Affiliate;
itemId = new SysId(dbAddress._AffIdOwner);
}
}
SbmAddress_Dbas address = new SbmAddress_Dbas(UserContext, new SysId(dbAddress._Id), itemType, itemId, (Sbm.AddressType)dbAddress._Type, (ushort)dbAddress._Flags);
PopulateFrom(dbAddress, address);
return address;
}
//-------------------------------------------------------------------
// Get Address.
public override SbmAddress GetAddress(SbmAddress.Params prm)
{
return GetAddress(GetAddressQueryFilter(prm).Concat(" AND ", "(", ")"));
}
private SbmAddress GetAddress(String filter)
{
ClearErrorState();
long count = GetAddressCount(filter);
if (count == 0) return null;
if (count != 1)
{
SetErrorState("Multiple Addresses found");
return null;
}
SbmAddress address = null;
// Query data.
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
dbConnection.Open();
Address_Db dbAddress = new Address_Db(DbInfo);
dbAddress.PopulateFrom(dbCommand, aliasAddress, filter);
address = CreateAddress(dbAddress);
}
catch (Exception exc)
{
SetErrorState("Database query exception");
SaLogger.Warn(GetType().Name + ".GetAddress\n\tQuery: " + dbCommand.CommandText + "\n\tException: " + exc.Message);
}
}
return address;
}
//-------------------------------------------------------------------
// Validate Address.
public override bool IsValidAddressData(SbmAddress.Data data, SbmAddress.ErrField errField)
{
ClearErrorState();
if (!base.IsValidAddressData(data, errField)) return false;
return true;
}
//-------------------------------------------------------------------
// Insert Address.
public override bool InsertAddress(SbmAddress address, DbUpdateInfo dbUpdateInfo)
{
String fn = GetType().Name + ".InsertAddress";
ClearErrorState();
if (!IsValidAddress(address)) return false;
if (SysId.IsValid(address.Id)) return SetErrorState(ErrorMessage.ValiditemId);
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
dbConnection.Open();
Address_Db dbAddress = new Address_Db(DbInfo);
PopulateTo(dbAddress, address, dbUpdateInfo);
if (Address_Db.FieldsNonId.Contains("Id"))
{
// Generate next Id.
dbAddress._Id = SysId.ToInt(db.GetNextId("Address", dbUpdateInfo));
}
dbAddress.ExecuteInsertCommand(dbCommand);
address.Id = new SysId(dbAddress._Id);
address.Changed = false;
if (DebugMode) SaLogger.Debug(fn + " Inserted.\n\tId: " + GetLogProperties(address).Concat(": ").Concat("", "\n\t"));
}
catch (Exception exc) { SetErrorState(exc.Message); }
}
return !HasErrorState();
}
//-------------------------------------------------------------------
// Update Address.
public override bool UpdateAddress(SbmAddress address, DbUpdateInfo dbUpdateInfo)
{
String fn = GetType().Name + ".UpdateAddress";
ClearErrorState();
if (!IsValidAddress(address)) return false;
if (!SysId.IsValid(address.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
if (!address.Changed)
{
if (DebugMode) SaLogger.Debug(fn + " Data not changed.\n\tId: " + GetLogProperties(address).Concat(": ").Concat("", "\n\t"));
return true;
}
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
// Retrieve Address.
dbConnection.Open();
Address_Db dbAddress = new Address_Db(DbInfo);
dbAddress.PopulateFrom(dbCommand, aliasAddress, "Id=" + SysId.ToString(address.Id));
SbmUpdateLogItemMonitor_Address updateLogMonitor = new SbmUpdateLogItemMonitor_Address(UserContext, CreateAddress(dbAddress));
// Update properties.
PopulateTo(dbAddress, address, dbUpdateInfo);
dbAddress.ExecuteUpdateCommand(dbCommand);
address.Changed = false;
if (DebugMode) SaLogger.Debug(fn + " Updated.\n\tId: " + GetLogProperties(address).Concat(": ").Concat("", "\n\t"));
// Record updates.
updateLogMonitor.RecordUpdatedValues(address);
updateLogMonitor.LogUpdates();
}
catch (Exception exc) { SetErrorState(exc.Message); }
}
return !HasErrorState();
}
//-------------------------------------------------------------------
// Delete Address.
public override bool AddressCanBeDeleted(SbmAddress address)
{
ClearErrorState();
if (!base.AddressCanBeDeleted(address)) return false;
return true;
}
public override bool DeleteAddress(SbmAddress address, DbUpdateInfo dbUpdateInfo)
{
String fn = GetType().Name + ".DeleteAddress";
ClearErrorState();
if (!AddressCanBeDeleted(address)) return false;
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
// Retrieve Address.
dbConnection.Open();
Address_Db dbAddress = new Address_Db(DbInfo);
dbAddress.PopulateFrom(dbCommand, aliasAddress, "Id=" + address.Id.ToString());
// Delete Address.
dbCommand.CommandType = System.Data.CommandType.Text;
dbCommand.CommandText = "DELETE FROM " + SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Address) + " WHERE Id=" + SysId.ToString(address.Id) + ";";
dbCommand.ExecuteNonQuery();
address.Changed = false;
if (DebugMode) SaLogger.Debug(fn + " Deleted.\n\tId: " + GetLogProperties(address).Concat(": ").Concat("", "\n\t"));
}
catch (Exception exc) { SetErrorState(exc.Message); }
}
return !HasErrorState();
}
//-------------------------------------------------------------------
// Copy data properties to and from database.
private void PopulateTo(Address_Db dbAddress, SbmAddress address, DbUpdateInfo dbUpdateInfo)
{
dbAddress._Id = address.Id.ToInt();
dbAddress._ItemType = (short)address.ItemType;
dbAddress._ItemId = SysId.ToInt(address.ItemId);
dbAddress._AffIdOwner = (address.ItemType == Sbm.ItemType.Affiliate ? SysId.ToInt(address.ItemId) : 0);
dbAddress._AddIdRef = SysId.ToInt(address.AddressIdRef);
dbAddress._RefExt = address.RefExt;
dbAddress._Type = (short)address.AddressType;
dbAddress._Name = address.Name;
dbAddress._DescBrief = address.DescBrief;
dbAddress._Line1 = address.Line1;
dbAddress._Line2 = address.Line2;
dbAddress._Line3 = address.Line3;
dbAddress._City = address.City;
dbAddress._Province = address.Province;
dbAddress._Postcode = address.Postcode;
dbAddress._Country = address.Country;
dbAddress._CityRgn = SysId.ToInt(address.RegionIdCity);
dbAddress._ProvinceRgn = SysId.ToInt(address.RegionIdProvince);
dbAddress._CountryRgn = SysId.ToInt(address.RegionIdCountry);
dbAddress._Contact = address.Contact;
dbAddress._Phone = address.Phone;
dbAddress._Email = address.Email;
dbAddress._AccountManagerCode = address.AccountManagerCode;
dbAddress._AccountHandlerCode = address.AccountHandlerCode;
dbAddress._ContactAreaCode = address.ContactAreaCode;
dbAddress._ContactHandlerCode = address.ContactHandlerCode;
dbAddress._DeliveryTypeCode = address.DeliveryTypeCode;
dbAddress._DeliveryBookInCode = address.DeliveryBookInCode;
dbAddress._LastVisitOn = address.LastVisitOn;
dbAddress._NextVisitOn = address.NextVisitOn;
// Common properties.
dbAddress._Notes = address.Notes;
dbAddress._Status = SacsSystem.GetStatusCode(address.Status);
dbAddress._Flags = (short)address.Flags;
if (!SysId.IsValid(address.Id))
{
dbAddress._CreateOn = DateTime.UtcNow;
dbAddress._CreateBy = dbUpdateInfo.UserId.ToInt();
dbAddress._CreateHost = dbUpdateInfo.Host;
}
dbAddress._UpdateOn = DateTime.UtcNow;
dbAddress._UpdateBy = dbUpdateInfo.UserId.ToInt();
dbAddress._UpdateHost = dbUpdateInfo.Host;
}
private void PopulateFrom(Address_Db dbAddress, SbmAddress address)
{
//address.Id = new SysId(dbAddress._Id);
//address.ItemType = (Sbm.ItemType)dbAddress._ItemType;
//address.ItemId = new SysId(dbAddress._ItemId);
address.AddressIdRef = new SysId(dbAddress._AddIdRef);
address.RefExt = dbAddress._RefExt;
address.AddressType = (Sbm.AddressType)dbAddress._Type;
address.Name = dbAddress._Name;
address.DescBrief = dbAddress._DescBrief;
address.Line1 = dbAddress._Line1;
address.Line2 = dbAddress._Line2;
address.Line3 = dbAddress._Line3;
address.City = dbAddress._City;
address.Province = dbAddress._Province;
address.Postcode = dbAddress._Postcode;
address.Country = dbAddress._Country;
address.RegionIdCity = new SysId(dbAddress._CityRgn);
address.RegionIdProvince = new SysId(dbAddress._ProvinceRgn);
address.RegionIdCountry = new SysId(dbAddress._CountryRgn);
address.Contact = dbAddress._Contact;
address.Phone = dbAddress._Phone;
address.Email = dbAddress._Email;
address.AccountManagerCode = dbAddress._AccountManagerCode;
address.AccountHandlerCode = dbAddress._AccountHandlerCode;
address.ContactAreaCode = dbAddress._ContactAreaCode;
address.ContactHandlerCode = dbAddress._ContactHandlerCode;
address.DeliveryTypeCode = dbAddress._DeliveryTypeCode;
address.DeliveryBookInCode = dbAddress._DeliveryBookInCode;
address.LastVisitOn = dbAddress._LastVisitOn;
address.NextVisitOn = dbAddress._NextVisitOn;
// Common properties.
address.Notes = dbAddress._Notes;
address.Status = SacsSystem.GetStatusForCode(dbAddress._Status);
address.SetCreateStamp(dbAddress._CreateOn, new SysId(dbAddress._CreateBy), dbAddress._CreateHost);
address.SetUpdateStamp(dbAddress._UpdateOn, new SysId(dbAddress._UpdateBy), dbAddress._UpdateHost);
address.AcceptChanges();
}
//-------------------------------------------------------------------
// Address column definitions.
private static readonly String aliasAddress = "aAdd";
private void SetAddressColDfn
(ColumnDfn col, String caption, int width, SbmDbDfn.ColumnIdx dbCol,
ColumnAlignment align = ColumnAlignment.Default, DataValue.DataType dataType = DataValue.DataType.String,
String alias = "", String prefix = "")
{
if (String.IsNullOrEmpty(alias) && SbmDbDfn.GetTableForColumn(dbCol) == SbmDbDfn.TableIdx.Address)
alias = aliasAddress;
col.Set(caption, width, (int)dbCol, prefix + SbmDbDfn.GetColumnName(dbCol, false), SbmDbDfn.GetColumnNameQual(dbCol, alias), dataType, align);
if (dataType == DataValue.DataType.String && dbCol != SbmDbDfn.ColumnIdx.Unknown)
col.MaxLength = (int)SbmDbDfn.GetColTextLen(dbCol);
}
//-------------------------------------------------------------------
// Getting prmAddress column definition.
public override ColumnDfn GetAddressColumnDfn(SbmAddress.Column columnId, string caption = "", int width = 0)
{
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
switch (columnId)
{
case SbmAddress.Column.Pos:
SetAddressColDfn(columnDfn, "Pos", 45, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Right);
columnDfn.SortMode = ColumnDfn.ColumnSortMode.Off;
columnDfn.ReadOnly = true;
columnDfn.Resizable = false;
break;
case SbmAddress.Column.Id:
SetAddressColDfn(columnDfn, "Id", 60, SbmDbDfn.ColumnIdx.Address_Id, ColumnAlignment.Right, DataValue.DataType.Long);
columnDfn.ReadOnly = true;
break;
// Address Properties.
case SbmAddress.Column.Type_Desc:
SetAddressColDfn(columnDfn, "Type", 70, SbmDbDfn.ColumnIdx.Address_Type, ColumnAlignment.Center);
break;
case SbmAddress.Column.RefExt:
SetAddressColDfn(columnDfn, "Ref", 80, SbmDbDfn.ColumnIdx.Address_RefExt);
break;
case SbmAddress.Column.Name:
SetAddressColDfn(columnDfn, "Name", 120, SbmDbDfn.ColumnIdx.Address_Name, ColumnAlignment.Left);
break;
case SbmAddress.Column.DescBrief:
SetAddressColDfn(columnDfn, "Desc Brief", 120, SbmDbDfn.ColumnIdx.Address_DescBrief);
break;
/*------------------------------------*/
case SbmAddress.Column.Summary:
SetAddressColDfn(columnDfn, "Address", 240, SbmDbDfn.ColumnIdx.Unknown);
break;
case SbmAddress.Column.Line1:
SetAddressColDfn(columnDfn, "Line1", 100, SbmDbDfn.ColumnIdx.Address_Line1);
break;
case SbmAddress.Column.Line2:
SetAddressColDfn(columnDfn, "Line2", 100, SbmDbDfn.ColumnIdx.Address_Line2);
break;
case SbmAddress.Column.Line3:
SetAddressColDfn(columnDfn, "Line3", 100, SbmDbDfn.ColumnIdx.Address_Line3);
break;
case SbmAddress.Column.City:
SetAddressColDfn(columnDfn, "City", 90, SbmDbDfn.ColumnIdx.Address_City);
break;
case SbmAddress.Column.Province:
SetAddressColDfn(columnDfn, "Province", 90, SbmDbDfn.ColumnIdx.Address_Province);
break;
case SbmAddress.Column.Postcode:
SetAddressColDfn(columnDfn, "Postcode", 80, SbmDbDfn.ColumnIdx.Address_Postcode);
break;
case SbmAddress.Column.Country:
SetAddressColDfn(columnDfn, "Country", 90, SbmDbDfn.ColumnIdx.Address_Country);
break;
/*------------------------------------*/
case SbmAddress.Column.Contact:
SetAddressColDfn(columnDfn, "Contact", 100, SbmDbDfn.ColumnIdx.Address_Contact);
break;
case SbmAddress.Column.Phone:
SetAddressColDfn(columnDfn, "Phone", 90, SbmDbDfn.ColumnIdx.Address_Phone);
break;
case SbmAddress.Column.Fax:
SetAddressColDfn(columnDfn, "Fax", 90, SbmDbDfn.ColumnIdx.Address_Fax);
break;
case SbmAddress.Column.Email:
SetAddressColDfn(columnDfn, "Email", 100, SbmDbDfn.ColumnIdx.Address_Email);
break;
case SbmAddress.Column.LastVisitOn:
SetAddressColDfn(columnDfn, "Last Visit On", 80, SbmDbDfn.ColumnIdx.Address_LastVisitOn, ColumnAlignment.Center, DataValue.DataType.Date);
columnDfn.ReadOnly = true;
break;
case SbmAddress.Column.NextVisitOn:
SetAddressColDfn(columnDfn, "Next Visit On", 80, SbmDbDfn.ColumnIdx.Address_NextVisitOn, ColumnAlignment.Center, DataValue.DataType.Date);
columnDfn.ReadOnly = true;
break;
case SbmAddress.Column.IsPrimary:
SetAddressColDfn(columnDfn, "Primary", 40, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Center);
break;
// Derived properties.
// Common properties.
case SbmAddress.Column.Notes:
SetAddressColDfn(columnDfn, "Notes", 200, SbmDbDfn.ColumnIdx.Address_Notes);
break;
case SbmAddress.Column.Status:
SetAddressColDfn(columnDfn, "Status", 50, SbmDbDfn.ColumnIdx.Address_Status, ColumnAlignment.Center);
break;
case SbmAddress.Column.Status_Desc:
SetAddressColDfn(columnDfn, "Status", 50, SbmDbDfn.ColumnIdx.Address_Status, ColumnAlignment.Center);
break;
case SbmAddress.Column.Status_Ind:
SetAddressColDfn(columnDfn, "Status", 50, SbmDbDfn.ColumnIdx.Address_Status, ColumnAlignment.Center, DataValue.DataType.TriState);
columnDfn.TriStateFormat = ColumnTriStateFormat.Lights;
break;
case SbmAddress.Column.CreateOn_Date:
SetAddressColDfn(columnDfn, "Created", 65, SbmDbDfn.ColumnIdx.Address_CreateOn, ColumnAlignment.Center, DataValue.DataType.Date);
columnDfn.ReadOnly = true;
break;
case SbmAddress.Column.UpdateOn_Date:
SetAddressColDfn(columnDfn, "Updated", 65, SbmDbDfn.ColumnIdx.Address_UpdateOn, ColumnAlignment.Center, DataValue.DataType.Date);
columnDfn.ReadOnly = true;
break;
}
if (!String.IsNullOrEmpty(caption))
columnDfn.Caption = caption;
if (width > 0)
columnDfn.Width = width;
return columnDfn;
}
//-------------------------------------------------------------------
// Address query filter.
public override List<string> GetAddressQueryFilter(SbmAddress.Params prm)
{
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 + ")");
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Address Type.
String colAddress_Type = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Type, aliasAddress);
if (prm.AddressType > 0)
filter.Add(colAddress_Type + "='" + ((int)prm.AddressType).ToString());
//--------------------------------------------------------------- -
// ItemType & ItemId.
if (ItemId.IsValid(prm.ItemId))
{
List<String> filterItemTypes = new List<String>();
// ItemType.
String colAddress_ItemType = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_ItemType, aliasAddress);
filterItemTypes.Add(colAddress_ItemType + "=" + ((int)prm.ItemId.Type).ToString());
String colAddress_ItemId = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_ItemId, aliasAddress);
filterItemTypes.Add(colAddress_ItemId + "=" + SysId.ToString(prm.ItemId.Id));
//ItemId.
List<String> filterItemIds = new List<String>();
if (!filterItemTypes.IsEmpty())
filterItemIds.Add(filterItemTypes.Concat(" AND ", "(", ")"));
// Older installations may still be using the 'AffIdOwner' column instead of ItemType/Id.
if (ColumnExists(SbmDbDfn.ColumnIdx.Address_AffIdOwner) && prm.ItemId.Type == (int)Sbm.ItemType.Affiliate && ItemId.IsValid(prm.ItemId))
filterItemIds.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_AffIdOwner, aliasAddress) + "=" + SysId.ToString(prm.ItemId.Id));
filter.Add(filterItemIds.Concat(" OR ", "(", ")"));
}
//---------------------------------------------------------------
// AffIdOwner.
String colAddress_AffIdOwner = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_AffIdOwner, aliasAddress);
if (SysId.IsValid(prm.AffiliateIdOwner))
filter.Add(colAddress_AffIdOwner + "=" + SysId.ToString(prm.AffiliateIdOwner));
// AddIdRef.
String colAddress_AddIdRef = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_AddIdRef, aliasAddress);
if (SysId.IsValid(prm.AddressIdRef))
filter.Add(colAddress_AddIdRef + "=" + SysId.ToString(prm.AddressIdRef));
//---------------------------------------------------------------
// Address RefExt.
String colAddress_RefExt = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_RefExt, aliasAddress);
if (!StringUtil.IsEmpty(prm.RefExt))
filter.Add(DbQuery.FormatFn_Left(colAddress_RefExt, DbQuery.FormatForCondition(prm.RefExt).Length) + "='" + DbQuery.FormatForCondition(prm.RefExt) + "'");
// Addres Name.
String colAddress_Name = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Name, aliasAddress);
if (!StringUtil.IsEmpty(prm.Name))
filter.Add(colAddress_Name + " = '" + DbQuery.FormatForCondition(prm.Name) + "'");
// Addresses.
if (!StringUtil.IsEmpty(prm.Address))
{
String colAddress_Line1 = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Line1, aliasAddress);
String colAddress_Line2 = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Line2, aliasAddress);
String colAddress_Line3 = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Line3, aliasAddress);
String colAddress_City = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_City, aliasAddress);
String colAddress_Province = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Province, aliasAddress);
String qryFmtCondAddress = DbQuery.FormatForCondition(prm.Address);
/*List<String> filterAddress = new List<String>()
{
DbQuery.FormatFn_Left(colAddress_Line1, qryFmtCondAddress.Length) + "='" + qryFmtCondAddress + "'",
DbQuery.FormatFn_Left(colAddress_Line2, qryFmtCondAddress.Length) + "='" + qryFmtCondAddress + "'",
DbQuery.FormatFn_Left(colAddress_Line3, qryFmtCondAddress.Length) + "='" + qryFmtCondAddress + "'",
DbQuery.FormatFn_Left(colAddress_City, qryFmtCondAddress.Length) + "='" + qryFmtCondAddress + "'",
DbQuery.FormatFn_Left(colAddress_Province, qryFmtCondAddress.Length) + "='" + qryFmtCondAddress + "'",
};*/
List<String> filterAddress = new List<String>();
filterAddress.Add(DbQuery.FormatFn_Left(colAddress_Line1, DbQuery.FormatForCondition(prm.Address).Length) + "='" + DbQuery.FormatForCondition(prm.Address) + "'");
filterAddress.Add(DbQuery.FormatFn_Left(colAddress_Line2, DbQuery.FormatForCondition(prm.Address).Length) + "='" + DbQuery.FormatForCondition(prm.Address) + "'");
filterAddress.Add(DbQuery.FormatFn_Left(colAddress_Line3, DbQuery.FormatForCondition(prm.Address).Length) + "='" + DbQuery.FormatForCondition(prm.Address) + "'");
filterAddress.Add(DbQuery.FormatFn_Left(colAddress_City, DbQuery.FormatForCondition(prm.Address).Length) + "='" + DbQuery.FormatForCondition(prm.Address) + "'");
filterAddress.Add(DbQuery.FormatFn_Left(colAddress_Province, DbQuery.FormatForCondition(prm.Address).Length) + "='" + DbQuery.FormatForCondition(prm.Address) + "'");
filter.Add(filterAddress.Concat(" OR ", "(", ")", true, true));
}
//---------------------------------------------------------------
// Postcode.
String colAddress_Postcode = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Postcode, aliasAddress);
String colAddress_PostcodeFmt = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_PostcodeFmt, aliasAddress);
if (!StringUtil.IsEmpty(prm.Postcode))
{
String postcodeFmt = DbQuery.FormatForCondition(StringUtil.EmptyOnNull(prm.Postcode).ReplaceAll(" ", ""));
if (!postcodeFmt.IsEmpty())
filter.Add("(" + colAddress_PostcodeFmt + "='" + postcodeFmt + "' OR " + colAddress_Postcode + "='" + DbQuery.FormatForCondition(prm.Postcode) + "')");
}
if (!StringUtil.IsEmpty(prm.PostcodePartial))
{
String postcodepartialFmt = DbQuery.FormatForCondition(StringUtil.EmptyOnNull(prm.PostcodePartial).ReplaceAll(" ", ""));
if (!postcodepartialFmt.IsEmpty())
filter.Add("(" + colAddress_PostcodeFmt + "='" + postcodepartialFmt + "' OR " + colAddress_Postcode + "='" + DbQuery.FormatForCondition(prm.Postcode) + "')");
}
// Phone.
String colAddress_Phone = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Phone, aliasAddress);
if (!StringUtil.IsEmpty(prm.Phone))
filter.Add(DbQuery.FormatFn_Left(colAddress_Phone, DbQuery.FormatForCondition(prm.Phone).Length) + " = '" + DbQuery.FormatForCondition(prm.Phone) + "'");
//---------------------------------------------------------------
// Codings.
//AccountManagerCode.
String colAddress_AccountManagerCode = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_AccountManagerCode, aliasAddress);
if (!StringUtil.IsEmpty(prm.AccountManagerCode))
filter.Add(DbQuery.FormatFn_Left(colAddress_AccountManagerCode, DbQuery.FormatForCondition(prm.AccountManagerCode).Length) + " = '" + DbQuery.FormatForCondition(prm.AccountManagerCode) + "'");
//AccountHandlerCode.
String colAddress_AccountHandlerCode = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_AccountHandlerCode, aliasAddress);
if (!StringUtil.IsEmpty(prm.AccountHandlerCode))
filter.Add(DbQuery.FormatFn_Left(colAddress_AccountHandlerCode, DbQuery.FormatForCondition(prm.AccountHandlerCode).Length) + " = '" + DbQuery.FormatForCondition(prm.AccountHandlerCode) + "'");
//ContactAreaCode.
String colAddress_ContactAreaCode = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_ContactAreaCode, aliasAddress);
if (!StringUtil.IsEmpty(prm.ContactAreaCode))
filter.Add(DbQuery.FormatFn_Left(colAddress_ContactAreaCode, DbQuery.FormatForCondition(prm.ContactAreaCode).Length) + " = '" + DbQuery.FormatForCondition(prm.ContactAreaCode) + "'");
//ContactHandlerCode.
String colAddress_ContactHandlerCode = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_ContactHandlerCode, aliasAddress);
if (!StringUtil.IsEmpty(prm.ContactHandlerCode))
filter.Add(DbQuery.FormatFn_Left(colAddress_ContactHandlerCode, DbQuery.FormatForCondition(prm.ContactHandlerCode).Length) + " = '" + DbQuery.FormatForCondition(prm.ContactHandlerCode) + "'");
//DeliveryTypeCode.
String colAddress_DeliveryTypeCode = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_DeliveryTypeCode, aliasAddress);
if (!StringUtil.IsEmpty(prm.DeliveryTypeCode))
filter.Add(DbQuery.FormatFn_Left(colAddress_DeliveryTypeCode, DbQuery.FormatForCondition(prm.DeliveryTypeCode).Length) + " = '" + DbQuery.FormatForCondition(prm.DeliveryTypeCode) + "'");
//DeliveryBookInCode.
String colAddress_DeliveryBookInCode = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_DeliveryBookInCode, aliasAddress);
if (!StringUtil.IsEmpty(prm.DeliveryBookInCode))
filter.Add(DbQuery.FormatFn_Left(colAddress_DeliveryBookInCode, DbQuery.FormatForCondition(prm.DeliveryBookInCode).Length) + " = '" + DbQuery.FormatForCondition(prm.DeliveryBookInCode) + "'");
//---------------------------------------------------------------
// Common Properties.
/* ToDo does it require: Notes.
if (!StringUtil.IsEmpty(prm.NotesPartial))
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Notes, aliasAddress) + " LIKE '%" + DbQuery.FormatForLike(prm.NotesPartial) + "%'");*/
// Address Status.
if (prm.PrimaryOnly)
filter.Add(GetPrimaryAddressFilter(true, aliasAddress));
/*if (prm.StatusCat == SbmAddress.StatusCat.ActiveOnly)
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Status, aliasAddress) + " = '" + StatusActive + "'");*/
if (filter.Count < 1 && prm.IncludeDefaultFilter) filter.Add("1=1");
return filter;
}
//-------------------------------------------------------------------
// Primary Address Filter
public String GetPrimaryAddressFilter(bool match, String aliasTable)
{
DbQuery qry = new DbQuery(db.DbmsType);
return DbQuery.BuildBitMappedFilter(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Flags, aliasAddress), SbmAddress.Flag_Primary, match);
}
// Address sort columns.
public List<String> GetAddressSortColumns(SbmAddress.Params prm)
{
// Sort sequence:
List<String> sortColumnNames = new List<String>();
foreach (var columnDfn in prm.SortColumns)
{
// Need to ensure correct alias used for Address columns in case of conflict.
String sortCol = String.Empty;
if (SbmDbDfn.GetTableForColumn((SbmDbDfn.ColumnIdx)columnDfn.DbColumn) == SbmDbDfn.TableIdx.Address)
{
sortCol = SbmDbDfn.GetColumnNameQual((SbmDbDfn.ColumnIdx)columnDfn.DbColumn, aliasAddress);
}
else
{
sortCol = columnDfn.DataName;
if (!StringUtil.IsEmpty(columnDfn.SortDataName))
sortCol = columnDfn.SortDataName;
}
if (!sortCol.IsEmpty())
{
DbOrderByNullMode orderByNullMode = DbOrderByNullMode.Default; // eSaOrderByDemoteNulls, eSaOrderByPromoteNulls
sortColumnNames.Add(DbQuery.FormatForOrderBy(sortCol, columnDfn.SortAscending, orderByNullMode).Concat(", "));
}
}
sortColumnNames.RemoveBlanks();
if (sortColumnNames.IsEmpty())
{
// Default sort columns:
sortColumnNames.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Type, aliasAddress) + " ASC");
}
return sortColumnNames;
}
//-------------------------------------------------------------------
// Address count.
private long GetAddressCount(String filter)
{
ClearErrorState();
return db.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Address) + " As " + aliasAddress, filter);
}
public override long GetAddressCount(SbmAddress.Params prm)
{
ClearErrorState();
return GetAddressCount(GetAddressQueryFilter(prm).Concat(" AND ", "(", ")"));
}
//-------------------------------------------------------------------
// Address list.
public override List<SbmAddress> GetAddressList(SbmAddress.Params prm)
{
List<SbmAddress> Addresses = new List<SbmAddress>();
DbQuery qry = new DbQuery(db.DbmsType);
qry.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Address), aliasAddress);
Address_Db dbAddress = new Address_Db(DbInfo);
qry.Columns.AddRange(dbAddress.ExistingColumnNames);
qry.Filters.AddRange(GetAddressQueryFilter(prm));
qry.OrderBy.AddRange(GetAddressSortColumns(prm));
// Query data.
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
dbConnection.Open();
dbCommand.CommandText = qry.BuildQuery(prm.ResultsPaging);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
while (dbDataReader.Read())
{
dbAddress = new Address_Db(DbInfo);
dbAddress.PopulateFrom(dbDataReader);
Addresses.Add(CreateAddress(dbAddress));
}
}
}
catch (Exception exc)
{
SaLogger.Warn(GetType().Name + ".GetAddressList\n\tQuery: " + dbCommand.CommandText + "\n\tException: " + exc.Message);
}
}
return Addresses;
}
//-------------------------------------------------------------------
// Address query execution.
public override DbResultSet AddressExecuteQuery(List<ColumnDfn> columns, SbmAddress.Params prm)
{
ClearErrorState();
//---------------------------------------------------------------
// Construct query.
DbQuery query = new DbQuery(db.DbmsType);
query.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Address), aliasAddress);
// Address Properties - add columns as defined in query list.
if (columns.HasId((int)SbmAddress.Column.Id))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Id, aliasAddress));
if (columns.HasId((int)SbmAddress.Column.Type_Desc))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Type, aliasAddress));
if (columns.HasId((int)SbmAddress.Column.RefExt))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_RefExt, aliasAddress));
if (columns.HasId((int)SbmAddress.Column.Name))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Name, aliasAddress));
if (columns.HasId((int)SbmAddress.Column.DescBrief))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_DescBrief, aliasAddress));
if (columns.HasId((int)SbmAddress.Column.Line1) || columns.HasId((int)SbmAddress.Column.Summary))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Line1, aliasAddress));
if (columns.HasId((int)SbmAddress.Column.Line2) || columns.HasId((int)SbmAddress.Column.Summary))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Line2, aliasAddress));
if (columns.HasId((int)SbmAddress.Column.Line3) || columns.HasId((int)SbmAddress.Column.Summary))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Line3, aliasAddress));
if (columns.HasId((int)SbmAddress.Column.City) || columns.HasId((int)SbmAddress.Column.Summary))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_City, aliasAddress));
if (columns.HasId((int)SbmAddress.Column.Province) || columns.HasId((int)SbmAddress.Column.Summary))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Province, aliasAddress));
if (columns.HasId((int)SbmAddress.Column.Postcode) || columns.HasId((int)SbmAddress.Column.Summary))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Postcode, aliasAddress));
if (columns.HasId((int)SbmAddress.Column.Country) || columns.HasId((int)SbmAddress.Column.Summary))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Country, aliasAddress));
if (columns.HasId((int)SbmAddress.Column.Contact))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Contact, aliasAddress));
if (columns.HasId((int)SbmAddress.Column.Phone))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Phone, aliasAddress));
if (columns.HasId((int)SbmAddress.Column.Fax))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Fax, aliasAddress));
if (columns.HasId((int)SbmAddress.Column.Email))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Email, aliasAddress));
if (columns.HasId((int)SbmAddress.Column.LastVisitOn) && ColumnExists(SbmDbDfn.ColumnIdx.Address_LastVisitOn))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_LastVisitOn, aliasAddress));
if (columns.HasId((int)SbmAddress.Column.NextVisitOn) && ColumnExists(SbmDbDfn.ColumnIdx.Address_NextVisitOn))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_NextVisitOn, aliasAddress));
// Common Properties
if (columns.HasId((int)SbmAddress.Column.Notes))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Notes, aliasAddress));
if (columns.HasId((int)SbmAddress.Column.Status) || columns.HasId((int)SbmAddress.Column.Status_Desc) || columns.HasId((int)SbmAddress.Column.Status_Ind))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_Status, aliasAddress));
if (columns.HasId((int)SbmAddress.Column.CreateOn_Date))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_CreateOn, aliasAddress));
if (columns.HasId((int)SbmAddress.Column.UpdateOn_Date))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Address_UpdateOn, aliasAddress));
//---------------------------------------------------------------
// Populate filter.
query.Filters.AddRange(GetAddressQueryFilter(prm));
if (prm.IncludedIds.Count != 1)
{
// Configure sort sequence.
foreach (String sortColumn in GetAddressSortColumns(prm))
query.OrderBy.Add(sortColumn);
}
//---------------------------------------------------------------
//return new DbResultSet_DataTableReader(db, query.BuildQuery());
return DbResultSet_DataReader.ExecuteQuery(db, query.BuildQuery(prm.ResultsPaging));
}
//-------------------------------------------------------------------
}
//=======================================================================
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,520 @@
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
{
//=======================================================================
partial class SbmAccountMgr_Dbas
{
//*******************************************************************
// S y s P a r a m
//*******************************************************************
// Utilities.
private List<StringPair> GetLogProperties(SbmSysParam sysParam)
{
return new List<StringPair>()
{
new StringPair("Id",SysId.ToString(sysParam.Id)),
new StringPair("Status",sysParam.StatusCode)
};
}
//-------------------------------------------------------------------
// Create SysParam.
public override SbmSysParam CreateSysParam(Sbm.SysParamCategory sysparamCategory, String sysparamName)
{
return new SbmSysParam_Dbas(UserContext, null, sysparamCategory, sysparamName, 0);
}
private SbmSysParam_Dbas CreateSysParam(SysParam_Db dbSysParam)
{
ClearErrorState();
SbmSysParam_Dbas sysparam = new SbmSysParam_Dbas(UserContext, new SysId(dbSysParam._Id), (Sbm.SysParamCategory)dbSysParam._Cat, dbSysParam._Name, (ushort)dbSysParam._Flags);
PopulateFrom(dbSysParam, sysparam);
return sysparam;
}
//-------------------------------------------------------------------
// Get SysParam.
public override SbmSysParam GetSysParam(SbmSysParam.Params prm)
{
return GetSysParam(GetSysParamQueryFilter(prm).Concat(" AND ", "(", ")"));
}
private SbmSysParam GetSysParam(String filter)
{
ClearErrorState();
long count = GetSysParamCount(filter);
if (count == 0) return null;
if (count != 1)
{
SetErrorState("Multiple Sys Params found");
return null;
}
SbmSysParam sysParam = null;
// Query data.
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
dbConnection.Open();
SysParam_Db dbSysParam = new SysParam_Db(DbInfo);
dbSysParam.PopulateFrom(dbCommand, aliasSysParam, filter);
sysParam = CreateSysParam(dbSysParam);
}
catch (Exception exc)
{
SetErrorState("Database query exception");
SaLogger.Warn(GetType().Name + ".GetSysParam\n\tQuery: " + dbCommand.CommandText + "\n\tException: " + exc.Message);
}
}
return sysParam;
}
//-------------------------------------------------------------------
// Validate SysParam.
public override bool IsValidSysParamData(SbmSysParam.Data data, SbmSysParam.ErrField errField)
{
ClearErrorState();
if (!base.IsValidSysParamData(data, errField)) return false;
return true;
}
//-------------------------------------------------------------------
// Insert SysParam.
public override bool InsertSysParam(SbmSysParam sysparam, DbUpdateInfo dbUpdateInfo)
{
String fn = GetType().Name + ".InsertSysParam";
ClearErrorState();
if (!IsValidSysParam(sysparam)) return false;
if (SysId.IsValid(sysparam.Id)) return SetErrorState(ErrorMessage.ValiditemId);
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
dbConnection.Open();
SysParam_Db dbSysParam = new SysParam_Db(DbInfo);
PopulateTo(dbSysParam, sysparam, dbUpdateInfo);
if (SysParam_Db.FieldsNonId.Contains("Id"))
{
// Generate next Id.
dbSysParam._Id = SysId.ToInt(db.GetNextId("SysParam", dbUpdateInfo));
}
dbSysParam.ExecuteInsertCommand(dbCommand);
sysparam.Id = new SysId(dbSysParam._Id);
sysparam.Changed = false;
if (DebugMode) SaLogger.Debug(fn + " Inserted. " + GetLogProperties(sysparam).Concat(": ").Concat("", "\n\t"));
}
catch (Exception exc) { SetErrorState(exc.Message); }
}
return !HasErrorState();
}
//-------------------------------------------------------------------
// Update SysParam.
public override bool UpdateSysParam(SbmSysParam sysparam, DbUpdateInfo dbUpdateInfo)
{
String fn = GetType().Name + ".UpdateSysParam";
ClearErrorState();
if (!IsValidSysParam(sysparam)) return false;
if (!SysId.IsValid(sysparam.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
if (!sysparam.Changed)
{
if (DebugMode) SaLogger.Debug(fn + " Data not changed. " + GetLogProperties(sysparam).Concat(": ").Concat("", "\n\t"));
return true;
}
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
// Retrieve SysParam.
dbConnection.Open();
SysParam_Db dbSysParam = new SysParam_Db(DbInfo);
dbSysParam.PopulateFrom(dbCommand, aliasSysParam, "Id=" + SysId.ToString(sysparam.Id));
SbmUpdateLogItemMonitor_SysParam updateLogMonitor = new SbmUpdateLogItemMonitor_SysParam(UserContext, CreateSysParam(dbSysParam));
// Update properties.
PopulateTo(dbSysParam, sysparam, dbUpdateInfo);
dbSysParam.ExecuteUpdateCommand(dbCommand);
sysparam.Changed = false;
if (DebugMode) SaLogger.Debug(fn + " Updated. " + GetLogProperties(sysparam).Concat(": ").Concat("", "\n\t"));
// Record updates.
updateLogMonitor.RecordUpdatedValues(sysparam);
updateLogMonitor.LogUpdates();
}
catch (Exception exc) { SetErrorState(exc.Message); }
}
return !HasErrorState();
}
//-------------------------------------------------------------------
// Delete SysParam.
public override bool SysParamCanBeDeleted(SbmSysParam sysparam)
{
ClearErrorState();
if (!base.SysParamCanBeDeleted(sysparam)) return false;
return true;
}
public override bool DeleteSysParam(SbmSysParam sysparam, DbUpdateInfo dbUpdateInfo)
{
String fn = GetType().Name + ".DeleteSysParam";
ClearErrorState();
if (!SysParamCanBeDeleted(sysparam)) return false;
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
// Retrieve SysParam.
dbConnection.Open();
SysParam_Db dbSysParam = new SysParam_Db(DbInfo);
dbSysParam.PopulateFrom(dbCommand, aliasSysParam, "Id=" + sysparam.Id.ToString());
// Delete SysParam.
dbCommand.CommandType = System.Data.CommandType.Text;
dbCommand.CommandText = "DELETE FROM " + SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SysParam) + " WHERE Id=" + SysId.ToString(sysparam.Id) + ";";
dbCommand.ExecuteNonQuery();
sysparam.Changed = false;
if (DebugMode) SaLogger.Debug(fn + " Deleted. " + GetLogProperties(sysparam).Concat(": ").Concat("", "\n\t"));
}
catch (Exception exc) { SetErrorState(exc.Message); }
}
return !HasErrorState();
}
//-------------------------------------------------------------------
// Copy data properties to and from database.
private void PopulateTo(SysParam_Db dbSysParam, SbmSysParam sysparam, DbUpdateInfo dbUpdateInfo)
{
dbSysParam._Id = sysparam.Id.ToInt();
dbSysParam._Cat = (short)sysparam.Category;
dbSysParam._Name = sysparam.Name;
dbSysParam._Value = sysparam.Value;
dbSysParam._AffIdOwner = sysparam.AffiliateIdOwner.ToInt();
dbSysParam._AffIdTarget = sysparam.AffiliateIdTarget.ToInt();
dbSysParam._AssocId = sysparam.AssociationId.ToInt();
// Common properties.
//dbSysParam._Notes = sysparam.Notes;
dbSysParam._Status = SacsSystem.GetStatusCode(sysparam.Status);
dbSysParam._Flags = (short)sysparam.Flags;
if (!SysId.IsValid(sysparam.Id))
{
dbSysParam._CreateOn = DateTime.UtcNow;
dbSysParam._CreateBy = dbUpdateInfo.UserId.ToInt();
dbSysParam._CreateHost = dbUpdateInfo.Host;
}
dbSysParam._UpdateOn = DateTime.UtcNow;
dbSysParam._UpdateBy = dbUpdateInfo.UserId.ToInt();
dbSysParam._UpdateHost = dbUpdateInfo.Host;
}
private void PopulateFrom(SysParam_Db dbSysParam, SbmSysParam sysparam)
{
//sysparam.Id = new SysId(dbSysParam._Id);
sysparam.Category = (Sbm.SysParamCategory)dbSysParam._Cat;
sysparam.Name = dbSysParam._Name;
sysparam.Value = dbSysParam._Value;
sysparam.AffiliateIdOwner = new SysId(dbSysParam._AffIdOwner);
sysparam.AffiliateIdTarget = new SysId(dbSysParam._AffIdTarget);
sysparam.AssociationId = new SysId(dbSysParam._AssocId);
// Common properties.
//sysparam.Notes = dbSysParam._Notes;
sysparam.Status = SacsSystem.GetStatusForCode(dbSysParam._Status);
sysparam.SetCreateStamp(dbSysParam._CreateOn, new SysId(dbSysParam._CreateBy), dbSysParam._CreateHost);
sysparam.SetUpdateStamp(dbSysParam._UpdateOn, new SysId(dbSysParam._UpdateBy), dbSysParam._UpdateHost);
sysparam.AcceptChanges();
}
//-------------------------------------------------------------------
// SysParam column definitions.
private static readonly String aliasSysParam = "aSysPrm";
private void SetSysParamColDfn
(ColumnDfn col, String caption, int width, SbmDbDfn.ColumnIdx dbCol,
ColumnAlignment align = ColumnAlignment.Default, DataValue.DataType dataType = DataValue.DataType.String,
String alias = "", String prefix = "")
{
if (String.IsNullOrEmpty(alias) && SbmDbDfn.GetTableForColumn(dbCol) == SbmDbDfn.TableIdx.SysParam)
alias = aliasSysParam;
col.Set(caption, width, (int)dbCol, prefix + SbmDbDfn.GetColumnName(dbCol, false), SbmDbDfn.GetColumnNameQual(dbCol, alias), dataType, align);
if (dataType == DataValue.DataType.String && dbCol != SbmDbDfn.ColumnIdx.Unknown)
col.MaxLength = (int)SbmDbDfn.GetColTextLen(dbCol);
}
//-------------------------------------------------------------------
// Getting prmSysParam column definition.
public override ColumnDfn GetSysParamColumnDfn(SbmSysParam.Column columnId, string caption = "", int width = 0)
{
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
switch (columnId)
{
case SbmSysParam.Column.Pos:
SetSysParamColDfn(columnDfn, "Pos", 45, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Right);
columnDfn.SortMode = ColumnDfn.ColumnSortMode.Off;
columnDfn.ReadOnly = true;
columnDfn.Resizable = false;
break;
case SbmSysParam.Column.Id:
SetSysParamColDfn(columnDfn, "Id", 60, SbmDbDfn.ColumnIdx.SysParam_Id, ColumnAlignment.Right, DataValue.DataType.Long);
columnDfn.ReadOnly = true;
break;
// SysParam Properties.
case SbmSysParam.Column.Category:
SetSysParamColDfn(columnDfn, "SysParam Category", 80, SbmDbDfn.ColumnIdx.SysParam_Cat);
break;
case SbmSysParam.Column.Name:
SetSysParamColDfn(columnDfn, "Name", 100, SbmDbDfn.ColumnIdx.SysParam_Name);
break;
case SbmSysParam.Column.Value:
SetSysParamColDfn(columnDfn, "Value", 100, SbmDbDfn.ColumnIdx.SysParam_Value);
break;
// Derived properties.
case SbmSysParam.Column.AffIdOwner:
SetSysParamColDfn(columnDfn, "Affiliate Id Owner", 80, SbmDbDfn.ColumnIdx.SysParam_AffIdOwner, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.ReadOnly = true;
break;
case SbmSysParam.Column.AffIdTarget:
SetSysParamColDfn(columnDfn, "Affiliate Id Target", 80, SbmDbDfn.ColumnIdx.SysParam_AffIdTarget, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.ReadOnly = true;
break;
case SbmSysParam.Column.AssocId:
SetSysParamColDfn(columnDfn, "Assoc Id", 80, SbmDbDfn.ColumnIdx.SysParam_AssocId, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.ReadOnly = true;
break;
// Common properties.
/*case SbmSysParam.Column.Notes:
SetSysParamColDfn(columnDfn, "Notes", 240, SbmDbDfn.ColumnIdx.SysParam_Notes);
break;*/
case SbmSysParam.Column.Status:
SetSysParamColDfn(columnDfn, "Status", 50, SbmDbDfn.ColumnIdx.SysParam_Status, ColumnAlignment.Center);
break;
case SbmSysParam.Column.Status_Desc:
SetSysParamColDfn(columnDfn, "Status", 50, SbmDbDfn.ColumnIdx.SysParam_Status, ColumnAlignment.Center);
break;
case SbmSysParam.Column.Status_Ind:
SetSysParamColDfn(columnDfn, "Status", 50, SbmDbDfn.ColumnIdx.SysParam_Status, ColumnAlignment.Center, DataValue.DataType.TriState);
columnDfn.TriStateFormat = ColumnTriStateFormat.Lights;
break;
case SbmSysParam.Column.CreateOn_Date:
SetSysParamColDfn(columnDfn, "Created", 65, SbmDbDfn.ColumnIdx.SysParam_CreateOn, ColumnAlignment.Center, DataValue.DataType.Date);
columnDfn.ReadOnly = true;
break;
case SbmSysParam.Column.UpdateOn_Date:
SetSysParamColDfn(columnDfn, "Updated", 65, SbmDbDfn.ColumnIdx.SysParam_UpdateOn, ColumnAlignment.Center, DataValue.DataType.Date);
columnDfn.ReadOnly = true;
break;
}
if (!String.IsNullOrEmpty(caption))
columnDfn.Caption = caption;
if (width > 0)
columnDfn.Width = width;
return columnDfn;
}
//-------------------------------------------------------------------
// SysParam query filter.
public override List<string> GetSysParamQueryFilter(SbmSysParam.Params prm)
{
List<String> filter = new List<String>();
// Param Id.
String includedIds = prm.IncludedIds.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(",");
if (!excludedIds.IsEmpty())
filter.Add(colSysParam_Id + " NOT IN (" + excludedIds + ")");
// Category.
String colSysParam_Cat = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_Cat, aliasSysParam);
if (prm.Category > 0)
filter.Add(colSysParam_Cat + " = '" + ((int)prm.Category).ToString() + "'");
// Name.
String colSysParam_Name = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_Name, aliasSysParam);
if (!StringUtil.IsEmpty(prm.Name))
filter.Add(colSysParam_Name + " = '" + DbQuery.FormatForCondition(prm.Name) + "'");
if (!StringUtil.IsEmpty(prm.NamePartial))
filter.Add(colSysParam_Name + " LIKE '%" + DbQuery.FormatForLike(prm.NamePartial) + "%'");
// Affiliate Owner Id.
String colSysParam_AffIdOwner = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_AffIdOwner, aliasSysParam);
if (SysId.IsValid(prm.AffIdOwner))
filter.Add(colSysParam_AffIdOwner + " = '" + DbQuery.FormatForCondition(SysId.ToString(prm.AffIdOwner)) + "'");
// Affiliate Target Id.
String colSysParam_AffIdTarget = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_AffIdTarget, aliasSysParam);
if (SysId.IsValid(prm.AssocId))
filter.Add(colSysParam_AffIdTarget + " = '" + DbQuery.FormatForCondition(SysId.ToString(prm.AssocId)) + "'");
// Association Id.
String colSysParam_AssocId = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_AssocId, aliasSysParam);
if (SysId.IsValid(prm.AssocId))
filter.Add(colSysParam_AssocId + " = '" + DbQuery.FormatForCondition(SysId.ToString(prm.AssocId)) + "'");
// Common Properties
/* Notes.
String colSysParam_Notes = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_Notes, aliasSysParam);
if (!StringUtil.IsEmpty(prm.NotesPartial))
filter.Add(colSysParam_Notes + " LIKE '%" + DbQuery.FormatForLike(prm.NotesPartial) + "%'");
// Status.
String colSysParam_Status = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_Status, aliasSysParam);
if (prm.StatusCat == SbmSysParam.StatusCat.ActiveOnly)
filter.Add(colSysParam_Status + " = '" + StatusActive + "'");*/
if (filter.Count < 1 && prm.IncludeDefaultFilter) filter.Add("1=1");
return filter;
}
// SysParam sort columns.
public List<String> GetSysParamSortColumns(SbmSysParam.Params prm)
{
// Sort sequence:
List<String> sortColumnNames = new List<String>();
foreach (var columnDfn in prm.SortColumns)
{
// Need to ensure correct alias used for SysParam columns in case of conflict.
String sortCol = String.Empty;
if (SbmDbDfn.GetTableForColumn((SbmDbDfn.ColumnIdx)columnDfn.DbColumn) == SbmDbDfn.TableIdx.SysParam)
{
sortCol = SbmDbDfn.GetColumnNameQual((SbmDbDfn.ColumnIdx)columnDfn.DbColumn, aliasSysParam);
}
else
{
sortCol = columnDfn.DataName;
if (!StringUtil.IsEmpty(columnDfn.SortDataName))
sortCol = columnDfn.SortDataName;
}
if (!sortCol.IsEmpty())
{
DbOrderByNullMode orderByNullMode = DbOrderByNullMode.Default; // eSaOrderByDemoteNulls, eSaOrderByPromoteNulls
sortColumnNames.Add(DbQuery.FormatForOrderBy(sortCol, columnDfn.SortAscending, orderByNullMode).Concat(", "));
}
}
sortColumnNames.RemoveBlanks();
if (sortColumnNames.IsEmpty())
{
// Default sort columns:
sortColumnNames.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_AffIdOwner, aliasSysParam) + " ASC");
}
return sortColumnNames;
}
//-------------------------------------------------------------------
// SysParam count.
private long GetSysParamCount(String filter)
{
ClearErrorState();
return db.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SysParam) + " As " + aliasSysParam, filter);
}
public override long GetSysParamCount(SbmSysParam.Params prm)
{
ClearErrorState();
return GetSysParamCount(GetSysParamQueryFilter(prm).Concat(" AND ", "(", ")"));
}
//-------------------------------------------------------------------
// SysParam list.
public override List<SbmSysParam> GetSysParamList(SbmSysParam.Params prm)
{
List<SbmSysParam> prmSysParams = new List<SbmSysParam>();
DbQuery qry = new DbQuery(db.DbmsType);
qry.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SysParam), aliasSysParam);
SysParam_Db dbSysParam = new SysParam_Db(DbInfo);
qry.Columns.AddRange(dbSysParam.ExistingColumnNames);
qry.Filters.AddRange(GetSysParamQueryFilter(prm));
qry.OrderBy.AddRange(GetSysParamSortColumns(prm));
// Query data.
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
dbConnection.Open();
dbCommand.CommandText = qry.BuildQuery(prm.ResultsPaging);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
while (dbDataReader.Read())
{
dbSysParam = new SysParam_Db(DbInfo);
dbSysParam.PopulateFrom(dbDataReader);
prmSysParams.Add(CreateSysParam(dbSysParam));
}
}
}
catch (Exception exc)
{
SaLogger.Warn(GetType().Name + ".GetSysParamList\n\tQuery: " + dbCommand.CommandText + "\n\tException: " + exc.Message);
}
}
return prmSysParams;
}
//-------------------------------------------------------------------
// SysParam query execution.
public override DbResultSet ExecuteSysParamQuery(List<ColumnDfn> columns, SbmSysParam.Params prm)
{
ClearErrorState();
//---------------------------------------------------------------------
// Construct query.
DbQuery query = new DbQuery(db.DbmsType);
query.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SysParam), aliasSysParam);
// SysParam Properties - add columns as defined in query list.
if (columns.HasId((int)SbmSysParam.Column.Id))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_Id, aliasSysParam));
if (columns.HasId((int)SbmSysParam.Column.Category))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_Cat, aliasSysParam));
if (columns.HasId((int)SbmSysParam.Column.Name))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_Name, aliasSysParam));
if (columns.HasId((int)SbmSysParam.Column.Value))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_Value, aliasSysParam));
if (columns.HasId((int)SbmSysParam.Column.AffIdOwner))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_AffIdOwner, aliasSysParam));
if (columns.HasId((int)SbmSysParam.Column.AffIdTarget))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_AffIdTarget, aliasSysParam));
if (columns.HasId((int)SbmSysParam.Column.AssocId))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_AssocId, aliasSysParam));
// Common Properties
/*if (columns.HasId((int)SbmSysParam.Column.Notes))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_Notes, aliasSysParam));*/
if (columns.HasId((int)SbmSysParam.Column.Status) || columns.HasId((int)SbmSysParam.Column.Status_Desc) || columns.HasId((int)SbmSysParam.Column.Status_Ind))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_Status, aliasSysParam));
if (columns.HasId((int)SbmSysParam.Column.CreateOn_Date))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_CreateOn, aliasSysParam));
if (columns.HasId((int)SbmSysParam.Column.UpdateOn_Date))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_UpdateOn, aliasSysParam));
//---------------------------------------------------------------------
// Populate filter.
query.Filters.AddRange(GetSysParamQueryFilter(prm));
if (prm.IncludedIds.Count != 1)
{
// Configure sort sequence.
foreach (String sortColumn in GetSysParamSortColumns(prm))
query.OrderBy.Add(sortColumn);
}
//---------------------------------------------------------------------
//return new DbResultSet_DataTableReader(db, query.BuildQuery());
return DbResultSet_DataReader.ExecuteQuery(db, query.BuildQuery(prm.ResultsPaging));
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,602 @@
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.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
{
//=======================================================================
partial class SbmAccountMgr_Dbas
{
//*******************************************************************
// S y s t e m A c c o u n t s
//*******************************************************************
// Utilities.
private List<StringPair> GetLogProperties(SbmSystemAccount systemAccount)
{
return new List<StringPair>()
{
new StringPair("Id",SysId.ToString(systemAccount.Id)),
new StringPair("Status",systemAccount.StatusCode)
};
}
//-------------------------------------------------------------------
// Create SystemAccount.
public override SbmSystemAccount CreateSystemAccount(Sbm.SystemAccountType systemAccountType, SysId interfaceId, SysId assocId)
{
ClearErrorState();
SbmSystemAccount systemAccount = null;
if (SysId.IsValid(AffiliateId_Owner))
{
if (systemAccountType > 0)
systemAccount = new SbmSystemAccount_Dbas(UserContext, new SysId(), AffiliateId_Owner, systemAccountType, interfaceId, assocId, 0);
else SetErrorState("Invalid account type");
}
else SetErrorState("Owner not selected");
return systemAccount;
}
private SbmSystemAccount_Dbas CreateSystemAccount(SystemAccount_Db dbSystemAccount)
{
ClearErrorState();
SbmSystemAccount_Dbas systemAccount = new SbmSystemAccount_Dbas(UserContext, new SysId(dbSystemAccount._Id), new SysId(dbSystemAccount._AffIdOwner), (Sbm.SystemAccountType)dbSystemAccount._Type, new SysId(dbSystemAccount._InterfaceId), new SysId(dbSystemAccount._AssocId), (ushort)dbSystemAccount._Flags);
PopulateFrom(dbSystemAccount, systemAccount);
return systemAccount;
}
//-------------------------------------------------------------------
// Get SystemAccount.
public override SbmSystemAccount GetSystemAccount(SbmSystemAccount.Params prm)
{
return GetSystemAccount(GetSystemAccountQueryFilter(prm).Concat(" AND ", "(", ")"));
}
private SbmSystemAccount GetSystemAccount(String filter)
{
ClearErrorState();
long count = GetSystemAccountCount(filter);
if (count == 0) return null;
if (count != 1)
{
SetErrorState("Multiple System Accounts found");
return null;
}
SbmSystemAccount systemAccount = null;
// Query data.
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
dbConnection.Open();
SystemAccount_Db dbSystemAccount = new SystemAccount_Db(DbInfo);
dbSystemAccount.PopulateFrom(dbCommand, aliasSystemAccount, filter);
systemAccount = CreateSystemAccount(dbSystemAccount);
}
catch (Exception exc)
{
SetErrorState("Database query exception");
SaLogger.Warn(GetType().Name + ".GetSystemAccount\n\tQuery: " + dbCommand.CommandText + "\n\tException: " + exc.Message);
}
}
return systemAccount;
}
//-------------------------------------------------------------------
// Validate SystemAccount.
public override bool IsValidSystemAccountData(SbmSystemAccount.Data data, SbmSystemAccount.ErrField errField)
{
ClearErrorState();
if (!base.IsValidSystemAccountData(data, errField)) return false;
return true;
}
//-------------------------------------------------------------------
// Insert SystemAccount.
public override bool InsertSystemAccount(SbmSystemAccount systemAccount, DbUpdateInfo dbUpdateInfo)
{
String fn = GetType().Name + ".InsertSystemAccount";
ClearErrorState();
if (!IsValidSystemAccount(systemAccount)) return false;
if (SysId.IsValid(systemAccount.Id)) return SetErrorState(ErrorMessage.ValiditemId);
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
dbConnection.Open();
SystemAccount_Db dbSystemAccount = new SystemAccount_Db(DbInfo);
PopulateTo(dbSystemAccount, systemAccount, dbUpdateInfo);
if (SystemAccount_Db.FieldsNonId.Contains("Id"))
{
// Generate next Id.
dbSystemAccount._Id = SysId.ToInt(db.GetNextId("SystemAccount", dbUpdateInfo));
}
dbSystemAccount.ExecuteInsertCommand(dbCommand);
systemAccount.Id = new SysId(dbSystemAccount._Id);
systemAccount.Changed = false;
if (DebugMode) SaLogger.Debug(fn + " Inserted. " + GetLogProperties(systemAccount).Concat(": ").Concat("", "\n\t"));
}
catch (Exception exc) { SetErrorState(exc.Message); }
}
return !HasErrorState();
}
//-------------------------------------------------------------------
// Update SystemAccount.
public override bool UpdateSystemAccount(SbmSystemAccount systemAccount, DbUpdateInfo dbUpdateInfo)
{
String fn = GetType().Name + ".UpdateSystemAccount";
ClearErrorState();
if (!IsValidSystemAccount(systemAccount)) return false;
if (!SysId.IsValid(systemAccount.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
if (!systemAccount.Changed)
{
if (DebugMode) SaLogger.Debug(fn + " Data not changed. " + GetLogProperties(systemAccount).Concat(": ").Concat("", "\n\t"));
return true;
}
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
// Retrieve SystemAccount.
dbConnection.Open();
SystemAccount_Db dbSystemAccount = new SystemAccount_Db(DbInfo);
dbSystemAccount.PopulateFrom(dbCommand, aliasSystemAccount, "Id=" + SysId.ToString(systemAccount.Id));
//SbmUpdateLogItemMonitor_SystemAccount updateLogMonitor = new SbmUpdateLogItemMonitor_SystemAccount(SbmGlobals.SessionProfile.SessionContext, CreateSystemAccount(dbSystemAccount), dbUpdateInfo);
// Update properties.
PopulateTo(dbSystemAccount, systemAccount, dbUpdateInfo);
dbSystemAccount.ExecuteUpdateCommand(dbCommand);
systemAccount.Changed = false;
if (DebugMode) SaLogger.Debug(fn + " Updated. " + GetLogProperties(systemAccount).Concat(": ").Concat("", "\n\t"));
// Record updates.
/*updateLogMonitor.RecordUpdatedValues(systemAccount);
updateLogMonitor.LogUpdates();*/
}
catch (Exception exc) { SetErrorState(exc.Message); }
}
return !HasErrorState();
}
//-------------------------------------------------------------------
// Delete SystemAccount.
public override bool SystemAccountCanBeDeleted(SbmSystemAccount systemAccount)
{
ClearErrorState();
if (!base.SystemAccountCanBeDeleted(systemAccount)) return false;
return true;
}
public override bool DeleteSystemAccount(SbmSystemAccount systemAccount, DbUpdateInfo dbUpdateInfo)
{
String fn = GetType().Name + ".DeleteSystemAccount";
ClearErrorState();
if (!SystemAccountCanBeDeleted(systemAccount)) return false;
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
// Retrieve SystemAccount.
dbConnection.Open();
SystemAccount_Db dbSystemAccount = new SystemAccount_Db(DbInfo);
dbSystemAccount.PopulateFrom(dbCommand, aliasSystemAccount, "Id=" + systemAccount.Id.ToString());
// Delete SystemAccount.
dbCommand.CommandType = System.Data.CommandType.Text;
dbCommand.CommandText = "DELETE FROM " + SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SystemAccount) + " WHERE Id=" + SysId.ToString(systemAccount.Id) + ";";
dbCommand.ExecuteNonQuery();
systemAccount.Changed = false;
if (DebugMode) SaLogger.Debug(fn + " Deleted. " + GetLogProperties(systemAccount).Concat(": ").Concat("", "\n\t"));
}
catch (Exception exc) { SetErrorState(exc.Message); }
}
return !HasErrorState();
}
//-------------------------------------------------------------------
// Copy data properties to and from database.
private void PopulateTo(SystemAccount_Db dbSystemAccount, SbmSystemAccount systemAccount, DbUpdateInfo dbUpdateInfo)
{
dbSystemAccount._Id = systemAccount.Id.ToInt();
dbSystemAccount._AffIdOwner = systemAccount.AffiliateIdOwner.ToInt();
dbSystemAccount._Type = (short)systemAccount.SystemAccountType;
dbSystemAccount._InterfaceId = systemAccount.InterfaceId.ToInt();
dbSystemAccount._AssocId = systemAccount.AssociationId.ToInt();
dbSystemAccount._Code = systemAccount.Code;
dbSystemAccount._Name = systemAccount.Name;
dbSystemAccount._AuthCodeEnc = systemAccount.AuthCodeEnc;
// Common properties.
dbSystemAccount._Notes = systemAccount.Notes;
dbSystemAccount._Status = SacsSystem.GetStatusCode(systemAccount.Status);
dbSystemAccount._Flags = (short)systemAccount.Flags;
if (!SysId.IsValid(systemAccount.Id))
{
dbSystemAccount._CreateOn = DateTime.UtcNow;
dbSystemAccount._CreateBy = dbUpdateInfo.UserId.ToInt();
dbSystemAccount._CreateHost = dbUpdateInfo.Host;
}
dbSystemAccount._UpdateOn = DateTime.UtcNow;
dbSystemAccount._UpdateBy = dbUpdateInfo.UserId.ToInt();
dbSystemAccount._UpdateHost = dbUpdateInfo.Host;
}
private void PopulateFrom(SystemAccount_Db dbSystemAccount, SbmSystemAccount systemAccount)
{
//systemAccount.Id = new SysId(dbSystemAccount._Id);
systemAccount.AffiliateIdOwner = new SysId(dbSystemAccount._AffIdOwner);
systemAccount.SystemAccountType = (Sbm.SystemAccountType)dbSystemAccount._Type;
systemAccount.InterfaceId = new SysId(dbSystemAccount._InterfaceId);
systemAccount.AssociationId = new SysId(dbSystemAccount._AssocId);
systemAccount.Code = dbSystemAccount._Code;
systemAccount.Name = dbSystemAccount._Name;
systemAccount.AuthCodeEnc = dbSystemAccount._AuthCodeEnc;
// Common properties.
systemAccount.Notes = dbSystemAccount._Notes;
systemAccount.Status = SacsSystem.GetStatusForCode(dbSystemAccount._Status);
systemAccount.SetCreateStamp(dbSystemAccount._CreateOn, new SysId(dbSystemAccount._CreateBy), dbSystemAccount._CreateHost);
systemAccount.SetUpdateStamp(dbSystemAccount._UpdateOn, new SysId(dbSystemAccount._UpdateBy), dbSystemAccount._UpdateHost);
systemAccount.AcceptChanges();
}
//-------------------------------------------------------------------
// Table and column aliases.
private static readonly String aliasSystemAccount = "aSysAcc";
private static readonly String aliasSystemAccount_SysUser = "aSysAccSysUsr";
private static readonly String aliasSystemAccount_SysAccUser = "aSysAcc_SysAccUsr";
private static readonly String aliasSystemAccount_Association = "aSysAccAss";
private static readonly String prefixSystemAccount_Association = "SysAccAss_";
private static readonly String aliasSystemAccount_Interface = "aSysAccInt";
private static readonly String prefixSystemAccount_Interface = "SysAccInt_";
private static readonly String colnameSysAcc_UserCount = "SysAccUsrCount";
//-------------------------------------------------------------------
// Setting SystemAccount column definitions.
private void SetSystemAccountColDfn
(ColumnDfn col, String caption, int width, SbmDbDfn.ColumnIdx dbCol,
ColumnAlignment align = ColumnAlignment.Default, DataValue.DataType dataType = DataValue.DataType.String,
String alias = "", String prefix = "")
{
if (String.IsNullOrEmpty(alias) && SbmDbDfn.GetTableForColumn(dbCol) == SbmDbDfn.TableIdx.SystemAccount)
alias = aliasSystemAccount;
col.Set(caption, width, (int)dbCol, prefix + SbmDbDfn.GetColumnName(dbCol, false), SbmDbDfn.GetColumnNameQual(dbCol, alias), dataType, align);
if (dataType == DataValue.DataType.String && dbCol != SbmDbDfn.ColumnIdx.Unknown)
col.MaxLength = (int)SbmDbDfn.GetColTextLen(dbCol);
}
//-------------------------------------------------------------------
// Getting SystemAccount column definition.
public override ColumnDfn GetSystemAccountColumnDfn(SbmSystemAccount.Column columnId, string caption = "", int width = 0)
{
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
switch (columnId)
{
case SbmSystemAccount.Column.Pos:
SetSystemAccountColDfn(columnDfn, "Pos", 45, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Right);
columnDfn.SortMode = ColumnDfn.ColumnSortMode.Off;
columnDfn.ReadOnly = true;
columnDfn.Resizable = false;
break;
case SbmSystemAccount.Column.Id:
SetSystemAccountColDfn(columnDfn, "Id", 60, SbmDbDfn.ColumnIdx.SystemAccount_Id, ColumnAlignment.Right, DataValue.DataType.Long);
columnDfn.ReadOnly = true;
break;
// SystemAccount Properties.
case SbmSystemAccount.Column.Code:
SetSystemAccountColDfn(columnDfn, "Code", 65, SbmDbDfn.ColumnIdx.SystemAccount_Code);
break;
case SbmSystemAccount.Column.Name:
SetSystemAccountColDfn(columnDfn, "Name", 160, SbmDbDfn.ColumnIdx.SystemAccount_Name);
break;
case SbmSystemAccount.Column.UserCount:
SetSystemAccountColDfn(columnDfn, "Users", 60, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.DataName = colnameSysAcc_UserCount;
break;
case SbmSystemAccount.Column.Interface_Code:
SetSystemAccountColDfn(columnDfn, "Interface code", 80, SbmDbDfn.ColumnIdx.Interface_Code, ColumnAlignment.Center, DataValue.DataType.String, aliasSystemAccount_Interface, prefixSystemAccount_Interface);
break;
case SbmSystemAccount.Column.Interface_Caption:
SetSystemAccountColDfn(columnDfn, "Interface caption", 120, SbmDbDfn.ColumnIdx.Interface_Caption, ColumnAlignment.Left, DataValue.DataType.String, aliasSystemAccount_Interface, prefixSystemAccount_Interface);
break;
//-----------------------------------------------------------------
// Association details:
case SbmSystemAccount.Column.Assoc_Status_Desc:
SetSystemAccountColDfn(columnDfn, "Assoc Stat", 50, SbmDbDfn.ColumnIdx.Association_Status);
break;
case SbmSystemAccount.Column.Assoc_Status_Ind:
SetSystemAccountColDfn(columnDfn, "Assoc Stat", 70, SbmDbDfn.ColumnIdx.Association_Status, ColumnAlignment.Center, DataValue.DataType.TriState, aliasSystemAccount_Association, prefixSystemAccount_Association);
columnDfn.TriStateFormat = ColumnTriStateFormat.Lights;
break;
// Common properties.
case SbmSystemAccount.Column.Notes:
SetSystemAccountColDfn(columnDfn, "Notes", 200, SbmDbDfn.ColumnIdx.SystemAccount_Notes);
break;
case SbmSystemAccount.Column.Flag:
SetSystemAccountColDfn(columnDfn, "Flags", 40, SbmDbDfn.ColumnIdx.SystemAccount_Flags, ColumnAlignment.Center, DataValue.DataType.Long);
break;
case SbmSystemAccount.Column.Status:
SetSystemAccountColDfn(columnDfn, "Status", 50, SbmDbDfn.ColumnIdx.SystemAccount_Status, ColumnAlignment.Center);
break;
case SbmSystemAccount.Column.Status_Desc:
SetSystemAccountColDfn(columnDfn, "Status", 50, SbmDbDfn.ColumnIdx.SystemAccount_Status);
break;
case SbmSystemAccount.Column.Status_Ind:
SetSystemAccountColDfn(columnDfn, "Status", 50, SbmDbDfn.ColumnIdx.SystemAccount_Status, ColumnAlignment.Center, DataValue.DataType.TriState);
columnDfn.TriStateFormat = ColumnTriStateFormat.Lights;
break;
case SbmSystemAccount.Column.CreateOn_Date:
SetSystemAccountColDfn(columnDfn, "Created", 65, SbmDbDfn.ColumnIdx.SystemAccount_CreateOn, ColumnAlignment.Center, DataValue.DataType.Date);
columnDfn.DateFormat = "d-MMM-yy";
columnDfn.ReadOnly = true;
break;
case SbmSystemAccount.Column.UpdateOn_Date:
SetSystemAccountColDfn(columnDfn, "Updated", 65, SbmDbDfn.ColumnIdx.SystemAccount_UpdateOn, ColumnAlignment.Center, DataValue.DataType.Date);
columnDfn.DateFormat = "d-MMM-yy";
columnDfn.ReadOnly = true;
break;
}
if (!String.IsNullOrEmpty(caption))
columnDfn.Caption = caption;
if (width > 0)
columnDfn.Width = width;
return columnDfn;
}
//-------------------------------------------------------------------
// SystemAccount query filter.
public override List<string> GetSystemAccountQueryFilter(SbmSystemAccount.Params prm)
{
List<String> filter = new List<String>();
// SystemAccount Id.
String includedIds = prm.IncludedIds.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(",");
if (!excludedIds.IsEmpty())
filter.Add(colSystemAccount_Id + " NOT IN (" + excludedIds + ")");
//--------------------------------------------------------------- -
// Affiliate Owner.
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccount_AffIdOwner, aliasSystemAccount) + "=" + AffiliateId_Owner.ToString());
// Interface.
if (SysId.IsValid(prm.InterfaceId))
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccount_InterfaceId, aliasSystemAccount) + "=" + prm.InterfaceId.ToString());
// Association.
if (SysId.IsValid(prm.AssocId))
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccount_AssocId, aliasSystemAccount) + "=" + prm.AssocId.ToString());
//--------------------------------------------------------------- -
// Partial Code & Name.
if (!StringUtil.IsEmpty(prm.CodePartial))
filter.Add(DbQuery.FormatFn_Left(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccount_Code, aliasSystemAccount), prm.CodePartial.Length) + "='" + DbQuery.FormatForCondition(prm.CodePartial) + "'");
if (!StringUtil.IsEmpty(prm.NamePartial))
filter.Add(DbQuery.FormatFn_Left(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccount_Name, aliasSystemAccount), prm.NamePartial.Length) + "='" + DbQuery.FormatForCondition(prm.NamePartial) + "'");
//--------------------------------------------------------------- -
// Exclude Accounts that are already associated with the specified System User (by Interface & Affiliate):
if (SysId.IsValid(prm.AffiliateExcludeIdUserAccounts))
{
// Query SysUsr.
DbQuery qryUsr = new DbQuery(db.DbmsType);
qryUsr.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SystemUser), aliasSystemAccount_SysUser);
qryUsr.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemUser_Id, aliasSystemAccount_SysUser));
qryUsr.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemUser_AffiliateId, aliasSystemAccount_SysUser) + "=" + prm.AffiliateExcludeIdUserAccounts.ToString());
if (SysId.IsValid(prm.InterfaceId))
qryUsr.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccount_InterfaceId, aliasSystemAccount_SysUser) + "=" + prm.InterfaceId.ToString());
// Query SysAccUsr - accounts that are already associated with this user.
DbQuery qryAccUsr = new DbQuery(db.DbmsType);
qryAccUsr.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SystemAccountUser), aliasSystemAccount_SysAccUser);
qryAccUsr.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccountUser_AccountId, aliasSystemAccount_SysAccUser));
qryAccUsr.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccountUser_UserId, aliasSystemAccount_SysAccUser) + " IN(" + qryUsr.BuildQuery() + ")");
// Exclude users that belong to any of these accounts.
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccount_Id, aliasSystemAccount) + " NOT IN(" + qryAccUsr.BuildQuery() + ")");
}
if (filter.Count < 1 && prm.IncludeDefaultFilter) filter.Add("1=1");
return filter;
}
// SystemAccount sort columns.
public List<String> GetSystemAccountSortColumns(SbmSystemAccount.Params prm)
{
// Sort sequence.
List<String> sortColumnCodes = new List<String>();
foreach (var columnDfn in prm.SortColumns)
{
// Need to ensure correct alias used for SystemAccount columns in case of conflict.
String sortCol = String.Empty;
if (SbmDbDfn.GetTableForColumn((SbmDbDfn.ColumnIdx)columnDfn.DbColumn) == SbmDbDfn.TableIdx.SystemAccount)
{
sortCol = SbmDbDfn.GetColumnNameQual((SbmDbDfn.ColumnIdx)columnDfn.DbColumn, aliasSystemAccount);
}
else
{
sortCol = columnDfn.DataName;
if (!StringUtil.IsEmpty(columnDfn.SortDataName))
sortCol = columnDfn.SortDataName;
}
if (!sortCol.IsEmpty())
{
DbOrderByNullMode orderByNullMode = DbOrderByNullMode.Default; // eSaOrderByDemoteNulls, eSaOrderByPromoteNulls
sortColumnCodes.Add(DbQuery.FormatForOrderBy(sortCol, columnDfn.SortAscending, orderByNullMode).Concat(", "));
}
}
sortColumnCodes.RemoveBlanks();
if (sortColumnCodes.IsEmpty())
{
// Default sort columns:
sortColumnCodes.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccount_Type, aliasSystemAccount) + " ASC");
}
return sortColumnCodes;
}
//-------------------------------------------------------------------
// SystemAccount count.
private long GetSystemAccountCount(String filter)
{
ClearErrorState();
return db.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SystemAccount) + " As " + aliasSystemAccount, filter);
}
public override long GetSystemAccountCount(SbmSystemAccount.Params prm)
{
ClearErrorState();
return GetSystemAccountCount(GetSystemAccountQueryFilter(prm).Concat(" AND ", "(", ")"));
}
//-------------------------------------------------------------------
// SystemAccount list.
public override List<SbmSystemAccount> GetSystemAccountList(SbmSystemAccount.Params prm)
{
List<SbmSystemAccount> SystemAccounts = new List<SbmSystemAccount>();
DbQuery qry = new DbQuery(db.DbmsType);
qry.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SystemAccount), aliasSystemAccount);
SystemAccount_Db dbSystemAccount = new SystemAccount_Db(DbInfo);
qry.Columns.AddRange(dbSystemAccount.ExistingColumnNames);
qry.Filters.AddRange(GetSystemAccountQueryFilter(prm));
qry.OrderBy.AddRange(GetSystemAccountSortColumns(prm));
// Query data.
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
dbConnection.Open();
dbCommand.CommandText = qry.BuildQuery(prm.ResultsPaging);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
while (dbDataReader.Read())
{
dbSystemAccount = new SystemAccount_Db(DbInfo);
dbSystemAccount.PopulateFrom(dbDataReader);
SystemAccounts.Add(CreateSystemAccount(dbSystemAccount));
}
}
}
catch (Exception exc)
{
SaLogger.Warn(GetType().Name + ".GetSystemAccountList\n\tQuery: " + dbCommand.CommandText + "\n\tException: " + exc.Message);
}
}
return SystemAccounts;
}
//-------------------------------------------------------------------
// SystemAccount query execution.
public override DbResultSet SystemAccountExecuteQuery(List<ColumnDfn> columns, SbmSystemAccount.Params prm)
{
ClearErrorState();
//---------------------------------------------------------------------
// Construct build database query.
DbQuery query = new DbQuery(db.DbmsType);
query.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SystemAccount), aliasSystemAccount);
//--------------------------------------------------------------- -
// SystemAccount Properties - add columns as defined in query list.
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccount_Id, aliasSystemAccount));
if (columns.HasId((int)SbmSystemAccount.Column.Type_Desc))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccount_Type));
if (columns.HasId((int)SbmSystemAccount.Column.Code))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccount_Code, aliasSystemAccount));
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccount_InterfaceId, aliasSystemAccount));
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccount_AssocId, aliasSystemAccount));
if (columns.HasId((int)SbmSystemAccount.Column.Name))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccount_Name, aliasSystemAccount));
//--------------------------------------------------------------- -
// Interface.
bool hasInterfaceCols = false;
if (!hasInterfaceCols) hasInterfaceCols = columns.HasId((int)SbmSystemAccount.Column.Interface_Code);
if (!hasInterfaceCols) hasInterfaceCols = columns.HasId((int)SbmSystemAccount.Column.Interface_Caption);
if (hasInterfaceCols)
{
// Join to the interface table:
DbQueryJoin joinInt = new DbQueryJoin(DbJoinType.LeftOuter);
joinInt.Table = new StringPair(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Interface), aliasSystemAccount_Interface);
joinInt.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Interface_Id, aliasSystemAccount_Interface) + "=" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccount_InterfaceId, aliasSystemAccount));
query.Joins.Add(joinInt);
// Add the Interface columns.
List<SbmDbDfn.ColumnIdx> colInterface = new List<SbmDbDfn.ColumnIdx>();
colInterface.Add(SbmDbDfn.ColumnIdx.Interface_Code);
colInterface.Add(SbmDbDfn.ColumnIdx.Interface_Caption);
foreach (SbmDbDfn.ColumnIdx dbColumn in colInterface)
query.Columns.Add(SbmDbDfn.GetColumnNameQual(dbColumn, aliasSystemAccount_Interface), prefixSystemAccount_Interface + SbmDbDfn.GetColumnName(dbColumn, false));
}
//--------------------------------------------------------------- -
// Association.
bool hasAssociationCols = false;
if (!hasAssociationCols) hasAssociationCols = columns.HasId((int)SbmSystemAccount.Column.Assoc_Status_Ind);
if (hasAssociationCols)
{
// Join to the Assoc table:
DbQueryJoin joinAssoc = new DbQueryJoin(DbJoinType.LeftOuter);
joinAssoc.Table = new StringPair(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Association), aliasSystemAccount_Association);
joinAssoc.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Association_Id, aliasSystemAccount_Association) + "=" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccount_AssocId, aliasSystemAccount));
query.Joins.Add(joinAssoc);
// Add the Assoc columns.
List<SbmDbDfn.ColumnIdx> colAssocation = new List<SbmDbDfn.ColumnIdx>();
colAssocation.Add(SbmDbDfn.ColumnIdx.Association_Id);
colAssocation.Add(SbmDbDfn.ColumnIdx.Association_Status);
foreach (SbmDbDfn.ColumnIdx dbColumn in colAssocation)
query.Columns.Add(SbmDbDfn.GetColumnNameQual(dbColumn, aliasSystemAccount_Association), prefixSystemAccount_Association + SbmDbDfn.GetColumnName(dbColumn, false));
}
//--------------------------------------------------------------- -
// Associated User.
if (columns.HasId((int)SbmSystemAccount.Column.UserCount))
{
DbQuery qryUsers = new DbQuery(db.DbmsType);
qryUsers.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SystemAccountUser));
qryUsers.Columns.Add("Count(" + SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SystemAccountUser_UserId) + ")");
qryUsers.Filters.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SystemAccountUser_AccountId) + "=" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccount_Id, aliasSystemAccount));
query.Columns.Add("(" + qryUsers.BuildQuery() + ")", colnameSysAcc_UserCount);
}
//--------------------------------------------------------------- -
// Common Properties
if (columns.HasId((int)SbmSystemAccount.Column.Notes))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccount_Notes, aliasSystemAccount));
if (columns.HasId((int)SbmSystemAccount.Column.Flag))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccount_Flags, aliasSystemAccount));
if (columns.HasId((int)SbmSystemAccount.Column.Status) || columns.HasId((int)SbmSystemAccount.Column.Status_Desc) || columns.HasId((int)SbmSystemAccount.Column.Status_Ind))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccount_Status, aliasSystemAccount));
if (columns.HasId((int)SbmSystemAccount.Column.CreateOn_Date))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccount_CreateOn, aliasSystemAccount));
if (columns.HasId((int)SbmSystemAccount.Column.UpdateOn_Date))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccount_UpdateOn, aliasSystemAccount));
//---------------------------------------------------------------------
// Populate filter.
query.Filters.AddRange(GetSystemAccountQueryFilter(prm));
if (prm.IncludedIds.Count != 1)
{
// Configure sort sequence.
foreach (String sortColumn in GetSystemAccountSortColumns(prm))
query.OrderBy.Add(sortColumn);
}
//---------------------------------------------------------------------
//return new DbResultSet_DataTableReader(db, query.BuildQuery());
return DbResultSet_DataReader.ExecuteQuery(db, query.BuildQuery(prm.ResultsPaging));
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,600 @@
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.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
{
//=======================================================================
partial class SbmAccountMgr_Dbas
{
//*******************************************************************
// S y s t em A c c o u n t U s e r s
//*******************************************************************
// Utilities.
private List<StringPair> GetLogProperties(SbmSystemAccountUser systemAccountUser)
{
return new List<StringPair>()
{
new StringPair("Id",SysId.ToString(systemAccountUser.Id)),
new StringPair("Status",systemAccountUser.StatusCode)
};
}
//-------------------------------------------------------------------
// Create SystemAccountUser.
public override SbmSystemAccountUser CreateSystemAccountUser(SysId accountId, SysId userId)
{
ClearErrorState();
SbmSystemAccountUser systemAccountUser = new SbmSystemAccountUser_Dbas(UserContext, accountId, userId, 0);
return systemAccountUser;
}
private SbmSystemAccountUser_Dbas CreateSystemAccountUser(SystemAccountUser_Db dbSystemAccountUser)
{
ClearErrorState();
SbmSystemAccountUser_Dbas systemAccountUser = new SbmSystemAccountUser_Dbas(UserContext, new SysId(dbSystemAccountUser._AccountId), new SysId(dbSystemAccountUser._UserId), (ushort)dbSystemAccountUser._Flags);
PopulateFrom(dbSystemAccountUser, systemAccountUser);
return systemAccountUser;
}
//-------------------------------------------------------------------
// Get SystemAccountUser.
public override SbmSystemAccountUser GetSystemAccountUser(SbmSystemAccountUser.Params prm)
{
return GetSystemAccountUser(GetSystemAccountUserQueryFilter(prm).Concat(" AND ", "(", ")"));
}
private SbmSystemAccountUser GetSystemAccountUser(String filter)
{
ClearErrorState();
long count = GetSystemAccountUserCount(filter);
if (count == 0) return null;
if (count != 1)
{
SetErrorState("Multiple System Account Users found");
return null;
}
SbmSystemAccountUser SystemAccountUser = null;
// Query data.
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
dbConnection.Open();
SystemAccountUser_Db dbSystemAccountUser = new SystemAccountUser_Db(DbInfo);
dbSystemAccountUser.PopulateFrom(dbCommand, aliasSystemAccountUser, filter);
SystemAccountUser = CreateSystemAccountUser(dbSystemAccountUser);
}
catch (Exception exc)
{
SetErrorState("Database query exception");
SaLogger.Warn(GetType().Name + ".GetSystemAccountUser\n\tQuery: " + dbCommand.CommandText + "\n\tException: " + exc.Message);
}
}
return SystemAccountUser;
}
//-------------------------------------------------------------------
// Validate SystemAccountUser.
public override bool IsValidSystemAccountUserData(SbmSystemAccountUser.Data data, SbmSystemAccountUser.ErrField errField)
{
ClearErrorState();
if (!base.IsValidSystemAccountUserData(data, errField)) return false;
return true;
}
//-------------------------------------------------------------------
// Insert SystemAccountUser.
public override bool InsertSystemAccountUser(SbmSystemAccountUser systemAccountUser, DbUpdateInfo dbUpdateInfo)
{
String fn = GetType().Name + ".InsertSystemAccountUser";
ClearErrorState();
if (!IsValidSystemAccountUser(systemAccountUser)) return false;
if (SysId.IsValid(systemAccountUser.Id)) return SetErrorState(ErrorMessage.ValiditemId);
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
dbConnection.Open();
SystemAccountUser_Db dbSystemAccountUser = new SystemAccountUser_Db(DbInfo);
PopulateTo(dbSystemAccountUser, systemAccountUser, dbUpdateInfo);
if (SystemAccountUser_Db.FieldsNonId.Contains("Id"))
{
// Generate next Id.
dbSystemAccountUser._AccountId = SysId.ToInt(db.GetNextId("SystemAccountUser", dbUpdateInfo));
}
dbSystemAccountUser.ExecuteInsertCommand(dbCommand);
systemAccountUser.Id = new SysId(dbSystemAccountUser._AccountId);
systemAccountUser.Changed = false;
if (DebugMode) SaLogger.Debug(fn + " Inserted. " + GetLogProperties(systemAccountUser).Concat(": ").Concat("", "\n\t"));
}
catch (Exception exc) { SetErrorState(exc.Message); }
}
return !HasErrorState();
}
//-------------------------------------------------------------------
// Update SystemAccountUser.
public override bool UpdateSystemAccountUser(SbmSystemAccountUser systemAccountUser, DbUpdateInfo dbUpdateInfo)
{
String fn = GetType().Name + ".UpdateSystemAccountUser";
ClearErrorState();
if (!IsValidSystemAccountUser(systemAccountUser)) return false;
if (!SysId.IsValid(systemAccountUser.AccountId)) return SetErrorState(ErrorMessage.InvalidItemId);
if (!SysId.IsValid(systemAccountUser.UserId)) return SetErrorState(ErrorMessage.InvalidItemId);
if (!systemAccountUser.Changed)
{
if (DebugMode) SaLogger.Debug(fn + " Data not changed. " + GetLogProperties(systemAccountUser).Concat(": ").Concat("", "\n\t"));
return true;
}
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
// Retrieve SystemAccountUser.
dbConnection.Open();
SystemAccountUser_Db dbSystemAccountUser = new SystemAccountUser_Db(DbInfo);
dbSystemAccountUser.PopulateFrom(dbCommand, aliasSystemAccountUser, "UserId=" + SysId.ToString(systemAccountUser.UserId) + "And AccountId=" + SysId.ToString(systemAccountUser.AccountId));
//SbmUpdateLogItemMonitor_SystemAccountUser updateLogMonitor = new SbmUpdateLogItemMonitor_SystemAccountUser(SbmGlobals.SessionProfile.SessionContext, CreateSystemAccountUser(dbSystemAccountUser), dbUpdateInfo);
// Update properties.
PopulateTo(dbSystemAccountUser, systemAccountUser, dbUpdateInfo);
dbSystemAccountUser.ExecuteUpdateCommand(dbCommand);
systemAccountUser.Changed = false;
if (DebugMode) SaLogger.Debug(fn + " Updated. " + GetLogProperties(systemAccountUser).Concat(": ").Concat("", "\n\t"));
// Record updates.
/*updateLogMonitor.RecordUpdatedValues(systemAccountUser);
updateLogMonitor.LogUpdates();*/
}
catch (Exception exc) { SetErrorState(exc.Message); }
}
return !HasErrorState();
}
//-------------------------------------------------------------------
// Delete SystemAccountUser.
public override bool SystemAccountUserCanBeDeleted(SbmSystemAccountUser systemAccountUser)
{
ClearErrorState();
if (!base.SystemAccountUserCanBeDeleted(systemAccountUser)) return false;
return true;
}
public override bool DeleteSystemAccountUser(SbmSystemAccountUser systemAccountUser, DbUpdateInfo dbUpdateInfo)
{
String fn = GetType().Name + ".DeleteSystemAccountUser";
ClearErrorState();
if (!SystemAccountUserCanBeDeleted(systemAccountUser)) return false;
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
// Retrieve SystemAccountUser.
dbConnection.Open();
SystemAccountUser_Db dbSystemAccountUser = new SystemAccountUser_Db(DbInfo);
dbSystemAccountUser.PopulateFrom(dbCommand, aliasSystemAccountUser, "Id=" + systemAccountUser.Id.ToString());
// Delete SystemAccountUser.
dbCommand.CommandType = System.Data.CommandType.Text;
dbCommand.CommandText = "DELETE FROM " + SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SystemAccountUser) + " WHERE Id=" + SysId.ToString(systemAccountUser.Id) + ";";
dbCommand.ExecuteNonQuery();
systemAccountUser.Changed = false;
if (DebugMode) SaLogger.Debug(fn + " Deleted. " + GetLogProperties(systemAccountUser).Concat(": ").Concat("", "\n\t"));
}
catch (Exception exc) { SetErrorState(exc.Message); }
}
return !HasErrorState();
}
//-------------------------------------------------------------------
// Copy data properties to and from database.
private void PopulateTo(SystemAccountUser_Db dbSystemAccountUser, SbmSystemAccountUser systemAccountUser, DbUpdateInfo dbUpdateInfo)
{
dbSystemAccountUser._AccountId = systemAccountUser.AccountId.ToInt();
dbSystemAccountUser._UserId = systemAccountUser.UserId.ToInt();
// Common properties.
dbSystemAccountUser._Notes = systemAccountUser.Notes;
dbSystemAccountUser._Status = SacsSystem.GetStatusCode(systemAccountUser.Status);
dbSystemAccountUser._Flags = (short)systemAccountUser.Flags;
if (!SysId.IsValid(systemAccountUser.UserId) && !SysId.IsValid(systemAccountUser.AccountId))
{
dbSystemAccountUser._CreateOn = DateTime.UtcNow;
dbSystemAccountUser._CreateBy = dbUpdateInfo.UserId.ToInt();
dbSystemAccountUser._CreateHost = dbUpdateInfo.Host;
}
dbSystemAccountUser._UpdateOn = DateTime.UtcNow;
dbSystemAccountUser._UpdateBy = dbUpdateInfo.UserId.ToInt();
dbSystemAccountUser._UpdateHost = dbUpdateInfo.Host;
}
private void PopulateFrom(SystemAccountUser_Db dbSystemAccountUser, SbmSystemAccountUser systemAccountUser)
{
//systemAccountUser.Id = new SysId(dbSystemAccountUser._Id);
systemAccountUser.AccountId = new SysId(dbSystemAccountUser._AccountId);
systemAccountUser.UserId = new SysId(dbSystemAccountUser._UserId);
// Common properties.
systemAccountUser.Notes = dbSystemAccountUser._Notes;
systemAccountUser.Status = SacsSystem.GetStatusForCode(dbSystemAccountUser._Status);
systemAccountUser.SetCreateStamp(dbSystemAccountUser._CreateOn, new SysId(dbSystemAccountUser._CreateBy), dbSystemAccountUser._CreateHost);
systemAccountUser.SetUpdateStamp(dbSystemAccountUser._UpdateOn, new SysId(dbSystemAccountUser._UpdateBy), dbSystemAccountUser._UpdateHost);
systemAccountUser.AcceptChanges();
}
//-------------------------------------------------------------------
// Table and column aliases.
private static readonly String aliasSystemAccountUser = "aSysAccUsr";
private static readonly String aliasSystemAccountUser_SystemAccount = "aSAUSysAcc";
private static readonly String prefixSystemAccountUser_SystemAccount = "SAUSysAcc_";
private static readonly String aliasSystemAccountUser_SystemUser = "aSAUSysUsr";
private static readonly String prefixSystemAccountUser_SystemUser = "SAUSysUsr_";
private static readonly String aliasSystemAccountUser_Affiliate = "aSAUAff";
private static readonly String prefixSystemAccountUser_Affiliate = "SAUAff_";
//-------------------------------------------------------------------
// Setting SystemAccountUser column definitions.
private void SetSystemAccountUserColDfn
(ColumnDfn col, String caption, int width, SbmDbDfn.ColumnIdx dbCol,
ColumnAlignment align = ColumnAlignment.Default, DataValue.DataType dataType = DataValue.DataType.String,
String alias = "", String prefix = "")
{
if (String.IsNullOrEmpty(alias) && SbmDbDfn.GetTableForColumn(dbCol) == SbmDbDfn.TableIdx.SystemAccountUser)
alias = aliasSystemAccountUser;
col.Set(caption, width, (int)dbCol, prefix + SbmDbDfn.GetColumnName(dbCol, false), SbmDbDfn.GetColumnNameQual(dbCol, alias), dataType, align);
if (dataType == DataValue.DataType.String && dbCol != SbmDbDfn.ColumnIdx.Unknown)
col.MaxLength = (int)SbmDbDfn.GetColTextLen(dbCol);
}
//-------------------------------------------------------------------
// Getting SystemAccountUser column definition.
public override ColumnDfn GetSystemAccountUserColumnDfn(SbmSystemAccountUser.Column columnId, string caption = "", int width = 0)
{
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
switch (columnId)
{
// SystemAccountUser Properties.
case SbmSystemAccountUser.Column.Pos:
SetSystemAccountUserColDfn(columnDfn, "Pos", 45, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Right);
columnDfn.SortMode = ColumnDfn.ColumnSortMode.Off;
columnDfn.ReadOnly = true;
columnDfn.Resizable = false;
break;
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Account Details.
case SbmSystemAccountUser.Column.AccountId:
SetSystemAccountUserColDfn(columnDfn, "Account Id", 60, SbmDbDfn.ColumnIdx.SystemAccountUser_AccountId, ColumnAlignment.Right, DataValue.DataType.Long);
columnDfn.ReadOnly = true;
break;
case SbmSystemAccountUser.Column.Account_Code:
SetSystemAccountUserColDfn(columnDfn, "Account Code", 80, SbmDbDfn.ColumnIdx.SystemAccount_Code, ColumnAlignment.Default, DataValue.DataType.String, aliasSystemAccountUser_SystemAccount, prefixSystemAccountUser_SystemAccount);
break;
case SbmSystemAccountUser.Column.Account_Name:
SetSystemAccountUserColDfn(columnDfn, "Account Name", 160, SbmDbDfn.ColumnIdx.SystemAccount_Name, ColumnAlignment.Default, DataValue.DataType.String, aliasSystemAccountUser_SystemAccount, prefixSystemAccountUser_SystemAccount);
break;
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// User Details.
case SbmSystemAccountUser.Column.UserId:
SetSystemAccountUserColDfn(columnDfn, "User Id", 60, SbmDbDfn.ColumnIdx.SystemAccountUser_UserId, ColumnAlignment.Right, DataValue.DataType.Long);
columnDfn.ReadOnly = true;
break;
case SbmSystemAccountUser.Column.User_Code:
SetSystemAccountUserColDfn(columnDfn, "User Code", 120, SbmDbDfn.ColumnIdx.SystemUser_Code, ColumnAlignment.Default, DataValue.DataType.String, aliasSystemAccountUser_SystemUser, prefixSystemAccountUser_SystemUser);
break;
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Affiliate-Contact Details.
case SbmSystemAccountUser.Column.User_Contact_Email:
SetSystemAccountUserColDfn(columnDfn, "Email", 170, SbmDbDfn.ColumnIdx.Affiliate_Email, ColumnAlignment.Default, DataValue.DataType.String, aliasSystemAccountUser_Affiliate, prefixSystemAccountUser_Affiliate);
break;
case SbmSystemAccountUser.Column.User_Contact_Name:
SetSystemAccountUserColDfn(columnDfn, "Name", 170, SbmDbDfn.ColumnIdx.Affiliate_Name, ColumnAlignment.Default, DataValue.DataType.String, aliasSystemAccountUser_Affiliate, prefixSystemAccountUser_Affiliate);
break;
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Common properties.
case SbmSystemAccountUser.Column.Notes:
SetSystemAccountUserColDfn(columnDfn, "Notes", 200, SbmDbDfn.ColumnIdx.SystemAccountUser_Notes);
break;
case SbmSystemAccountUser.Column.Flag:
SetSystemAccountUserColDfn(columnDfn, "Flags", 40, SbmDbDfn.ColumnIdx.SystemAccountUser_Flags, ColumnAlignment.Center, DataValue.DataType.Long);
break;
case SbmSystemAccountUser.Column.Status:
SetSystemAccountUserColDfn(columnDfn, "Status", 50, SbmDbDfn.ColumnIdx.SystemAccountUser_Status, ColumnAlignment.Center);
break;
case SbmSystemAccountUser.Column.Status_Desc:
SetSystemAccountUserColDfn(columnDfn, "Status", 50, SbmDbDfn.ColumnIdx.SystemAccountUser_Status);
break;
case SbmSystemAccountUser.Column.Status_Ind:
SetSystemAccountUserColDfn(columnDfn, "Status", 50, SbmDbDfn.ColumnIdx.SystemAccountUser_Status, ColumnAlignment.Center, DataValue.DataType.TriState);
columnDfn.TriStateFormat = ColumnTriStateFormat.Lights;
break;
case SbmSystemAccountUser.Column.CreateOn_Date:
SetSystemAccountUserColDfn(columnDfn, "Created", 65, SbmDbDfn.ColumnIdx.SystemAccountUser_CreateOn, ColumnAlignment.Center, DataValue.DataType.Date);
columnDfn.DateFormat = "d-MMM-yy";
columnDfn.ReadOnly = true;
break;
case SbmSystemAccountUser.Column.UpdateOn_Date:
SetSystemAccountUserColDfn(columnDfn, "Updated", 65, SbmDbDfn.ColumnIdx.SystemAccountUser_UpdateOn, ColumnAlignment.Center, DataValue.DataType.Date);
columnDfn.DateFormat = "d-MMM-yy";
columnDfn.ReadOnly = true;
break;
}
if (!String.IsNullOrEmpty(caption))
columnDfn.Caption = caption;
if (width > 0)
columnDfn.Width = width;
return columnDfn;
}
//-------------------------------------------------------------------
// SystemAccountUser query filter.
public override List<string> GetSystemAccountUserQueryFilter(SbmSystemAccountUser.Params prm)
{
List<String> filter = new List<String>();
// SystemAccountUser Id.
String includedIds = prm.IncludedIds.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(",");
if (!excludedIds.IsEmpty())
filter.Add(colSystemAccountUser_Id + " NOT IN (" + excludedIds + ")");
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Interface Id.
if (SysId.IsValid(prm.InterfaceId) && !SysId.IsValid(prm.AssocId) && !SysId.IsValid(prm.AffiliateId))
{
DbQuery qryAccount = new DbQuery(db.DbmsType);
qryAccount.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SystemAccount));
qryAccount.Columns.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SystemAccount_Id));
qryAccount.Filters.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SystemAccount_InterfaceId) + "=" + prm.InterfaceId.ToString());
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccountUser_AccountId, aliasSystemAccountUser) + " IN (" + qryAccount.BuildQuery() + ")");
}
// Account Id.
if (SysId.IsValid(prm.AccountId))
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccountUser_AccountId, aliasSystemAccountUser) + "=" + prm.AccountId.ToString());
// Association Id.
if (SysId.IsValid(prm.AssocId))
{
DbQuery qryAccount = new DbQuery(db.DbmsType);
qryAccount.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SystemAccount));
qryAccount.Columns.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SystemAccount_Id));
qryAccount.Filters.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SystemAccount_AssocId) + "=" + prm.AssocId.ToString());
if (SysId.IsValid(prm.InterfaceId))
qryAccount.Filters.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SystemAccount_InterfaceId) + "=" + prm.InterfaceId.ToString());
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccountUser_AccountId, aliasSystemAccountUser) + " IN (" + qryAccount.BuildQuery() + ")");
}
// User Id.
if (SysId.IsValid(prm.UserId))
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccountUser_UserId, aliasSystemAccountUser) + "=" + prm.UserId.ToString());
// Affiliate Id.
if (SysId.IsValid(prm.AffiliateId))
{
DbQuery qryUser = new DbQuery(db.DbmsType);
qryUser.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SystemUser));
qryUser.Columns.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SystemUser_Id));
qryUser.Filters.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SystemUser_AffiliateId) + "=" + prm.AffiliateId.ToString());
if (SysId.IsValid(prm.InterfaceId))
qryUser.Filters.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SystemUser_InterfaceId) + "=" + prm.InterfaceId.ToString());
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccountUser_UserId, aliasSystemAccountUser) + " IN (" + qryUser.BuildQuery() + ")");
}
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Status.
if (prm.RestrictToActive)
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccountUser_Status, aliasSystemAccountUser) + "='" + StatusActive + "'");
if (filter.Count < 1 && prm.IncludeDefaultFilter) filter.Add("1=1");
return filter;
}
// SystemAccountUser sort columns.
public List<String> GetSystemAccountUserSortColumns(SbmSystemAccountUser.Params prm)
{
// Sort sequence:
List<String> sortColumnCodes = new List<String>();
foreach (var columnDfn in prm.SortColumns)
{
// Need to ensure correct alias used for SystemAccountUser columns in case of conflict.
String sortCol = String.Empty;
if (SbmDbDfn.GetTableForColumn((SbmDbDfn.ColumnIdx)columnDfn.DbColumn) == SbmDbDfn.TableIdx.SystemAccountUser)
{
sortCol = SbmDbDfn.GetColumnNameQual((SbmDbDfn.ColumnIdx)columnDfn.DbColumn, aliasSystemAccountUser);
}
else
{
sortCol = columnDfn.DataName;
if (!StringUtil.IsEmpty(columnDfn.SortDataName))
sortCol = columnDfn.SortDataName;
}
if (!sortCol.IsEmpty())
{
DbOrderByNullMode orderByNullMode = DbOrderByNullMode.Default; // eSaOrderByDemoteNulls, eSaOrderByPromoteNulls
sortColumnCodes.Add(DbQuery.FormatForOrderBy(sortCol, columnDfn.SortAscending, orderByNullMode).Concat(", "));
}
}
sortColumnCodes.RemoveBlanks();
if (sortColumnCodes.IsEmpty())
{
// Default sort columns:
sortColumnCodes.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccountUser_UserId, aliasSystemAccountUser) + " ASC");
}
return sortColumnCodes;
}
//-------------------------------------------------------------------
// SystemAccountUser count.
private long GetSystemAccountUserCount(String filter)
{
ClearErrorState();
return db.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SystemAccountUser) + " As " + aliasSystemAccountUser, filter);
}
public override long GetSystemAccountUserCount(SbmSystemAccountUser.Params prm)
{
ClearErrorState();
return GetSystemAccountUserCount(GetSystemAccountUserQueryFilter(prm).Concat(" AND ", "(", ")"));
}
//-------------------------------------------------------------------
// SystemAccountUser list.
public override List<SbmSystemAccountUser> GetSystemAccountUserList(SbmSystemAccountUser.Params prm)
{
List<SbmSystemAccountUser> SystemAccountUseres = new List<SbmSystemAccountUser>();
DbQuery qry = new DbQuery(db.DbmsType);
qry.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SystemAccountUser), aliasSystemAccountUser);
SystemAccountUser_Db dbSystemAccountUser = new SystemAccountUser_Db(DbInfo);
qry.Columns.AddRange(dbSystemAccountUser.ExistingColumnNames);
qry.Filters.AddRange(GetSystemAccountUserQueryFilter(prm));
qry.OrderBy.AddRange(GetSystemAccountUserSortColumns(prm));
// Query data.
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
dbConnection.Open();
dbCommand.CommandText = qry.BuildQuery(prm.ResultsPaging);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
while (dbDataReader.Read())
{
dbSystemAccountUser = new SystemAccountUser_Db(DbInfo);
dbSystemAccountUser.PopulateFrom(dbDataReader);
SystemAccountUseres.Add(CreateSystemAccountUser(dbSystemAccountUser));
}
}
}
catch (Exception exc)
{
SaLogger.Warn(GetType().Name + ".GetSystemAccountUserList\n\tQuery: " + dbCommand.CommandText + "\n\tException: " + exc.Message);
}
}
return SystemAccountUseres;
}
//-------------------------------------------------------------------
// SystemAccountUser query execution.
public override DbResultSet SystemAccountUserExecuteQuery(List<ColumnDfn> columns, SbmSystemAccountUser.Params prm)
{
ClearErrorState();
//---------------------------------------------------------------------
// Construct build database query.
DbQuery query = new DbQuery(db.DbmsType);
query.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SystemAccountUser), aliasSystemAccountUser);
// SystemAccountUser Properties - add columns as defined in query list.
//--------------------------------------------------------------- -
// Account details.
if (columns.HasId((int)SbmSystemAccountUser.Column.AccountId))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccountUser_AccountId, aliasSystemAccountUser));
bool colRequired_Account_Code = (columns.HasId((int)SbmSystemAccountUser.Column.Account_Code));
bool colRequired_Account_Name = (columns.HasId((int)SbmSystemAccountUser.Column.Account_Name));
if (colRequired_Account_Code || colRequired_Account_Name)
{
// Join to the system Account table.
DbQueryJoin joinSysUsr = new DbQueryJoin(DbJoinType.LeftOuter);
joinSysUsr.Table = new StringPair(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SystemAccount), aliasSystemAccountUser_SystemAccount);
joinSysUsr.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccount_Id, aliasSystemAccountUser_SystemAccount) + "=" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccountUser_AccountId, aliasSystemAccountUser));
query.Joins.Add(joinSysUsr);
// Add the Account columns to the query.
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccount_Id, aliasSystemAccountUser_SystemAccount), prefixSystemAccountUser_SystemAccount + SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SystemAccount_Id));
if (colRequired_Account_Code)
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccount_Code, aliasSystemAccountUser_SystemAccount), prefixSystemAccountUser_SystemAccount + SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SystemAccount_Code));
if (colRequired_Account_Name)
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccount_Name, aliasSystemAccountUser_SystemAccount), prefixSystemAccountUser_SystemAccount + SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SystemAccount_Name));
//bHasSysAccountTable = true;
}
//--------------------------------------------------------------- -
// User details.
if (columns.HasId((int)SbmSystemAccountUser.Column.UserId))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccountUser_UserId, aliasSystemAccountUser));
bool colRequired_User_Code = (columns.HasId((int)SbmSystemAccountUser.Column.User_Code));
bool colRequired_User_Email = (columns.HasId((int)SbmSystemAccountUser.Column.User_Contact_Email));
bool colRequired_User_Name = (columns.HasId((int)SbmSystemAccountUser.Column.User_Contact_Name));
if (colRequired_User_Code || colRequired_User_Email || colRequired_User_Name)
{
// Join to the system user table.
DbQueryJoin joinSysUsr = new DbQueryJoin(DbJoinType.LeftOuter);
joinSysUsr.Table = new StringPair(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SystemUser), aliasSystemAccountUser_SystemUser);
joinSysUsr.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemUser_Id, aliasSystemAccountUser_SystemUser) + "=" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccountUser_UserId, aliasSystemAccountUser));
query.Joins.Add(joinSysUsr);
// Add the user columns to the query.
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemUser_Id, aliasSystemAccountUser_SystemUser), prefixSystemAccountUser_SystemUser + SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SystemUser_Id));
if (colRequired_User_Code)
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemUser_Code, aliasSystemAccountUser_SystemUser), prefixSystemAccountUser_SystemUser + SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SystemUser_Code));
// Are any of the contact's details required.
if ((colRequired_User_Email || colRequired_User_Name))
{
// Join to the user's affiliate.
DbQueryJoin joinAff = new DbQueryJoin(DbJoinType.LeftOuter);
joinAff.Table = new StringPair(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Affiliate), aliasSystemAccountUser_Affiliate);
joinAff.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Id, aliasSystemAccountUser_Affiliate) + "=" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemUser_AffiliateId, aliasSystemAccountUser_SystemUser));
query.Joins.Add(joinAff);
// Add the affiliate columns to the query.
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Id, aliasSystemAccountUser_Affiliate), prefixSystemAccountUser_Affiliate + SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Affiliate_Id));
if (colRequired_User_Email)
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Email, aliasSystemAccountUser_Affiliate), prefixSystemAccountUser_Affiliate + SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Affiliate_Email));
if (colRequired_User_Name)
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Name, aliasSystemAccountUser_Affiliate), prefixSystemAccountUser_Affiliate + SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Affiliate_Name));
}
//bHasSysUserTable = true;
}
//--------------------------------------------------------------- -
// Common Properties
if (columns.HasId((int)SbmSystemAccountUser.Column.Notes))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccountUser_Notes, aliasSystemAccountUser));
if (columns.HasId((int)SbmSystemAccountUser.Column.Flag))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccountUser_Flags, aliasSystemAccountUser));
if (columns.HasId((int)SbmSystemAccountUser.Column.Status) || columns.HasId((int)SbmSystemAccountUser.Column.Status_Desc) || columns.HasId((int)SbmSystemAccountUser.Column.Status_Ind))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccountUser_Status, aliasSystemAccountUser));
if (columns.HasId((int)SbmSystemAccountUser.Column.CreateOn_Date))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccountUser_CreateOn, aliasSystemAccountUser));
if (columns.HasId((int)SbmSystemAccountUser.Column.UpdateOn_Date))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccountUser_UpdateOn, aliasSystemAccountUser));
//---------------------------------------------------------------------
// Populate filter.
query.Filters.AddRange(GetSystemAccountUserQueryFilter(prm));
if (prm.IncludedIds.Count != 1)
{
// Configure sort sequence.
foreach (String sortColumn in GetSystemAccountUserSortColumns(prm))
query.OrderBy.Add(sortColumn);
}
//---------------------------------------------------------------------
//return new DbResultSet_DataTableReader(db, query.BuildQuery());
return DbResultSet_DataReader.ExecuteQuery(db, query.BuildQuery(prm.ResultsPaging));
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,581 @@
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.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
{
//=======================================================================
partial class SbmAccountMgr_Dbas
{
//*******************************************************************
// S y s t e m U s e r s
//*******************************************************************
// Utilities.
private List<StringPair> GetLogProperties(SbmSystemUser systemUser)
{
return new List<StringPair>()
{
new StringPair("Id",SysId.ToString(systemUser.Id)),
new StringPair("Status",systemUser.StatusCode)
};
}
//-------------------------------------------------------------------
// Create SystemUser.
public override SbmSystemUser CreateSystemUser(SysId interfaceId, SysId affiliateId)
{
ClearErrorState();
SbmSystemUser systemUser = null;
if (SysId.IsValid(AffiliateId_Owner))
systemUser = new SbmSystemUser_Dbas(UserContext, new SysId(), AffiliateId_Owner, interfaceId, affiliateId, 0);
else SetErrorState("Owner not selected");
return systemUser;
}
private SbmSystemUser_Dbas CreateSystemUser(SystemUser_Db dbSystemUser)
{
ClearErrorState();
SbmSystemUser_Dbas systemUser = new SbmSystemUser_Dbas(UserContext, new SysId(dbSystemUser._Id), new SysId(dbSystemUser._AffIdOwner), new SysId(dbSystemUser._InterfaceId), new SysId(dbSystemUser._AffiliateId), (ushort)dbSystemUser._Flags);
PopulateFrom(dbSystemUser, systemUser);
return systemUser;
}
//-------------------------------------------------------------------
// Get SystemUser.
public override SbmSystemUser GetSystemUser(SbmSystemUser.Params prm)
{
return GetSystemUser(GetSystemUserQueryFilter(prm).Concat(" AND ", "(", ")"));
}
private SbmSystemUser GetSystemUser(String filter)
{
ClearErrorState();
long count = GetSystemUserCount(filter);
if (count == 0) return null;
if (count != 1)
{
SetErrorState("Multiple System Users found");
return null;
}
SbmSystemUser SystemUser = null;
// Query data.
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
dbConnection.Open();
SystemUser_Db dbSystemUser = new SystemUser_Db(DbInfo);
dbSystemUser.PopulateFrom(dbCommand, aliasSystemUser, filter);
SystemUser = CreateSystemUser(dbSystemUser);
}
catch (Exception exc)
{
SetErrorState("Database query exception");
SaLogger.Warn(GetType().Name + ".GetSystemUser\n\tQuery: " + dbCommand.CommandText + "\n\tException: " + exc.Message);
}
}
return SystemUser;
}
//-------------------------------------------------------------------
// Validate SystemUser.
public override bool IsValidSystemUserData(SbmSystemUser.Data data, SbmSystemUser.ErrField errField)
{
ClearErrorState();
if (!base.IsValidSystemUserData(data, errField)) return false;
return true;
}
//-------------------------------------------------------------------
// Insert SystemUser.
public override bool InsertSystemUser(SbmSystemUser systemUser, DbUpdateInfo dbUpdateInfo)
{
String fn = GetType().Name + ".InsertSystemUser";
ClearErrorState();
if (!IsValidSystemUser(systemUser)) return false;
if (SysId.IsValid(systemUser.Id)) return SetErrorState(ErrorMessage.ValiditemId);
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
dbConnection.Open();
SystemUser_Db dbSystemUser = new SystemUser_Db(DbInfo);
PopulateTo(dbSystemUser, systemUser, dbUpdateInfo);
if (SystemUser_Db.FieldsNonId.Contains("Id"))
{
// Generate next Id.
dbSystemUser._Id = SysId.ToInt(db.GetNextId("SystemUser", dbUpdateInfo));
}
dbSystemUser.ExecuteInsertCommand(dbCommand);
systemUser.Id = new SysId(dbSystemUser._Id);
systemUser.Changed = false;
if (DebugMode) SaLogger.Debug(fn + " Inserted. " + GetLogProperties(systemUser).Concat(": ").Concat("", "\n\t"));
}
catch (Exception exc) { SetErrorState(exc.Message); }
}
return !HasErrorState();
}
//-------------------------------------------------------------------
// Update SystemUser.
public override bool UpdateSystemUser(SbmSystemUser systemUser, DbUpdateInfo dbUpdateInfo)
{
String fn = GetType().Name + ".UpdateSystemUser";
ClearErrorState();
if (!IsValidSystemUser(systemUser)) return false;
if (!SysId.IsValid(systemUser.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
if (!systemUser.Changed)
{
if (DebugMode) SaLogger.Debug(fn + " Data not changed. " + GetLogProperties(systemUser).Concat(": ").Concat("", "\n\t"));
return true;
}
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
// Retrieve prmSystemUser.
dbConnection.Open();
SystemUser_Db dbSystemUser = new SystemUser_Db(DbInfo);
dbSystemUser.PopulateFrom(dbCommand, aliasSystemUser, "Id=" + SysId.ToString(systemUser.Id));
//SbmUpdateLogItemMonitor_SystemUser updateLogMonitor = new SbmUpdateLogItemMonitor_SystemUser(SbmGlobals.SessionProfile.SessionContext, CreateSystemUser(dbSystemUser), dbUpdateInfo);
// Update properties.
PopulateTo(dbSystemUser, systemUser, dbUpdateInfo);
dbSystemUser.ExecuteUpdateCommand(dbCommand);
systemUser.Changed = false;
if (DebugMode) SaLogger.Debug(fn + " Updated. " + GetLogProperties(systemUser).Concat(": ").Concat("", "\n\t"));
// Record updates.
/*updateLogMonitor.RecordUpdatedValues(systemUser);
updateLogMonitor.LogUpdates();*/
}
catch (Exception exc) { SetErrorState(exc.Message); }
}
return !HasErrorState();
}
//-------------------------------------------------------------------
// Delete SystemUser.
public override bool SystemUserCanBeDeleted(SbmSystemUser systemUser)
{
ClearErrorState();
if (!base.SystemUserCanBeDeleted(systemUser)) return false;
return true;
}
public override bool DeleteSystemUser(SbmSystemUser systemUser, DbUpdateInfo dbUpdateInfo)
{
String fn = GetType().Name + ".DeleteSystemUser";
ClearErrorState();
if (!SystemUserCanBeDeleted(systemUser)) return false;
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
// Retrieve prmSystemUser.
dbConnection.Open();
SystemUser_Db dbSystemUser = new SystemUser_Db(DbInfo);
dbSystemUser.PopulateFrom(dbCommand, aliasSystemUser, "Id=" + systemUser.Id.ToString());
// Delete prmSystemUser.
dbCommand.CommandType = System.Data.CommandType.Text;
dbCommand.CommandText = "DELETE FROM " + SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SystemUser) + " WHERE Id=" + SysId.ToString(systemUser.Id) + ";";
dbCommand.ExecuteNonQuery();
systemUser.Changed = false;
if (DebugMode) SaLogger.Debug(fn + " Deleted. " + GetLogProperties(systemUser).Concat(": ").Concat("", "\n\t"));
}
catch (Exception exc) { SetErrorState(exc.Message); }
}
return !HasErrorState();
}
//-------------------------------------------------------------------
// Copy data properties to and from database.
private void PopulateTo(SystemUser_Db dbSystemUser, SbmSystemUser systemUser, DbUpdateInfo dbUpdateInfo)
{
dbSystemUser._Id = systemUser.Id.ToInt();
dbSystemUser._AffIdOwner = systemUser.AffiliateIdOwner.ToInt();
dbSystemUser._InterfaceId = systemUser.InterfaceId.ToInt();
dbSystemUser._AffiliateId = systemUser.AffiliateId.ToInt();
dbSystemUser._Code = systemUser.Code;
dbSystemUser._AuthCodeEnc = systemUser.AuthCodeEnc;
// Common properties.
dbSystemUser._Notes = systemUser.Notes;
dbSystemUser._Status = SacsSystem.GetStatusCode(systemUser.Status);
dbSystemUser._Flags = (short)systemUser.Flags;
if (!SysId.IsValid(systemUser.Id))
{
dbSystemUser._CreateOn = DateTime.UtcNow;
dbSystemUser._CreateBy = dbUpdateInfo.UserId.ToInt();
dbSystemUser._CreateHost = dbUpdateInfo.Host;
}
dbSystemUser._UpdateOn = DateTime.UtcNow;
dbSystemUser._UpdateBy = dbUpdateInfo.UserId.ToInt();
dbSystemUser._UpdateHost = dbUpdateInfo.Host;
}
private void PopulateFrom(SystemUser_Db dbSystemUser, SbmSystemUser systemUser)
{
systemUser.Id = new SysId(dbSystemUser._Id);
systemUser.AffiliateIdOwner = new SysId(dbSystemUser._AffIdOwner);
systemUser.InterfaceId = new SysId(dbSystemUser._InterfaceId);
systemUser.AffiliateId = new SysId(dbSystemUser._AffiliateId);
systemUser.Code = dbSystemUser._Code;
systemUser.AuthCodeEnc = dbSystemUser._AuthCodeEnc;
// Common properties.
systemUser.Notes = dbSystemUser._Notes;
systemUser.Status = SacsSystem.GetStatusForCode(dbSystemUser._Status);
systemUser.SetCreateStamp(dbSystemUser._CreateOn, new SysId(dbSystemUser._CreateBy), dbSystemUser._CreateHost);
systemUser.SetUpdateStamp(dbSystemUser._UpdateOn, new SysId(dbSystemUser._UpdateBy), dbSystemUser._UpdateHost);
systemUser.AcceptChanges();
}
//-------------------------------------------------------------------
// Table and column aliases.
private static readonly String aliasSystemUser = "aSysUsr";
private static readonly String aliasSystemUser_Affiliate = "aSysUsrAff";
private static readonly String prefixSystemUser_Affiliate = "SysUsrAff_";
private static readonly String aliasSystemUser_SystemAccount = "aSysUsrSysAcc";
private static readonly String prefixSystemUser_SystemAccount = "SysUsrSysAcc_";
private static readonly String aliasSystemUser_SystemAccountUser = "aSysUsrSysAccUsr";
private static readonly String prefixSystemUser_SystemAccountUser = "SysUsrSysAccUsr_";
private static readonly String colnameSysUsr_AccountCount = "SysUsrAccCount";
//-------------------------------------------------------------------
// Setting SystemUser column definitions.
private void SetSystemUserColDfn
(ColumnDfn col, String caption, int width, SbmDbDfn.ColumnIdx dbCol,
ColumnAlignment align = ColumnAlignment.Default, DataValue.DataType dataType = DataValue.DataType.String,
String alias = "", String prefix = "")
{
if (String.IsNullOrEmpty(alias) && SbmDbDfn.GetTableForColumn(dbCol) == SbmDbDfn.TableIdx.SystemUser)
alias = aliasSystemUser;
col.Set(caption, width, (int)dbCol, prefix + SbmDbDfn.GetColumnName(dbCol, false), SbmDbDfn.GetColumnNameQual(dbCol, alias), dataType, align);
if (dataType == DataValue.DataType.String && dbCol != SbmDbDfn.ColumnIdx.Unknown)
col.MaxLength = (int)SbmDbDfn.GetColTextLen(dbCol);
}
//-------------------------------------------------------------------
// Getting SystemUser column definition.
public override ColumnDfn GetSystemUserColumnDfn(SbmSystemUser.Column columnId, string caption = "", int width = 0)
{
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
switch (columnId)
{
// SystemUser Properties.
case SbmSystemUser.Column.Pos:
SetSystemUserColDfn(columnDfn, "Pos", 45, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Right);
columnDfn.SortMode = ColumnDfn.ColumnSortMode.Off;
columnDfn.ReadOnly = true;
columnDfn.Resizable = false;
break;
case SbmSystemUser.Column.Id:
SetSystemUserColDfn(columnDfn, "Id", 60, SbmDbDfn.ColumnIdx.SystemUser_Id, ColumnAlignment.Right, DataValue.DataType.Long);
columnDfn.ReadOnly = true;
break;
case SbmSystemUser.Column.Code:
SetSystemUserColDfn(columnDfn, "Code", 120, SbmDbDfn.ColumnIdx.SystemUser_Code, ColumnAlignment.Default, DataValue.DataType.String);
break;
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Affiliate details.
case SbmSystemUser.Column.Contact_Name:
SetSystemUserColDfn(columnDfn, "Name", 120, SbmDbDfn.ColumnIdx.Affiliate_Name, ColumnAlignment.Default, DataValue.DataType.String, aliasSystemUser_Affiliate, prefixSystemUser_Affiliate);
break;
case SbmSystemUser.Column.Contact_Email:
SetSystemUserColDfn(columnDfn, "Email", 120, SbmDbDfn.ColumnIdx.Affiliate_Email, ColumnAlignment.Default, DataValue.DataType.String, aliasSystemUser_Affiliate, prefixSystemUser_Affiliate);
break;
case SbmSystemUser.Column.Contact_PhoneMain:
SetSystemUserColDfn(columnDfn, "Phone", 85, SbmDbDfn.ColumnIdx.Affiliate_PhoneMain, ColumnAlignment.Default, DataValue.DataType.String, aliasSystemUser_Affiliate, prefixSystemUser_Affiliate);
break;
case SbmSystemUser.Column.Contact_PhoneMobile:
SetSystemUserColDfn(columnDfn, "Mobile", 85, SbmDbDfn.ColumnIdx.Affiliate_PhoneMobile, ColumnAlignment.Default, DataValue.DataType.String, aliasSystemUser_Affiliate, prefixSystemUser_Affiliate);
break;
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Associated details.
case SbmSystemUser.Column.AccountCount:
SetSystemUserColDfn(columnDfn, "Accounts", 80, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.DataName = colnameSysUsr_AccountCount;
break;
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Common properties.
case SbmSystemUser.Column.Notes:
SetSystemUserColDfn(columnDfn, "Notes", 200, SbmDbDfn.ColumnIdx.SystemUser_Notes);
break;
case SbmSystemUser.Column.Flag:
SetSystemUserColDfn(columnDfn, "Flags", 40, SbmDbDfn.ColumnIdx.SystemUser_Flags, ColumnAlignment.Center, DataValue.DataType.Long);
break;
case SbmSystemUser.Column.Status:
SetSystemUserColDfn(columnDfn, "Status", 50, SbmDbDfn.ColumnIdx.SystemUser_Status, ColumnAlignment.Center);
break;
case SbmSystemUser.Column.Status_Desc:
SetSystemUserColDfn(columnDfn, "Status", 50, SbmDbDfn.ColumnIdx.SystemUser_Status);
break;
case SbmSystemUser.Column.Status_Ind:
SetSystemUserColDfn(columnDfn, "Status", 50, SbmDbDfn.ColumnIdx.SystemUser_Status, ColumnAlignment.Center, DataValue.DataType.TriState);
columnDfn.TriStateFormat = ColumnTriStateFormat.Lights;
break;
case SbmSystemUser.Column.CreateOn_Date:
SetSystemUserColDfn(columnDfn, "Created", 65, SbmDbDfn.ColumnIdx.SystemUser_CreateOn, ColumnAlignment.Center, DataValue.DataType.Date);
columnDfn.DateFormat = "d-MMM-yy";
columnDfn.ReadOnly = true;
break;
case SbmSystemUser.Column.UpdateOn_Date:
SetSystemUserColDfn(columnDfn, "Updated", 65, SbmDbDfn.ColumnIdx.SystemUser_UpdateOn, ColumnAlignment.Center, DataValue.DataType.Date);
columnDfn.DateFormat = "d-MMM-yy";
columnDfn.ReadOnly = true;
break;
}
if (!String.IsNullOrEmpty(caption))
columnDfn.Caption = caption;
if (width > 0)
columnDfn.Width = width;
return columnDfn;
}
//-------------------------------------------------------------------
// SystemUser query filter.
public override List<string> GetSystemUserQueryFilter(SbmSystemUser.Params prm)
{
List<String> filter = new List<String>();
// SystemUser Id.
String includedIds = prm.IncludedIds.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(",");
if (!excludedIds.IsEmpty())
filter.Add(colSystemUser_Id + " NOT IN (" + excludedIds + ")");
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Owner.
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemUser_AffIdOwner, aliasSystemUser) + "=" + AffiliateId_Owner.ToString());
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Code Partial.
if (!StringUtil.IsEmpty(prm.CodePartial))
{
;
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemUser_Code, aliasSystemAccount) + " LIKE '" + DbQuery.FormatForLike(prm.CodePartial) + "%'");
}
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Email Partial - link to affiliate.
if (!StringUtil.IsEmpty(prm.EmailPartial))
{
// Query contacts (affiliates) by partial email.
DbQuery qryAff = new DbQuery(db.DbmsType);
qryAff.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Affiliate), aliasSystemUser_Affiliate);
qryAff.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Id, aliasSystemUser_Affiliate));
qryAff.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Email, aliasSystemUser_Affiliate) + " LIKE '" + DbQuery.FormatForLike(prm.EmailPartial) + "%'");
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemUser_AffiliateId) + " IN(" + qryAff.BuildQuery() + ")");
}
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Exclude Users that are already associated with the specified System Account by Interface & Association.
if (SysId.IsValid(prm.AssocationExcludeIdUserAccounts))
{
// Query system account.
DbQuery qrySysAcc = new DbQuery(db.DbmsType);
qrySysAcc.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SystemAccount), aliasSystemUser_SystemAccount);
qrySysAcc.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccount_Id, aliasSystemUser_SystemAccount));
qrySysAcc.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccount_AssocId, aliasSystemUser_SystemAccount) + "=" + prm.AssocationExcludeIdUserAccounts.ToString());
if (SysId.IsValid(prm.InterfaceId))
qrySysAcc.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccount_InterfaceId, aliasSystemUser_SystemAccount) + "=" + prm.InterfaceId.ToString());
// Query users that belong to this account.
DbQuery qrySysAccUsr = new DbQuery(db.DbmsType);
qrySysAccUsr.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SystemAccountUser), aliasSystemUser_SystemAccountUser);
qrySysAccUsr.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccountUser_UserId, aliasSystemUser_SystemAccountUser));
qrySysAccUsr.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemAccountUser_AccountId, aliasSystemUser_SystemAccountUser) + " IN(" + qrySysAcc.BuildQuery() + ")");
// Exclude users that belong to any of these accounts:
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemUser_Id) + " NOT IN(" + qrySysAccUsr.BuildQuery() + ")");
}
if (filter.Count < 1 && prm.IncludeDefaultFilter) filter.Add("1=1");
return filter;
}
// SystemUser sort columns.
public List<String> GetSystemUserSortColumns(SbmSystemUser.Params prm)
{
// Sort sequence.
List<String> sortColumnCodes = new List<String>();
foreach (var columnDfn in prm.SortColumns)
{
// Need to ensure correct alias used for SystemUser columns in case of conflict.
String sortCol = String.Empty;
if (SbmDbDfn.GetTableForColumn((SbmDbDfn.ColumnIdx)columnDfn.DbColumn) == SbmDbDfn.TableIdx.SystemUser)
{
sortCol = SbmDbDfn.GetColumnNameQual((SbmDbDfn.ColumnIdx)columnDfn.DbColumn, aliasSystemUser);
}
else
{
sortCol = columnDfn.DataName;
if (!StringUtil.IsEmpty(columnDfn.SortDataName))
sortCol = columnDfn.SortDataName;
}
if (!sortCol.IsEmpty())
{
DbOrderByNullMode orderByNullMode = DbOrderByNullMode.Default; // eSaOrderByDemoteNulls, eSaOrderByPromoteNulls
sortColumnCodes.Add(DbQuery.FormatForOrderBy(sortCol, columnDfn.SortAscending, orderByNullMode).Concat(", "));
}
}
sortColumnCodes.RemoveBlanks();
if (sortColumnCodes.IsEmpty())
{
// Default sort columns:
sortColumnCodes.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemUser_AffIdOwner, aliasSystemUser) + " ASC");
}
return sortColumnCodes;
}
//-------------------------------------------------------------------
// SystemUser count.
private long GetSystemUserCount(String filter)
{
ClearErrorState();
return db.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SystemUser) + " As " + aliasSystemUser, filter);
}
public override long GetSystemUserCount(SbmSystemUser.Params prm)
{
ClearErrorState();
return GetSystemUserCount(GetSystemUserQueryFilter(prm).Concat(" AND ", "(", ")"));
}
//-------------------------------------------------------------------
// SystemUser list.
public override List<SbmSystemUser> GetSystemUserList(SbmSystemUser.Params prm)
{
List<SbmSystemUser> SystemUseres = new List<SbmSystemUser>();
DbQuery qry = new DbQuery(db.DbmsType);
qry.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SystemUser), aliasSystemUser);
SystemUser_Db dbSystemUser = new SystemUser_Db(DbInfo);
qry.Columns.AddRange(dbSystemUser.ExistingColumnNames);
qry.Filters.AddRange(GetSystemUserQueryFilter(prm));
qry.OrderBy.AddRange(GetSystemUserSortColumns(prm));
// Query data.
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
dbConnection.Open();
dbCommand.CommandText = qry.BuildQuery(prm.ResultsPaging);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
while (dbDataReader.Read())
{
dbSystemUser = new SystemUser_Db(DbInfo);
dbSystemUser.PopulateFrom(dbDataReader);
SystemUseres.Add(CreateSystemUser(dbSystemUser));
}
}
}
catch (Exception exc)
{
SaLogger.Warn(GetType().Name + ".GetSystemUserList\n\tQuery: " + dbCommand.CommandText + "\n\tException: " + exc.Message);
}
}
return SystemUseres;
}
//-------------------------------------------------------------------
// SystemUser query execution.
public override DbResultSet SystemUserExecuteQuery(List<ColumnDfn> columns, SbmSystemUser.Params prm)
{
ClearErrorState();
//---------------------------------------------------------------------
// Construct build database query.
DbQuery query = new DbQuery(db.DbmsType);
query.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SystemUser), aliasSystemUser);
// SystemUser Properties - add columns as defined in query list.
if (columns.HasId((int)SbmSystemUser.Column.Id))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemUser_Id, aliasSystemUser));
if (columns.HasId((int)SbmSystemUser.Column.Code))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemUser_Code, aliasSystemUser));
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Contact details.
bool hasCol_ContactEmail = columns.HasId((int)SbmSystemUser.Column.Contact_Email);
bool hasCol_ContactName = columns.HasId((int)SbmSystemUser.Column.Contact_Name);
bool hasCol_ContactPhoneMain = columns.HasId((int)SbmSystemUser.Column.Contact_PhoneMain);
bool hasCol_ContactPhoneMobile = columns.HasId((int)SbmSystemUser.Column.Contact_PhoneMobile);
if (hasCol_ContactEmail || hasCol_ContactName || hasCol_ContactPhoneMain || hasCol_ContactPhoneMobile)
{
// Join to the contact (affiliate) table.
DbQueryJoin joinAff = new DbQueryJoin(DbJoinType.LeftOuter);
joinAff.Table = new StringPair(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Affiliate), aliasSystemUser_Affiliate);
joinAff.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Id, aliasSystemUser_Affiliate) + "=" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemUser_AffiliateId, aliasSystemUser));
query.Joins.Add(joinAff);
// Add the user columns to the query.
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Id, aliasSystemUser_Affiliate), prefixSystemUser_Affiliate + SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Affiliate_Id));
if (hasCol_ContactName)
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Name, aliasSystemUser_Affiliate), prefixSystemUser_Affiliate + SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Affiliate_Name));
if (hasCol_ContactEmail)
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_Email, aliasSystemUser_Affiliate), prefixSystemUser_Affiliate + SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Affiliate_Email));
if (hasCol_ContactPhoneMain)
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_PhoneMain, aliasSystemUser_Affiliate), prefixSystemUser_Affiliate + SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Affiliate_PhoneMain));
if (hasCol_ContactPhoneMobile)
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Affiliate_PhoneMobile, aliasSystemUser_Affiliate), prefixSystemUser_Affiliate + SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Affiliate_PhoneMobile));
}
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Number of associated accounts:
if (columns.HasId((int)SbmSystemUser.Column.AccountCount))
{
DbQuery qryAccounts = new DbQuery(db.DbmsType);
qryAccounts.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SystemAccountUser), aliasSystemUser_SystemAccountUser);
qryAccounts.Columns.Add("Count(" + SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SystemAccountUser_AccountId) + ")", aliasSystemUser_SystemAccountUser);
qryAccounts.Filters.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SystemAccountUser_UserId) + "=" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemUser_Id, aliasSystemUser));
query.Columns.Add("(" + qryAccounts.BuildQuery() + ")", colnameSysUsr_AccountCount);
}
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Common Properties
if (columns.HasId((int)SbmSystemUser.Column.Notes))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemUser_Notes, aliasSystemUser));
if (columns.HasId((int)SbmSystemUser.Column.Flag))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemUser_Flags, aliasSystemUser));
if (columns.HasId((int)SbmSystemUser.Column.Status) || columns.HasId((int)SbmSystemUser.Column.Status_Desc) || columns.HasId((int)SbmSystemUser.Column.Status_Ind))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemUser_Status, aliasSystemUser));
if (columns.HasId((int)SbmSystemUser.Column.CreateOn_Date))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemUser_CreateOn, aliasSystemUser));
if (columns.HasId((int)SbmSystemUser.Column.UpdateOn_Date))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SystemUser_UpdateOn, aliasSystemUser));
//---------------------------------------------------------------------
// Populate filter.
query.Filters.AddRange(GetSystemUserQueryFilter(prm));
if (prm.IncludedIds.Count != 1)
{
// Configure sort sequence.
foreach (String sortColumn in GetSystemUserSortColumns(prm))
query.OrderBy.Add(sortColumn);
}
//---------------------------------------------------------------------
//return new DbResultSet_DataTableReader(db, query.BuildQuery());
return DbResultSet_DataReader.ExecuteQuery(db, query.BuildQuery(prm.ResultsPaging));
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,41 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Mgr;
using Sarand.BusinessMgr.Net.Standard.Dbas.Data;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Dbas.Base;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
{
//=======================================================================
internal partial class SbmAccountMgr_Dbas : SbmAccountMgr
{
//-------------------------------------------------------------------
// Data members.
private SacsDatabase db = null;
//-------------------------------------------------------------------
// Construction.
public SbmAccountMgr_Dbas(SbmUserContext userContext) :
base(userContext)
{
db = (SbmGlobals.Application.GetDatabase(SessionContext) as SacsDatabase);
DbInfo = new SbmDbDataItem.SbmDatabaseInfo(db.DatabaseName, db.GetTableDfns());
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
}
base.Dispose(disposing);
}
//-------------------------------------------------------------------
// Properties.
protected ISacsDatabase Database { get { return db; } }
protected SbmDbDataItem.SbmDatabaseInfo DbInfo { get; }
public override bool SystemAccountDatabaseIsValid { get { return Database.TableExists(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SystemAccount)); } }
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,811 @@
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
{
//=======================================================================
partial class SbmAssetMgr_Dbas
{
//*******************************************************************
// A s s e t
//*******************************************************************
// Utilities.
private List<StringPair> GetLogProperties(SbmAsset asset)
{
return new List<StringPair>()
{
new StringPair("Id",SysId.ToString(asset.Id)),
new StringPair("DescBrief",asset.DescBrief),
new StringPair("Status",asset.StatusCode)
};
}
//-------------------------------------------------------------------
// Data members.
//-------------------------------------------------------------------
// Get Asset.
public override SbmAsset GetAsset(SbmAsset.Params prm)
{
return GetAsset(GetAssetQueryFilter(prm).Concat(" AND ", "(", ")"));
}
private SbmAsset GetAsset(String filter)
{
ClearErrorState();
long count = GetAssetCount(filter);
if (count == 0) return null;
if (count != 1)
{
SetErrorState("Multiple Assets found");
return null;
}
SbmAsset asset = null;
// Query data.
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
dbConnection.Open();
SaAsset_Db dbAsset = new SaAsset_Db(DbInfo);
dbAsset.PopulateFrom(dbCommand, aliasAsset, filter);
asset = CreateAsset(dbAsset);
}
catch (Exception exc)
{
SetErrorState("Database query exception");
SaLogger.Warn(GetType().Name + ".GetAsset\n\tQuery: " + dbCommand.CommandText + "\n\tException: " + exc.Message);
}
}
return asset;
}
//-------------------------------------------------------------------
// Create Asset.
public override SbmAsset CreateAsset(SysId assetCatId)
{
ClearErrorState();
SbmAsset asset = null;
if (SysId.IsValid(assetCatId))
asset = new SbmAsset_Dbas(UserContext, new SysId(), assetCatId, 0);
else SetErrorState("Asset Cat Id is not identified");
return asset;
}
private SbmAsset_Dbas CreateAsset(SaAsset_Db dbAsset)
{
ClearErrorState();
SbmAsset_Dbas asset = new SbmAsset_Dbas(UserContext, new SysId(dbAsset._Id), new SysId(dbAsset._AssetCategoryId), (ushort)dbAsset._Flags);
PopulateFrom(dbAsset, asset);
return asset;
}
//-------------------------------------------------------------------
// Validate Asset.
public override bool IsValidAssetData(SbmAsset.Data data, SbmAsset.ErrField errField)
{
ClearErrorState();
if (!base.IsValidAssetData(data, errField)) return false;
return true;
}
//-------------------------------------------------------------------
// Insert Asset.
public override bool InsertAsset(SbmAsset asset, DbUpdateInfo dbUpdateInfo)
{
String fn = GetType().Name + ".InsertAsset";
ClearErrorState();
if (!IsValidAsset(asset)) return false;
if (SysId.IsValid(asset.Id)) return SetErrorState(ErrorMessage.ValiditemId);
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
dbConnection.Open();
SaAsset_Db dbAsset = new SaAsset_Db(DbInfo);
PopulateTo(dbAsset, asset, dbUpdateInfo);
if (SaAsset_Db.FieldsNonId.Contains("Id"))
{
// Generate next Id.
dbAsset._Id = SysId.ToInt(db.GetNextId("Asset", dbUpdateInfo));
}
dbAsset.ExecuteInsertCommand(dbCommand);
asset.Id = new SysId(dbAsset._Id);
asset.Changed = false;
if (DebugMode) SaLogger.Debug(fn + " Inserted. " + GetLogProperties(asset).Concat(": ").Concat("", "\n\t"));
}
catch (Exception exc) { SetErrorState(exc.Message); }
}
return !HasErrorState();
}
//-------------------------------------------------------------------
// Update Asset.
public override bool UpdateAsset(SbmAsset asset, DbUpdateInfo dbUpdateInfo)
{
String fn = GetType().Name + ".UpdateAsset";
ClearErrorState();
if (!IsValidAsset(asset)) return false;
if (!SysId.IsValid(asset.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
if (!asset.Changed)
{
if (DebugMode) SaLogger.Debug(fn + " Data not changed. " + GetLogProperties(asset).Concat(": ").Concat("", "\n\t"));
return true;
}
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
// Retrieve Asset.
dbConnection.Open();
SaAsset_Db dbAsset = new SaAsset_Db(DbInfo);
dbAsset.PopulateFrom(dbCommand, aliasAsset, "Id=" + SysId.ToString(asset.Id));
SbmUpdateLogItemMonitor_Asset updateLogMonitor = new SbmUpdateLogItemMonitor_Asset(UserContext, CreateAsset(dbAsset));
// Update properties.
PopulateTo(dbAsset, asset, dbUpdateInfo);
dbAsset.ExecuteUpdateCommand(dbCommand);
asset.Changed = false;
if (DebugMode) SaLogger.Debug(fn + " Updated." + GetLogProperties(asset).Concat(": ").Concat("", "\n\t"));
// Record updates.
updateLogMonitor.RecordUpdatedValues(asset);
updateLogMonitor.LogUpdates();
}
catch (Exception exc) { SetErrorState(exc.Message); }
}
return !HasErrorState();
}
//-------------------------------------------------------------------
// Delete Asset.
public override bool AssetCanBeDeleted(SbmAsset asset)
{
ClearErrorState();
if (!base.AssetCanBeDeleted(asset)) return false;
return true;
}
public override bool DeleteAsset(SbmAsset asset, DbUpdateInfo dbUpdateInfo)
{
String fn = GetType().Name + ".InsertAsset";
ClearErrorState();
if (!AssetCanBeDeleted(asset)) return false;
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
// Retrieve Asset.
dbConnection.Open();
SaAsset_Db dbAsset = new SaAsset_Db(DbInfo);
dbAsset.PopulateFrom(dbCommand, aliasAsset, "Id=" + asset.Id.ToString());
// Delete Asset.
dbCommand.CommandType = System.Data.CommandType.Text;
dbCommand.CommandText = "DELETE FROM " + SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAsset) + " WHERE Id=" + SysId.ToString(asset.Id) + ";";
dbCommand.ExecuteNonQuery();
asset.Changed = false;
if (DebugMode) SaLogger.Debug(fn + " Deleted." + GetLogProperties(asset).Concat(": ").Concat("", "\n\t"));
}
catch (Exception exc) { SetErrorState(exc.Message); }
}
return !HasErrorState();
}
//-------------------------------------------------------------------
// Copy data properties to and from database.
private void PopulateTo(SaAsset_Db dbAsset, SbmAsset asset, DbUpdateInfo dbUpdateInfo)
{
dbAsset._Id = asset.Id.ToInt();
dbAsset._AssetCategoryId = asset.AssetCategoryId.ToInt();
dbAsset._SerialNumber = asset.SerialNumber;
dbAsset._RefExt = asset.RefExt;
dbAsset._DescBrief = asset.DescBrief;
dbAsset._ItemType = asset.ItemId.Type;
dbAsset._ItemId = SysId.ToInt(asset.ItemId.Id);
dbAsset._PurchaseOn = asset.PurchaseOn;
dbAsset._AssocIdSupplier = asset.AssocIdSupplier.ToInt();
dbAsset._PurchaseInvoiceRef = asset.PurchaseInvoiceRef;
dbAsset._PaymentTerms = asset.PaymentTerms;
dbAsset._AmountPurchase = asset.AmountPurchase;
dbAsset._TaxCodeIdPurchase = asset.TaxCodeIdPurchase.ToInt();
dbAsset._AmountPurchaseGross = asset.AmountPurchaseGross;
dbAsset._AmountSettlementGross = asset.AmountSettlementGross;
dbAsset._AmountEnhancementGross = asset.AmountEnhancementGross;
dbAsset._AssocIdCustomer = asset.AssocIdCustomer.ToInt();
dbAsset._SellCategoryCode = asset.SellCategoryCode;
dbAsset._AmountSell = asset.AmountSell;
dbAsset._TaxCodeIdSell = asset.TaxCodeIdSell.ToInt();
dbAsset._AmountSellGross = asset.AmountSellGross;
dbAsset._TaxCodeIdProfit = asset.TaxCodeIdProfit.ToInt();
dbAsset._SoldOn = asset.SoldOn;
dbAsset._AmountSold = asset.AmountSold;
dbAsset._AmountSoldGross = asset.AmountSoldGross;
dbAsset._DisposeCode = asset.DisposeCode;
dbAsset._DisposeOn = asset.DisposeOn;
dbAsset._DueBackOn = asset.DueBackOn;
dbAsset._AmountRentalCost = asset.AmountRentalCost;
dbAsset._UomIdRentalCost = asset.UomIdRentalCost.ToInt();
dbAsset._TaxCodeIdRentalCost = asset.TaxCodeIdRentalCost.ToInt();
dbAsset._AmountRentalPrice = asset.AmountRentalPrice;
dbAsset._UomIdRentalPrice = asset.UomIdRentalPrice.ToInt();
dbAsset._TaxCodeIdRentalPrice = asset.TaxCodeIdRentalPrice.ToInt();
dbAsset._ProcessIdNext = asset.ProcessIdNext.ToInt();
// Common properties.
dbAsset._Notes = asset.Notes;
dbAsset._Status = SacsSystem.GetStatusCode(asset.Status);
dbAsset._Flags = (short)asset.Flags;
if (!SysId.IsValid(asset.Id))
{
dbAsset._CreateOn = DateTime.UtcNow;
dbAsset._CreateBy = dbUpdateInfo.UserId.ToInt();
dbAsset._CreateHost = dbUpdateInfo.Host;
}
dbAsset._UpdateOn = DateTime.UtcNow;
dbAsset._UpdateBy = dbUpdateInfo.UserId.ToInt();
dbAsset._UpdateHost = dbUpdateInfo.Host;
}
private void PopulateFrom(SaAsset_Db dbAsset, SbmAsset asset)
{
asset.AssetCategoryId = new SysId(dbAsset._AssetCategoryId);
asset.SerialNumber = dbAsset._SerialNumber;
asset.RefExt = dbAsset._RefExt;
asset.DescBrief = dbAsset._DescBrief;
asset.ItemId = new ItemId(dbAsset._ItemType, new SysId(dbAsset._ItemId));
asset.PurchaseOn = dbAsset._PurchaseOn;
asset.AssocIdSupplier = new SysId(dbAsset._AssocIdSupplier);
asset.PurchaseInvoiceRef = dbAsset._PurchaseInvoiceRef;
asset.PaymentTerms = dbAsset._PaymentTerms;
asset.AmountPurchase = dbAsset._AmountPurchase;
asset.TaxCodeIdPurchase = new SysId(dbAsset._TaxCodeIdPurchase);
asset.AmountPurchaseGross = dbAsset._AmountPurchaseGross;
asset.AmountSettlementGross = dbAsset._AmountSettlementGross;
asset.AmountEnhancementGross = dbAsset._AmountEnhancementGross;
asset.AssocIdCustomer = new SysId(dbAsset._AssocIdCustomer);
asset.SellCategoryCode = dbAsset._SellCategoryCode;
asset.AmountSell = dbAsset._AmountSell;
asset.TaxCodeIdSell = new SysId(dbAsset._TaxCodeIdSell);
asset.AmountSellGross = dbAsset._AmountSellGross;
asset.TaxCodeIdProfit = new SysId(dbAsset._TaxCodeIdProfit);
asset.SoldOn = dbAsset._SoldOn;
asset.AmountSold = dbAsset._AmountSold;
asset.AmountSoldGross = dbAsset._AmountSoldGross;
asset.DisposeCode = dbAsset._DisposeCode;
asset.DisposeOn = dbAsset._DisposeOn;
asset.DueBackOn = dbAsset._DueBackOn;
asset.AmountRentalCost = dbAsset._AmountRentalCost;
asset.UomIdRentalCost = new SysId(dbAsset._UomIdRentalCost);
asset.TaxCodeIdRentalCost = new SysId(dbAsset._TaxCodeIdRentalCost);
asset.AmountRentalPrice = dbAsset._AmountRentalPrice;
asset.UomIdRentalPrice = new SysId(dbAsset._UomIdRentalPrice);
asset.TaxCodeIdRentalPrice = new SysId(dbAsset._TaxCodeIdRentalPrice);
asset.ProcessIdNext = new SysId(dbAsset._ProcessIdNext);
// Common properties.
asset.Notes = dbAsset._Notes;
asset.Status = SacsSystem.GetStatusForCode(dbAsset._Status);
asset.SetCreateStamp(dbAsset._CreateOn, new SysId(dbAsset._CreateBy), dbAsset._CreateHost);
asset.SetUpdateStamp(dbAsset._UpdateOn, new SysId(dbAsset._UpdateBy), dbAsset._UpdateHost);
asset.AcceptChanges();
}
//-------------------------------------------------------------------
// Asset column definitions.
private static readonly String aliasAsset = "aAst";
private static readonly String prefixAsset = "Ast_";
// AssetCategory Alias&Prefix.
private static readonly String aliasAsset_AssetCategory = "aAstAstCat";
private static readonly String prefixAsset_AssetCategory = "AstAstCat_";
// AssetProcess Alias&Prefix.
private static readonly String aliasAsset_AssetProcess = "aAstAstPrc";
private static readonly String prefixAsset_AssetProcess = "AstAstPrc_";
// ItemProcess Alias&Prefix.
private static readonly String aliasAsset_ItemProcess = "aAstItmPrc";
private static readonly String prefixAsset_ItemProcess = "AstItmPrc_";
// Vehicle Alias&Prefix.
private static readonly String aliasAsset_Vehicle = "aAstVeh";
private static readonly String prefixAsset_Vehicle = "AstVeh_";
// VehicleClass Alias&Prefix.
private static readonly String aliasAsset_VehicleClass = "aAstVehCls";
private static readonly String prefixAsset_VehicleClass = "AstVehCls_";
private void SetAssetColDfn
(ColumnDfn col, String caption, int width, SbmDbDfn.ColumnIdx dbCol,
ColumnAlignment align = ColumnAlignment.Default, DataValue.DataType dataCategoryId = DataValue.DataType.String,
String alias = "", String prefix = "")
{
if (String.IsNullOrEmpty(alias) && SbmDbDfn.GetTableForColumn(dbCol) == SbmDbDfn.TableIdx.SaAsset)
alias = aliasAsset;
col.Set(caption, width, (int)dbCol, prefix + SbmDbDfn.GetColumnName(dbCol, false), SbmDbDfn.GetColumnNameQual(dbCol, alias), dataCategoryId, align);
if (dataCategoryId == DataValue.DataType.String && dbCol != SbmDbDfn.ColumnIdx.Unknown)
col.MaxLength = (int)SbmDbDfn.GetColTextLen(dbCol);
}
//-------------------------------------------------------------------
// Getting Asset column definition.
public override ColumnDfn GetAssetColumnDfn(SbmAsset.Column columnId, string caption = "", int width = 0)
{
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
switch (columnId)
{
case SbmAsset.Column.Pos:
SetAssetColDfn(columnDfn, "Pos", 45, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Right);
columnDfn.SortMode = ColumnDfn.ColumnSortMode.Off;
columnDfn.ReadOnly = true;
columnDfn.Resizable = false;
break;
case SbmAsset.Column.Id:
SetAssetColDfn(columnDfn, "Id", 60, SbmDbDfn.ColumnIdx.SaAsset_Id, ColumnAlignment.Right, DataValue.DataType.Long, aliasAsset, prefixAsset);
columnDfn.ReadOnly = true;
break;
// Asset Properties.
case SbmAsset.Column.AssetCategoryId:
SetAssetColDfn(columnDfn, "Cat Id", 45, SbmDbDfn.ColumnIdx.SaAsset_AssetCategoryId, ColumnAlignment.Right, DataValue.DataType.Long);
break;
case SbmAsset.Column.Category_Type_Desc:
SetAssetColDfn(columnDfn, "Category type", 70, SbmDbDfn.ColumnIdx.SaAssetCategory_AssetType, ColumnAlignment.Center, DataValue.DataType.String, aliasAsset_AssetCategory, prefixAsset_AssetCategory);
break;
case SbmAsset.Column.Category_Code:
SetAssetColDfn(columnDfn, "Category code", 80, SbmDbDfn.ColumnIdx.SaAssetCategory_Code, ColumnAlignment.Center, DataValue.DataType.String, aliasAsset_AssetCategory, prefixAsset_AssetCategory);
break;
case SbmAsset.Column.Category_DescBrief:
SetAssetColDfn(columnDfn, "Category", 100, SbmDbDfn.ColumnIdx.SaAsset_DescBrief, ColumnAlignment.Default, DataValue.DataType.String, aliasAsset_AssetCategory, prefixAsset_AssetCategory);
break;
case SbmAsset.Column.SerialNumber:
SetAssetColDfn(columnDfn, "Serial", 80, SbmDbDfn.ColumnIdx.SaAsset_SerialNumber);
break;
case SbmAsset.Column.DescBrief:
SetAssetColDfn(columnDfn, "Desc", 140, SbmDbDfn.ColumnIdx.SaAsset_DescBrief);
break;
case SbmAsset.Column.PurchaseOn:
break;
case SbmAsset.Column.AmountPurchase:
SetAssetColDfn(columnDfn, "Purchase (net)", 80, SbmDbDfn.ColumnIdx.SaAsset_AmountPurchase, ColumnAlignment.Right, DataValue.DataType.Double);
columnDfn.NumDecimals = 2;
break;
case SbmAsset.Column.AmountPurchaseGross:
SetAssetColDfn(columnDfn, "Purchase", 80, SbmDbDfn.ColumnIdx.SaAsset_AmountPurchaseGross, ColumnAlignment.Right, DataValue.DataType.Double);
columnDfn.NumDecimals = 2;
break;
case SbmAsset.Column.SellCategoryDesc:
SetAssetColDfn(columnDfn, "Sale category", 90, SbmDbDfn.ColumnIdx.SaAsset_SellCategoryCode);
break;
case SbmAsset.Column.AmountSell:
SetAssetColDfn(columnDfn, "Sell (net)", 80, SbmDbDfn.ColumnIdx.SaAsset_AmountSell, ColumnAlignment.Right, DataValue.DataType.Double);
columnDfn.NumDecimals = 2;
break;
case SbmAsset.Column.AmountSellGross:
SetAssetColDfn(columnDfn, "Sell", 80, SbmDbDfn.ColumnIdx.SaAsset_AmountSellGross, ColumnAlignment.Right, DataValue.DataType.Double);
columnDfn.NumDecimals = 2;
break;
case SbmAsset.Column.SoldOn:
break;
case SbmAsset.Column.AmountSold:
SetAssetColDfn(columnDfn, "Amount sold", 80, SbmDbDfn.ColumnIdx.SaAsset_AmountSold, ColumnAlignment.Right, DataValue.DataType.Double);
columnDfn.NumDecimals = 2;
break;
case SbmAsset.Column.DisposeCode:
break;
case SbmAsset.Column.DisposeOn:
break;
case SbmAsset.Column.DueBackOn:
break;
case SbmAsset.Column.AmountRentalCost:
SetAssetColDfn(columnDfn, "Rental cost", 80, SbmDbDfn.ColumnIdx.SaAsset_AmountRentalCost, ColumnAlignment.Right, DataValue.DataType.Double);
columnDfn.NumDecimals = 2;
break;
case SbmAsset.Column.UomRentalCost_Id:
SetAssetColDfn(columnDfn, "Rental cost unit#", 80, SbmDbDfn.ColumnIdx.SaAsset_UomIdRentalCost, ColumnAlignment.Right, DataValue.DataType.Long);
break;
case SbmAsset.Column.UomRentalCost_Desc:
break;
case SbmAsset.Column.AmountRentalPrice:
SetAssetColDfn(columnDfn, "Rental price", 80, SbmDbDfn.ColumnIdx.SaAsset_AmountRentalPrice, ColumnAlignment.Right, DataValue.DataType.Double);
columnDfn.NumDecimals = 2;
break;
case SbmAsset.Column.UomRentalPrice_Id:
SetAssetColDfn(columnDfn, "Rental price unit#", 80, SbmDbDfn.ColumnIdx.SaAsset_UomIdRentalPrice, ColumnAlignment.Right, DataValue.DataType.Long);
break;
case SbmAsset.Column.UomRentalPrice_Desc:
break;
case SbmAsset.Column.ProcessIdNext:
SetAssetColDfn(columnDfn, "Next Process #", 80, SbmDbDfn.ColumnIdx.SaAsset_ProcessIdNext, ColumnAlignment.Center, DataValue.DataType.Long);
break;
case SbmAsset.Column.NextProcess_DescBrief:
SetAssetColDfn(columnDfn, "Next Process", 100, SbmDbDfn.ColumnIdx.Process_DescBrief, ColumnAlignment.Left, DataValue.DataType.String, aliasAsset_AssetProcess, prefixAsset_AssetProcess);
break;
case SbmAsset.Column.NextProcess_Expected:
SetAssetColDfn(columnDfn, "Next Process due", 100, SbmDbDfn.ColumnIdx.ItemLink_Completed, ColumnAlignment.Center, DataValue.DataType.Date, aliasAsset_ItemProcess, prefixAsset_ItemProcess);
break;
// Common properties.
case SbmAsset.Column.Notes:
SetAssetColDfn(columnDfn, "Notes", 200, SbmDbDfn.ColumnIdx.SaAsset_Notes);
break;
case SbmAsset.Column.Flag:
SetAssetColDfn(columnDfn, "Flags", 40, SbmDbDfn.ColumnIdx.SaAsset_Flags, ColumnAlignment.Center, DataValue.DataType.Long);
break;
case SbmAsset.Column.Status:
SetAssetColDfn(columnDfn, "Status", 50, SbmDbDfn.ColumnIdx.SaAsset_Status, ColumnAlignment.Center);
break;
case SbmAsset.Column.Status_Desc:
SetAssetColDfn(columnDfn, "Status", 50, SbmDbDfn.ColumnIdx.SaAsset_Status);
break;
case SbmAsset.Column.Status_Ind:
SetAssetColDfn(columnDfn, "Status", 50, SbmDbDfn.ColumnIdx.SaAsset_Status, ColumnAlignment.Center, DataValue.DataType.TriState);
columnDfn.TriStateFormat = ColumnTriStateFormat.Lights;
break;
case SbmAsset.Column.CreateOn_Date:
SetAssetColDfn(columnDfn, "Created", 65, SbmDbDfn.ColumnIdx.SaAsset_CreateOn, ColumnAlignment.Center, DataValue.DataType.Date);
columnDfn.DateFormat = "d-MMM-yy";
columnDfn.ReadOnly = true;
break;
case SbmAsset.Column.UpdateOn_Date:
SetAssetColDfn(columnDfn, "Updated", 65, SbmDbDfn.ColumnIdx.SaAsset_UpdateOn, ColumnAlignment.Center, DataValue.DataType.Date);
columnDfn.DateFormat = "d-MMM-yy";
columnDfn.ReadOnly = true;
break;
case SbmAsset.Column.Warnings:
SetAssetColDfn(columnDfn, "Warnings", 200, SbmDbDfn.ColumnIdx.Unknown);
break;
}
if (!String.IsNullOrEmpty(caption))
columnDfn.Caption = caption;
if (width > 0)
columnDfn.Width = width;
return columnDfn;
}
//-------------------------------------------------------------------
// Asset query filter.
public override List<string> GetAssetQueryFilter(SbmAsset.Params prm)
{
List<String> filter = new List<String>();
// Asset Id.
String includedIds = prm.IncludedIds.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(",");
if (!excludedIds.IsEmpty())
filter.Add(colAsset_Id + " NOT IN (" + excludedIds + ")");
// Asset CategoryId.
String colSaAsset_CategoryId = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_AssetCategoryId, aliasAsset);
if (SysId.IsValid(prm.AssetCatId))
filter.Add(colSaAsset_CategoryId + "='" + prm.AssetCatId.ToString());
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Item Type & Id.
String colAsset_ItemType = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_ItemType, aliasAsset);
if (prm.ItemType > 0)
filter.Add(colAsset_ItemType + "=" + ((int)prm.ItemType).ToString());
String colAsset_ItemId = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_ItemId, aliasAsset);
if (ItemId.IsValid(prm.ItemId))
filter.Add(colAsset_ItemId + "=" + prm.ItemId.ToString());
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Partial SerialNumber.
String serialNumberFull = DbQuery.FormatForCondition(prm.SerialNumber);
String serialNumberPartial = DbQuery.FormatForCondition(prm.SerialNumberPartial);
String colAsset_SerialNumber = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_SerialNumber, aliasAsset);
if (!StringUtil.IsEmpty(serialNumberFull))
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_SerialNumber, aliasAsset) + "='" + serialNumberFull + "'");
else if (!StringUtil.IsEmpty(serialNumberPartial))
filter.Add(DbQuery.FormatFn_Left(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_SerialNumber, aliasAsset), prm.SerialNumberPartial.Length) + " ='" + serialNumberPartial + "'");
// Partial Description.
String description = DbQuery.FormatForCondition(prm.DescBriefPartial);
String colAsset_DescBrief = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_DescBrief, aliasAsset);
if (!StringUtil.IsEmpty(description))
filter.Add(DbQuery.FormatFn_Left(colAsset_DescBrief, prm.DescBriefPartial.Length) + " ='" + description + "'");
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Next Process Id.
String colAsset_ProcessIdNext = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_ProcessIdNext, aliasAsset);
if (SysId.IsValid(prm.ProcessIdNext))
filter.Add(colAsset_ProcessIdNext + "=" + prm.ProcessIdNext.ToString());
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Active Process Id.
if (SysId.IsValid(prm.ProcessIdActive))
{
String aliasItemLink = "aAstItemLnk";
DbQuery qryProc = new DbQuery(db.DbmsType);
qryProc.Tables.Add(new StringPair(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.ItemLink), aliasItemLink));
qryProc.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.ItemLink_ItemIdFrom, aliasItemLink));
qryProc.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.ItemLink_ItemTypeFrom, aliasItemLink) + "=" + ((int)Sbm.ItemType.Asset).ToString());
qryProc.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.ItemLink_ItemIdFrom, aliasItemLink) + "=" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_Id, aliasAsset));
qryProc.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.ItemLink_ItemTypeTo, aliasItemLink) + "=" + ((int)Sbm.ItemType.Process).ToString());
qryProc.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.ItemLink_ItemIdTo, aliasItemLink) + "=" + prm.ProcessIdActive.ToString());
qryProc.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.ItemLink_Status, aliasItemLink) + "='" + StatusAwaiting + "'");
filter.Add("EXISTS(" + qryProc.BuildQuery() + ")");
}
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Status.
String colAsset_Status = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_Status, aliasAsset);
if (prm.StatusCat == SbmAsset.StatusCat.ActiveOnly)
filter.Add(colAsset_Status + "='" + StatusActive + "'");
if (filter.Count < 1 && prm.IncludeDefaultFilter) filter.Add("1=1");
return filter;
}
// Asset sort columns.
public List<String> GetAssetSortColumns(SbmAsset.Params prm)
{
// Sort sequence:
List<String> sortColumnCodes = new List<String>();
foreach (var columnDfn in prm.SortColumns)
{
// Need to ensure correct alias used for Asset columns in case of conflict.
String sortCol = String.Empty;
if (SbmDbDfn.GetTableForColumn((SbmDbDfn.ColumnIdx)columnDfn.DbColumn) == SbmDbDfn.TableIdx.SaAsset)
{
sortCol = SbmDbDfn.GetColumnNameQual((SbmDbDfn.ColumnIdx)columnDfn.DbColumn, aliasAsset);
}
else
{
sortCol = columnDfn.DataName;
if (!StringUtil.IsEmpty(columnDfn.SortDataName))
sortCol = columnDfn.SortDataName;
}
if (!sortCol.IsEmpty())
{
DbOrderByNullMode orderByNullMode = DbOrderByNullMode.Default; // eSaOrderByDemoteNulls, eSaOrderByPromoteNulls
sortColumnCodes.Add(DbQuery.FormatForOrderBy(sortCol, columnDfn.SortAscending, orderByNullMode).Concat(", "));
}
}
sortColumnCodes.RemoveBlanks();
if (sortColumnCodes.IsEmpty())
{
// Default sort columns:
sortColumnCodes.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_AssetCategoryId, aliasAsset) + " ASC");
}
return sortColumnCodes;
}
//-------------------------------------------------------------------
// Asset count.
private long GetAssetCount(String filter)
{
ClearErrorState();
return db.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAsset) + " As " + aliasAsset, filter);
}
public override long GetAssetCount(SbmAsset.Params prm)
{
ClearErrorState();
return GetAssetCount(GetAssetQueryFilter(prm).Concat(" AND ", "(", ")"));
}
//-------------------------------------------------------------------
// Asset list.
public override List<SbmAsset> GetAssetList(SbmAsset.Params prm)
{
List<SbmAsset> Assetes = new List<SbmAsset>();
DbQuery qry = new DbQuery(db.DbmsType);
qry.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAsset), aliasAsset);
SaAsset_Db dbAsset = new SaAsset_Db(DbInfo);
qry.Columns.AddRange(dbAsset.ExistingColumnNames);
qry.Filters.AddRange(GetAssetQueryFilter(prm));
qry.OrderBy.AddRange(GetAssetSortColumns(prm));
// Query data.
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
dbConnection.Open();
dbCommand.CommandText = qry.BuildQuery(prm.ResultsPaging);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
while (dbDataReader.Read())
{
dbAsset = new SaAsset_Db(DbInfo);
dbAsset.PopulateFrom(dbDataReader);
Assetes.Add(CreateAsset(dbAsset));
}
}
}
catch (Exception exc)
{
SaLogger.Warn(GetType().Name + ".GetAssetList\n\tQuery: " + dbCommand.CommandText + "\n\tException: " + exc.Message);
}
}
return Assetes;
}
//-------------------------------------------------------------------
// Asset query execution.
public override DbResultSet ExecuteAssetQuery(List<ColumnDfn> columns, SbmAsset.Params prm)
{
ClearErrorState();
//---------------------------------------------------------------------
// Construct build database query.
DbQuery query = new DbQuery(db.DbmsType);
query.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAsset), aliasAsset);
// Asset Properties - add columns as defined in query list.
if (columns.HasId((int)SbmAsset.Column.Id))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_Id, aliasAsset));
if (columns.HasId((int)SbmAsset.Column.SerialNumber))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_SerialNumber, aliasAsset));
if (columns.HasId((int)SbmAsset.Column.DescBrief))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_DescBrief, aliasAsset));
if (columns.HasId((int)SbmAsset.Column.PurchaseOn))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_PurchaseOn, aliasAsset));
if (columns.HasId((int)SbmAsset.Column.AmountPurchase))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_AmountPurchase, aliasAsset));
if (columns.HasId((int)SbmAsset.Column.AmountPurchaseGross))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_AmountPurchaseGross, aliasAsset));
if (columns.HasId((int)SbmAsset.Column.SellCategoryDesc))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_SellCategoryCode, aliasAsset));
if (columns.HasId((int)SbmAsset.Column.AmountSell))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_AmountSell, aliasAsset));
if (columns.HasId((int)SbmAsset.Column.AmountSellGross))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_AmountSellGross, aliasAsset));
if (columns.HasId((int)SbmAsset.Column.SoldOn))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_SoldOn, aliasAsset));
if (columns.HasId((int)SbmAsset.Column.AmountSold))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_AmountSold, aliasAsset));
if (columns.HasId((int)SbmAsset.Column.DisposeCode))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_DisposeCode, aliasAsset));
if (columns.HasId((int)SbmAsset.Column.DisposeOn))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_DisposeOn, aliasAsset));
if (columns.HasId((int)SbmAsset.Column.DueBackOn))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_DueBackOn, aliasAsset));
if (columns.HasId((int)SbmAsset.Column.AmountRentalCost))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_AmountRentalCost, aliasAsset));
if (columns.HasId((int)SbmAsset.Column.AmountRentalPrice))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_AmountRentalPrice, aliasAsset));
// Common Properties
if (columns.HasId((int)SbmAsset.Column.Notes))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_Notes, aliasAsset));
if (columns.HasId((int)SbmAsset.Column.Flag))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_Flags, aliasAsset));
if (columns.HasId((int)SbmAsset.Column.Status) || columns.HasId((int)SbmAsset.Column.Status_Desc) || columns.HasId((int)SbmAsset.Column.Status_Ind))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_Status, aliasAsset));
if (columns.HasId((int)SbmAsset.Column.CreateOn_Date))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_CreateOn, aliasAsset));
if (columns.HasId((int)SbmAsset.Column.UpdateOn_Date))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_UpdateOn, aliasAsset));
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Asset category.
bool hasAssetCategoryCols = false;
if (!hasAssetCategoryCols) hasAssetCategoryCols = columns.HasId((int)SbmAsset.Column.Category_Type_Desc);
if (!hasAssetCategoryCols) hasAssetCategoryCols = columns.HasId((int)SbmAsset.Column.Category_Code);
if (!hasAssetCategoryCols) hasAssetCategoryCols = columns.HasId((int)SbmAsset.Column.Category_DescBrief);
if (hasAssetCategoryCols)
{
DbQueryJoin joinAssetCat = new DbQueryJoin(DbJoinType.LeftOuter);
joinAssetCat.Table = new StringPair(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAssetCategory), aliasAsset_AssetCategory);
joinAssetCat.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetCategory_Id, aliasAsset_AssetCategory) + "=" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_AssetCategoryId, aliasAsset));
query.Joins.Add(joinAssetCat);
// Add the Asset Category columns:
List<SbmDbDfn.ColumnIdx> dbColumns = new List<SbmDbDfn.ColumnIdx>()
{
SbmDbDfn.ColumnIdx.SaAssetCategory_AssetType,
SbmDbDfn.ColumnIdx.SaAssetCategory_Code,
SbmDbDfn.ColumnIdx.SaAssetCategory_DescBrief,
};
foreach (SbmDbDfn.ColumnIdx dbColumn in dbColumns)
query.Columns.Add(SbmDbDfn.GetColumnNameQual(dbColumn, aliasAsset_AssetCategory), prefixAsset_AssetCategory + SbmDbDfn.GetColumnName(dbColumn, false));
}
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Vehicle & Vehicle Class.
bool hasVehicleCols = false;
bool hasVehClassCols = false;
if (!hasVehicleCols) hasVehicleCols = columns.HasId((int)SbmAsset.Column.Vehicle_RegNumber);
if (!hasVehicleCols) hasVehicleCols = columns.HasId((int)SbmAsset.Column.Vehicle_Vin);
if (!hasVehicleCols) hasVehicleCols = columns.HasId((int)SbmAsset.Column.Vehicle_KeyLocation);
if (!hasVehicleCols) hasVehicleCols = columns.HasId((int)SbmAsset.Column.Vehicle_Flags);
if (!hasVehicleCols) hasVehicleCols = columns.HasId((int)SbmAsset.Column.Vehicle_HpiAlert);
if (!hasVehClassCols) hasVehClassCols = columns.HasId((int)SbmAsset.Column.VehicleClass_MakeDesc);
if (!hasVehClassCols) hasVehClassCols = columns.HasId((int)SbmAsset.Column.VehicleClass_Model);
if (!hasVehClassCols) hasVehClassCols = columns.HasId((int)SbmAsset.Column.VehicleClass_Derivative);
if (!hasVehClassCols) hasVehClassCols = columns.HasId((int)SbmAsset.Column.VehicleClass_DescBrief);
if (hasVehicleCols || hasVehClassCols)
{
// Join to the vehicle table.
DbQueryJoin joinVehicle = new DbQueryJoin(DbJoinType.LeftOuter);
joinVehicle.Table = new StringPair(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaVehicle), aliasAsset_Vehicle);
joinVehicle.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicle_Id, aliasAsset_Vehicle) + "=" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_ItemId, aliasAsset));
query.Joins.Add(joinVehicle);
// Add the Vehicle columns.
List<SbmDbDfn.ColumnIdx> dbVehicleColumns = new List<SbmDbDfn.ColumnIdx>();
dbVehicleColumns.Add(SbmDbDfn.ColumnIdx.SaVehicle_Id);
if (columns.HasId((int)SbmAsset.Column.Vehicle_RegNumber)) dbVehicleColumns.Add(SbmDbDfn.ColumnIdx.SaVehicle_RegNumber);
if (columns.HasId((int)SbmAsset.Column.Vehicle_Vin)) dbVehicleColumns.Add(SbmDbDfn.ColumnIdx.SaVehicle_VIN);
if (columns.HasId((int)SbmAsset.Column.Vehicle_KeyLocation)) dbVehicleColumns.Add(SbmDbDfn.ColumnIdx.SaVehicle_KeyLocation);
dbVehicleColumns.Add(SbmDbDfn.ColumnIdx.SaVehicle_Flags);
foreach (SbmDbDfn.ColumnIdx dbColumn in dbVehicleColumns)
query.Columns.Add(SbmDbDfn.GetColumnNameQual(dbColumn, aliasAsset_Vehicle), prefixAsset_Vehicle + SbmDbDfn.GetColumnName(dbColumn, false));
if (hasVehClassCols)
{
// Join to the vehicle class table.
DbQueryJoin joinVehicleClass = new DbQueryJoin(DbJoinType.LeftOuter);
joinVehicleClass.Table = new StringPair(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaVehicleClass), aliasAsset_VehicleClass);
joinVehicleClass.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicleClass_Id, aliasAsset_VehicleClass) + "=" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicle_VehicleClassId, aliasAsset_Vehicle));
query.Joins.Add(joinVehicleClass);
// Add the Vehicle Class columns.
List<SbmDbDfn.ColumnIdx> dbVehicleClassColumns = new List<SbmDbDfn.ColumnIdx>();
dbVehicleClassColumns.Add(SbmDbDfn.ColumnIdx.SaVehicleClass_Id);
if (columns.HasId((int)SbmAsset.Column.VehicleClass_MakeDesc)) dbVehicleClassColumns.Add(SbmDbDfn.ColumnIdx.SaVehicleClass_MakeCode);
if (columns.HasId((int)SbmAsset.Column.VehicleClass_Model)) dbVehicleClassColumns.Add(SbmDbDfn.ColumnIdx.SaVehicleClass_Model);
if (columns.HasId((int)SbmAsset.Column.VehicleClass_Derivative)) dbVehicleClassColumns.Add(SbmDbDfn.ColumnIdx.SaVehicleClass_Derivative);
if (columns.HasId((int)SbmAsset.Column.VehicleClass_DescBrief)) dbVehicleClassColumns.Add(SbmDbDfn.ColumnIdx.SaVehicleClass_DescBrief);
//lCol.Insert (eSaDbColSaVehicleClass_Flags);
foreach (SbmDbDfn.ColumnIdx dbColumn in dbVehicleClassColumns)
query.Columns.Add(SbmDbDfn.GetColumnNameQual(dbColumn, aliasAsset_VehicleClass), prefixAsset_VehicleClass + SbmDbDfn.GetColumnName(dbColumn, false));
}
}
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Next process.
if (columns.HasId((int)SbmAsset.Column.NextProcess_DescBrief))
{
// Join to the process table (for the definition of the asset category process):
DbQueryJoin joinProcess = new DbQueryJoin(DbJoinType.LeftOuter);
joinProcess.Table = new StringPair(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Process), aliasAsset_AssetProcess);
joinProcess.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Process_Id, aliasAsset_AssetProcess) + "=" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_ProcessIdNext, aliasAsset));
query.Joins.Add(joinProcess);
// Add the Process columns:
List<SbmDbDfn.ColumnIdx> dbProcessColumns = new List<SbmDbDfn.ColumnIdx>();
dbProcessColumns.Add(SbmDbDfn.ColumnIdx.Process_DescBrief);
foreach (SbmDbDfn.ColumnIdx dbColumn in dbProcessColumns)
query.Columns.Add(SbmDbDfn.GetColumnNameQual(dbColumn, aliasAsset_AssetProcess), prefixAsset_AssetProcess + SbmDbDfn.GetColumnName(dbColumn, false));
}
if (columns.HasId((int)SbmAsset.Column.NextProcess_Expected))
{
// Join to the Item Link table to get information about this asset's process:
DbQueryJoin joinItemLink = new DbQueryJoin(DbJoinType.LeftOuter);
joinItemLink.Table = new StringPair(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.ItemLink), aliasAsset_ItemProcess);
joinItemLink.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.ItemLink_ItemTypeFrom, aliasAsset_ItemProcess) + "=" + ((int)Sbm.ItemType.Asset).ToString());
joinItemLink.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.ItemLink_ItemIdFrom, aliasAsset_ItemProcess) + "=" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_Id, aliasAsset));
joinItemLink.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.ItemLink_ItemTypeTo, aliasAsset_ItemProcess) + "=" + ((int)Sbm.ItemType.Process).ToString());
joinItemLink.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.ItemLink_ItemIdTo, aliasAsset_ItemProcess) + "=" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_ProcessIdNext, aliasAsset));
query.Joins.Add(joinItemLink);
// Add the ItemLink columns:
List<SbmDbDfn.ColumnIdx> dbItemLinkColumns = new List<SbmDbDfn.ColumnIdx>();
dbItemLinkColumns.Add(SbmDbDfn.ColumnIdx.ItemLink_Completed);
foreach (SbmDbDfn.ColumnIdx dbColumn in dbItemLinkColumns)
query.Columns.Add(SbmDbDfn.GetColumnNameQual(dbColumn, aliasAsset_ItemProcess), prefixAsset_ItemProcess + SbmDbDfn.GetColumnName(dbColumn, false));
}
//---------------------------------------------------------------------
// Populate filter.
query.Filters.AddRange(GetAssetQueryFilter(prm));
if (prm.IncludedIds.Count != 1)
{
// Configure sort sequence.
foreach (String sortColumn in GetAssetSortColumns(prm))
query.OrderBy.Add(sortColumn);
}
//---------------------------------------------------------------------
//return new DbResultSet_DataTableReader(db, query.BuildQuery());
return DbResultSet_DataReader.ExecuteQuery(db, query.BuildQuery(prm.ResultsPaging));
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,644 @@
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
{
//=======================================================================
partial class SbmAssetMgr_Dbas
{
//*******************************************************************
// A s s e t C a t e g o r y
//*******************************************************************
// Utilities.
private List<StringPair> GetLogProperties(SbmAssetCategory assetCategory)
{
return new List<StringPair>()
{
new StringPair("Id",SysId.ToString(assetCategory.Id)),
new StringPair("DescBrief",assetCategory.DescBrief),
new StringPair("Status",assetCategory.StatusCode)
};
}
//-------------------------------------------------------------------
// Has AssetCategory.
public bool HasAssetCategoryType(Sbm.AssetType assetType, bool activeOnly)
{
SbmAssetCategory.Params prm = new SbmAssetCategory.Params
{
AssetType = assetType,
RestrictToActive = activeOnly
};
return HasAssetCategory(prm);
}
public bool HasAssetCategory(SbmAssetCategory.Params prm)
{
ClearErrorState();
ISacsDatabase db = SbmGlobals.Application.GetDatabase(SessionContext);
if (db != null)
{
if (db.TableExists(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAssetCategory)))
{
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());
}
return false;
}
//-------------------------------------------------------------------
// Get AssetCategory.
public override SbmAssetCategory GetAssetCategory(SbmAssetCategory.Params prm)
{
return GetAssetCategory(GetAssetCategoryQueryFilter(prm).Concat(" AND ", "(", ")"));
}
private SbmAssetCategory GetAssetCategory(String filter)
{
ClearErrorState();
long count = GetAssetCategoryCount(filter);
if (count == 0) return null;
if (count != 1)
{
SetErrorState("Multiple Asset Categories found");
return null;
}
SbmAssetCategory assetCategory = null;
// Query data.
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
dbConnection.Open();
SaAssetCategory_Db dbAssetCategory = new SaAssetCategory_Db(DbInfo);
dbAssetCategory.PopulateFrom(dbCommand, aliasAssetCategory, filter);
assetCategory = CreateAssetCategory(dbAssetCategory);
}
catch (Exception exc)
{
SetErrorState("Database query exception");
SaLogger.Warn(GetType().Name + ".GetAssetCategory\n\tQuery: " + dbCommand.CommandText + "\n\tException: " + exc.Message);
}
}
return assetCategory;
}
public List<SysIdString> GetAssetCategoryByIdName(SbmAssetCategory.Params prm, bool includeType)
{
ClearErrorState();
List<SysIdString> assetCats = new List<SysIdString>();
String colAssetCategory_Id = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaAssetCategory_Id);
String colAssetCategory_AssetType = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaAssetCategory_AssetType);
String colAssetCategory_DescBrief = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaAssetCategory_DescBrief);
DbQuery qryAssetCat = new DbQuery(db.DbmsType);
qryAssetCat.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAssetCategory));
qryAssetCat.Columns.Add(colAssetCategory_Id);
qryAssetCat.Columns.Add(colAssetCategory_AssetType);
qryAssetCat.Columns.Add(colAssetCategory_DescBrief);
qryAssetCat.Filters.AddRange(GetAssetCategoryQueryFilter(prm));
using (DbResultSet resultSet = DbResultSet_DataReader.ExecuteQuery(db, qryAssetCat.BuildQuery()))
{
while (resultSet != null && resultSet.NextRecord())
{
NamedValue.Map values = resultSet.GetRecordValues();
String caption = values.GetValue(colAssetCategory_DescBrief).ToString();
if (includeType)
{
String assetType = AssetTypes.GetDescForType(values.GetValue(colAssetCategory_AssetType).AsLong());
if (!StringUtil.IsEmpty(assetType)) caption += " (" + assetType + ")";
caption.Trim();
}
assetCats.Add(new SysId((int)values.GetValue(colAssetCategory_Id).AsLong()), caption);
}
}
return assetCats;
}
//-------------------------------------------------------------------
// Create AssetCategory.
public override SbmAssetCategory CreateAssetCategory(Sbm.AssetType assetType)
{
ClearErrorState();
SbmAssetCategory assetCategory = null;
if (assetType > 0)
assetCategory = new SbmAssetCategory_Dbas(UserContext, new SysId(), AffiliateId_Owner, assetType, 0);
else SetErrorState("Asset type not identified");
return assetCategory;
}
private SbmAssetCategory_Dbas CreateAssetCategory(SaAssetCategory_Db dbAssetCategory)
{
ClearErrorState();
SbmAssetCategory_Dbas assetCategory = new SbmAssetCategory_Dbas(UserContext, new SysId(dbAssetCategory._Id), new SysId(dbAssetCategory._AffIdOwner), (Sbm.AssetType)dbAssetCategory._AssetType, (ushort)dbAssetCategory._Flags);
PopulateFrom(dbAssetCategory, assetCategory);
return assetCategory;
}
//-------------------------------------------------------------------
// Validate AssetCategory.
public override bool IsValidAssetCategoryData(SbmAssetCategory.Data data, SbmAssetCategory.ErrField errField)
{
ClearErrorState();
if (!base.IsValidAssetCategoryData(data, errField)) return false;
return true;
}
//-------------------------------------------------------------------
// Insert AssetCategory.
public override bool InsertAssetCategory(SbmAssetCategory assetCategory, DbUpdateInfo dbUpdateInfo)
{
String fn = GetType().Name + ".InsertAssetCategory";
ClearErrorState();
if (!IsValidAssetCategory(assetCategory)) return false;
if (SysId.IsValid(assetCategory.Id)) return SetErrorState(ErrorMessage.ValiditemId);
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
dbConnection.Open();
SaAssetCategory_Db dbAssetCategory = new SaAssetCategory_Db(DbInfo);
PopulateTo(dbAssetCategory, assetCategory, dbUpdateInfo);
if (SaAssetCategory_Db.FieldsNonId.Contains("Id"))
{
// Generate next Id.
dbAssetCategory._Id = SysId.ToInt(db.GetNextId("AssetCategory", dbUpdateInfo));
}
dbAssetCategory.ExecuteInsertCommand(dbCommand);
assetCategory.Id = new SysId(dbAssetCategory._Id);
assetCategory.Changed = false;
if (DebugMode) SaLogger.Debug(fn + " Inserted. " + GetLogProperties(assetCategory).Concat(": ").Concat("", "\n\t"));
}
catch (Exception exc) { SetErrorState(exc.Message); }
}
return !HasErrorState();
}
//-------------------------------------------------------------------
// Update AssetCategory.
public override bool UpdateAssetCategory(SbmAssetCategory assetCategory, DbUpdateInfo dbUpdateInfo)
{
String fn = GetType().Name + ".UpdateAssetCategory";
ClearErrorState();
if (!IsValidAssetCategory(assetCategory)) return false;
if (!SysId.IsValid(assetCategory.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
if (!assetCategory.Changed)
{
if (DebugMode) SaLogger.Debug(fn + " Data not changed. " + GetLogProperties(assetCategory).Concat(": ").Concat("", "\n\t"));
return true;
}
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
// Retrieve AssetCategory.
dbConnection.Open();
SaAssetCategory_Db dbAssetCategory = new SaAssetCategory_Db(DbInfo);
dbAssetCategory.PopulateFrom(dbCommand, aliasAssetCategory, "Id=" + SysId.ToString(assetCategory.Id));
SbmUpdateLogItemMonitor_AssetCategory updateLogMonitor = new SbmUpdateLogItemMonitor_AssetCategory(UserContext, CreateAssetCategory(dbAssetCategory));
// Update properties.
PopulateTo(dbAssetCategory, assetCategory, dbUpdateInfo);
dbAssetCategory.ExecuteUpdateCommand(dbCommand);
assetCategory.Changed = false;
if (DebugMode) SaLogger.Debug(fn + " Updated. " + GetLogProperties(assetCategory).Concat(": ").Concat("", "\n\t"));
// Record updates.
updateLogMonitor.RecordUpdatedValues(assetCategory);
updateLogMonitor.LogUpdates();
}
catch (Exception exc) { SetErrorState(exc.Message); }
}
return !HasErrorState();
}
//-------------------------------------------------------------------
// Delete AssetCategory.
public override bool AssetCategoryCanBeDeleted(SbmAssetCategory assetCategory)
{
ClearErrorState();
if (!base.AssetCategoryCanBeDeleted(assetCategory)) return false;
return true;
}
public override bool DeleteAssetCategory(SbmAssetCategory assetCategory, DbUpdateInfo dbUpdateInfo)
{
String fn = GetType().Name + ".DeleteAssetCategory";
ClearErrorState();
if (!AssetCategoryCanBeDeleted(assetCategory)) return false;
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
// Retrieve AssetCategory.
dbConnection.Open();
SaAssetCategory_Db dbAssetCategory = new SaAssetCategory_Db(DbInfo);
dbAssetCategory.PopulateFrom(dbCommand, aliasAssetCategory, "Id=" + assetCategory.Id.ToString());
// Delete AssetCategory.
dbCommand.CommandType = System.Data.CommandType.Text;
dbCommand.CommandText = "DELETE FROM " + SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAssetCategory) + " WHERE Id=" + SysId.ToString(assetCategory.Id) + ";";
dbCommand.ExecuteNonQuery();
assetCategory.Changed = false;
if (DebugMode) SaLogger.Debug(fn + " Deleted. " + GetLogProperties(assetCategory).Concat(": ").Concat("", "\n\t"));
}
catch (Exception exc) { SetErrorState(exc.Message); }
}
return !HasErrorState();
}
//-------------------------------------------------------------------
// Copy data properties to and from database.
private void PopulateTo(SaAssetCategory_Db dbAssetCategory, SbmAssetCategory assetCategory, DbUpdateInfo dbUpdateInfo)
{
dbAssetCategory._Id = assetCategory.Id.ToInt();
dbAssetCategory._AssetType = (short)assetCategory.AssetType;
dbAssetCategory._AffIdOwner = assetCategory.AffIdOwner.ToInt();
dbAssetCategory._Code = assetCategory.Code;
dbAssetCategory._DescBrief = assetCategory.DescBrief;
dbAssetCategory._IncomeType = (short)assetCategory.IncomeType;
dbAssetCategory._AssocIdSupplier = assetCategory.AssocIdSupplier.ToInt();
dbAssetCategory._PaymentTerms = assetCategory.PaymentTerms;
dbAssetCategory._TaxCodeIdPurchase = assetCategory.TaxCodeIdPurchase.ToInt();
dbAssetCategory._AssocIdCustomer = assetCategory.AssocIdCustomer.ToInt();
dbAssetCategory._TaxCodeIdSell = assetCategory.TaxCodeIdSell.ToInt();
dbAssetCategory._TaxCodeIdProfit = assetCategory.TaxCodeIdProfit.ToInt();
dbAssetCategory._DisposeCode = assetCategory.DisposeCode;
dbAssetCategory._UomIdRentalCost = assetCategory.UomIdRentalCost.ToInt();
dbAssetCategory._TaxCodeIdRentalCost = assetCategory.TaxCodeIdRentalCost.ToInt();
dbAssetCategory._UomIdRentalPrice = assetCategory.UomIdRentalPrice.ToInt();
dbAssetCategory._TaxCodeIdRentalPrice = assetCategory.TaxCodeIdRentalPrice.ToInt();
// Common properties.
dbAssetCategory._Notes = assetCategory.Notes;
dbAssetCategory._Status = SacsSystem.GetStatusCode(assetCategory.Status);
dbAssetCategory._Flags = (short)assetCategory.Flags;
if (!SysId.IsValid(assetCategory.Id))
{
dbAssetCategory._CreateOn = DateTime.UtcNow;
dbAssetCategory._CreateBy = dbUpdateInfo.UserId.ToInt();
dbAssetCategory._CreateHost = dbUpdateInfo.Host;
}
dbAssetCategory._UpdateOn = DateTime.UtcNow;
dbAssetCategory._UpdateBy = dbUpdateInfo.UserId.ToInt();
dbAssetCategory._UpdateHost = dbUpdateInfo.Host;
}
private void PopulateFrom(SaAssetCategory_Db dbAssetCategory, SbmAssetCategory assetCategory)
{
//assetCategory.Id = new SysId(dbAssetCategory._Id);
assetCategory.AssetType = (Sbm.AssetType)dbAssetCategory._AssetType;
assetCategory.AffIdOwner = new SysId(dbAssetCategory._AffIdOwner);
assetCategory.Code = dbAssetCategory._Code;
assetCategory.DescBrief = dbAssetCategory._DescBrief;
assetCategory.IncomeType = (Sbm.AssetIncomeType)dbAssetCategory._IncomeType;
assetCategory.AssocIdSupplier = new SysId(dbAssetCategory._AssocIdSupplier);
assetCategory.PaymentTerms = dbAssetCategory._PaymentTerms;
assetCategory.TaxCodeIdPurchase = new SysId(dbAssetCategory._TaxCodeIdPurchase);
assetCategory.AssocIdCustomer = new SysId(dbAssetCategory._AssocIdCustomer);
assetCategory.TaxCodeIdSell = new SysId(dbAssetCategory._TaxCodeIdSell);
assetCategory.TaxCodeIdProfit = new SysId(dbAssetCategory._TaxCodeIdProfit);
assetCategory.DisposeCode = dbAssetCategory._DisposeCode;
assetCategory.UomIdRentalCost = new SysId(dbAssetCategory._UomIdRentalCost);
assetCategory.TaxCodeIdRentalCost = new SysId(dbAssetCategory._TaxCodeIdRentalCost);
assetCategory.UomIdRentalPrice = new SysId(dbAssetCategory._UomIdRentalPrice);
assetCategory.TaxCodeIdRentalPrice = new SysId(dbAssetCategory._TaxCodeIdRentalPrice);
// Common properties.
assetCategory.Notes = dbAssetCategory._Notes;
assetCategory.Status = SacsSystem.GetStatusForCode(dbAssetCategory._Status);
assetCategory.SetCreateStamp(dbAssetCategory._CreateOn, new SysId(dbAssetCategory._CreateBy), dbAssetCategory._CreateHost);
assetCategory.SetUpdateStamp(dbAssetCategory._UpdateOn, new SysId(dbAssetCategory._UpdateBy), dbAssetCategory._UpdateHost);
assetCategory.AcceptChanges();
}
//-------------------------------------------------------------------
// AssetCategory column definitions.
private static readonly String aliasAssetCategory = "aAstCat";
private static readonly String prefixAssetCategory = "AstCat_";
private void SetAssetCategoryColDfn
(ColumnDfn col, String caption, int width, SbmDbDfn.ColumnIdx dbCol,
ColumnAlignment align = ColumnAlignment.Default, DataValue.DataType dataType = DataValue.DataType.String,
String alias = "", String prefix = "")
{
if (String.IsNullOrEmpty(alias) && SbmDbDfn.GetTableForColumn(dbCol) == SbmDbDfn.TableIdx.SaAssetCategory)
alias = aliasAssetCategory;
col.Set(caption, width, (int)dbCol, prefix + SbmDbDfn.GetColumnName(dbCol, false), SbmDbDfn.GetColumnNameQual(dbCol, alias), dataType, align);
if (dataType == DataValue.DataType.String && dbCol != SbmDbDfn.ColumnIdx.Unknown)
col.MaxLength = (int)SbmDbDfn.GetColTextLen(dbCol);
}
//-------------------------------------------------------------------
// Getting prmAssetCategory column definition.
public override ColumnDfn GetAssetCategoryColumnDfn(SbmAssetCategory.Column columnId, string caption = "", int width = 0)
{
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
switch (columnId)
{
case SbmAssetCategory.Column.Pos:
SetAssetCategoryColDfn(columnDfn, "Pos", 45, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Right);
columnDfn.SortMode = ColumnDfn.ColumnSortMode.Off;
columnDfn.ReadOnly = true;
columnDfn.Resizable = false;
break;
case SbmAssetCategory.Column.Id:
SetAssetCategoryColDfn(columnDfn, "Id", 60, SbmDbDfn.ColumnIdx.SaAssetCategory_Id, ColumnAlignment.Right, DataValue.DataType.Long, aliasAssetCategory, prefixAssetCategory);
columnDfn.ReadOnly = true;
break;
// AssetCategory Properties.
case SbmAssetCategory.Column.AffIdOwner:
SetAssetCategoryColDfn(columnDfn, "AffIdOwner", 45, SbmDbDfn.ColumnIdx.SaAssetCategory_AffIdOwner, ColumnAlignment.Right, DataValue.DataType.Long);
columnDfn.ReadOnly = true;
break;
case SbmAssetCategory.Column.Type_Desc:
SetAssetCategoryColDfn(columnDfn, "AssetType", 100, SbmDbDfn.ColumnIdx.SaAssetCategory_AssetType, ColumnAlignment.Left);
break;
case SbmAssetCategory.Column.Code:
SetAssetCategoryColDfn(columnDfn, "Code", 100, SbmDbDfn.ColumnIdx.SaAssetCategory_Code, ColumnAlignment.Left);
break;
case SbmAssetCategory.Column.DescBrief:
SetAssetCategoryColDfn(columnDfn, "Desc Brief", 120, SbmDbDfn.ColumnIdx.SaAssetCategory_DescBrief);
break;
case SbmAssetCategory.Column.IncomeType:
SetAssetCategoryColDfn(columnDfn, "Income Type", 100, SbmDbDfn.ColumnIdx.SaAssetCategory_IncomeType, ColumnAlignment.Left);
break;
case SbmAssetCategory.Column.AssocIdSupplier:
SetAssetCategoryColDfn(columnDfn, "AssocId Supplier", 45, SbmDbDfn.ColumnIdx.SaAssetCategory_AssocIdSupplier, ColumnAlignment.Right, DataValue.DataType.Long);
columnDfn.ReadOnly = true;
break;
case SbmAssetCategory.Column.PaymentTerms:
SetAssetCategoryColDfn(columnDfn, "Payment Terms", 60, SbmDbDfn.ColumnIdx.SaAssetCategory_PaymentTerms);
break;
case SbmAssetCategory.Column.TaxCodeIdPurchase:
SetAssetCategoryColDfn(columnDfn, "TaxCodeId Purchase", 45, SbmDbDfn.ColumnIdx.SaAssetCategory_TaxCodeIdPurchase);
break;
case SbmAssetCategory.Column.AssocIdCustomer:
SetAssetCategoryColDfn(columnDfn, "AssocId Customer", 45, SbmDbDfn.ColumnIdx.SaAssetCategory_AssocIdCustomer, ColumnAlignment.Right, DataValue.DataType.Long);
columnDfn.ReadOnly = true;
break;
// Common properties.
case SbmAssetCategory.Column.Notes:
SetAssetCategoryColDfn(columnDfn, "Notes", 200, SbmDbDfn.ColumnIdx.SaAssetCategory_Notes);
break;
case SbmAssetCategory.Column.Flag:
SetAssetCategoryColDfn(columnDfn, "Flags", 40, SbmDbDfn.ColumnIdx.SaAssetCategory_Flags, ColumnAlignment.Center, DataValue.DataType.Long);
break;
case SbmAssetCategory.Column.Status:
SetAssetCategoryColDfn(columnDfn, "Status", 50, SbmDbDfn.ColumnIdx.SaAssetCategory_Status, ColumnAlignment.Center);
break;
case SbmAssetCategory.Column.Status_Desc:
SetAssetCategoryColDfn(columnDfn, "Status", 50, SbmDbDfn.ColumnIdx.SaAssetCategory_Status);
break;
case SbmAssetCategory.Column.Status_Ind:
SetAssetCategoryColDfn(columnDfn, "Status", 50, SbmDbDfn.ColumnIdx.SaAssetCategory_Status, ColumnAlignment.Center, DataValue.DataType.TriState);
columnDfn.TriStateFormat = ColumnTriStateFormat.Lights;
break;
case SbmAssetCategory.Column.CreateOn_Date:
SetAssetCategoryColDfn(columnDfn, "Created", 65, SbmDbDfn.ColumnIdx.SaAssetCategory_CreateOn, ColumnAlignment.Center, DataValue.DataType.Date);
columnDfn.DateFormat = "d-MMM-yy";
columnDfn.ReadOnly = true;
break;
case SbmAssetCategory.Column.UpdateOn_Date:
SetAssetCategoryColDfn(columnDfn, "Updated", 65, SbmDbDfn.ColumnIdx.SaAssetCategory_UpdateOn, ColumnAlignment.Center, DataValue.DataType.Date);
columnDfn.DateFormat = "d-MMM-yy";
columnDfn.ReadOnly = true;
break;
case SbmAssetCategory.Column.AssetCount:
SetAssetCategoryColDfn(columnDfn, "Asset Count", 70, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.DataName = "AssetCount";
break;
}
if (!String.IsNullOrEmpty(caption))
columnDfn.Caption = caption;
if (width > 0)
columnDfn.Width = width;
return columnDfn;
}
//-------------------------------------------------------------------
// AssetCategory query filter.
public override List<string> GetAssetCategoryQueryFilter(SbmAssetCategory.Params prm)
{
List<String> filter = new List<String>();
// Asset Category Id.
String includedIds = prm.IncludedIds.Concat(",");
String colAssetCategory_Id = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetCategory_Id, aliasAssetCategory);
if (!includedIds.IsEmpty())
filter.Add(colAssetCategory_Id + " IN (" + includedIds + ")");
String excludedIds = prm.ExcludedIds.Concat(",");
if (!excludedIds.IsEmpty())
filter.Add(colAssetCategory_Id + " NOT IN (" + excludedIds + ")");
// Asset Category Type.
String colSaAssetCategory_Type = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetCategory_AssetType, aliasAssetCategory);
if (prm.AssetType > 0)
filter.Add(colSaAssetCategory_Type + "='" + ((int)prm.AssetType).ToString());
// Partial Code.
String code = DbQuery.FormatForCondition(prm.CodePartial);
String colAssetCategory_Code = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetCategory_Code, aliasAssetCategory);
if (!StringUtil.IsEmpty(code))
filter.Add(DbQuery.FormatFn_Left(colAssetCategory_Code, prm.CodePartial.Length) + " ='" + code + "'");
// Partial Description.
String description = DbQuery.FormatForCondition(prm.DescBriefPartial);
String colAssetCategory_DescBrief = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetCategory_DescBrief, aliasAssetCategory);
if (!StringUtil.IsEmpty(description))
filter.Add(DbQuery.FormatFn_Left(colAssetCategory_DescBrief, prm.DescBriefPartial.Length) + " ='" + description + "'");
// Status.
String colAssetCategory_Status = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetCategory_Status, aliasAssetCategory);
if (prm.RestrictToActive)
filter.Add(colAssetCategory_Status + "='" + StatusActive + "'");
if (filter.Count < 1 && prm.IncludeDefaultFilter) filter.Add("1=1");
return filter;
}
// Item sort columns.
public List<String> GetAssetCategorySortColumns(SbmAssetCategory.Params prm)
{
// Sort sequence:
List<String> sortColumnCodes = new List<String>();
foreach (var columnDfn in prm.SortColumns)
{
// Need to ensure correct alias used for AssetCategory columns in case of conflict.
String sortCol = String.Empty;
if (SbmDbDfn.GetTableForColumn((SbmDbDfn.ColumnIdx)columnDfn.DbColumn) == SbmDbDfn.TableIdx.SaAssetCategory)
{
sortCol = SbmDbDfn.GetColumnNameQual((SbmDbDfn.ColumnIdx)columnDfn.DbColumn, aliasAssetCategory);
}
else
{
sortCol = columnDfn.DataName;
if (!StringUtil.IsEmpty(columnDfn.SortDataName))
sortCol = columnDfn.SortDataName;
}
if (!sortCol.IsEmpty())
{
DbOrderByNullMode orderByNullMode = DbOrderByNullMode.Default; // eSaOrderByDemoteNulls, eSaOrderByPromoteNulls
sortColumnCodes.Add(DbQuery.FormatForOrderBy(sortCol, columnDfn.SortAscending, orderByNullMode).Concat(", "));
}
}
sortColumnCodes.RemoveBlanks();
if (sortColumnCodes.IsEmpty())
{
// Default sort columns:
sortColumnCodes.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetCategory_AssetType, aliasAssetCategory) + " ASC");
}
return sortColumnCodes;
}
//-------------------------------------------------------------------
// AssetCategory count.
private long GetAssetCategoryCount(String filter)
{
ClearErrorState();
return db.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAssetCategory) + " As " + aliasAssetCategory, filter);
}
public override long GetAssetCategoryCount(SbmAssetCategory.Params prm)
{
ClearErrorState();
return GetAssetCategoryCount(GetAssetCategoryQueryFilter(prm).Concat(" AND ", "(", ")"));
}
//-------------------------------------------------------------------
// AssetCategory list.
public override List<SbmAssetCategory> GetAssetCategoryList(SbmAssetCategory.Params prm)
{
List<SbmAssetCategory> AssetCategoryes = new List<SbmAssetCategory>();
DbQuery qry = new DbQuery(db.DbmsType);
qry.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAssetCategory), aliasAssetCategory);
SaAssetCategory_Db dbAssetCategory = new SaAssetCategory_Db(DbInfo);
qry.Columns.AddRange(dbAssetCategory.ExistingColumnNames);
qry.Filters.AddRange(GetAssetCategoryQueryFilter(prm));
qry.OrderBy.AddRange(GetAssetCategorySortColumns(prm));
// Query data.
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
dbConnection.Open();
dbCommand.CommandText = qry.BuildQuery(prm.ResultsPaging);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
while (dbDataReader.Read())
{
dbAssetCategory = new SaAssetCategory_Db(DbInfo);
dbAssetCategory.PopulateFrom(dbDataReader);
AssetCategoryes.Add(CreateAssetCategory(dbAssetCategory));
}
}
}
catch (Exception exc)
{
SaLogger.Warn(GetType().Name + ".GetAssetCategoryList\n\tQuery: " + dbCommand.CommandText + "\n\tException: " + exc.Message);
}
}
return AssetCategoryes;
}
//-------------------------------------------------------------------
// AssetCategory query execution.
public override DbResultSet ExecuteAssetCategoryQuery(List<ColumnDfn> columns, SbmAssetCategory.Params prm)
{
ClearErrorState();
//---------------------------------------------------------------------
// Construct build database query.
DbQuery query = new DbQuery(db.DbmsType);
query.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAssetCategory), aliasAssetCategory);
// AssetCategory Properties - add columns as defined in query list.
if (columns.HasId((int)SbmAssetCategory.Column.Id))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetCategory_Id, aliasAssetCategory));
if (columns.HasId((int)SbmAssetCategory.Column.AffIdOwner))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetCategory_AffIdOwner, aliasAssetCategory));
if (columns.HasId((int)SbmAssetCategory.Column.AssetType))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetCategory_AssetType, aliasAssetCategory));
if (columns.HasId((int)SbmAssetCategory.Column.Code))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetCategory_Code, aliasAssetCategory));
if (columns.HasId((int)SbmAssetCategory.Column.DescBrief))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetCategory_DescBrief, aliasAssetCategory));
if (columns.HasId((int)SbmAssetCategory.Column.IncomeType))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetCategory_IncomeType, aliasAssetCategory));
if (columns.HasId((int)SbmAssetCategory.Column.AssocIdSupplier))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetCategory_AssocIdSupplier, aliasAssetCategory));
if (columns.HasId((int)SbmAssetCategory.Column.PaymentTerms))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetCategory_PaymentTerms, aliasAssetCategory));
if (columns.HasId((int)SbmAssetCategory.Column.TaxCodeIdPurchase))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetCategory_TaxCodeIdPurchase, aliasAssetCategory));
if (columns.HasId((int)SbmAssetCategory.Column.AssocIdCustomer))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetCategory_AssocIdCustomer, aliasAssetCategory));
if (columns.HasId((int)SbmAssetCategory.Column.TaxCodeIdSell))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetCategory_TaxCodeIdSell, aliasAssetCategory));
if (columns.HasId((int)SbmAssetCategory.Column.TaxCodeIdProfit))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetCategory_TaxCodeIdProfit, aliasAssetCategory));
if (columns.HasId((int)SbmAssetCategory.Column.DisposeCode))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetCategory_DisposeCode, aliasAssetCategory));
if (columns.HasId((int)SbmAssetCategory.Column.UomIdRentalCost))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetCategory_UomIdRentalCost, aliasAssetCategory));
if (columns.HasId((int)SbmAssetCategory.Column.TaxCodeIdRentalCost))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetCategory_TaxCodeIdRentalCost, aliasAssetCategory));
if (columns.HasId((int)SbmAssetCategory.Column.UomIdRentalPrice))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetCategory_UomIdRentalPrice, aliasAssetCategory));
if (columns.HasId((int)SbmAssetCategory.Column.TaxCodeIdRentalPrice))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetCategory_TaxCodeIdRentalPrice, aliasAssetCategory));
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Asset Count
if (columns.HasId((int)SbmAssetCategory.Column.AssetCount))
{
String tableAsset = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAsset);
DbQuery qryAssetCount = new DbQuery(db.DbmsType);
qryAssetCount.Tables.Add(tableAsset, aliasAsset);
qryAssetCount.Columns.Add("Count(" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_Id, aliasAsset) + ")");
qryAssetCount.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_AssetCategoryId, aliasAsset) + "=" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetCategory_Id, aliasAsset));
query.Columns.Add("(" + qryAssetCount.BuildQuery() + ")", "AssetCount");
}
// Common Properties
if (columns.HasId((int)SbmAssetCategory.Column.Notes))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetCategory_Notes, aliasAssetCategory));
if (columns.HasId((int)SbmAssetCategory.Column.Flag))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetCategory_Flags, aliasAssetCategory));
if (columns.HasId((int)SbmAssetCategory.Column.Status) || columns.HasId((int)SbmAssetCategory.Column.Status_Desc) || columns.HasId((int)SbmAssetCategory.Column.Status_Ind))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetCategory_Status, aliasAssetCategory));
if (columns.HasId((int)SbmAssetCategory.Column.CreateOn_Date))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetCategory_CreateOn, aliasAssetCategory));
if (columns.HasId((int)SbmAssetCategory.Column.UpdateOn_Date))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetCategory_UpdateOn, aliasAssetCategory));
//---------------------------------------------------------------------
// Populate filter.
query.Filters.AddRange(GetAssetCategoryQueryFilter(prm));
if (prm.IncludedIds.Count != 1)
{
// Configure sort sequence.
foreach (String sortColumn in GetAssetCategorySortColumns(prm))
query.OrderBy.Add(sortColumn);
}
//---------------------------------------------------------------------
//return new DbResultSet_DataTableReader(db, query.BuildQuery());
return DbResultSet_DataReader.ExecuteQuery(db, query.BuildQuery(prm.ResultsPaging));
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,494 @@
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
{
//=======================================================================
partial class SbmAssetMgr_Dbas
{
//*******************************************************************
// A s s e t C a t e g o r y
//*******************************************************************
// Utilities.
private List<StringPair> GetLogProperties(SbmAssetProcess assetProcess)
{
return new List<StringPair>()
{
new StringPair("Id",SysId.ToString(assetProcess.Id)),
new StringPair("Seq",assetProcess.Seq),
new StringPair("Status",assetProcess.StatusCode)
};
}
//-------------------------------------------------------------------
// Data members.
//-------------------------------------------------------------------
// Get AssetProcess.
public override SbmAssetProcess GetAssetProcess(SbmAssetProcess.Params prm)
{
return GetAssetProcess(GetAssetProcessQueryFilter(prm).Concat(" AND ", "(", ")"));
}
private SbmAssetProcess GetAssetProcess(String filter)
{
ClearErrorState();
long count = GetAssetProcessCount(filter);
if (count == 0) return null;
if (count != 1)
{
SetErrorState("Multiple Asset Processes found");
return null;
}
SbmAssetProcess assetProcess = null;
// Query data.
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
dbConnection.Open();
SaAssetProcess_Db dbAssetProcess = new SaAssetProcess_Db(DbInfo);
dbAssetProcess.PopulateFrom(dbCommand, aliasAssetProcess, filter);
assetProcess = CreateAssetProcess(dbAssetProcess);
}
catch (Exception exc)
{
SetErrorState("Database query exception");
SaLogger.Warn(GetType().Name + ".GetAssetProcess\n\tQuery: " + dbCommand.CommandText + "\n\tException: " + exc.Message);
}
}
return assetProcess;
}
//-------------------------------------------------------------------
// Create AssetProcess.
public override SbmAssetProcess CreateAssetProcess(Sbm.AssetType assetType)
{
ClearErrorState();
SbmAssetProcess assetProcess = null;
if (assetType > 0)
assetProcess = new SbmAssetProcess_Dbas(UserContext, new SysId(), null, AffiliateId_Owner, 0);
else SetErrorState("Asset type not identified");
return assetProcess;
}
private SbmAssetProcess_Dbas CreateAssetProcess(SaAssetProcess_Db dbAssetProcess)
{
ClearErrorState();
SbmAssetProcess_Dbas assetProcess = new SbmAssetProcess_Dbas(UserContext, new SysId(dbAssetProcess._Id), new SysId(dbAssetProcess._AssetId), new SysId(dbAssetProcess._ProcessId), (ushort)dbAssetProcess._Flags);
PopulateFrom(dbAssetProcess, assetProcess);
return assetProcess;
}
//-------------------------------------------------------------------
// Validate AssetProcess.
public override bool IsValidAssetProcessData(SbmAssetProcess.Data data, SbmAssetProcess.ErrField errField)
{
ClearErrorState();
if (!base.IsValidAssetProcessData(data, errField)) return false;
return true;
}
//-------------------------------------------------------------------
// Insert AssetProcess.
public override bool InsertAssetProcess(SbmAssetProcess assetProcess, DbUpdateInfo dbUpdateInfo)
{
String fn = GetType().Name + ".InsertAssetProcess";
ClearErrorState();
if (!IsValidAssetProcess(assetProcess)) return false;
if (SysId.IsValid(assetProcess.Id)) return SetErrorState(ErrorMessage.ValiditemId);
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
dbConnection.Open();
SaAssetProcess_Db dbAssetProcess = new SaAssetProcess_Db(DbInfo);
PopulateTo(dbAssetProcess, assetProcess, dbUpdateInfo);
if (SaAssetProcess_Db.FieldsNonId.Contains("Id"))
{
// Generate next Id.
dbAssetProcess._Id = SysId.ToInt(db.GetNextId("AssetProcess", dbUpdateInfo));
}
dbAssetProcess.ExecuteInsertCommand(dbCommand);
assetProcess.Id = new SysId(dbAssetProcess._Id);
assetProcess.Changed = false;
if (DebugMode) SaLogger.Debug(fn + " Inserted. " + GetLogProperties(assetProcess).Concat(": ").Concat("", "\n\t"));
}
catch (Exception exc) { SetErrorState(exc.Message); }
}
return !HasErrorState();
}
//-------------------------------------------------------------------
// Update AssetProcess.
public override bool UpdateAssetProcess(SbmAssetProcess assetProcess, DbUpdateInfo dbUpdateInfo)
{
String fn = GetType().Name + ".UpdateAssetProcess";
ClearErrorState();
if (!IsValidAssetProcess(assetProcess)) return false;
if (!SysId.IsValid(assetProcess.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
if (!assetProcess.Changed)
{
if (DebugMode) SaLogger.Debug(fn + " Data not changed. " + GetLogProperties(assetProcess).Concat(": ").Concat("", "\n\t"));
return true;
}
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
// Retrieve AssetProcess.
dbConnection.Open();
SaAssetProcess_Db dbAssetProcess = new SaAssetProcess_Db(DbInfo);
dbAssetProcess.PopulateFrom(dbCommand, aliasAssetProcess, "Id=" + SysId.ToString(assetProcess.Id));
SbmUpdateLogItemMonitor_AssetProcess updateLogMonitor = new SbmUpdateLogItemMonitor_AssetProcess(UserContext, CreateAssetProcess(dbAssetProcess));
// Update properties.
PopulateTo(dbAssetProcess, assetProcess, dbUpdateInfo);
dbAssetProcess.ExecuteUpdateCommand(dbCommand);
assetProcess.Changed = false;
if (DebugMode) SaLogger.Debug(fn + " Updated. " + GetLogProperties(assetProcess).Concat(": ").Concat("", "\n\t"));
// Record updates.
updateLogMonitor.RecordUpdatedValues(assetProcess);
updateLogMonitor.LogUpdates();
}
catch (Exception exc) { SetErrorState(exc.Message); }
}
return !HasErrorState();
}
//-------------------------------------------------------------------
// Delete AssetProcess.
public override bool AssetProcessCanBeDeleted(SbmAssetProcess assetProcess)
{
ClearErrorState();
if (!base.AssetProcessCanBeDeleted(assetProcess)) return false;
return true;
}
public override bool DeleteAssetProcess(SbmAssetProcess assetProcess, DbUpdateInfo dbUpdateInfo)
{
String fn = GetType().Name + ".DeleteAssetProcess";
ClearErrorState();
if (!AssetProcessCanBeDeleted(assetProcess)) return false;
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
// Retrieve AssetProcess.
dbConnection.Open();
SaAssetProcess_Db dbAssetProcess = new SaAssetProcess_Db(DbInfo);
dbAssetProcess.PopulateFrom(dbCommand, aliasAssetProcess, "Id=" + assetProcess.Id.ToString());
// Delete AssetProcess.
dbCommand.CommandType = System.Data.CommandType.Text;
dbCommand.CommandText = "DELETE FROM " + SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAssetProcess) + " WHERE Id=" + SysId.ToString(assetProcess.Id) + ";";
dbCommand.ExecuteNonQuery();
assetProcess.Changed = false;
if (DebugMode) SaLogger.Debug(fn + " Deleted. " + GetLogProperties(assetProcess).Concat(": ").Concat("", "\n\t"));
}
catch (Exception exc) { SetErrorState(exc.Message); }
}
return !HasErrorState();
}
//-------------------------------------------------------------------
// Copy data properties to and from database.
private void PopulateTo(SaAssetProcess_Db dbAssetProcess, SbmAssetProcess assetProcess, DbUpdateInfo dbUpdateInfo)
{
dbAssetProcess._Id = assetProcess.Id.ToInt();
dbAssetProcess._AssetId = assetProcess.AssetId.ToInt();
dbAssetProcess._Seq = assetProcess.Seq.ToShort();
dbAssetProcess._ProcessId = assetProcess.ProcessId.ToInt();
dbAssetProcess._RequiredOn = assetProcess.RequiredOn;
dbAssetProcess._ExpectedOn = assetProcess.ExpectedOn;
dbAssetProcess._ProcessedOn = assetProcess.ProcessedOn;
// Common properties.
dbAssetProcess._Notes = assetProcess.Notes;
dbAssetProcess._Status = SacsSystem.GetStatusCode(assetProcess.Status);
dbAssetProcess._Flags = (short)assetProcess.Flags;
if (!SysId.IsValid(assetProcess.Id))
{
dbAssetProcess._CreateOn = DateTime.UtcNow;
dbAssetProcess._CreateBy = dbUpdateInfo.UserId.ToInt();
dbAssetProcess._CreateHost = dbUpdateInfo.Host;
}
dbAssetProcess._UpdateOn = DateTime.UtcNow;
dbAssetProcess._UpdateBy = dbUpdateInfo.UserId.ToInt();
dbAssetProcess._UpdateHost = dbUpdateInfo.Host;
}
private void PopulateFrom(SaAssetProcess_Db dbAssetProcess, SbmAssetProcess assetProcess)
{
//assetProcess.Id = new SysId(dbAssetProcess._Id);
assetProcess.AssetId = new SysId(dbAssetProcess._AssetId);
assetProcess.Seq = dbAssetProcess._Seq.ToString();
assetProcess.ProcessId = new SysId(dbAssetProcess._ProcessId);
assetProcess.RequiredOn = dbAssetProcess._RequiredOn;
assetProcess.ExpectedOn = dbAssetProcess._ExpectedOn;
assetProcess.ProcessedOn = dbAssetProcess._ProcessedOn;
// Common properties.
assetProcess.Notes = dbAssetProcess._Notes;
assetProcess.Status = SacsSystem.GetStatusForCode(dbAssetProcess._Status);
assetProcess.SetCreateStamp(dbAssetProcess._CreateOn, new SysId(dbAssetProcess._CreateBy), dbAssetProcess._CreateHost);
assetProcess.SetUpdateStamp(dbAssetProcess._UpdateOn, new SysId(dbAssetProcess._UpdateBy), dbAssetProcess._UpdateHost);
assetProcess.AcceptChanges();
}
//-------------------------------------------------------------------
// AssetProcess column definitions.
private static readonly String aliasAssetProcess = "aAstPrc";
private static readonly String prefixAssetProcess = "AstProcess_";
private void SetAssetProcessColDfn
(ColumnDfn col, String caption, int width, SbmDbDfn.ColumnIdx dbCol,
ColumnAlignment align = ColumnAlignment.Default, DataValue.DataType dataType = DataValue.DataType.String,
String alias = "", String prefix = "")
{
if (String.IsNullOrEmpty(alias) && SbmDbDfn.GetTableForColumn(dbCol) == SbmDbDfn.TableIdx.SaAssetProcess)
alias = aliasAssetProcess;
col.Set(caption, width, (int)dbCol, prefix + SbmDbDfn.GetColumnName(dbCol, false), SbmDbDfn.GetColumnNameQual(dbCol, alias), dataType, align);
if (dataType == DataValue.DataType.String && dbCol != SbmDbDfn.ColumnIdx.Unknown)
col.MaxLength = (int)SbmDbDfn.GetColTextLen(dbCol);
}
//-------------------------------------------------------------------
// Getting prmAssetProcess column definition.
public override ColumnDfn GetAssetProcessColumnDfn(SbmAssetProcess.Column columnId, string caption = "", int width = 0)
{
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
switch (columnId)
{
case SbmAssetProcess.Column.Pos:
SetAssetProcessColDfn(columnDfn, "Pos", 45, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Right);
columnDfn.SortMode = ColumnDfn.ColumnSortMode.Off;
columnDfn.ReadOnly = true;
columnDfn.Resizable = false;
break;
case SbmAssetProcess.Column.Id:
SetAssetProcessColDfn(columnDfn, "Id", 60, SbmDbDfn.ColumnIdx.SaAssetProcess_Id, ColumnAlignment.Right, DataValue.DataType.Long);
columnDfn.ReadOnly = true;
break;
// AssetProcess Properties.
case SbmAssetProcess.Column.AssetId:
SetAssetProcessColDfn(columnDfn, "Id", 45, SbmDbDfn.ColumnIdx.SaAssetProcess_AssetId, ColumnAlignment.Right, DataValue.DataType.Long);
columnDfn.ReadOnly = true;
break;
case SbmAssetProcess.Column.Seq:
SetAssetProcessColDfn(columnDfn, "Desc Brief", 120, SbmDbDfn.ColumnIdx.SaAssetProcess_Seq);
break;
case SbmAssetProcess.Column.ProcessId:
SetAssetProcessColDfn(columnDfn, "Process Id", 45, SbmDbDfn.ColumnIdx.SaAssetProcess_ProcessId, ColumnAlignment.Right, DataValue.DataType.Long);
columnDfn.ReadOnly = true;
break;
case SbmAssetProcess.Column.RequiredOn:
break;
case SbmAssetProcess.Column.ExpectedOn:
break;
case SbmAssetProcess.Column.ProcessedOn:
break;
// Common properties.
case SbmAssetProcess.Column.Notes:
SetAssetProcessColDfn(columnDfn, "Notes", 200, SbmDbDfn.ColumnIdx.SaAssetProcess_Notes);
break;
case SbmAssetProcess.Column.Flag:
SetAssetProcessColDfn(columnDfn, "Flags", 40, SbmDbDfn.ColumnIdx.SaAssetProcess_Flags, ColumnAlignment.Center, DataValue.DataType.Long);
break;
case SbmAssetProcess.Column.Status:
SetAssetProcessColDfn(columnDfn, "Status", 50, SbmDbDfn.ColumnIdx.SaAssetProcess_Status, ColumnAlignment.Center);
break;
case SbmAssetProcess.Column.Status_Desc:
SetAssetProcessColDfn(columnDfn, "Status", 50, SbmDbDfn.ColumnIdx.SaAssetProcess_Status);
break;
case SbmAssetProcess.Column.Status_Ind:
SetAssetProcessColDfn(columnDfn, "Status", 50, SbmDbDfn.ColumnIdx.SaAssetProcess_Status, ColumnAlignment.Center, DataValue.DataType.TriState);
columnDfn.TriStateFormat = ColumnTriStateFormat.Lights;
break;
case SbmAssetProcess.Column.CreateOn_Date:
SetAssetProcessColDfn(columnDfn, "Created", 65, SbmDbDfn.ColumnIdx.SaAssetProcess_CreateOn, ColumnAlignment.Center, DataValue.DataType.Date);
columnDfn.DateFormat = "d-MMM-yy";
columnDfn.ReadOnly = true;
break;
case SbmAssetProcess.Column.UpdateOn_Date:
SetAssetProcessColDfn(columnDfn, "Updated", 65, SbmDbDfn.ColumnIdx.SaAssetProcess_UpdateOn, ColumnAlignment.Center, DataValue.DataType.Date);
columnDfn.DateFormat = "d-MMM-yy";
columnDfn.ReadOnly = true;
break;
}
if (!String.IsNullOrEmpty(caption))
columnDfn.Caption = caption;
if (width > 0)
columnDfn.Width = width;
return columnDfn;
}
//-------------------------------------------------------------------
// AssetProcess query filter.
public override List<string> GetAssetProcessQueryFilter(SbmAssetProcess.Params prm)
{
List<String> filter = new List<String>();
// AssetProcess Id.
String includedIds = prm.IncludedIds.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(",");
if (!excludedIds.IsEmpty())
filter.Add(colAssetProcess_Id + " NOT IN (" + excludedIds + ")");
if (filter.Count < 1 && prm.IncludeDefaultFilter) filter.Add("1=1");
return filter;
}
// AssetProcess sort columns.
public List<String> GetAssetProcessSortColumns(SbmAssetProcess.Params prm)
{
// Sort sequence:
List<String> sortColumnCodes = new List<String>();
foreach (var columnDfn in prm.SortColumns)
{
// Need to ensure correct alias used for AssetProcess columns in case of conflict.
String sortCol = String.Empty;
if (SbmDbDfn.GetTableForColumn((SbmDbDfn.ColumnIdx)columnDfn.DbColumn) == SbmDbDfn.TableIdx.SaAssetProcess)
{
sortCol = SbmDbDfn.GetColumnNameQual((SbmDbDfn.ColumnIdx)columnDfn.DbColumn, aliasAssetProcess);
}
else
{
sortCol = columnDfn.DataName;
if (!StringUtil.IsEmpty(columnDfn.SortDataName))
sortCol = columnDfn.SortDataName;
}
if (!sortCol.IsEmpty())
{
DbOrderByNullMode orderByNullMode = DbOrderByNullMode.Default; // eSaOrderByDemoteNulls, eSaOrderByPromoteNulls
sortColumnCodes.Add(DbQuery.FormatForOrderBy(sortCol, columnDfn.SortAscending, orderByNullMode).Concat(", "));
}
}
sortColumnCodes.RemoveBlanks();
if (sortColumnCodes.IsEmpty())
{
// Default sort columns:
sortColumnCodes.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetProcess_AssetId, aliasAssetProcess) + " ASC");
}
return sortColumnCodes;
}
//-------------------------------------------------------------------
// AssetProcess count.
private long GetAssetProcessCount(String filter)
{
ClearErrorState();
return db.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAssetProcess) + " As " + aliasAssetProcess, filter);
}
public override long GetAssetProcessCount(SbmAssetProcess.Params prm)
{
ClearErrorState();
return GetAssetProcessCount(GetAssetProcessQueryFilter(prm).Concat(" AND ", "(", ")"));
}
//-------------------------------------------------------------------
// AssetProcess list.
public override List<SbmAssetProcess> GetAssetProcessList(SbmAssetProcess.Params prm)
{
List<SbmAssetProcess> AssetProcesses = new List<SbmAssetProcess>();
DbQuery qry = new DbQuery(db.DbmsType);
qry.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAssetProcess), aliasAssetProcess);
SaAssetProcess_Db dbAssetProcess = new SaAssetProcess_Db(DbInfo);
qry.Columns.AddRange(dbAssetProcess.ExistingColumnNames);
qry.Filters.AddRange(GetAssetProcessQueryFilter(prm));
qry.OrderBy.AddRange(GetAssetProcessSortColumns(prm));
// Query data.
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
dbConnection.Open();
dbCommand.CommandText = qry.BuildQuery(prm.ResultsPaging);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
while (dbDataReader.Read())
{
dbAssetProcess = new SaAssetProcess_Db(DbInfo);
dbAssetProcess.PopulateFrom(dbDataReader);
AssetProcesses.Add(CreateAssetProcess(dbAssetProcess));
}
}
}
catch (Exception exc)
{
SaLogger.Warn(GetType().Name + ".GetAssetProcessList\n\tQuery: " + dbCommand.CommandText + "\n\tException: " + exc.Message);
}
}
return AssetProcesses;
}
//-------------------------------------------------------------------
// AssetProcess query execution.
public override DbResultSet ExecuteAssetProcessQuery(List<ColumnDfn> columns, SbmAssetProcess.Params prm)
{
ClearErrorState();
//---------------------------------------------------------------------
// Construct build database query.
DbQuery query = new DbQuery(db.DbmsType);
query.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAssetProcess), aliasAssetProcess);
// AssetProcess Properties - add columns as defined in query list.
if (columns.HasId((int)SbmAssetProcess.Column.AssetId))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetProcess_AssetId, aliasAssetProcess), prefixAssetProcess + SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaAssetProcess_AssetId, false));
if (columns.HasId((int)SbmAssetProcess.Column.Seq))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetProcess_Seq, aliasAssetProcess), prefixAssetProcess + SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaAssetProcess_Seq, false));
if (columns.HasId((int)SbmAssetProcess.Column.ProcessId))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetProcess_ProcessId, aliasAssetProcess), prefixAssetProcess + SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaAssetProcess_ProcessId, false));
if (columns.HasId((int)SbmAssetProcess.Column.RequiredOn))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetProcess_RequiredOn, aliasAssetProcess), prefixAssetProcess + SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaAssetProcess_RequiredOn, false));
if (columns.HasId((int)SbmAssetProcess.Column.ExpectedOn))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetProcess_ExpectedOn, aliasAssetProcess), prefixAssetProcess + SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaAssetProcess_ExpectedOn, false));
if (columns.HasId((int)SbmAssetProcess.Column.ProcessedOn))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetProcess_ProcessedOn, aliasAssetProcess), prefixAssetProcess + SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaAssetProcess_ProcessedOn, false));
// Common Properties
if (columns.HasId((int)SbmAssetProcess.Column.Notes))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetProcess_Notes, aliasAssetProcess));
if (columns.HasId((int)SbmAssetProcess.Column.Flag))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetProcess_Flags, aliasAssetProcess));
if (columns.HasId((int)SbmAssetProcess.Column.Status) || columns.HasId((int)SbmAssetProcess.Column.Status_Desc) || columns.HasId((int)SbmAssetProcess.Column.Status_Ind))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetProcess_Status, aliasAssetProcess));
if (columns.HasId((int)SbmAssetProcess.Column.CreateOn_Date))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetProcess_CreateOn, aliasAssetProcess));
if (columns.HasId((int)SbmAssetProcess.Column.UpdateOn_Date))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetProcess_UpdateOn, aliasAssetProcess));
//---------------------------------------------------------------------
// Populate filter.
query.Filters.AddRange(GetAssetProcessQueryFilter(prm));
if (prm.IncludedIds.Count != 1)
{
// Configure sort sequence.
foreach (String sortColumn in GetAssetProcessSortColumns(prm))
query.OrderBy.Add(sortColumn);
}
//---------------------------------------------------------------------
//return new DbResultSet_DataTableReader(db, query.BuildQuery());
return DbResultSet_DataReader.ExecuteQuery(db, query.BuildQuery(prm.ResultsPaging));
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,801 @@
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.ItemData;
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
{
//=======================================================================
partial class SbmAssetMgr_Dbas
{
//*******************************************************************
// V e h i c l e
//*******************************************************************
// Utilities.
private List<StringPair> GetLogProperties(SbmVehicle vehicle)
{
return new List<StringPair>()
{
new StringPair("Id",SysId.ToString(vehicle.Id)),
new StringPair("Vin",vehicle.Vin),
new StringPair("Status",vehicle.StatusCode)
};
}
//-------------------------------------------------------------------
// Data members.
//-------------------------------------------------------------------
// Get Vehicle.
public override SbmVehicle GetVehicle(SbmVehicle.Params prm)
{
return GetVehicle(GetVehicleQueryFilter(prm).Concat(" AND ", "(", ")"));
}
private SbmVehicle GetVehicle(String filter)
{
ClearErrorState();
long count = GetVehicleCount(filter);
if (count == 0) return null;
if (count != 1)
{
SetErrorState("Multiple Vehicles found");
return null;
}
SbmVehicle vehicle = null;
// Query data.
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
dbConnection.Open();
SaVehicle_Db dbVehicle = new SaVehicle_Db(DbInfo);
dbVehicle.PopulateFrom(dbCommand, aliasVehicle, filter);
vehicle = CreateVehicle(dbVehicle);
}
catch (Exception exc)
{
SetErrorState("Database query exception");
SaLogger.Warn(GetType().Name + ".GetVehicle\n\tQuery: " + dbCommand.CommandText + "\n\tException: " + exc.Message);
}
}
return vehicle;
}
//-------------------------------------------------------------------
// Create Vehicle.
public override SbmVehicle CreateVehicle()
{
ClearErrorState();
return new SbmVehicle_Dbas(UserContext, new SysId(), 0);
}
private SbmVehicle_Dbas CreateVehicle(SaVehicle_Db dbVehicle)
{
ClearErrorState();
SbmVehicle_Dbas vehicle = new SbmVehicle_Dbas(UserContext, new SysId(dbVehicle._Id), (ushort)dbVehicle._Flags);
PopulateFrom(dbVehicle, vehicle);
return vehicle;
}
//-------------------------------------------------------------------
// Validate Vehicle.
public override bool IsValidVehicleData(SbmVehicle.Data data, SbmVehicle.ErrField errField)
{
ClearErrorState();
if (!base.IsValidVehicleData(data, errField)) return false;
return true;
}
//-------------------------------------------------------------------
// Insert Vehicle.
public override bool InsertVehicle(SbmVehicle vehicle, DbUpdateInfo dbUpdateInfo)
{
String fn = GetType().Name + ".InsertVehicle";
ClearErrorState();
if (!IsValidVehicle(vehicle)) return false;
if (SysId.IsValid(vehicle.Id)) return SetErrorState(ErrorMessage.ValiditemId);
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
dbConnection.Open();
SaVehicle_Db dbVehicle = new SaVehicle_Db(DbInfo);
PopulateTo(dbVehicle, vehicle, dbUpdateInfo);
if (SaVehicle_Db.FieldsNonId.Contains("Id"))
{
// Generate next Id.
dbVehicle._Id = SysId.ToInt(db.GetNextId("Vehicle", dbUpdateInfo));
}
dbVehicle.ExecuteInsertCommand(dbCommand);
vehicle.Id = new SysId(dbVehicle._Id);
vehicle.Changed = false;
if (DebugMode) SaLogger.Debug(fn + " Inserted. " + GetLogProperties(vehicle).Concat(": ").Concat("", "\n\t"));
}
catch (Exception exc) { SetErrorState(exc.Message); }
}
return !HasErrorState();
}
//-------------------------------------------------------------------
// Update Vehicle.
public override bool UpdateVehicle(SbmVehicle vehicle, DbUpdateInfo dbUpdateInfo)
{
String fn = GetType().Name + ".UpdateVehicle";
ClearErrorState();
if (!IsValidVehicle(vehicle)) return false;
if (!SysId.IsValid(vehicle.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
if (!vehicle.Changed)
{
if (DebugMode) SaLogger.Debug(fn + " Data not changed. " + GetLogProperties(vehicle).Concat(": ").Concat("", "\n\t"));
return true;
}
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
// Retrieve Vehicle.
dbConnection.Open();
SaVehicle_Db dbVehicle = new SaVehicle_Db(DbInfo);
dbVehicle.PopulateFrom(dbCommand, aliasVehicle, "Id=" + SysId.ToString(vehicle.Id));
SbmUpdateLogItemMonitor_Vehicle updateLogMonitor = new SbmUpdateLogItemMonitor_Vehicle(UserContext, CreateVehicle(dbVehicle));
// Update properties.
PopulateTo(dbVehicle, vehicle, dbUpdateInfo);
dbVehicle.ExecuteUpdateCommand(dbCommand);
vehicle.Changed = false;
if (DebugMode) SaLogger.Debug(fn + " Updated. " + GetLogProperties(vehicle).Concat(": ").Concat("", "\n\t"));
// Record updates.
updateLogMonitor.RecordUpdatedValues(vehicle);
updateLogMonitor.LogUpdates();
}
catch (Exception exc) { SetErrorState(exc.Message); }
}
return !HasErrorState();
}
//-------------------------------------------------------------------
// Delete Vehicle.
public override bool VehicleCanBeDeleted(SbmVehicle vehicle)
{
ClearErrorState();
if (!base.VehicleCanBeDeleted(vehicle)) return false;
return true;
}
public override bool DeleteVehicle(SbmVehicle vehicle, DbUpdateInfo dbUpdateInfo)
{
String fn = GetType().Name + ".DeleteVehicle";
ClearErrorState();
if (!VehicleCanBeDeleted(vehicle)) return false;
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
// Retrieve prm.
dbConnection.Open();
SaVehicle_Db dbVehicle = new SaVehicle_Db(DbInfo);
dbVehicle.PopulateFrom(dbCommand, aliasVehicle, "Id=" + vehicle.Id.ToString());
// Delete prm.
dbCommand.CommandType = System.Data.CommandType.Text;
dbCommand.CommandText = "DELETE FROM " + SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaVehicle) + " WHERE Id=" + SysId.ToString(vehicle.Id) + ";";
dbCommand.ExecuteNonQuery();
vehicle.Changed = false;
if (DebugMode) SaLogger.Debug(fn + " Deleted. " + GetLogProperties(vehicle).Concat(": ").Concat("", "\n\t"));
}
catch (Exception exc) { SetErrorState(exc.Message); }
}
return !HasErrorState();
}
//-------------------------------------------------------------------
// Copy data properties to and from database.
private void PopulateTo(SaVehicle_Db dbVehicle, SbmVehicle vehicle, DbUpdateInfo dbUpdateInfo)
{
dbVehicle._Id = vehicle.Id.ToInt();
dbVehicle._VehicleClassId = vehicle.VehicleClassId.ToInt();
dbVehicle._RegNumber = vehicle.RegNumber;
dbVehicle._VIN = vehicle.Vin;
dbVehicle._CapCode = vehicle.CapCode;
dbVehicle._KeyNumber = vehicle.KeyNumber;
dbVehicle._KeyLocation = vehicle.KeyLocation;
dbVehicle._EngineNumber = vehicle.EngineNumber;
dbVehicle._EngineCapacity = vehicle.EngineCapacity;
dbVehicle._Seats = vehicle.Seats;
dbVehicle._Weight = vehicle.Weight;
dbVehicle._ManufactureYear = vehicle.ManufactureYear;
dbVehicle._BuildOn = vehicle.BuildOn;
dbVehicle._FirstRegisterOn = vehicle.FirstRegisterOn;
dbVehicle._RegisterOn = vehicle.RegisterOn;
dbVehicle._RegNumberPrev = vehicle.RegNumberPrev;
dbVehicle._PurchaseOdo = (int)vehicle.PurchaseOdo;
dbVehicle._TachoCode = vehicle.TachoCode;
dbVehicle._TachoId = vehicle.TachoId;
dbVehicle._LastServiceOdo = (int)vehicle.LastServiceOdo;
dbVehicle._LastServiceOn = vehicle.LastServiceOn;
dbVehicle._NextServiceOdo = (int)vehicle.NextServiceOdo;
dbVehicle._NextServiceOn = vehicle.NextServiceOn;
dbVehicle._MotOn = vehicle.MotOn;
dbVehicle._MotNo = vehicle.MotNo;
dbVehicle._NextTaxOn = vehicle.NextTaxOn;
dbVehicle._LatestOdo = (int)vehicle.LatestOdo;
dbVehicle._LatestOdoOn = vehicle.LatestOdoOn;
// Common properties.
dbVehicle._Notes = vehicle.Notes;
dbVehicle._Status = SacsSystem.GetStatusCode(vehicle.Status);
dbVehicle._Flags = (short)vehicle.Flags;
if (!SysId.IsValid(vehicle.Id))
{
dbVehicle._CreateOn = DateTime.UtcNow;
dbVehicle._CreateBy = dbUpdateInfo.UserId.ToInt();
dbVehicle._CreateHost = dbUpdateInfo.Host;
}
dbVehicle._UpdateOn = DateTime.UtcNow;
dbVehicle._UpdateBy = dbUpdateInfo.UserId.ToInt();
dbVehicle._UpdateHost = dbUpdateInfo.Host;
}
private void PopulateFrom(SaVehicle_Db dbVehicle, SbmVehicle vehicle)
{
//vehicle.Id = new SysId(dbVehicle._Id);
vehicle.VehicleClassId = new SysId(dbVehicle._VehicleClassId);
vehicle.RegNumber = dbVehicle._RegNumber;
vehicle.Vin = dbVehicle._VIN;
vehicle.CapCode = dbVehicle._CapCode;
vehicle.KeyNumber = dbVehicle._KeyNumber;
vehicle.KeyLocation = dbVehicle._KeyLocation;
vehicle.EngineNumber = dbVehicle._EngineNumber;
vehicle.EngineCapacity = dbVehicle._EngineCapacity;
vehicle.Seats = dbVehicle._Seats;
vehicle.Weight = dbVehicle._Weight;
vehicle.ManufactureYear = dbVehicle._ManufactureYear;
vehicle.BuildOn = dbVehicle._BuildOn;
vehicle.FirstRegisterOn = dbVehicle._FirstRegisterOn;
vehicle.RegisterOn = dbVehicle._RegisterOn;
vehicle.RegNumberPrev = dbVehicle._RegNumberPrev;
vehicle.PurchaseOdo = dbVehicle._PurchaseOdo;
vehicle.TachoCode = dbVehicle._TachoCode;
vehicle.TachoId = dbVehicle._TachoId;
vehicle.LastServiceOdo = dbVehicle._LastServiceOdo;
vehicle.LastServiceOn = dbVehicle._LastServiceOn;
vehicle.NextServiceOdo = dbVehicle._NextServiceOdo;
vehicle.NextServiceOn = dbVehicle._NextServiceOn;
vehicle.MotOn = dbVehicle._MotOn;
vehicle.MotNo = dbVehicle._MotNo;
vehicle.NextTaxOn = dbVehicle._NextTaxOn;
vehicle.LatestOdo = dbVehicle._LatestOdo;
vehicle.LatestOdoOn = dbVehicle._LatestOdoOn;
// Common properties.
vehicle.Notes = dbVehicle._Notes;
vehicle.Status = SacsSystem.GetStatusForCode(dbVehicle._Status);
vehicle.SetCreateStamp(dbVehicle._CreateOn, new SysId(dbVehicle._CreateBy), dbVehicle._CreateHost);
vehicle.SetUpdateStamp(dbVehicle._UpdateOn, new SysId(dbVehicle._UpdateBy), dbVehicle._UpdateHost);
vehicle.AcceptChanges();
}
//-------------------------------------------------------------------
private static readonly String aliasVehicle = "aVeh";
private static readonly String prefixVehicle = "Veh_";
// VehicleClass Alias&Prefix.
private static readonly String aliasVehicle_VehicleClass = "aVehVehCls";
private static readonly String prefixVehicle_VehicleClass = "VehVehClass_";
// VehEventCount DataName.
private static readonly String dataNameVehEventCount = "EvtCount";
// VehFeatureCount DataName.
private static readonly String dataNameVehFeatureCount = "FtrCount";
// HpiCheckCount DataName.
private static readonly String dataNameHpiCheckCount = "HpiCount";
// Vehicle column definitions.
private void SetVehicleColDfn
(ColumnDfn col, String caption, int width, SbmDbDfn.ColumnIdx dbCol,
ColumnAlignment align = ColumnAlignment.Default, DataValue.DataType dataType = DataValue.DataType.String,
String alias = "", String prefix = "")
{
if (String.IsNullOrEmpty(alias) && SbmDbDfn.GetTableForColumn(dbCol) == SbmDbDfn.TableIdx.SaVehicle)
alias = aliasVehicle;
col.Set(caption, width, (int)dbCol, prefix + SbmDbDfn.GetColumnName(dbCol, false), SbmDbDfn.GetColumnNameQual(dbCol, alias), dataType, align);
if (dataType == DataValue.DataType.String && dbCol != SbmDbDfn.ColumnIdx.Unknown)
col.MaxLength = (int)SbmDbDfn.GetColTextLen(dbCol);
}
//-------------------------------------------------------------------
// Getting prm column definition.
public override ColumnDfn GetVehicleColumnDfn(SbmVehicle.Column columnId, string caption = "", int width = 0)
{
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
switch (columnId)
{
case SbmVehicle.Column.Pos:
SetVehicleColDfn(columnDfn, "Pos", 45, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Right);
columnDfn.SortMode = ColumnDfn.ColumnSortMode.Off;
columnDfn.ReadOnly = true;
columnDfn.Resizable = false;
break;
case SbmVehicle.Column.Id:
SetVehicleColDfn(columnDfn, "Id", 60, SbmDbDfn.ColumnIdx.SaVehicle_Id, ColumnAlignment.Right, DataValue.DataType.Long, aliasVehicle, prefixVehicle);
columnDfn.ReadOnly = true;
break;
// Vehicle Properties.
case SbmVehicle.Column.VehicleClass_Id:
SetVehicleColDfn(columnDfn, "Cat Id", 45, SbmDbDfn.ColumnIdx.SaVehicle_VehicleClassId, ColumnAlignment.Right, DataValue.DataType.Long);
break;
case SbmVehicle.Column.VehicleClass_MakeCode:
SetVehicleColDfn(columnDfn, "Make", 65, SbmDbDfn.ColumnIdx.SaVehicleClass_MakeCode, ColumnAlignment.Center, DataValue.DataType.String, aliasVehicle_VehicleClass, prefixVehicle_VehicleClass);
break;
case SbmVehicle.Column.VehicleClass_MakeDesc:
SetVehicleColDfn(columnDfn, "Make", 75, SbmDbDfn.ColumnIdx.SaVehicleClass_MakeCode, ColumnAlignment.Left, DataValue.DataType.String, aliasVehicle_VehicleClass, prefixVehicle_VehicleClass);
break;
case SbmVehicle.Column.VehicleClass_Model:
SetVehicleColDfn(columnDfn, "Model", 80, SbmDbDfn.ColumnIdx.SaVehicleClass_Model, ColumnAlignment.Left, DataValue.DataType.String, aliasVehicle_VehicleClass, prefixVehicle_VehicleClass);
break;
case SbmVehicle.Column.VehicleClass_Derivative:
SetVehicleColDfn(columnDfn, "Derivative", 90, SbmDbDfn.ColumnIdx.SaVehicleClass_Derivative, ColumnAlignment.Left, DataValue.DataType.String, aliasVehicle_VehicleClass, prefixVehicle_VehicleClass);
break;
case SbmVehicle.Column.VehicleClass_DescBrief:
SetVehicleColDfn(columnDfn, "Vehicle class", 120, SbmDbDfn.ColumnIdx.SaVehicleClass_DescBrief, ColumnAlignment.Left, DataValue.DataType.String, aliasVehicle_VehicleClass, prefixVehicle_VehicleClass);
break;
case SbmVehicle.Column.VehicleClass_Type:
SetVehicleColDfn(columnDfn, "Type", 60, SbmDbDfn.ColumnIdx.SaVehicleClass_VehicleType, ColumnAlignment.Center, DataValue.DataType.Long, aliasVehicle_VehicleClass, prefixVehicle_VehicleClass);
break;
case SbmVehicle.Column.VehicleClass_TypeDesc:
SetVehicleColDfn(columnDfn, "Type", 70, SbmDbDfn.ColumnIdx.SaVehicleClass_VehicleType, ColumnAlignment.Center, DataValue.DataType.String, aliasVehicle_VehicleClass, prefixVehicle_VehicleClass);
break;
case SbmVehicle.Column.VehicleClass_CategoryCode:
SetVehicleColDfn(columnDfn, "Category", 70, SbmDbDfn.ColumnIdx.SaVehicleClass_VehicleCategoryCode, ColumnAlignment.Center, DataValue.DataType.String, aliasVehicle_VehicleClass, prefixVehicle_VehicleClass);
break;
case SbmVehicle.Column.VehicleClass_CategoryDesc:
SetVehicleColDfn(columnDfn, "Category", 70, SbmDbDfn.ColumnIdx.SaVehicleClass_VehicleCategoryCode, ColumnAlignment.Center, DataValue.DataType.String, aliasVehicle_VehicleClass, prefixVehicle_VehicleClass);
break;
case SbmVehicle.Column.VehicleClass_FuelTypeDesc:
SetVehicleColDfn(columnDfn, "Fuel type", 70, SbmDbDfn.ColumnIdx.SaVehicleClass_FuelType, ColumnAlignment.Center, DataValue.DataType.String, aliasVehicle_VehicleClass, prefixVehicle_VehicleClass);
break;
case SbmVehicle.Column.VehicleClass_OdometerUnitsDesc:
SetVehicleColDfn(columnDfn, "Odo units", 70, SbmDbDfn.ColumnIdx.SaVehicleClass_OdometerUnits, ColumnAlignment.Center, DataValue.DataType.String, aliasVehicle_VehicleClass, prefixVehicle_VehicleClass);
break;
case SbmVehicle.Column.VehicleClass_Seats:
SetVehicleColDfn(columnDfn, "Seats", 50, SbmDbDfn.ColumnIdx.SaVehicleClass_Seats, ColumnAlignment.Center, DataValue.DataType.Long, aliasVehicle_VehicleClass, prefixVehicle_VehicleClass);
break;
case SbmVehicle.Column.VehicleClass_InsuranceCode:
SetVehicleColDfn(columnDfn, "Insurance", 70, SbmDbDfn.ColumnIdx.SaVehicleClass_InsuranceCode, ColumnAlignment.Center, DataValue.DataType.String, aliasVehicle_VehicleClass, prefixVehicle_VehicleClass);
break;
case SbmVehicle.Column.VehicleClass_InsuranceDesc:
SetVehicleColDfn(columnDfn, "Insurance", 100, SbmDbDfn.ColumnIdx.SaVehicleClass_InsuranceCode, ColumnAlignment.Left, DataValue.DataType.String, aliasVehicle_VehicleClass, prefixVehicle_VehicleClass);
break;
case SbmVehicle.Column.VehicleClass_Notes:
SetVehicleColDfn(columnDfn, "Class Notes", 200, SbmDbDfn.ColumnIdx.SaVehicleClass_Notes, ColumnAlignment.Left, DataValue.DataType.String, aliasVehicle_VehicleClass, prefixVehicle_VehicleClass);
break;
case SbmVehicle.Column.RegNumber:
SetVehicleColDfn(columnDfn, "Registration", 80, SbmDbDfn.ColumnIdx.SaVehicle_RegNumber);
break;
case SbmVehicle.Column.RegNumberPrev:
SetVehicleColDfn(columnDfn, "Reg (prev)", 80, SbmDbDfn.ColumnIdx.SaVehicle_RegNumberPrev);
break;
case SbmVehicle.Column.Vin:
SetVehicleColDfn(columnDfn, "Vin", 100, SbmDbDfn.ColumnIdx.SaVehicle_VIN);
break;
case SbmVehicle.Column.CapCode:
SetVehicleColDfn(columnDfn, "CAP", 90, SbmDbDfn.ColumnIdx.SaVehicle_CapCode);
break;
case SbmVehicle.Column.KeyNumber:
SetVehicleColDfn(columnDfn, "Key #", 90, SbmDbDfn.ColumnIdx.SaVehicle_KeyNumber);
break;
case SbmVehicle.Column.KeyLocation:
SetVehicleColDfn(columnDfn, "Key loc.", 60, SbmDbDfn.ColumnIdx.SaVehicle_KeyLocation);
break;
case SbmVehicle.Column.EngineNumber:
SetVehicleColDfn(columnDfn, "Engine no", 80, SbmDbDfn.ColumnIdx.SaVehicle_EngineNumber);
break;
case SbmVehicle.Column.BuildOn:
SetVehicleColDfn(columnDfn, "Build on", 70, SbmDbDfn.ColumnIdx.SaVehicle_BuildOn, ColumnAlignment.Center, DataValue.DataType.Date);
break;
case SbmVehicle.Column.FirstRegisterOn:
SetVehicleColDfn(columnDfn, "First reg.", 70, SbmDbDfn.ColumnIdx.SaVehicle_FirstRegisterOn, ColumnAlignment.Center, DataValue.DataType.Date);
break;
case SbmVehicle.Column.RegisterOn:
SetVehicleColDfn(columnDfn, "Registered", 70, SbmDbDfn.ColumnIdx.SaVehicle_RegisterOn, ColumnAlignment.Center, DataValue.DataType.Date);
break;
case SbmVehicle.Column.PurchaseOdo:
SetVehicleColDfn(columnDfn, "Purchase odo", 70, SbmDbDfn.ColumnIdx.SaVehicle_PurchaseOdo, ColumnAlignment.Right, DataValue.DataType.Long);
break;
case SbmVehicle.Column.TachoCode:
SetVehicleColDfn(columnDfn, "Tacho", 100, SbmDbDfn.ColumnIdx.SaVehicle_TachoCode);
break;
case SbmVehicle.Column.TachoId:
SetVehicleColDfn(columnDfn, "Tacho Id", 90, SbmDbDfn.ColumnIdx.SaVehicle_TachoId);
break;
case SbmVehicle.Column.LastServiceOdo:
SetVehicleColDfn(columnDfn, "Last service odo", 70, SbmDbDfn.ColumnIdx.SaVehicle_LastServiceOdo, ColumnAlignment.Right, DataValue.DataType.Long);
break;
case SbmVehicle.Column.LastServiceOn:
SetVehicleColDfn(columnDfn, "Last service", 70, SbmDbDfn.ColumnIdx.SaVehicle_LastServiceOn, ColumnAlignment.Center, DataValue.DataType.Date);
break;
case SbmVehicle.Column.NextServiceOdo:
SetVehicleColDfn(columnDfn, "Next service odo", 70, SbmDbDfn.ColumnIdx.SaVehicle_NextServiceOdo, ColumnAlignment.Right, DataValue.DataType.Long);
break;
case SbmVehicle.Column.NextServiceOn:
SetVehicleColDfn(columnDfn, "NextServiceOn", 70, SbmDbDfn.ColumnIdx.SaVehicle_NextServiceOn, ColumnAlignment.Center, DataValue.DataType.Date);
break;
case SbmVehicle.Column.MotOn:
SetVehicleColDfn(columnDfn, "Mot due", 70, SbmDbDfn.ColumnIdx.SaVehicle_MotOn, ColumnAlignment.Center, DataValue.DataType.Date);
break;
case SbmVehicle.Column.MotNo:
SetVehicleColDfn(columnDfn, "MOT No", 80, SbmDbDfn.ColumnIdx.SaVehicle_MotNo);
break;
case SbmVehicle.Column.NextTaxOn:
SetVehicleColDfn(columnDfn, "Next Tax", 70, SbmDbDfn.ColumnIdx.SaVehicle_NextTaxOn, ColumnAlignment.Center, DataValue.DataType.Date);
break;
case SbmVehicle.Column.LatestOdo:
SetVehicleColDfn(columnDfn, "Latest Odo", 70, SbmDbDfn.ColumnIdx.SaVehicle_LatestOdo, ColumnAlignment.Right, DataValue.DataType.Long);
break;
case SbmVehicle.Column.LatestOdoOn:
SetVehicleColDfn(columnDfn, "Latest Odo", 70, SbmDbDfn.ColumnIdx.SaVehicle_LatestOdoOn, ColumnAlignment.Center, DataValue.DataType.Date);
break;
// Common properties.
case SbmVehicle.Column.Notes:
SetVehicleColDfn(columnDfn, "Notes", 200, SbmDbDfn.ColumnIdx.SaVehicle_Notes);
break;
case SbmVehicle.Column.Flag:
SetVehicleColDfn(columnDfn, "Flags", 40, SbmDbDfn.ColumnIdx.SaVehicle_Flags, ColumnAlignment.Center, DataValue.DataType.Long);
break;
case SbmVehicle.Column.Status:
SetVehicleColDfn(columnDfn, "Status", 50, SbmDbDfn.ColumnIdx.SaVehicle_Status, ColumnAlignment.Center);
break;
case SbmVehicle.Column.Status_Desc:
SetVehicleColDfn(columnDfn, "Status", 50, SbmDbDfn.ColumnIdx.SaVehicle_Status);
break;
case SbmVehicle.Column.Status_Ind:
SetVehicleColDfn(columnDfn, "Status", 50, SbmDbDfn.ColumnIdx.SaVehicle_Status, ColumnAlignment.Center, DataValue.DataType.TriState);
columnDfn.TriStateFormat = ColumnTriStateFormat.Lights;
break;
case SbmVehicle.Column.CreateOn_Date:
SetVehicleColDfn(columnDfn, "Created", 65, SbmDbDfn.ColumnIdx.SaVehicle_CreateOn, ColumnAlignment.Center, DataValue.DataType.Date);
columnDfn.DateFormat = "d-MMM-yy";
columnDfn.ReadOnly = true;
break;
case SbmVehicle.Column.UpdateOn_Date:
SetVehicleColDfn(columnDfn, "Updated", 65, SbmDbDfn.ColumnIdx.SaVehicle_UpdateOn, ColumnAlignment.Center, DataValue.DataType.Date);
columnDfn.DateFormat = "d-MMM-yy";
columnDfn.ReadOnly = true;
break;
case SbmVehicle.Column.EventCount:
SetVehicleColDfn(columnDfn, "Events", 60, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.DataName = dataNameVehEventCount;
break;
case SbmVehicle.Column.FeatureCount:
SetVehicleColDfn(columnDfn, "Features", 60, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.DataName = dataNameVehFeatureCount;
break;
case SbmVehicle.Column.HpiCheckCount:
SetVehicleColDfn(columnDfn, "HPI Checks", 70, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.DataName = dataNameHpiCheckCount;
break;
}
if (!String.IsNullOrEmpty(caption))
columnDfn.Caption = caption;
if (width > 0)
columnDfn.Width = width;
return columnDfn;
}
//-------------------------------------------------------------------
// Vehicle query filter.
public override List<string> GetVehicleQueryFilter(SbmVehicle.Params prm)
{
List<String> filter = new List<String>();
// Vehicle Id.
String includedIds = prm.IncludedIds.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(",");
if (!StringUtil.IsEmpty(excludedIds))
filter.Add(colVehicle_Id + " NOT IN (" + excludedIds + ")");
//---------------------------------------------------------------
// Vehicle Class.
String colVehicle_VehicleClassId = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicle_VehicleClassId, aliasVehicle);
if (SysId.IsValid(prm.VehicleClassId))
filter.Add(colVehicle_VehicleClassId + "=" + prm.VehicleClassId.ToString());
String classDesc = DbQuery.FormatForCondition(prm.ClassDescPartial);
if (!StringUtil.IsEmpty(prm.MakeCode) || !classDesc.IsEmpty())
{
DbQuery qryVehicleClass = new DbQuery(db.DbmsType);
qryVehicleClass.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaVehicleClass), aliasVehicle_VehicleClass);
qryVehicleClass.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicleClass_Id, aliasVehicle_VehicleClass));
if (!StringUtil.IsEmpty(prm.MakeCode))
qryVehicleClass.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicleClass_MakeCode, aliasVehicle_VehicleClass) + "='" + prm.MakeCode + "'");
if (!StringUtil.IsEmpty(classDesc))
qryVehicleClass.Filters.Add(DbQuery.FormatFn_Left(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicleClass_DescBrief, aliasVehicle_VehicleClass), prm.ClassDescPartial.Length) + "='" + classDesc + "'");
filter.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicle_VehicleClassId, aliasVehicle) + " IN (" + qryVehicleClass.BuildQuery() + ")");
}
//---------------------------------------------------------------
// Partial Registration.
String regNumber = DbQuery.FormatForCondition(prm.RegNumberPartial);
if (!StringUtil.IsEmpty(regNumber))
filter.Add(DbQuery.FormatFn_Left(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicle_RegNumber, aliasVehicle), prm.RegNumberPartial.Length) + " ='" + regNumber + "'");
// Partial VIN:
String vin = DbQuery.FormatForCondition(prm.VinPartial);
if (!StringUtil.IsEmpty(vin))
filter.Add(DbQuery.FormatFn_Left(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicle_VIN, aliasVehicle), prm.VinPartial.Length) + " ='" + vin + "'");
//---------------------------------------------------------------
// Associated Assets.
if (SysId.IsValid(prm.AssetCatIdInclude) || SysId.IsValid(prm.AssetCatIdExclude) || SysId.IsValid(prm.AssetProcessIdNext))
{
String aliasVehicle_Asset = "aVehAst";
DbQuery qryAsset = new DbQuery(db.DbmsType);
qryAsset.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAsset), aliasVehicle_Asset);
qryAsset.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_Id, aliasVehicle_Asset));
qryAsset.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_ItemType, aliasVehicle_Asset) + "=" + ((int)Sbm.ItemType.Vehicle).ToString());
qryAsset.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_ItemId, aliasVehicle_Asset) + "=" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicle_Id, aliasVehicle));
String colAsset_AssetCategoryId = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_AssetCategoryId, aliasVehicle_Asset);
String colAsset_ProcessIdNext = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_ProcessIdNext, aliasVehicle_Asset);
if (SysId.IsValid(prm.AssetCatIdInclude) || SysId.IsValid(prm.AssetProcessIdNext))
{
if (SysId.IsValid(prm.AssetCatIdInclude))
qryAsset.Filters.Add(colAsset_AssetCategoryId + "=" + prm.AssetCatIdInclude.ToString());
if (SysId.IsValid(prm.AssetProcessIdNext))
qryAsset.Filters.Add(colAsset_ProcessIdNext + "=" + prm.AssetProcessIdNext.ToString());
filter.Add(" EXISTS(" + qryAsset.BuildQuery() + ")");
}
if (SysId.IsValid(prm.AssetCatIdExclude))
{
qryAsset.Filters.Add(colAsset_AssetCategoryId + "=" + prm.AssetCatIdExclude.ToString());
filter.Add(" NOT EXISTS(" + qryAsset.BuildQuery() + ")");
}
}
//---------------------------------------------------------------
// Restrict to active:
String colVehicle_Status = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicle_Status, aliasVehicle);
if (!StringUtil.IsEmpty(prm.RestrictToActive))
filter.Add(colVehicle_Status + "='" + SacsSystem.GetStatusDesc(SaStatus.Active) + "'");
if (filter.Count < 1 && prm.IncludeDefaultFilter) filter.Add("1=1");
return filter;
}
// Vehicle sort columns.
public List<String> GetVehicleSortColumns(SbmVehicle.Params prm)
{
// Sort sequence:
List<String> sortColumnCodes = new List<String>();
foreach (var columnDfn in prm.SortColumns)
{
// Need to ensure correct alias used for Vehicle columns in case of conflict.
String sortCol = String.Empty;
if (SbmDbDfn.GetTableForColumn((SbmDbDfn.ColumnIdx)columnDfn.DbColumn) == SbmDbDfn.TableIdx.SaVehicle)
{
sortCol = SbmDbDfn.GetColumnNameQual((SbmDbDfn.ColumnIdx)columnDfn.DbColumn, aliasVehicle);
}
else
{
sortCol = columnDfn.DataName;
if (!StringUtil.IsEmpty(columnDfn.SortDataName))
sortCol = columnDfn.SortDataName;
}
if (!sortCol.IsEmpty())
{
DbOrderByNullMode orderByNullMode = DbOrderByNullMode.Default; // eSaOrderByDemoteNulls, eSaOrderByPromoteNulls
sortColumnCodes.Add(DbQuery.FormatForOrderBy(sortCol, columnDfn.SortAscending, orderByNullMode).Concat(", "));
}
}
sortColumnCodes.RemoveBlanks();
if (sortColumnCodes.IsEmpty())
{
// Default sort columns:
sortColumnCodes.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicle_VehicleClassId, aliasVehicle) + " ASC");
}
return sortColumnCodes;
}
//-------------------------------------------------------------------
// Vehicle count.
private long GetVehicleCount(String filter)
{
ClearErrorState();
return db.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaVehicle) + " As " + aliasVehicle, filter);
}
public override long GetVehicleCount(SbmVehicle.Params prm)
{
ClearErrorState();
return GetVehicleCount(GetVehicleQueryFilter(prm).Concat(" AND ", "(", ")"));
}
//-------------------------------------------------------------------
// Vehicle list.
public override List<SbmVehicle> GetVehicleList(SbmVehicle.Params prm)
{
List<SbmVehicle> Vehiclees = new List<SbmVehicle>();
DbQuery qry = new DbQuery(db.DbmsType);
qry.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaVehicle), aliasVehicle);
SaVehicle_Db dbVehicle = new SaVehicle_Db(DbInfo);
qry.Columns.AddRange(dbVehicle.ExistingColumnNames);
qry.Filters.AddRange(GetVehicleQueryFilter(prm));
qry.OrderBy.AddRange(GetVehicleSortColumns(prm));
// Query data.
using (var dbConnection = db.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
dbConnection.Open();
dbCommand.CommandText = qry.BuildQuery(prm.ResultsPaging);
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
while (dbDataReader.Read())
{
dbVehicle = new SaVehicle_Db(DbInfo);
dbVehicle.PopulateFrom(dbDataReader);
Vehiclees.Add(CreateVehicle(dbVehicle));
}
}
}
catch (Exception exc)
{
SaLogger.Warn(GetType().Name + ".GetVehicleList\n\tQuery: " + dbCommand.CommandText + "\n\tException: " + exc.Message);
}
}
return Vehiclees;
}
//-------------------------------------------------------------------
// Vehicle query execution.
public override DbResultSet ExecuteVehicleQuery(List<ColumnDfn> columns, SbmVehicle.Params prm)
{
ClearErrorState();
//---------------------------------------------------------------------
// Construct build database query.
DbQuery query = new DbQuery(db.DbmsType);
query.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaVehicle), aliasVehicle);
// Vehicle Properties - add columns as defined in query list.
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicle_Id, aliasVehicle));
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicle_RegNumber, aliasVehicle));
if (columns.HasId((int)SbmVehicle.Column.RegNumberPrev))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicle_RegNumberPrev, aliasVehicle));
if (columns.HasId((int)SbmVehicle.Column.Vin))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicle_VIN, aliasVehicle));
if (columns.HasId((int)SbmVehicle.Column.CapCode))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicle_CapCode, aliasVehicle));
if (columns.HasId((int)SbmVehicle.Column.KeyNumber))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicle_KeyNumber, aliasVehicle));
if (columns.HasId((int)SbmVehicle.Column.KeyLocation))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicle_KeyLocation, aliasVehicle));
//---------------------------------------------------------------
// Vehicle Category.
bool hasVehicleClassCols = false;
if (!hasVehicleClassCols) hasVehicleClassCols = columns.HasId((int)SbmVehicle.Column.VehicleClass_MakeCode);
if (!hasVehicleClassCols) hasVehicleClassCols = columns.HasId((int)SbmVehicle.Column.VehicleClass_MakeDesc);
if (!hasVehicleClassCols) hasVehicleClassCols = columns.HasId((int)SbmVehicle.Column.VehicleClass_Model);
if (!hasVehicleClassCols) hasVehicleClassCols = columns.HasId((int)SbmVehicle.Column.VehicleClass_Derivative);
if (!hasVehicleClassCols) hasVehicleClassCols = columns.HasId((int)SbmVehicle.Column.VehicleClass_DescBrief);
if (!hasVehicleClassCols) hasVehicleClassCols = columns.HasId((int)SbmVehicle.Column.VehicleClass_Type);
if (!hasVehicleClassCols) hasVehicleClassCols = columns.HasId((int)SbmVehicle.Column.VehicleClass_TypeDesc);
if (!hasVehicleClassCols) hasVehicleClassCols = columns.HasId((int)SbmVehicle.Column.VehicleClass_CategoryCode);
if (!hasVehicleClassCols) hasVehicleClassCols = columns.HasId((int)SbmVehicle.Column.VehicleClass_CategoryDesc);
if (!hasVehicleClassCols) hasVehicleClassCols = columns.HasId((int)SbmVehicle.Column.VehicleClass_FuelTypeDesc);
if (!hasVehicleClassCols) hasVehicleClassCols = columns.HasId((int)SbmVehicle.Column.VehicleClass_OdometerUnitsDesc);
if (!hasVehicleClassCols) hasVehicleClassCols = columns.HasId((int)SbmVehicle.Column.VehicleClass_Notes);
if (hasVehicleClassCols)
{
DbQueryJoin joinVehCat = new DbQueryJoin(DbJoinType.LeftOuter);
joinVehCat.Table = new StringPair(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaVehicleClass), aliasVehicle_VehicleClass);
joinVehCat.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicleClass_Id, aliasVehicle_VehicleClass) + "=" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicle_VehicleClassId, aliasVehicle));
query.Joins.Add(joinVehCat);
// Add the Vehicle Category columns:
List<SbmDbDfn.ColumnIdx> dbColumns = new List<SbmDbDfn.ColumnIdx>();
dbColumns.Add(SbmDbDfn.ColumnIdx.SaVehicleClass_MakeCode);
dbColumns.Add(SbmDbDfn.ColumnIdx.SaVehicleClass_Model);
if (columns.HasId((int)SbmVehicle.Column.VehicleClass_Derivative)) dbColumns.Add(SbmDbDfn.ColumnIdx.SaVehicleClass_Derivative);
if (columns.HasId((int)SbmVehicle.Column.VehicleClass_DescBrief)) dbColumns.Add(SbmDbDfn.ColumnIdx.SaVehicleClass_DescBrief);
dbColumns.Add(SbmDbDfn.ColumnIdx.SaVehicleClass_VehicleType);
dbColumns.Add(SbmDbDfn.ColumnIdx.SaVehicleClass_VehicleCategoryCode);
if (columns.HasId((int)SbmVehicle.Column.VehicleClass_FuelTypeDesc)) dbColumns.Add(SbmDbDfn.ColumnIdx.SaVehicleClass_FuelType);
if (columns.HasId((int)SbmVehicle.Column.VehicleClass_OdometerUnitsDesc)) dbColumns.Add(SbmDbDfn.ColumnIdx.SaVehicleClass_OdometerUnits);
if (columns.HasId((int)SbmVehicle.Column.VehicleClass_Notes)) dbColumns.Add(SbmDbDfn.ColumnIdx.SaVehicleClass_Notes);
dbColumns.Add(SbmDbDfn.ColumnIdx.SaVehicleClass_Flags);
foreach (SbmDbDfn.ColumnIdx dbColumn in dbColumns)
query.Columns.Add(SbmDbDfn.GetColumnNameQual(dbColumn, aliasVehicle_VehicleClass), prefixVehicle_VehicleClass + SbmDbDfn.GetColumnName(dbColumn, false));
}
//---------------------------------------------------------------
// Event count.
if (db.TableExists(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaVehicleEvent)))
{
bool countVehicles = columns.HasId((int)SbmVehicle.Column.EventCount);
if (countVehicles)
{
// Build sub query to directly return the number of associated Events:
String aliasVehicle_VehicleEvent = "aVehVehEvt";
DbQuery qryEvent = new DbQuery(db.DbmsType);
qryEvent.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaVehicleEvent), aliasVehicle_VehicleEvent);
qryEvent.Columns.Add("Count(" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicleEvent_Id, aliasVehicle_VehicleEvent) + ")");
qryEvent.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicleEvent_VehicleId, aliasVehicle_VehicleEvent) + "=" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicle_Id, aliasVehicle));
query.Columns.Add("(" + qryEvent.BuildQuery() + ")", dataNameVehEventCount);
}
}
//---------------------------------------------------------------
// Feature count.
bool bCountFeatures = columns.HasId((int)SbmVehicle.Column.FeatureCount);
if (bCountFeatures)
{
if (db.TableExists(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaVehicleFeature)))
{
// Build sub query to directly return the number of associated Features:
String aliasVehicle_VehicleFeature = "aVehVehFtr";
DbQuery qryFeature = new DbQuery(db.DbmsType);
qryFeature.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaVehicleFeature), aliasVehicle_VehicleFeature);
qryFeature.Columns.Add("Count(" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicleFeature_VehicleId, aliasVehicle_VehicleFeature) + ")");
qryFeature.Filters.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicleFeature_VehicleId, aliasVehicle_VehicleFeature) + "=" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicle_Id, aliasVehicle));
query.Columns.Add("(" + qryFeature.BuildQuery() + ")", dataNameVehFeatureCount);
}
}
//---------------------------------------------------------------
// HpiCheck count.
bool bCountHpiChecks = columns.HasId((int)SbmVehicle.Column.HpiCheckCount);
if (bCountHpiChecks)
{
SaItemDataConsole itemDataConsole = SbmGlobals.Application.GetItemDataConsole(UserContext);
if (itemDataConsole != null && itemDataConsole.DatabaseIsValid)
{
// Build sub query to directly return the number of associated HpiChecks.
String aliasVehicle_ItemData = "aVehItmDat";
DbQuery qryItemData = new DbQuery(db.DbmsType);
qryItemData.Tables.Add(SaItemDataDbDfn.GetTableName(SaItemDataDbDfn.TableIdx.SaItemData), aliasVehicle_ItemData);
qryItemData.Columns.Add("Count(" + SaItemDataDbDfn.GetColumnNameQual(SaItemDataDbDfn.ColumnIdx.SaItemData_Id, aliasVehicle_ItemData) + ")");
qryItemData.Filters.Add(SaItemDataDbDfn.GetColumnNameQual(SaItemDataDbDfn.ColumnIdx.SaItemData_ItemType, aliasVehicle_ItemData) + "=" + ((int)Sbm.ItemType.Vehicle).ToString());
qryItemData.Filters.Add(SaItemDataDbDfn.GetColumnNameQual(SaItemDataDbDfn.ColumnIdx.SaItemData_ItemId, aliasVehicle_ItemData) + "=" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicle_Id, aliasVehicle));
List<TypeCodeDesc> itemDataTypes = new List<TypeCodeDesc>();
qryItemData.Filters.Add(SaItemDataDbDfn.GetColumnNameQual(SaItemDataDbDfn.ColumnIdx.SaItemData_DataType, aliasVehicle_ItemData) + "='" + itemDataTypes.GetCodeForType(Sbm.ItemDataType.Vehicle_HpiResponse) + "'");
query.Columns.Add("(" + qryItemData.BuildQuery() + ")", dataNameHpiCheckCount);
}
}
// Common Properties
if (columns.HasId((int)SbmVehicle.Column.Notes))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicle_Notes, aliasVehicle));
if (columns.HasId((int)SbmVehicle.Column.Flag))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicle_Flags, aliasVehicle));
if (columns.HasId((int)SbmVehicle.Column.Status) || columns.HasId((int)SbmVehicle.Column.Status_Desc) || columns.HasId((int)SbmVehicle.Column.Status_Ind))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicle_Status, aliasVehicle));
if (columns.HasId((int)SbmVehicle.Column.CreateOn_Date))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicle_CreateOn, aliasVehicle));
if (columns.HasId((int)SbmVehicle.Column.UpdateOn_Date))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicle_UpdateOn, aliasVehicle));
//---------------------------------------------------------------
// Populate filter.
query.Filters.AddRange(GetVehicleQueryFilter(prm));
if (prm.IncludedIds.Count != 1)
{
// Configure sort sequence.
foreach (String sortColumn in GetVehicleSortColumns(prm))
query.OrderBy.Add(sortColumn);
}
//---------------------------------------------------------------
//return new DbResultSet_DataTableReader(db, query.BuildQuery());
return DbResultSet_DataReader.ExecuteQuery(db, query.BuildQuery(prm.ResultsPaging));
}
//-------------------------------------------------------------------
}
//=======================================================================
}

Some files were not shown because too many files have changed in this diff Show More