3.0.2.1 Vehicle Classes
This commit is contained in:
@@ -368,9 +368,9 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// AssetCategory column definitions.
|
||||
// Item column definitions.
|
||||
private static readonly String AliasAssetCategory = "aAstCat";
|
||||
private static readonly String colNameAssetCategory_AssetCount = "AssetCount";
|
||||
private static readonly String dataNameAssetCategory_AssetCount = "AssetCount";
|
||||
|
||||
private void SetAssetCategoryColDfn
|
||||
(ColumnDfn col, String caption, int width, SbmDbDfn.ColumnIdx dbCol,
|
||||
@@ -384,7 +384,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
col.MaxLength = (int)Internals.GetColTextLen(dbCol);
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
// Getting prmAssetCategory column definition.
|
||||
// Configure item column definition.
|
||||
public override ColumnDfn GetAssetCategoryColumnDfn(SbmAssetCategory.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
@@ -432,6 +432,13 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
SetAssetCategoryColDfn(columnDfn, "AssocId Customer", 45, SbmDbDfn.ColumnIdx.SaAssetCategory_AssocIdCustomer, ColumnAlignment.Right, DataValue.DataType.Long);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
|
||||
// Derived properties.
|
||||
case SbmAssetCategory.Column.AssetCount:
|
||||
SetAssetCategoryColDfn(columnDfn, "Asset count", 70, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Center, DataValue.DataType.Long);
|
||||
columnDfn.DataName = dataNameAssetCategory_AssetCount;
|
||||
break;
|
||||
|
||||
// Common properties.
|
||||
case SbmAssetCategory.Column.Notes:
|
||||
SetAssetCategoryColDfn(columnDfn, "Notes", 200, SbmDbDfn.ColumnIdx.SaAssetCategory_Notes);
|
||||
@@ -459,10 +466,6 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
columnDfn.DateFormat = "d-MMM-yy";
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SbmAssetCategory.Column.AssetCount:
|
||||
SetAssetCategoryColDfn(columnDfn, "Asset Count", 70, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Center, DataValue.DataType.Long);
|
||||
columnDfn.DataName = colNameAssetCategory_AssetCount;
|
||||
break;
|
||||
}
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
@@ -657,7 +660,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
qryAssetCount.Tables.Add(tableAsset, aliasAsset);
|
||||
qryAssetCount.Columns.Add($"Count({SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_Id, aliasAsset)})");
|
||||
qryAssetCount.Filters.Add($"{SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_AssetCategoryId, aliasAsset)}={SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAssetCategory_Id, AliasAssetCategory)}");
|
||||
query.Columns.Add($"({qryAssetCount.BuildQuery()})", colNameAssetCategory_AssetCount);
|
||||
query.Columns.Add($"({qryAssetCount.BuildQuery()})", dataNameAssetCategory_AssetCount);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
|
||||
@@ -109,7 +109,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
{
|
||||
List<String> filter = new List<String>();
|
||||
filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaAsset_ItemType) + "=" + ((int)Sbm.ItemType.Vehicle).ToString());
|
||||
filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaAsset_ItemId) + "=" + vehicleId.ToString());
|
||||
filter.Add($"{SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaAsset_ItemId)}={SysId.ToString(vehicleId)}");
|
||||
return Database.GetRowCount(tableAsset, filter.Concat(" AND ", "(", ")")) > 0;
|
||||
}
|
||||
return false;
|
||||
@@ -119,12 +119,14 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(vehicleId)) return false;
|
||||
String tableAsset = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAsset);
|
||||
String tableAssetProcess = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAssetProcess);
|
||||
if (Database.TableExists(tableAssetProcess))
|
||||
if (Database.TableExists(tableAsset) && Database.TableExists(tableAssetProcess))
|
||||
{
|
||||
List<String> filter = new List<String>();
|
||||
filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaAssetProcess_AssetId) + "=" + vehicleId.ToString());
|
||||
return Database.GetRowCount(tableAssetProcess, filter.Concat(" AND ", "(", ")")) > 0;
|
||||
filter.Add($"{SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaAsset_ItemId)}={SysId.ToString(vehicleId)}");
|
||||
filter.Add($"Exists (Select 1 From {tableAssetProcess} Where {SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaAssetProcess_AssetId)}={SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaAsset_Id, aliasAsset)})");
|
||||
return Database.GetRowCount($"{tableAsset} As {aliasAsset}", filter.Concat(" AND ", "(", ")")) > 0;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -136,7 +138,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
if (Database.TableExists(tableVehicleEvent))
|
||||
{
|
||||
List<String> filter = new List<String>();
|
||||
filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaVehicleEvent_VehicleId) + "=" + vehicleId.ToString());
|
||||
filter.Add($"{SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaVehicleEvent_VehicleId)}={SysId.ToString(vehicleId)}");
|
||||
return Database.GetRowCount(tableVehicleEvent, filter.Concat(" AND ", "(", ")")) > 0;
|
||||
}
|
||||
return false;
|
||||
@@ -149,7 +151,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
if (Database.TableExists(tableVehicleFeature))
|
||||
{
|
||||
List<String> filter = new List<String>();
|
||||
filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaVehicleFeature_VehicleId) + "=" + vehicleId.ToString());
|
||||
filter.Add($"{SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaVehicleFeature_VehicleId)}={SysId.ToString(vehicleId)}");
|
||||
return Database.GetRowCount(tableVehicleFeature, filter.Concat(" AND ", "(", ")"));
|
||||
}
|
||||
return 0;
|
||||
|
||||
@@ -52,7 +52,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
if (Database.TableExists(tableVehicle))
|
||||
{
|
||||
List<String> filter = new List<String>();
|
||||
filter.Add($"{SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaVehicleFeature_VehicleId)}={SysId.ToLong(vehicleClassId)}");
|
||||
filter.Add($"{SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaVehicle_VehicleClassId)}={SysId.ToLong(vehicleClassId)}");
|
||||
return Database.GetRowCount(tableVehicle, filter.Concat(" AND ", "(", ")"));
|
||||
}
|
||||
return 0;
|
||||
@@ -179,7 +179,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get VehicleClass.
|
||||
// Get Item.
|
||||
public override SbmVehicleClass GetVehicleClass(SbmVehicleClass.Params prm)
|
||||
{
|
||||
return GetVehicleClass(GetVehicleClassQueryFilter(prm).Concat(" AND ", "(", ")"));
|
||||
@@ -229,7 +229,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Create VehicleClass.
|
||||
// Create Item.
|
||||
public override SbmVehicleClass CreateVehicleClass()
|
||||
{
|
||||
ClearErrorState();
|
||||
@@ -244,7 +244,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate VehicleClass.
|
||||
// Validate Item.
|
||||
public override bool IsValidVehicleClassData(SbmVehicleClass.Data data, SbmVehicleClass.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
@@ -253,7 +253,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert VehicleClass.
|
||||
// Insert Item.
|
||||
public override bool InsertVehicleClass(SbmVehicleClass vehicleClass, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
@@ -283,7 +283,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update VehicleClass.
|
||||
// Update Item.
|
||||
public override bool UpdateVehicleClass(SbmVehicleClass vehicleClass, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
@@ -321,7 +321,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete VehicleClass.
|
||||
// Delete Item.
|
||||
public override bool VehicleClassCanBeDeleted(SbmVehicleClass vehicleClass)
|
||||
{
|
||||
ClearErrorState();
|
||||
@@ -422,8 +422,9 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
//-------------------------------------------------------------------
|
||||
// Column definitions.
|
||||
private static readonly String aliasVehicleClass = "aVehCla";
|
||||
private static readonly String aliasVehicleClass_Vehicle = "aVehClaVeh";
|
||||
// VehilceCount DataName.
|
||||
private static readonly String dataNameVehicleCount = "VehCount";
|
||||
private static readonly String dataNameVehicleClass_VehicleCount = "VehCount";
|
||||
|
||||
// Column definition population.
|
||||
private void SetVehicleClassColDfn
|
||||
@@ -439,7 +440,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Getting prm column definition.
|
||||
// Configure item column definition.
|
||||
public override ColumnDfn GetVehicleClassColumnDfn(SbmVehicleClass.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
@@ -524,6 +525,13 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
case SbmVehicleClass.Column.RentalPriceUomDesc:
|
||||
SetVehicleClassColDfn(columnDfn, "Rental Price unit", 90, SbmDbDfn.ColumnIdx.SaVehicleClass_UomIdRentalPrice);
|
||||
break;
|
||||
|
||||
// Derived properties.
|
||||
case SbmVehicleClass.Column.VehicleCount:
|
||||
SetVehicleClassColDfn(columnDfn, "Vehicle count", 70, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Center, DataValue.DataType.Long);
|
||||
columnDfn.DataName = dataNameVehicleClass_VehicleCount;
|
||||
break;
|
||||
|
||||
// Common properties.
|
||||
case SbmVehicleClass.Column.Notes:
|
||||
SetVehicleClassColDfn(columnDfn, "Notes", 200, SbmDbDfn.ColumnIdx.SaVehicleClass_Notes);
|
||||
@@ -551,10 +559,6 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
columnDfn.DateFormat = "d-MMM-yy";
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SbmVehicleClass.Column.VehicleCount:
|
||||
SetVehicleClassColDfn(columnDfn, "Vehicles", 80, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Center, DataValue.DataType.Long);
|
||||
columnDfn.DataName = dataNameVehicleCount;
|
||||
break;
|
||||
}
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
@@ -619,13 +623,13 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
// Status.
|
||||
String colVehicleClass_Status = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicleClass_Status, aliasVehicleClass);
|
||||
if (prm.StatusCat == SbmVehicleClass.StatusCat.ActiveOnly)
|
||||
filter.Add(colVehicleClass_Status + "='" + SacsSystem.GetStatusDesc(SaStatus.Active) + "'");
|
||||
filter.Add($"{colVehicleClass_Status}='{SacsSystem.GetStatusDesc(SaStatus.Active)}'");
|
||||
else if (prm.StatusCat == SbmVehicleClass.StatusCat.InactiveOnly)
|
||||
filter.Add(colVehicleClass_Status + "='" + SacsSystem.GetStatusDesc(SaStatus.Inactive) + "'");
|
||||
filter.Add($"{colVehicleClass_Status}='{SacsSystem.GetStatusDesc(SaStatus.Cancelled)}' Or {colVehicleClass_Status}='{SacsSystem.GetStatusDesc(SaStatus.Inactive)}'");
|
||||
else if (prm.StatusCat == SbmVehicleClass.StatusCat.NotDeleted)
|
||||
filter.Add(colVehicleClass_Status + "!='" + SacsSystem.GetStatusDesc(SaStatus.Deleted) + "'");
|
||||
filter.Add($"{colVehicleClass_Status}!='{SacsSystem.GetStatusDesc(SaStatus.Deleted)}'");
|
||||
else if (prm.StatusCat == SbmVehicleClass.StatusCat.DeletedOnly)
|
||||
filter.Add(colVehicleClass_Status + "='" + SacsSystem.GetStatusDesc(SaStatus.Deleted) + "'");
|
||||
filter.Add($"{colVehicleClass_Status}='{SacsSystem.GetStatusDesc(SaStatus.Deleted)}'");
|
||||
|
||||
if (filter.Count < 1 && prm.IncludeDefaultFilter) filter.Add("1=1");
|
||||
return filter;
|
||||
@@ -776,6 +780,18 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
if (columns.HasId(SbmVehicleClass.Column.UpdateOn_Date))
|
||||
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicleClass_UpdateOn, aliasVehicleClass));
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Vehicle Count
|
||||
if (columns.HasId(SbmVehicleClass.Column.VehicleCount))
|
||||
{
|
||||
String tableVehicle = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaVehicle);
|
||||
DbQuery qryVehicleCount = new DbQuery(Database.DbmsType);
|
||||
qryVehicleCount.Tables.Add(tableVehicle, aliasVehicleClass_Vehicle);
|
||||
qryVehicleCount.Columns.Add($"Count({SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicle_Id, aliasVehicleClass_Vehicle)})");
|
||||
qryVehicleCount.Filters.Add($"{SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicle_VehicleClassId, aliasVehicleClass_Vehicle)}={SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaVehicleClass_Id, aliasVehicleClass)}");
|
||||
query.Columns.Add($"({qryVehicleCount.BuildQuery()})", dataNameVehicleClass_VehicleCount);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Populate filter.
|
||||
query.Filters.AddRange(GetVehicleClassQueryFilter(prm));
|
||||
|
||||
@@ -122,8 +122,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
if (Database != null)
|
||||
{
|
||||
String filter = GetVehicleFeatureQueryFilter(prm).Concat(" AND ", "(", ")");
|
||||
String colVehicleFeature_VehicleId = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaVehicleFeature_VehicleId);
|
||||
return Database.GetRowCount(tableVehicleFeature, /*colVehicleFeature_VehicleId, 0,*/ filter) > 0;
|
||||
return Database.GetRowCount($"{tableVehicleFeature} As {aliasVehicleFeature}", filter) > 0;
|
||||
}
|
||||
}
|
||||
else SetErrorState("vehicle features not supported");
|
||||
|
||||
@@ -59,9 +59,18 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
{
|
||||
ClearErrorState();
|
||||
if (Database == null) return SetErrorState("Database not specified");
|
||||
//if (pDb->GetInterfaceType() != SaDatabase::eSaDbInterfaceOdbc) return SetErrorState ("Database not ODBC");
|
||||
if (Database.TableExists(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAssetCategory))) return SetErrorState("Asset Category table does not exist");
|
||||
if (Database.TableExists(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAsset))) return SetErrorState("Asset table does not exist");
|
||||
if (!Database.TableExists(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAssetCategory))) return SetErrorState("Asset Category table does not exist");
|
||||
if (!Database.TableExists(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAsset))) return SetErrorState("Asset table does not exist");
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool VehicleDatabaseIsValid()
|
||||
{
|
||||
if (!AssetDatabaseIsValid()) return false;
|
||||
ClearErrorState();
|
||||
if (Database == null) return SetErrorState("Database not specified");
|
||||
if (!Database.TableExists(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaVehicleClass))) return SetErrorState("Vehicle Class table does not exist");
|
||||
if (!Database.TableExists(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaVehicle))) return SetErrorState("Vehicle table does not exist");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user