210 lines
8.8 KiB
C#
210 lines
8.8 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
|
|
{
|
|
//=======================================================================
|
|
partial class SbmAssetMgr
|
|
{
|
|
//*******************************************************************
|
|
// V e h i c l e C l a s s
|
|
//*******************************************************************
|
|
//-------------------------------------------------------------------
|
|
// Utilities.
|
|
public abstract List<SysIdString> GetVehicleClasses_IdName(SbmVehicleClass.Params prm);
|
|
public abstract List<String> GetModelsForMake(String makeCode);
|
|
public abstract List<String> GetDerivativesForModel(String makeCode, String model);
|
|
public abstract List<SysIdString> GetClassesForModel(String makeCode, String model);
|
|
public abstract String GetVehicleClassDescBrief(SysId id);
|
|
|
|
//-------------------------------------------------------------------
|
|
// Retrieve individual vehiclesClasses.
|
|
//-------------------------------------------------------------------
|
|
// VehicleClass exists.
|
|
public bool VehicleClassExistsById(SysId id)
|
|
{
|
|
ClearErrorState();
|
|
if (!SysId.IsValid(id)) return false;
|
|
SbmVehicleClass.Params prm = new SbmVehicleClass.Params();
|
|
prm.IncludedIds.Add(id);
|
|
prm.StatusCat = SbmVehicleClass.StatusCat.Any;
|
|
return GetVehicleClassCount(prm) == 1;
|
|
}
|
|
public bool VehicleClassExistsByDescBrief(String descBrief, bool activeOnly)
|
|
{
|
|
ClearErrorState();
|
|
if (!StringUtil.IsEmpty(descBrief) && !activeOnly) return false;
|
|
SbmVehicleClass.Params prm = new SbmVehicleClass.Params
|
|
{
|
|
DescBrief = descBrief,
|
|
StatusCat = SbmVehicleClass.StatusCat.ActiveOnly
|
|
};
|
|
return GetVehicleClassCount(prm) == 1;
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
// Get vehicleClasses.
|
|
public abstract SbmVehicleClass GetVehicleClass(SbmVehicleClass.Params prm);
|
|
|
|
public SbmVehicleClass GetVehicleClassById(SysId id)
|
|
{
|
|
ClearErrorState();
|
|
if (!SysId.IsValid(id)) return null;
|
|
SbmVehicleClass.Params prm = new SbmVehicleClass.Params();
|
|
prm.IncludedIds.Add(id);
|
|
prm.StatusCat = SbmVehicleClass.StatusCat.Any;
|
|
return GetVehicleClass(prm);
|
|
}
|
|
public SbmVehicleClass GetVehicleClassByDerivative(String makeCode, String model, String derivative)
|
|
{
|
|
ClearErrorState();
|
|
if (!StringUtil.IsEmpty(makeCode) || !StringUtil.IsEmpty(makeCode) || !StringUtil.IsEmpty(derivative)) return null;
|
|
SbmVehicleClass.Params prm = new SbmVehicleClass.Params
|
|
{
|
|
MakeCode = makeCode,
|
|
Model = model,
|
|
Derivative = derivative,
|
|
StatusCat = SbmVehicleClass.StatusCat.Any
|
|
};
|
|
return GetVehicleClass(prm);
|
|
}
|
|
|
|
public SbmVehicleClass GetActiveVehicleClassByDescBrief(String descBrief)
|
|
{
|
|
SbmVehicleClass.Params prm = new SbmVehicleClass.Params();
|
|
prm.DescBrief = descBrief;
|
|
return GetVehicleClass(prm);
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
// Create vehicleClass.
|
|
public abstract SbmVehicleClass CreateVehicleClass();
|
|
|
|
//-------------------------------------------------------------------
|
|
// Validate vehicleClass data.
|
|
public bool IsValidVehicleClass(SbmVehicleClass vehicleClass)
|
|
{
|
|
ClearErrorState();
|
|
if (vehicleClass == null) return SetErrorState(ErrorMessage.ItemNotSpecified);
|
|
return IsValidVehicleClassData(vehicleClass.GetData(), new SbmVehicleClass.ErrField());
|
|
}
|
|
public virtual bool IsValidVehicleClassData(SbmVehicleClass.Data data, SbmVehicleClass.ErrField errField)
|
|
{
|
|
ClearErrorState();
|
|
// VehicleClass properties.
|
|
if (errField.MakeCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.MakeCode, "make", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleClass_MakeCode), true))
|
|
{
|
|
errField.MakeCode = SacsHierarchyItem.ValidValue.Invalid;
|
|
return false;
|
|
}
|
|
if (errField.Model != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Model, "model", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleClass_Model), true))
|
|
{
|
|
errField.Model = SacsHierarchyItem.ValidValue.Invalid;
|
|
return false;
|
|
}
|
|
if (errField.Derivative != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.MakeCode, "derivative", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleClass_Derivative), true))
|
|
{
|
|
errField.Derivative = SacsHierarchyItem.ValidValue.Invalid;
|
|
return false;
|
|
}
|
|
if (errField.DescBrief != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescBrief, "desctiption brief", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleClass_DescBrief), true))
|
|
{
|
|
errField.DescBrief = SacsHierarchyItem.ValidValue.Invalid;
|
|
return false;
|
|
}
|
|
if (errField.VehicleCategoryCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.VehicleCategoryCode, "vehicle category code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleClass_VehicleCategoryCode), true))
|
|
{
|
|
errField.VehicleCategoryCode = SacsHierarchyItem.ValidValue.Invalid;
|
|
return false;
|
|
}
|
|
if (errField.InsuranceCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.InsuranceCode, "insurance code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleClass_InsuranceCode), true))
|
|
{
|
|
errField.InsuranceCode = SacsHierarchyItem.ValidValue.Invalid;
|
|
return false;
|
|
}
|
|
// Common properties.
|
|
if (!IsValidValue(data.Notes, "notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleClass_Notes)))
|
|
{
|
|
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
|
return false;
|
|
}
|
|
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
|
{
|
|
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleClass_Status), true, true))
|
|
{
|
|
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
|
return false;
|
|
}
|
|
if (!SbmVehicleClass.VehicleClassStatuses.Contains(data.Status))
|
|
{
|
|
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
|
return SetErrorState(ErrorMessage.InvalidStatus);
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
// VehicleClass database interface.
|
|
public abstract bool InsertVehicleClass(SbmVehicleClass vehicleClass, DbUpdateInfo dbUpdateInfo);
|
|
public abstract bool UpdateVehicleClass(SbmVehicleClass vehicleClass, DbUpdateInfo dbUpdateInfo);
|
|
public virtual bool VehicleClassCanBeDeleted(SbmVehicleClass vehicleClass)
|
|
{
|
|
ClearErrorState();
|
|
return true;
|
|
}
|
|
public abstract bool DeleteVehicleClass(SbmVehicleClass vehicleClass, DbUpdateInfo dbUpdateInfo);
|
|
|
|
//-------------------------------------------------------------------
|
|
// VehicleClass list.
|
|
public abstract ColumnDfn GetVehicleClassColumnDfn(SbmVehicleClass.Column columnId, String caption = "", int width = 0);
|
|
public abstract List<String> GetVehicleClassQueryFilter(SbmVehicleClass.Params prm);
|
|
public abstract long GetVehicleClassCount(SbmVehicleClass.Params prm);
|
|
public abstract List<SbmVehicleClass> GetVehicleClassList(SbmVehicleClass.Params prm);
|
|
public abstract DbResultSet ExecuteVehicleClassQuery(List<ColumnDfn> columns, SbmVehicleClass.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 GetVehicleClassDataValue(ColumnDfn column, NamedValue.Map values)
|
|
{
|
|
DataValue value = new DataValue();
|
|
switch ((SbmVehicleClass.Column)column.Id)
|
|
{
|
|
// Notes.
|
|
case SbmVehicleClass.Column.Notes:
|
|
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
|
break;
|
|
|
|
// Status.
|
|
case SbmVehicleClass.Column.Status_Desc:
|
|
case SbmVehicleClass.Column.Status_Ind:
|
|
{
|
|
String statusCode = values.GetValue(column.DataName).ToString();
|
|
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
|
if (column.Id == (int)SbmVehicleClass.Column.Status_Desc)
|
|
value = new DataValue(SacsSystem.GetStatusDescForCode(statusCode));
|
|
else if (column.Id == (int)SbmVehicleClass.Column.Status_Ind)
|
|
value = new DataValue(SbmVehicleClass.GetStatusTriState(status));
|
|
}
|
|
break;
|
|
|
|
//-----------------------------------------------------------
|
|
}
|
|
return value;
|
|
}
|
|
}
|
|
//=======================================================================
|
|
}
|