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 { //******************************************************************* // D e p a r t m e n t //******************************************************************* //------------------------------------------------------------------- // Data members. //------------------------------------------------------------------- // Utilities. //------------------------------------------------------------------- // Department exists. public override bool DepartmentExistsById(SysId departmentId) { ClearErrorState(); if (!SysId.IsValid(departmentId)) return false; SpmDepartment.Params prmDepartment = new SpmDepartment.Params(); prmDepartment.IncludedIds.Add(departmentId); prmDepartment.StatusCat = SpmDepartment.StatusCat.Any; return GetDepartmentCount(prmDepartment) == 1; } //------------------------------------------------------------------- // Get Department. public override SpmDepartment GetDepartment(SpmDepartment.Params prm) { return GetDepartment(GetDepartmentQueryFilter(prm).Concat(" AND ", "(", ")")); } private SpmDepartment GetDepartment(String filter) { ClearErrorState(); long count = GetDepartmentCount(filter); if (count == 0) return null; if (count != 1) { SetErrorState("Multiple Departmentes found"); return null; } SpmDepartment department = null; // Query data. using (var dbConnection = db.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { try { dbConnection.Open(); SwmDepartment_Db dbDepartment = new SwmDepartment_Db(DbInfo); dbDepartment.PopulateFrom(dbCommand, aliasDepartment, filter); department = CreateDepartment(dbDepartment); } catch (Exception exc) { SetErrorState("Database query exception"); Logger.Warn(GetType().Name + ".GetDepartment\n\tQuery: " + dbCommand.CommandText + "\n\tException: " + exc.Message); } } return department; } public override SpmDepartment GetDepartmentById(SysId departmentId) { ClearErrorState(); if (!SysId.IsValid(departmentId)) return null; SpmDepartment.Params prmDepartment = new SpmDepartment.Params(); prmDepartment.IncludedIds.Add(departmentId); prmDepartment.StatusCat = SpmDepartment.StatusCat.Any; return GetDepartment(prmDepartment); } public override SpmDepartment GetDepartmentByName(String name) { ClearErrorState(); if (!StringUtil.IsEmpty(name)) return null; SpmDepartment.Params prmDepartment = new SpmDepartment.Params(); prmDepartment.Name = name; prmDepartment.StatusCat = SpmDepartment.StatusCat.Any; return GetDepartment(prmDepartment); } public override SpmDepartment GetDepartmentByFacilityId(SysId facilityId) { ClearErrorState(); if (!SysId.IsValid(facilityId)) return null; SpmDepartment.Params prmDepartment = new SpmDepartment.Params(); prmDepartment.IncludedIds.Add(facilityId); prmDepartment.StatusCat = SpmDepartment.StatusCat.Any; return GetDepartment(prmDepartment); } public override SpmDepartment GetDepartmentByFacilityTemplateId(SysId facilityTemplateId) { ClearErrorState(); if (!SysId.IsValid(facilityTemplateId)) return null; SpmDepartment.Params prmDepartment = new SpmDepartment.Params(); prmDepartment.IncludedIds.Add(facilityTemplateId); prmDepartment.StatusCat = SpmDepartment.StatusCat.Any; return GetDepartment(prmDepartment); } //------------------------------------------------------------------- // Create Department. public override SpmDepartment CreateDepartment() { return new SpmDepartment_Dbas(UserContext, null, 0); } private SpmDepartment_Dbas CreateDepartment(SwmDepartment_Db dbDepartment) { ClearErrorState(); SpmDepartment_Dbas department = new SpmDepartment_Dbas(UserContext, new SysId(dbDepartment._Id), (ushort)dbDepartment._Flags); PopulateFrom(dbDepartment, department); return department; } //------------------------------------------------------------------- // Validate Department. public override bool IsValidDepartmentData(SpmDepartment.Data data, SpmDepartment.ErrField errField) { ClearErrorState(); if (!base.IsValidDepartmentData(data, errField)) return false; return true; } //------------------------------------------------------------------- // Insert Department. public override bool InsertDepartment(SpmDepartment department, DbUpdateInfo dbUpdateInfo) { ClearErrorState(); if (!IsValidDepartment(department)) return false; if (SysId.IsValid(department.Id)) return SetErrorState(ErrorMessage.ValiditemId); using (var dbConnection = db.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { try { dbConnection.Open(); SwmDepartment_Db dbDepartment = new SwmDepartment_Db(DbInfo); PopulateTo(dbDepartment, department, dbUpdateInfo); if (SwmDepartment_Db.FieldsNonId.Contains("Id")) { // Generate next Id. dbDepartment._Id = SysId.ToInt(db.GetNextId("Department", dbUpdateInfo)); } dbDepartment.ExecuteInsertCommand(dbCommand); department.Id = new SysId(dbDepartment._Id); } catch (Exception exc) { SetErrorState(exc.Message); } } return !HasErrorState(); } //------------------------------------------------------------------- // Update Department. public override bool UpdateDepartment(SpmDepartment department, DbUpdateInfo dbUpdateInfo) { ClearErrorState(); if (!IsValidDepartment(department)) return false; if (!SysId.IsValid(department.Id)) return SetErrorState(ErrorMessage.InvalidItemId); using (var dbConnection = db.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { try { // Retrieve Department. dbConnection.Open(); SwmDepartment_Db dbDepartment = new SwmDepartment_Db(DbInfo); dbDepartment.PopulateFrom(dbCommand, aliasDepartment, "Id=" + SysId.ToString(department.Id)); //SpmUpdateLogItemMonitor_Department updateLogMonitor = new SpmUpdateLogItemMonitor_Department(UserContext, CreateDepartment(dbDepartment)); // Update properties. PopulateTo(dbDepartment, department, dbUpdateInfo); dbDepartment.ExecuteUpdateCommand(dbCommand); /* Record updates. updateLogMonitor.RecordUpdatedValues(department); updateLogMonitor.LogUpdates();*/ } catch (Exception exc) { SetErrorState(exc.Message); } } return !HasErrorState(); } //------------------------------------------------------------------- // Delete Department. public override bool DepartmentCanBeDeleted(SpmDepartment department) { ClearErrorState(); if (!base.DepartmentCanBeDeleted(department)) return false; return true; } public override bool DeleteDepartment(SpmDepartment department, DbUpdateInfo dbUpdateInfo) { ClearErrorState(); if (!DepartmentCanBeDeleted(department)) return false; using (var dbConnection = db.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { try { // Retrieve Department. dbConnection.Open(); SwmDepartment_Db dbDepartment = new SwmDepartment_Db(DbInfo); dbDepartment.PopulateFrom(dbCommand, aliasDepartment, "Id=" + department.Id.ToString()); // Delete Department. dbCommand.CommandType = System.Data.CommandType.Text; dbCommand.CommandText = "DELETE FROM " + SpmDbDfn.GetTableName(SpmDbDfn.TableIdx.SwmDepartment) + " WHERE Id=" + SysId.ToString(department.Id) + ";"; dbCommand.ExecuteNonQuery(); } catch (Exception exc) { SetErrorState(exc.Message); } } return !HasErrorState(); } //------------------------------------------------------------------- // Copy data properties to and from database. private void PopulateTo(SwmDepartment_Db dbDepartment, SpmDepartment department, DbUpdateInfo dbUpdateInfo) { dbDepartment._Id = department.Id.ToInt(); dbDepartment._Name = department.Name; dbDepartment._FacilityTypes = (int)department.GetFacilityTypes(); dbDepartment._AllowAnyFacility = (int)department.GetAllowAnyFacilities(); dbDepartment._ApplicFrom = department.ApplicationFrom; dbDepartment._ApplicTo = department.ApplicationTo; dbDepartment._Notes = department.Notes; dbDepartment._Status = SacsSystem.GetStatusCode(department.Status); dbDepartment._Flags = (short)department.Flags; if (!SysId.IsValid(department.Id)) { dbDepartment._CreateOn = DateTime.UtcNow; dbDepartment._CreateBy = dbUpdateInfo.UserId.ToInt(); dbDepartment._CreateHost = dbUpdateInfo.Host; } dbDepartment._UpdateOn = DateTime.UtcNow; dbDepartment._UpdateBy = dbUpdateInfo.UserId.ToInt(); dbDepartment._UpdateHost = dbUpdateInfo.Host; } private void PopulateFrom(SwmDepartment_Db dbDepartment, SpmDepartment department) { department.Id = new SysId(dbDepartment._Id); department.Name = dbDepartment._Name; department.ApplicationFrom = dbDepartment._ApplicFrom; department.ApplicationTo = dbDepartment._ApplicTo; department.Notes = dbDepartment._Notes; department.Status = SacsSystem.GetStatusForCode(dbDepartment._Status); department.SetCreateStamp(dbDepartment._CreateOn, new SysId(dbDepartment._CreateBy), dbDepartment._CreateHost); department.SetUpdateStamp(dbDepartment._UpdateOn, new SysId(dbDepartment._UpdateBy), dbDepartment._UpdateHost); department.AcceptChanges(); } //------------------------------------------------------------------- // Department column definitions. private static readonly String aliasDepartment = "aDept"; private void SetDepartmentColDfn (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.SwmDepartment) alias = aliasDepartment; 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 prmDepartment column definition. public override ColumnDfn GetDepartmentColumnDfn(SpmDepartment.Column columnId, string caption = "", int width = 0) { ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); switch (columnId) { case SpmDepartment.Column.Pos: SetDepartmentColDfn(columnDfn, "Pos", 42, SpmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Right); columnDfn.SortMode = ColumnDfn.ColumnSortMode.Off; columnDfn.ReadOnly = true; columnDfn.Resizable = false; break; case SpmDepartment.Column.Id: SetDepartmentColDfn(columnDfn, "Id", 40, SpmDbDfn.ColumnIdx.SwmDepartment_Id, ColumnAlignment.Right, DataValue.DataType.Long); columnDfn.ReadOnly = true; break; // Department Properties. case SpmDepartment.Column.Name: SetDepartmentColDfn(columnDfn, "Name", 60, SpmDbDfn.ColumnIdx.SwmDepartment_Name, ColumnAlignment.Center, DataValue.DataType.String); break; case SpmDepartment.Column.ApplicatonFrom: SetDepartmentColDfn(columnDfn, "ApplicationFrom", 70, SpmDbDfn.ColumnIdx.SwmDepartment_ApplicFrom, ColumnAlignment.Center, DataValue.DataType.Date); columnDfn.DateFormat = "d-MMM-yy"; break; case SpmDepartment.Column.ApplicationTo: SetDepartmentColDfn(columnDfn, "ApplicationTo", 70, SpmDbDfn.ColumnIdx.SwmDepartment_ApplicTo, ColumnAlignment.Center, DataValue.DataType.Date); columnDfn.DateFormat = "d-MMM-yy"; break; // Common properties. case SpmDepartment.Column.Notes: SetDepartmentColDfn(columnDfn, "Notes", 200, SpmDbDfn.ColumnIdx.SwmDepartment_Notes); break; case SpmDepartment.Column.Status: SetDepartmentColDfn(columnDfn, "Status", 50, SpmDbDfn.ColumnIdx.SwmDepartment_Status, ColumnAlignment.Center); break; case SpmDepartment.Column.Status_Desc: SetDepartmentColDfn(columnDfn, "Status", 50, SpmDbDfn.ColumnIdx.SwmDepartment_Status, ColumnAlignment.Center); break; case SpmDepartment.Column.Status_Ind: SetDepartmentColDfn(columnDfn, "Status", 50, SpmDbDfn.ColumnIdx.SwmDepartment_Status, ColumnAlignment.Center, DataValue.DataType.TriState); columnDfn.TriStateFormat = ColumnTriStateFormat.Lights; break; case SpmDepartment.Column.CreateOn_Date: SetDepartmentColDfn(columnDfn, "Created", 65, SpmDbDfn.ColumnIdx.SwmDepartment_CreateOn, ColumnAlignment.Center, DataValue.DataType.Date); columnDfn.ReadOnly = true; break; case SpmDepartment.Column.UpdateOn_Date: SetDepartmentColDfn(columnDfn, "Updated", 65, SpmDbDfn.ColumnIdx.SwmDepartment_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; } //------------------------------------------------------------------- // Department query filter. public override List GetDepartmentQueryFilter(SpmDepartment.Params prm) { List filters = new List(); // Department Id. String includedIds = prm.IncludedIds.Concat(","); if (!includedIds.IsEmpty()) filters.Add(SpmDbDfn.GetColumnNameQual(SpmDbDfn.ColumnIdx.SwmDepartment_Id, aliasDepartment) + " IN (" + includedIds + ")"); String excludedIds = prm.ExcludedIds.Concat(","); if (!excludedIds.IsEmpty()) filters.Add(SpmDbDfn.GetColumnNameQual(SpmDbDfn.ColumnIdx.SwmDepartment_Id, aliasDepartment) + " NOT IN (" + excludedIds + ")"); // Partial name. String namePartial = DbQuery.FormatForCondition(prm.NamePartial); String colName = SpmDbDfn.GetColumnNameQual(SpmDbDfn.ColumnIdx.SwmDepartment_Name, aliasDepartment); if (!StringUtil.IsEmpty(namePartial)) filters.Add(DbQuery.FormatFn_Left(colName, namePartial.Length) + "='" + namePartial + "'"); // Applicable dates. DateTime nullDate = new DateTime(1970, 1, 1); String colApplicFrom = SpmDbDfn.GetColumnNameQual(SpmDbDfn.ColumnIdx.SwmDepartment_ApplicFrom, aliasDepartment); String colApplicTo = SpmDbDfn.GetColumnNameQual(SpmDbDfn.ColumnIdx.SwmDepartment_ApplicTo, aliasDepartment); 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) + ")"); String filter = filters[0]; } 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)) + ")"); String filter = filters[0]; } } //--------------------------------------------------------------- // Common Properties. if (filters.Count < 1) filters.Add("1=1"); return filters; } //------------------------------------------------------------------- // Department sort columns. public List GetDepartmentSortColumns(SpmDepartment.Params prm) { // Sort sequence: List sortColumnNames = new List(); foreach (var columnDfn in prm.SortColumns) { // Need to ensure correct alias used for Department columns in case of conflict. String sortCol = String.Empty; if (SpmDbDfn.GetTableForColumn((SpmDbDfn.ColumnIdx)columnDfn.DbColumn) == SpmDbDfn.TableIdx.SwmDepartment) { sortCol = SpmDbDfn.GetColumnNameQual((SpmDbDfn.ColumnIdx)columnDfn.DbColumn, aliasDepartment); } 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.SwmDepartment_Type, aliasDepartment) + " ASC"); } return sortColumnNames; } //------------------------------------------------------------------- // Department count. private long GetDepartmentCount(String filter) { ClearErrorState(); return db.GetRowCount(SpmDbDfn.GetTableName(SpmDbDfn.TableIdx.SwmDepartment) + " As " + aliasDepartment, filter); } public override long GetDepartmentCount(SpmDepartment.Params prm) { ClearErrorState(); return GetDepartmentCount(GetDepartmentQueryFilter(prm).Concat(" AND ", "(", ")")); } //------------------------------------------------------------------- // Department list. public override List GetDepartmentList(SpmDepartment.Params prm) { List Departmentes = new List(); DbQuery qry = new DbQuery(db.DbmsType); qry.Tables.Add(SpmDbDfn.GetTableName(SpmDbDfn.TableIdx.SwmDepartment), aliasDepartment); qry.Columns.AddRange(SwmDepartment_Db.Fields); qry.Filters.AddRange(GetDepartmentQueryFilter(prm)); // Query data. using (var dbConnection = db.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { try { dbConnection.Open(); dbCommand.CommandText = qry.BuildQuery(); using (DbDataReader dbDataReader = dbCommand.ExecuteReader()) { while (dbDataReader.Read()) { SwmDepartment_Db dbDepartment = new SwmDepartment_Db(DbInfo); dbDepartment.PopulateFrom(dbDataReader); Departmentes.Add(CreateDepartment(dbDepartment)); } } } catch (Exception exc) { Logger.Warn(GetType().Name + ".GetDepartmentList\n\tQuery: " + dbCommand.CommandText + "\n\tException: " + exc.Message); } } return Departmentes; } //------------------------------------------------------------------- // Department query execution. public override DbResultSet ExecuteDepartmentQuery(List columns, SpmDepartment.Params prm) { ClearErrorState(); //--------------------------------------------------------------- // Construct query. DbQuery query = new DbQuery(db.DbmsType); query.Tables.Add(SpmDbDfn.GetTableName(SpmDbDfn.TableIdx.SwmDepartment), aliasDepartment); // Department Properties - add columns as defined in query list. if (columns.HasId((int)SpmDepartment.Column.Id)) query.Columns.Add(SpmDbDfn.GetColumnNameQual(SpmDbDfn.ColumnIdx.SwmDepartment_Id, aliasDepartment)); if (columns.HasId((int)SpmDepartment.Column.Name)) query.Columns.Add(SpmDbDfn.GetColumnNameQual(SpmDbDfn.ColumnIdx.SwmDepartment_Name, aliasDepartment)); if (columns.HasId((int)SpmDepartment.Column.ApplicatonFrom)) query.Columns.Add(SpmDbDfn.GetColumnNameQual(SpmDbDfn.ColumnIdx.SwmDepartment_ApplicFrom, aliasDepartment)); if (columns.HasId((int)SpmDepartment.Column.ApplicationTo)) query.Columns.Add(SpmDbDfn.GetColumnNameQual(SpmDbDfn.ColumnIdx.SwmDepartment_ApplicTo, aliasDepartment)); // Common Properties if (columns.HasId((int)SpmDepartment.Column.Notes)) query.Columns.Add(SpmDbDfn.GetColumnNameQual(SpmDbDfn.ColumnIdx.SwmDepartment_Notes, aliasDepartment)); if (columns.HasId((int)SpmDepartment.Column.Status) || columns.HasId((int)SpmDepartment.Column.Status_Desc) || columns.HasId((int)SpmDepartment.Column.Status_Ind)) query.Columns.Add(SpmDbDfn.GetColumnNameQual(SpmDbDfn.ColumnIdx.SwmDepartment_Status, aliasDepartment)); if (columns.HasId((int)SpmDepartment.Column.CreateOn_Date)) query.Columns.Add(SpmDbDfn.GetColumnNameQual(SpmDbDfn.ColumnIdx.SwmDepartment_CreateOn, aliasDepartment)); if (columns.HasId((int)SpmDepartment.Column.UpdateOn_Date)) query.Columns.Add(SpmDbDfn.GetColumnNameQual(SpmDbDfn.ColumnIdx.SwmDepartment_UpdateOn, aliasDepartment)); //--------------------------------------------------------------- // Populate filter. query.Filters.AddRange(GetDepartmentQueryFilter(prm)); if (prm.IncludedIds.Count != 1) { // Configure sort sequence. foreach (String sortColumn in GetDepartmentSortColumns(prm)) query.OrderBy.Add(sortColumn); } //--------------------------------------------------------------- //return new DbResultSet_DataTableReader(db, query.BuildQuery()); return new Sarand.Win.Dbas.Data.DbResultSet_DataReader(db, query.BuildQuery()); } //------------------------------------------------------------------- public override DataValue GetDepartmentDataValue(ColumnDfn column, NamedValue.Map values) { DataValue value = new DataValue(); switch ((SpmDepartment.Column)column.Id) { // Notes. case SpmDepartment.Column.Notes: value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200)); break; // Status. case SpmDepartment.Column.Status_Desc: case SpmDepartment.Column.Status_Ind: { String statusCode = values.GetValue(column.DataName).ToString(); SaStatus status = SacsSystem.GetStatusForCode(statusCode); if (column.Id == (int)SpmDepartment.Column.Status_Desc) value = new DataValue(SacsSystem.GetStatusDescForCode(statusCode)); else if (column.Id == (int)SpmDepartment.Column.Status_Ind) value = new DataValue(SpmDepartment.GetStatusTriState(status)); } break; //----------------------------------------------------------- } return value; } //------------------------------------------------------------------- } //======================================================================= }