3.0.0.2 Production SMTP config
This commit is contained in:
@@ -7,6 +7,7 @@ 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.Interfaces;
|
||||
using Sarand.Net.Standard.Base.ItemData;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using Sarand.Net.Standard.Dbas.Data;
|
||||
@@ -35,10 +36,189 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
// Odometer Reading.
|
||||
public override bool SetVehicleOdometerReading(SbmVehicle vehicle, decimal odometer, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
if (vehicle == null || !SysId.IsValid(vehicle.Id) || odometer < 1) return false;
|
||||
DateTime todayDate = DateTime.MinValue;
|
||||
// Check whether there is already a reading for today.
|
||||
SbmVehicleEvent vehicleEventUpdated = null;
|
||||
SbmVehicleEvent.Params prm = new SbmVehicleEvent.Params();
|
||||
prm.VehicleId = vehicle.Id;
|
||||
prm.VehicleEventType = Sbm.VehicleEventType.Odometer;
|
||||
foreach (SbmVehicleEvent vehicleEvent in GetVehicleEventList(prm))
|
||||
{
|
||||
// Check whether this event should be used in preference to any previously found.
|
||||
if (vehicleEvent.StartOn.Date == todayDate)
|
||||
{
|
||||
// Always refresh any odometer reading recorded today.
|
||||
vehicleEventUpdated = vehicleEvent;
|
||||
break;
|
||||
}
|
||||
else if (vehicleEventUpdated == null && vehicleEvent.Odometer == odometer)
|
||||
vehicleEventUpdated = vehicleEvent; // Events with the same reading can be updated (to refresh the date).
|
||||
else if (vehicleEventUpdated == null && vehicleEvent.StartOn.Date > vehicleEventUpdated.StartOn.Date && vehicleEvent.Odometer == odometer)
|
||||
vehicleEventUpdated = vehicleEvent; // Events with the same reading and more recent date can be refreshed.
|
||||
}
|
||||
if (vehicleEventUpdated != null)
|
||||
{
|
||||
vehicleEventUpdated.StartOn = todayDate;
|
||||
vehicleEventUpdated.FinishOn = todayDate;
|
||||
vehicleEventUpdated.Odometer = odometer;
|
||||
if (UpdateVehicleEvent(vehicleEventUpdated, dbUpdateInfo))
|
||||
{
|
||||
}
|
||||
#if _DEBUG
|
||||
else TRACE("SapVehicle::SetOdometerReading: Failed to update vehicle event - %s\n", assetMgr.ErrorStateMessage);
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
// Create a new reading.
|
||||
SbmVehicleEvent vehicleEvent = CreateVehicleEvent(vehicle.Id, Sbm.VehicleEventType.Odometer);
|
||||
if (vehicleEvent != null)
|
||||
{
|
||||
vehicleEventUpdated.StartOn = todayDate;
|
||||
vehicleEventUpdated.FinishOn = todayDate;
|
||||
vehicleEventUpdated.Odometer = odometer;
|
||||
if (InsertVehicleEvent(vehicleEvent, dbUpdateInfo))
|
||||
{
|
||||
}
|
||||
#if _DEBUG
|
||||
else TRACE("SapVehicle::SetOdometerReading: Failed to add vehicle event - %s\n", assetMgr.ErrorStateMessage);
|
||||
#endif
|
||||
}
|
||||
#if _DEBUG
|
||||
else TRACE("SapVehicle::SetOdometerReading: Failed to create vehicle event - %s\n", assetMgr.ErrorStateMessage);
|
||||
#endif
|
||||
}
|
||||
// Update this vehicle itself.
|
||||
vehicle.LatestOdo = odometer;
|
||||
vehicle.LatestOdoOn = todayDate;
|
||||
UpdateVehicle(vehicle, dbUpdateInfo);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get Vehicle.
|
||||
// Associated data.
|
||||
public override bool VehicleHasAssets(SysId vehicleId)
|
||||
{
|
||||
if (!SysId.IsValid(vehicleId)) return false;
|
||||
String tableAsset = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAsset);
|
||||
if (Database.TableExists(tableAsset))
|
||||
{
|
||||
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());
|
||||
return Database.GetRowCount(tableAsset, filter.Concat(" AND ", "(", ")")) > 0;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool VehicleHasProcesses(SysId vehicleId)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(vehicleId)) return false;
|
||||
String tableAssetProcess = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaAssetProcess);
|
||||
if (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;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public override bool VehicleHasEvents(SysId vehicleId)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(vehicleId)) return false;
|
||||
String tableVehicleEvent = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaVehicleEvent);
|
||||
if (Database.TableExists(tableVehicleEvent))
|
||||
{
|
||||
List<String> filter = new List<String>();
|
||||
filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaVehicleEvent_VehicleId) + "=" + vehicleId.ToString());
|
||||
return Database.GetRowCount(tableVehicleEvent, filter.Concat(" AND ", "(", ")")) > 0;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public override long GetVehicleFeatureCount(SysId vehicleId)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(vehicleId)) return 0;
|
||||
String tableVehicleFeature = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaVehicleFeature);
|
||||
if (Database.TableExists(tableVehicleFeature))
|
||||
{
|
||||
List<String> filter = new List<String>();
|
||||
filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaVehicleFeature_VehicleId) + "=" + vehicleId.ToString());
|
||||
Database.GetRowCount(tableVehicleFeature, filter.Concat(" AND ", "(", ")"));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
public override bool VehicleHasFeatures(SysId vehicleId)
|
||||
{
|
||||
return GetVehicleFeatureCount(vehicleId) > 0;
|
||||
}
|
||||
public override bool VehicleHasInterfaceDataItems(SysId vehicleId)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(vehicleId)) return false;
|
||||
return InterfaceConsole.ItemHasDataItems(new SbmItemId(Sbm.ItemType.Vehicle, vehicleId));
|
||||
}
|
||||
public override bool GetVehicleHpiCheckCount(SysId vehicleId)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(vehicleId)) return false;
|
||||
|
||||
// ToDo ItemDataConsole & SbmItemData.Params for HpiCheckCount
|
||||
/*SaItemDataConsole itemDataConsole = SbmGlobals.Application.GetItemDataConsole(userContext.SessionContext);
|
||||
if (itemDataConsole == null)
|
||||
{
|
||||
SbmItemData.Params prmData = new SbmItemData.Params();
|
||||
prmData.lItemId.Add(SaItemId.Id, Sbm.ItemType.Vehicle);
|
||||
List<TypeCodeDesc> itemDataTypes = SbmSystem.GetCodesOfType(Sbm.SystemCode.ItemDataType);
|
||||
prmData.lDataType.Add(itemDataTypes.GetCodeForType(Sbm.ItemData.Vehicle_HpiResponse));
|
||||
prmData.lDataType.RemoveEmpty();
|
||||
if (!StringUtil.IsEmpty(prmData.lDataType))
|
||||
itemDataConsole.GetItemDataCount(prmData);
|
||||
}*/
|
||||
return false;
|
||||
}
|
||||
public override bool VehicleHasItemData(SysId vehicleId)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(vehicleId)) return false;
|
||||
SaItemData.Params prmData = new SaItemData.Params();
|
||||
prmData.ItemIdsIncluded.Add(new SbmItemId(Sbm.ItemType.Vehicle, vehicleId));
|
||||
return ItemDataConsole.ItemDataExists(prmData);
|
||||
}
|
||||
public override bool ClearVehicleDependentData(SbmVehicle vehicle, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (vehicle == null || !SysId.IsValid(vehicle.Id)) return false;
|
||||
if (!HasErrorState())
|
||||
{
|
||||
// Remove document references:
|
||||
if (!ItemDocConsole.ClearItemDocs(vehicle.GetItemId(), dbUpdateInfo))
|
||||
SetErrorState(ItemDocConsole.ErrorStateMessage);
|
||||
}
|
||||
if (!HasErrorState())
|
||||
{
|
||||
// Remove Item Data.
|
||||
if (!ItemDataConsole.ClearItemData(vehicle.GetItemId(), dbUpdateInfo))
|
||||
SetErrorState(ItemDataConsole.ErrorStateMessage);
|
||||
}
|
||||
if (!HasErrorState())
|
||||
{
|
||||
// Remove interface data items.
|
||||
if (!InterfaceConsole.ClearInterfaceDataItems(vehicle.GetItemId(), dbUpdateInfo))
|
||||
SetErrorState(InterfaceConsole.ErrorStateMessage);
|
||||
}
|
||||
return OK;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get Item.
|
||||
public override SbmVehicle GetVehicle(SbmVehicle.Params prm)
|
||||
{
|
||||
return GetVehicle(GetVehicleQueryFilter(prm).Concat(" AND ", "(", ")"));
|
||||
@@ -80,12 +260,12 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
|
||||
public override SbmVehicle CreateVehicle()
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SbmVehicle_Dbas(Internals, new SysId(), 0);
|
||||
return new SbmVehicle_Dbas(new SysId(), 0);
|
||||
}
|
||||
private SbmVehicle_Dbas CreateVehicle(SaVehicle_Db dbVehicle)
|
||||
{
|
||||
ClearErrorState();
|
||||
SbmVehicle_Dbas vehicle = new SbmVehicle_Dbas(Internals, new SysId(dbVehicle._Id), (ushort)dbVehicle._Flags);
|
||||
SbmVehicle_Dbas vehicle = new SbmVehicle_Dbas(new SysId(dbVehicle._Id), (ushort)dbVehicle._Flags);
|
||||
PopulateFrom(dbVehicle, vehicle);
|
||||
return vehicle;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user