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.Base.Mgr { //======================================================================= partial class SbmAssetMgr { //******************************************************************* // A s s e t P r o c e s s e s //******************************************************************* //------------------------------------------------------------------- // Utilities. //------------------------------------------------------------------- // Retrieve individual assetProcesses. //------------------------------------------------------------------- // AssetProcess exists. public bool AssetProcessExistsById(SysId assetProcessId) { ClearErrorState(); if (!SysId.IsValid(assetProcessId)) return false; SbmAssetProcess.Params prmAssetProcess = new SbmAssetProcess.Params(); prmAssetProcess.IdsIncluded.Add(assetProcessId); prmAssetProcess.StatusCat = SbmAssetProcess.StatusCat.Any; return GetAssetProcessCount(prmAssetProcess) == 1; } //------------------------------------------------------------------- // Get AssetProcess. public abstract SbmAssetProcess GetAssetProcess(SbmAssetProcess.Params prm); public SbmAssetProcess GetAssetProcessById(SysId assetProcessId) { ClearErrorState(); if (!SysId.IsValid(assetProcessId)) return null; SbmAssetProcess.Params prmAssetProcess = new SbmAssetProcess.Params(); prmAssetProcess.IdsIncluded.Add(assetProcessId); prmAssetProcess.StatusCat = SbmAssetProcess.StatusCat.Any; return GetAssetProcess(prmAssetProcess); } //------------------------------------------------------------------- // Create assetProcess. public abstract SbmAssetProcess CreateAssetProcess(Sbm.AssetType assetType); //------------------------------------------------------------------- // Validate assetProcess data. public bool IsValidAssetProcess(SbmAssetProcess assetProcess) { ClearErrorState(); if (assetProcess == null) return SetErrorState(ErrorMessage.ItemNotSpecified); return IsValidAssetProcessData(assetProcess.GetData(), new SbmAssetProcess.ErrField()); } public virtual bool IsValidAssetProcessData(SbmAssetProcess.Data data, SbmAssetProcess.ErrField errField) { ClearErrorState(); // AssetProcess properties. if (errField.AssetId != SacsHierarchyItem.ValidValue.Ignore && SysId.ToInt(data.AssetId) < 1) { errField.AssetId = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState("Aff Id Owner must be supplied"); } if (errField.Seq != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Seq, "description brief", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaAssetProcess_Seq), true)) { errField.Seq = SacsHierarchyItem.ValidValue.Invalid; return false; } if (errField.ProcessId != SacsHierarchyItem.ValidValue.Ignore && SysId.ToInt(data.ProcessId) < 1) { errField.ProcessId = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState("Assoc Id Supplier must be supplied"); } if (errField.RequiredOn != SacsHierarchyItem.ValidValue.Ignore && DateUtil.IsValid(data.RequiredOn)) { errField.RequiredOn = SacsHierarchyItem.ValidValue.Invalid; return false; } if (errField.ExpectedOn != SacsHierarchyItem.ValidValue.Ignore && DateUtil.IsValid(data.ExpectedOn)) { errField.ExpectedOn = SacsHierarchyItem.ValidValue.Invalid; return false; } if (errField.ProcessedOn != SacsHierarchyItem.ValidValue.Ignore && DateUtil.IsValid(data.ProcessedOn)) { errField.ProcessedOn = SacsHierarchyItem.ValidValue.Invalid; return false; } // Common properties. if (!IsValidValue(data.Notes, "notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaAssetProcess_Notes))) { errField.Notes = SacsHierarchyItem.ValidValue.Invalid; return false; } if (errField.Status != SacsHierarchyItem.ValidValue.Ignore) { if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaAssetProcess_Status), true, true)) { errField.Status = SacsHierarchyItem.ValidValue.Invalid; return false; } if (!SbmAssetProcess.AssetProcessStatuses.Contains(data.Status)) { errField.Status = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState(ErrorMessage.InvalidStatus); } } return true; } //------------------------------------------------------------------- // AssetProcess database interface. public abstract bool InsertAssetProcess(SbmAssetProcess assetProcess, DbUpdateInfo dbUpdateInfo); public abstract bool UpdateAssetProcess(SbmAssetProcess assetProcess, DbUpdateInfo dbUpdateInfo); public virtual bool AssetProcessCanBeDeleted(SbmAssetProcess assetProcess) { ClearErrorState(); return true; } public abstract bool DeleteAssetProcess(SbmAssetProcess assetProcess, DbUpdateInfo dbUpdateInfo); //------------------------------------------------------------------- // AssetProcess list. public abstract ColumnDfn GetAssetProcessColumnDfn(SbmAssetProcess.Column columnId, String caption = "", int width = 0); public abstract List GetAssetProcessQueryFilter(SbmAssetProcess.Params prm); public abstract long GetAssetProcessCount(SbmAssetProcess.Params prm); public abstract List GetAssetProcessList(SbmAssetProcess.Params prm); public abstract DbResultSet ExecuteAssetProcessQuery(List columns, SbmAssetProcess.Params prm); //------------------------------------------------------------------- // D a t a V a l u e s //------------------------------------------------------------------- /// /// Extract and format result set data value where specific handling is required. /// Where response is an invalid data value, format value using column.FormatValue(values). /// public DataValue GetAssetProcessDataValue(ColumnDfn column, NamedValue.Map values) { DataValue value = new DataValue(); switch ((SbmAssetProcess.Column)column.Id) { //----------------------------------------------------------- // Notes. case SbmAssetProcess.Column.Notes: value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200)); break; // Status. case SbmAssetProcess.Column.Status_Desc: case SbmAssetProcess.Column.Status_Ind: { String statusCode = values.GetValue(column.DataName).ToString(); SaStatus status = SacsSystem.GetStatusForCode(statusCode); if (column.Id == (int)SbmAssetProcess.Column.Status_Desc) value = new DataValue(SacsSystem.GetStatusDescForCode(statusCode)); else if (column.Id == (int)SbmAssetProcess.Column.Status_Ind) value = new DataValue(SbmAssetProcess.GetStatusTriState(status)); } break; //----------------------------------------------------------- default: value = values.GetValue(column.DataName); break; } return value; } } //======================================================================= }