Files

178 lines
7.1 KiB
C#

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
{
//=======================================================================
// Asset manager - Asset Processes.
//=======================================================================
partial class SbmAssetMgr
{
//-------------------------------------------------------------------
// Utilities.
//-------------------------------------------------------------------
// Items.
//-------------------------------------------------------------------
// Item 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;
}
// Retrieve item.
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)Internals.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)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaAssetProcess_Notes)))
{
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
return false;
}
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
{
if (!IsValidValue(data.StatusCode, "status", (long)Internals.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<String> GetAssetProcessQueryFilter(SbmAssetProcess.Params prm);
public abstract long GetAssetProcessCount(SbmAssetProcess.Params prm);
public abstract List<SbmAssetProcess> GetAssetProcessList(SbmAssetProcess.Params prm);
public abstract DbResultSet ExecuteAssetProcessQuery(List<ColumnDfn> columns, SbmAssetProcess.Params prm);
//-------------------------------------------------------------------
// D a t a V a l u e s
//-------------------------------------------------------------------
/// <summary>
/// Extract and format result set data value where specific handling is required.
/// <para>Where response is an invalid data value, format value using column.FormatValue(values).</para>
/// </summary>
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;
}
}
//=======================================================================
}