using System; using System.Collections.Generic; using System.Data.Common; using System.Linq; using System.Text; using System.Threading.Tasks; using Sarand.Core.App; using Sarand.Core.Base; using Sarand.Core.Bus; using Sarand.Core.Dbas.Base; using Sarand.Win.Dbas.Base; using Sarand.PatientMgr.Core.App; using Sarand.PatientMgr.Core.Bus; using Sarand.PatientMgr.Core.Mgr; using Sarand.PatientMgr.Win.Dbas.Bus; using Sarand.PatientMgr.Win.Dbas.Internal; //using Sarand.PatientMgr.Win.Dbas.UpdateLog; using Sarand.Win.Dbas.Data; namespace Sarand.PatientMgr.Win.Dbas.Mgr { //======================================================================= internal partial class SpmDepartmentMgr_Dbas : SpmDepartmentMgr { //******************************************************************* // E m p l o y e e R o l e //******************************************************************* // Utilities. //------------------------------------------------------------------- // Create EmployeeRole. public override SpmEmployeeRole CreateEmployeeRole(SysId deparmentId, SysId employeeId, Spm.EmployeeRole employeeRole) { return new SpmEmployeeRole_Dbas(UserContext, deparmentId, employeeId, employeeRole, 0); } private SpmEmployeeRole_Dbas CreateEmployeeRole(SwmEmployeeRole_Db dbEmployeeRole) { ClearErrorState(); SpmEmployeeRole_Dbas employeeRole = new SpmEmployeeRole_Dbas(UserContext, new SysId(dbEmployeeRole._DepartmentId), new SysId(dbEmployeeRole._EmployeeId), (Spm.EmployeeRole)dbEmployeeRole._Role, (ushort)dbEmployeeRole._Flags); PopulateFrom(dbEmployeeRole, employeeRole); return employeeRole; } //------------------------------------------------------------------- // Get EmployeeRole. public override SpmEmployeeRole GetEmployeeRole(SpmEmployeeRole.Params prm) { return GetEmployeeRole(GetEmployeeRoleQueryFilter(prm).Concat(" AND ", "(", ")")); } private SpmEmployeeRole GetEmployeeRole(String filter) { ClearErrorState(); long count = GetEmployeeRoleCount(filter); if (count == 0) return null; if (count != 1) { SetErrorState("Multiple EmployeeRolees found"); return null; } SpmEmployeeRole employeeRole = null; // Query data. using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { try { dbConnection.Open(); SwmEmployeeRole_Db dbEmployeeRole = new SwmEmployeeRole_Db(DbInfo); dbEmployeeRole.PopulateFrom(dbCommand, aliasEmployeeRole, filter); employeeRole = CreateEmployeeRole(dbEmployeeRole); } catch (Exception exc) { SetErrorState("Database query exception"); Logger.Warn(GetType().Name + ".GetEmployeeRole\n\tQuery: " + dbCommand.CommandText + "\n\tException: " + exc.Message); } } return employeeRole; } //------------------------------------------------------------------- // Validate EmployeeRole. public override bool IsValidEmployeeRoleData(SpmEmployeeRole.Data data, SpmEmployeeRole.ErrField errField) { ClearErrorState(); if (!base.IsValidEmployeeRoleData(data, errField)) return false; return true; } //------------------------------------------------------------------- // Insert EmployeeRole. public override bool InsertEmployeeRole(SpmEmployeeRole employeeRole, DbUpdateInfo dbUpdateInfo) { ClearErrorState(); if (!IsValidEmployeeRole(employeeRole)) return false; if (SysId.IsValid(employeeRole.Id)) return SetErrorState(ErrorMessage.ValiditemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { try { dbConnection.Open(); SwmEmployeeRole_Db dbEmployeeRole = new SwmEmployeeRole_Db(DbInfo); PopulateTo(dbEmployeeRole, employeeRole, dbUpdateInfo); if (SwmEmployeeRole_Db.FieldsNonId.Contains("Id")) { // Generate next Id. dbEmployeeRole._Id = SysId.ToInt(Database.GetNextId("EmployeeRole", dbUpdateInfo)); } dbEmployeeRole.ExecuteInsertCommand(dbCommand); employeeRole.Id = new SysId(dbEmployeeRole._Id); } catch (Exception exc) { SetErrorState(exc.Message); } } return !HasErrorState(); } //------------------------------------------------------------------- // Update EmployeeRole. public override bool UpdateEmployeeRole(SpmEmployeeRole employeeRole, DbUpdateInfo dbUpdateInfo) { ClearErrorState(); if (!IsValidEmployeeRole(employeeRole)) return false; if (!SysId.IsValid(employeeRole.Id)) return SetErrorState(ErrorMessage.InvalidItemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { try { // Retrieve EmployeeRole. dbConnection.Open(); SwmEmployeeRole_Db dbEmployeeRole = new SwmEmployeeRole_Db(DbInfo); dbEmployeeRole.PopulateFrom(dbCommand, aliasEmployeeRole, "Id=" + SysId.ToString(employeeRole.Id)); //SpmUpdateLogItemMonitor_EmployeeRole updateLogMonitor = new SpmUpdateLogItemMonitor_EmployeeRole(UserContext, CreateEmployeeRole(dbEmployeeRole)); // Update properties. PopulateTo(dbEmployeeRole, employeeRole, dbUpdateInfo); dbEmployeeRole.ExecuteUpdateCommand(dbCommand); /* Record updates. updateLogMonitor.RecordUpdatedValues(employeeRole); updateLogMonitor.LogUpdates();*/ } catch (Exception exc) { SetErrorState(exc.Message); } } return !HasErrorState(); } //------------------------------------------------------------------- // Delete EmployeeRole. public override bool EmployeeRoleCanBeDeleted(SpmEmployeeRole employeeRole) { ClearErrorState(); if (!base.EmployeeRoleCanBeDeleted(employeeRole)) return false; return true; } public override bool DeleteEmployeeRole(SpmEmployeeRole employeeRole, DbUpdateInfo dbUpdateInfo) { ClearErrorState(); if (!EmployeeRoleCanBeDeleted(employeeRole)) return false; using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { try { // Retrieve EmployeeRole. dbConnection.Open(); SwmEmployeeRole_Db dbEmployeeRole = new SwmEmployeeRole_Db(DbInfo); dbEmployeeRole.PopulateFrom(dbCommand, aliasEmployeeRole, "Id=" + employeeRole.Id.ToString()); // Delete EmployeeRole. dbCommand.CommandType = System.Data.CommandType.Text; dbCommand.CommandText = "DELETE FROM " + SpmDbDfn.GetTableName(SpmDbDfn.TableIdx.SwmEmployeeRole) + " WHERE Id=" + SysId.ToString(employeeRole.Id) + ";"; dbCommand.ExecuteNonQuery(); } catch (Exception exc) { SetErrorState(exc.Message); } } return !HasErrorState(); } //------------------------------------------------------------------- // Copy data properties to and from database. private void PopulateTo(SwmEmployeeRole_Db dbEmployeeRole, SpmEmployeeRole employeeRole, DbUpdateInfo dbUpdateInfo) { dbEmployeeRole._Id = employeeRole.Id.ToInt(); dbEmployeeRole._ApplicFrom = employeeRole.ApplicationFrom; dbEmployeeRole._ApplicTo = employeeRole.ApplicationTo; dbEmployeeRole._Notes = employeeRole.Notes; dbEmployeeRole._Status = SacsSystem.GetStatusCode(employeeRole.Status); dbEmployeeRole._Flags = (short)employeeRole.Flags; if (!SysId.IsValid(employeeRole.Id)) { dbEmployeeRole._CreateOn = DateTime.UtcNow; dbEmployeeRole._CreateBy = dbUpdateInfo.UserId.ToInt(); dbEmployeeRole._CreateHost = dbUpdateInfo.Host; } dbEmployeeRole._UpdateOn = DateTime.UtcNow; dbEmployeeRole._UpdateBy = dbUpdateInfo.UserId.ToInt(); dbEmployeeRole._UpdateHost = dbUpdateInfo.Host; } private void PopulateFrom(SwmEmployeeRole_Db dbEmployeeRole, SpmEmployeeRole employeeRole) { employeeRole.Id = new SysId(dbEmployeeRole._Id); employeeRole.ApplicationFrom = dbEmployeeRole._ApplicFrom; employeeRole.ApplicationTo = dbEmployeeRole._ApplicTo; employeeRole.Notes = dbEmployeeRole._Notes; employeeRole.Status = SacsSystem.GetStatusForCode(dbEmployeeRole._Status); employeeRole.SetCreateStamp(dbEmployeeRole._CreateOn, new SysId(dbEmployeeRole._CreateBy), dbEmployeeRole._CreateHost); employeeRole.SetUpdateStamp(dbEmployeeRole._UpdateOn, new SysId(dbEmployeeRole._UpdateBy), dbEmployeeRole._UpdateHost); employeeRole.AcceptChanges(); } //------------------------------------------------------------------- // EmployeeRole column definitions. private static readonly String aliasEmployeeRole = "aEmpRole"; private void SetEmployeeRoleColDfn (ColumnDfn col, String caption, int width, SpmDbDfn.ColumnIdx dbCol, ColumnAlignment align = ColumnAlignment.Default, DataValue.DataType dataType = DataValue.DataType.String, String alias = "", String prefix = "") { if (String.IsNullOrEmpty(alias) && SpmDbDfn.GetTableForColumn(dbCol) == SpmDbDfn.TableIdx.SwmEmployeeRole) alias = aliasEmployeeRole; col.Set(caption, width, (int)dbCol, prefix + SpmDbDfn.GetColumnName(dbCol, false), SpmDbDfn.GetColumnNameQual(dbCol, alias), dataType, align); if (dataType == DataValue.DataType.String && dbCol != SpmDbDfn.ColumnIdx.Unknown) col.MaxLength = (int)SpmDbDfn.GetColTextLen(dbCol); } //------------------------------------------------------------------- // Getting prmEmployeeRole column definition. public override ColumnDfn GetEmployeeRoleColumnDfn(SpmEmployeeRole.Column columnId, string caption = "", int width = 0) { ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); switch (columnId) { case SpmEmployeeRole.Column.Pos: SetEmployeeRoleColDfn(columnDfn, "Pos", 42, SpmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Right); columnDfn.SortMode = ColumnDfn.ColumnSortMode.Off; columnDfn.ReadOnly = true; columnDfn.Resizable = false; break; case SpmEmployeeRole.Column.Id: SetEmployeeRoleColDfn(columnDfn, "Id", 40, SpmDbDfn.ColumnIdx.SwmEmployeeRole_Id, ColumnAlignment.Right, DataValue.DataType.Long); columnDfn.ReadOnly = true; break; // EmployeeRole Properties. case SpmEmployeeRole.Column.DepartmentId: SetEmployeeRoleColDfn(columnDfn, "DepartmentId", 45, SpmDbDfn.ColumnIdx.SwmEmployeeRole_DepartmentId, ColumnAlignment.Right); break; case SpmEmployeeRole.Column.EmployeeId: SetEmployeeRoleColDfn(columnDfn, "EmployeeId", 45, SpmDbDfn.ColumnIdx.SwmEmployeeRole_EmployeeId, ColumnAlignment.Right); break; case SpmEmployeeRole.Column.Role: SetEmployeeRoleColDfn(columnDfn, "Role", 40, SpmDbDfn.ColumnIdx.SwmEmployeeRole_Role, ColumnAlignment.Center); break; case SpmEmployeeRole.Column.ApplicationFrom: SetEmployeeRoleColDfn(columnDfn, "ApplicationFrom", 70, SpmDbDfn.ColumnIdx.SwmEmployeeRole_ApplicFrom, ColumnAlignment.Center, DataValue.DataType.Date); columnDfn.DateFormat = "d-MMM-yy"; break; case SpmEmployeeRole.Column.ApplicationTo: SetEmployeeRoleColDfn(columnDfn, "ApplicationTo", 70, SpmDbDfn.ColumnIdx.SwmEmployeeRole_ApplicTo, ColumnAlignment.Center, DataValue.DataType.Date); columnDfn.DateFormat = "d-MMM-yy"; break; // Common properties. case SpmEmployeeRole.Column.Notes: SetEmployeeRoleColDfn(columnDfn, "Notes", 200, SpmDbDfn.ColumnIdx.SwmEmployeeRole_Notes); break; case SpmEmployeeRole.Column.Status: SetEmployeeRoleColDfn(columnDfn, "Status", 50, SpmDbDfn.ColumnIdx.SwmEmployeeRole_Status, ColumnAlignment.Center); break; case SpmEmployeeRole.Column.Status_Desc: SetEmployeeRoleColDfn(columnDfn, "Status", 50, SpmDbDfn.ColumnIdx.SwmEmployeeRole_Status, ColumnAlignment.Center); break; case SpmEmployeeRole.Column.Status_Ind: SetEmployeeRoleColDfn(columnDfn, "Status", 50, SpmDbDfn.ColumnIdx.SwmEmployeeRole_Status, ColumnAlignment.Center, DataValue.DataType.TriState); columnDfn.TriStateFormat = ColumnTriStateFormat.Lights; break; case SpmEmployeeRole.Column.CreateOn_Date: SetEmployeeRoleColDfn(columnDfn, "Created", 65, SpmDbDfn.ColumnIdx.SwmEmployeeRole_CreateOn, ColumnAlignment.Center, DataValue.DataType.Date); columnDfn.ReadOnly = true; break; case SpmEmployeeRole.Column.UpdateOn_Date: SetEmployeeRoleColDfn(columnDfn, "Updated", 65, SpmDbDfn.ColumnIdx.SwmEmployeeRole_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; } //------------------------------------------------------------------- // EmployeeRole query filter. public override List GetEmployeeRoleQueryFilter(SpmEmployeeRole.Params prm) { List filters = new List(); // EmployeeRole Id. String includedIds = prm.IncludedIds.Concat(","); if (!includedIds.IsEmpty()) filters.Add(SpmDbDfn.GetColumnNameQual(SpmDbDfn.ColumnIdx.SwmEmployeeRole_Id, aliasEmployeeRole) + " IN (" + includedIds + ")"); String excludedIds = prm.ExcludedIds.Concat(","); if (!excludedIds.IsEmpty()) filters.Add(SpmDbDfn.GetColumnNameQual(SpmDbDfn.ColumnIdx.SwmEmployeeRole_Id, aliasEmployeeRole) + " NOT IN (" + excludedIds + ")"); // Employee: if (SysId.IsValid(prm.EmployeeId)) filters.Add(SpmDbDfn.GetColumnNameQual(SpmDbDfn.ColumnIdx.SwmEmployeeRole_EmployeeId, aliasEmployeeRole) + "=" + prm.EmployeeId.ToString()); // Role: if ((int)prm.EmployeeRole > 0) filters.Add(SpmDbDfn.GetColumnNameQual(SpmDbDfn.ColumnIdx.SwmEmployeeRole_Role, aliasEmployeeRole) + "=" + ((int)prm.EmployeeRole).ToString()); // Employee name. String initials = DbQuery.FormatForCondition(prm.Initials); String surname = DbQuery.FormatForCondition(prm.Surname); if (!StringUtil.IsEmpty(initials) || !StringUtil.IsEmpty(surname)) { // Common database definitions. String aliasEmployee = "aEmp"; String colEmployeeId = SpmDbDfn.GetColumnNameQual(SpmDbDfn.ColumnIdx.SwmEmployee_Id, aliasEmployee); String colInitials = SpmDbDfn.GetColumnNameQual(SpmDbDfn.ColumnIdx.SwmEmployee_Initials, aliasEmployee); String colSurname = SpmDbDfn.GetColumnNameQual(SpmDbDfn.ColumnIdx.SwmEmployee_Surname, aliasEmployee); // Build sub query on employee. DbQuery qry = new DbQuery(Database.DbmsType); qry.Tables.Add(SpmDbDfn.GetTableName(SpmDbDfn.TableIdx.SwmEmployee), aliasEmployee); qry.Columns.Add(colEmployeeId); // Employee must match role. qry.Filters.Add(colEmployeeId + "=" + SpmDbDfn.GetColumnNameQual(SpmDbDfn.ColumnIdx.SwmEmployeeRole_EmployeeId, aliasEmployeeRole)); if (!initials.IsEmpty()) qry.Filters.Add(DbQuery.FormatFn_Left(colInitials, prm.Initials.Length) + "='" + initials + "'"); if (!surname.IsEmpty()) qry.Filters.Add(DbQuery.FormatFn_Left(colSurname, prm.Surname.Length) + "='" + surname + "'"); filters.Add("EXISTS(" + qry.BuildQuery() + ")"); } // Applicable dates. DateTime nullDate = new DateTime(1970, 1, 1); String colApplicFrom = SpmDbDfn.GetColumnNameQual(SpmDbDfn.ColumnIdx.SwmEmployeeRole_ApplicFrom, aliasEmployeeRole); String colApplicTo = SpmDbDfn.GetColumnNameQual(SpmDbDfn.ColumnIdx.SwmEmployeeRole_ApplicTo, aliasEmployeeRole); if (DateUtil.IsValid(prm.Application)) { // Looking for roles that are applicable on the specified date. filters.Add("(" + colApplicFrom + " IS NULL OR " + colApplicFrom + "=" + DbQuery.FormatDateForCondition(nullDate) + " OR " + colApplicFrom + "<" + DbQuery.FormatDateForCondition(DateUtil.IncrementDate(prm.Application, 1)) + ")"); filters.Add("(" + colApplicTo + " IS NULL OR " + colApplicTo + "=" + DbQuery.FormatDateForCondition(nullDate) + " OR " + colApplicTo + ">=" + DbQuery.FormatDateForCondition(prm.Application) + ")"); } else if (DateUtil.IsValid(prm.ApplicationFrom) || DateUtil.IsValid(prm.ApplicationTo)) { // Looking for roles that overlap with the specified date range. if (DateUtil.IsValid(prm.ApplicationFrom) && DateUtil.IsValid(prm.ApplicationTo)) { // Both from and to dates specified. filters.Add("(" + colApplicFrom + " IS NULL OR " + colApplicFrom + "=" + DbQuery.FormatDateForCondition(nullDate) + " OR " + colApplicFrom + "<" + DbQuery.FormatDateForCondition(DateUtil.IncrementDate(prm.ApplicationTo, 1)) + ")"); filters.Add("(" + colApplicTo + " IS NULL OR " + colApplicTo + "=" + DbQuery.FormatDateForCondition(nullDate) + " OR " + colApplicTo + ">=" + DbQuery.FormatDateForCondition(prm.ApplicationFrom) + ")"); } else if (DateUtil.IsValid(prm.ApplicationFrom)) { // Only 'from' date specified - Matches with ApplicTo not specified or after 'from' date. filters.Add("(" + colApplicTo + " IS NULL OR " + colApplicTo + "=" + DbQuery.FormatDateForCondition(nullDate) + " OR " + colApplicTo + ">=" + DbQuery.FormatDateForCondition(prm.ApplicationFrom) + ")"); } else if (DateUtil.IsValid(prm.ApplicationTo)) { // Only 'to' date specified - Matches with ApplicFrom not specified or before 'to' date. filters.Add("(" + colApplicFrom + " IS NULL OR " + colApplicFrom + "=" + DbQuery.FormatDateForCondition(nullDate) + " OR " + colApplicFrom + "<" + DbQuery.FormatDateForCondition(DateUtil.IncrementDate(prm.ApplicationTo, 1)) + ")"); } } //--------------------------------------------------------------- // Common Properties. if (filters.Count < 1) filters.Add("1=1"); return filters; } //------------------------------------------------------------------- // EmployeeRole sort columns. public List GetEmployeeRoleSortColumns(SpmEmployeeRole.Params prm) { // Sort sequence: List sortColumnNames = new List(); foreach (var columnDfn in prm.SortColumns) { // Need to ensure correct alias used for EmployeeRole columns in case of conflict. String sortCol = String.Empty; if (SpmDbDfn.GetTableForColumn((SpmDbDfn.ColumnIdx)columnDfn.DbColumn) == SpmDbDfn.TableIdx.SwmEmployeeRole) { sortCol = SpmDbDfn.GetColumnNameQual((SpmDbDfn.ColumnIdx)columnDfn.DbColumn, aliasEmployeeRole); } 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(SpmDbDfn.GetColumnNameQual(SpmDbDfn.ColumnIdx.SwmEmployeeRole_Type, aliasEmployeeRole) + " ASC"); } return sortColumnNames; } //------------------------------------------------------------------- // EmployeeRole count. private long GetEmployeeRoleCount(String filter) { ClearErrorState(); return Database.GetRowCount(SpmDbDfn.GetTableName(SpmDbDfn.TableIdx.SwmEmployeeRole) + " As " + aliasEmployeeRole, filter); } public override long GetEmployeeRoleCount(SpmEmployeeRole.Params prm) { ClearErrorState(); return GetEmployeeRoleCount(GetEmployeeRoleQueryFilter(prm).Concat(" AND ", "(", ")")); } //------------------------------------------------------------------- // EmployeeRole list. public override List GetEmployeeRoleList(SpmEmployeeRole.Params prm) { List EmployeeRolees = new List(); DbQuery qry = new DbQuery(Database.DbmsType); qry.Tables.Add(SpmDbDfn.GetTableName(SpmDbDfn.TableIdx.SwmEmployeeRole), aliasEmployeeRole); qry.Columns.AddRange(SwmEmployeeRole_Db.Fields); qry.Filters.AddRange(GetEmployeeRoleQueryFilter(prm)); // Query data. using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { try { dbConnection.Open(); dbCommand.CommandText = qry.BuildQuery(); using (DbDataReader dbDataReader = dbCommand.ExecuteReader()) { while (dbDataReader.Read()) { SwmEmployeeRole_Db dbEmployeeRole = new SwmEmployeeRole_Db(DbInfo); dbEmployeeRole.PopulateFrom(dbDataReader); EmployeeRolees.Add(CreateEmployeeRole(dbEmployeeRole)); } } } catch (Exception exc) { Logger.Warn(GetType().Name + ".GetEmployeeRoleList\n\tQuery: " + dbCommand.CommandText + "\n\tException: " + exc.Message); } } return EmployeeRolees; } //------------------------------------------------------------------- // EmployeeRole query execution. public override DbResultSet ExecuteEmployeeRoleQuery(List columns, SpmEmployeeRole.Params prm) { ClearErrorState(); //--------------------------------------------------------------- // Construct query. DbQuery query = new DbQuery(Database.DbmsType); query.Tables.Add(SpmDbDfn.GetTableName(SpmDbDfn.TableIdx.SwmEmployeeRole), aliasEmployeeRole); // EmployeeRole Properties - add columns as defined in query list. if (columns.HasId((int)SpmEmployeeRole.Column.Id)) query.Columns.Add(SpmDbDfn.GetColumnNameQual(SpmDbDfn.ColumnIdx.SwmEmployeeRole_Id, aliasEmployeeRole)); if (columns.HasId((int)SpmFacility.Column.ApplicFrom)) query.Columns.Add(SpmDbDfn.GetColumnNameQual(SpmDbDfn.ColumnIdx.SwmFacility_ApplicFrom, aliasFacility)); if (columns.HasId((int)SpmFacility.Column.ApplicTo)) query.Columns.Add(SpmDbDfn.GetColumnNameQual(SpmDbDfn.ColumnIdx.SwmFacility_ApplicTo, aliasFacility)); // Common Properties if (columns.HasId((int)SpmEmployeeRole.Column.Notes)) query.Columns.Add(SpmDbDfn.GetColumnNameQual(SpmDbDfn.ColumnIdx.SwmEmployeeRole_Notes, aliasEmployeeRole)); if (columns.HasId((int)SpmEmployeeRole.Column.Status) || columns.HasId((int)SpmEmployeeRole.Column.Status_Desc) || columns.HasId((int)SpmEmployeeRole.Column.Status_Ind)) query.Columns.Add(SpmDbDfn.GetColumnNameQual(SpmDbDfn.ColumnIdx.SwmEmployeeRole_Status, aliasEmployeeRole)); if (columns.HasId((int)SpmEmployeeRole.Column.CreateOn_Date)) query.Columns.Add(SpmDbDfn.GetColumnNameQual(SpmDbDfn.ColumnIdx.SwmEmployeeRole_CreateOn, aliasEmployeeRole)); if (columns.HasId((int)SpmEmployeeRole.Column.UpdateOn_Date)) query.Columns.Add(SpmDbDfn.GetColumnNameQual(SpmDbDfn.ColumnIdx.SwmEmployeeRole_UpdateOn, aliasEmployeeRole)); //--------------------------------------------------------------- // Populate filter. query.Filters.AddRange(GetEmployeeRoleQueryFilter(prm)); if (prm.IncludedIds.Count != 1) { // Configure sort sequence. foreach (String sortColumn in GetEmployeeRoleSortColumns(prm)) query.OrderBy.Add(sortColumn); } //--------------------------------------------------------------- //return new DbResultSet_DataTableReader(Database, query.BuildQuery()); return new Sarand.Win.Dbas.Data.DbResultSet_DataReader(Database, query.BuildQuery()); } //------------------------------------------------------------------- } //======================================================================= }