using System; using System.Collections.Generic; using System.Text; using Sarand.Core.App; using Sarand.Core.Base; using Sarand.Core.Bus; using Sarand.Core.Dbas.Base; using Sarand.PatientMgr.Core.App; using Sarand.PatientMgr.Core.Bus; namespace Sarand.PatientMgr.Core.Mgr { //======================================================================= partial class SpmDepartmentMgr { //******************************************************************* // E m p l o y e e R o l e //******************************************************************* //------------------------------------------------------------------- // Utilities. //------------------------------------------------------------------- // Retrieve individual employeeRole. //------------------------------------------------------------------- // Exist employeeRole. public abstract bool EmployeeRoleExistsById(SysId id); //------------------------------------------------------------------- // Get employeeRole. public abstract SpmEmployeeRole GetEmployeeRole(SpmEmployeeRole.Params prm); public abstract SpmEmployeeRole GetEmployeeRoleById(SysId id); //------------------------------------------------------------------- // Create employeeRole. public abstract SpmEmployeeRole CreateEmployeeRole(SysId deparmentId, SysId employeeId, Spm.EmployeeRole employeeRole); //------------------------------------------------------------------- // Validate employeeRole data. public bool IsValidEmployeeRole(SpmEmployeeRole employeeRole) { ClearErrorState(); if (employeeRole == null) return SetErrorState(ErrorMessage.ItemNotSpecified); return IsValidEmployeeRoleData(employeeRole.GetData(), new SpmEmployeeRole.ErrField()); } public virtual bool IsValidEmployeeRoleData(SpmEmployeeRole.Data data, SpmEmployeeRole.ErrField errField) { ClearErrorState(); // EmployeeRole properties. if (errField.DepartmentId != SacsHierarchyItem.ValidValue.Ignore && !SysId.IsValid(data.DepartmentId)) { errField.DepartmentId = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState("invalid DepartmentId"); } if (errField.EmployeeId != SacsHierarchyItem.ValidValue.Ignore && !SysId.IsValid(data.EmployeeId)) { errField.EmployeeId = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState("invalid EmployeeId"); } if (errField.EmployeeRole != SacsHierarchyItem.ValidValue.Ignore && (short)data.EmployeeRole < 1) { if ((int)data.EmployeeRole < 1) { errField.EmployeeRole = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState("Employee role must be supplied"); } } // Common properties. if (!IsValidValue(data.Notes, "notes", (long)SpmDbDfn.GetColTextLen(SpmDbDfn.ColumnIdx.SwmEmployeeRole_Notes))) { errField.Notes = SacsHierarchyItem.ValidValue.Invalid; return false; } if (errField.Status != SacsHierarchyItem.ValidValue.Ignore) { if (!IsValidValue(SacsSystem.GetStatusCode(data.Status), "status", (long)SpmDbDfn.GetColTextLen(SpmDbDfn.ColumnIdx.SwmEmployeeRole_Status), true, true)) { errField.Status = SacsHierarchyItem.ValidValue.Invalid; return false; } if (!SpmEmployeeRole.EmployeeRoleStatuses.Contains(data.Status)) { errField.Status = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState(ErrorMessage.InvalidStatus); } } return true; } //------------------------------------------------------------------- // EmployeeRole database interface. public abstract bool InsertEmployeeRole(SpmEmployeeRole employeeRole, DbUpdateInfo dbUpdateInfo); public abstract bool UpdateEmployeeRole(SpmEmployeeRole employeeRole, DbUpdateInfo dbUpdateInfo); public virtual bool EmployeeRoleCanBeDeleted(SpmEmployeeRole employeeRole) { ClearErrorState(); return true; } public abstract bool DeleteEmployeeRole(SpmEmployeeRole employeeRole, DbUpdateInfo dbUpdateInfo); //------------------------------------------------------------------- // EmployeeRole list. public abstract ColumnDfn GetEmployeeRoleColumnDfn(SpmEmployeeRole.Column columnId, String caption = "", int width = 0); public abstract List GetEmployeeRoleQueryFilter(SpmEmployeeRole.Params prm); public abstract long GetEmployeeRoleCount(SpmEmployeeRole.Params prm); public abstract List GetEmployeeRoleList(SpmEmployeeRole.Params prm); public abstract DbResultSet ExecuteEmployeeRoleQuery(List columns, SpmEmployeeRole.Params prm); public abstract DataValue GetEmployeeRoleDataValue(ColumnDfn column, NamedValue.Map values); //------------------------------------------------------------------- } //======================================================================= }