This commit is contained in:
2023-04-28 12:21:24 +08:00
parent 156d145a48
commit 88e0a25ecd
162 changed files with 26324 additions and 7519 deletions

View File

@ -1,10 +1,11 @@
using Foresight.Data;
using Foresight.Fleet.Services.AssetHealth;
using Foresight.Fleet.Services.AssetHealth.WorkOrder;
using Foresight.Fleet.Services.JobSite;
using Foresight.Fleet.Services.User;
using Foresight.ServiceModel;
using IronIntel.Contractor.Machines;
using IronIntel.Contractor.Maintenance;
using IronIntel.Contractor.Users;
using IronIntel.Services;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
@ -33,15 +34,15 @@ namespace IronIntel.Contractor.Site.Maintenance
case "GETMACHINEALERTS":
result = GetMachineAlerts();
break;
case "GETPMALERTSERVICEDESCRIPTIONS":
result = GetPMAlertServiceDescriptions();
break;
case "SAVEACKNOWLEDGEALERT":
result = SaveAcknowledgeAlert();
break;
case "ASSIGNEDALERTSTOWORKORDER":
result = AssignedAlertsToWorkOrder();
break;
case "GETALERTSBYWORKORDER":
result = GetAlertsByWorkOrder();
break;
case "GETALERTSLISENCE":
result = GetAlertsLisence();
break;
@ -60,6 +61,30 @@ namespace IronIntel.Contractor.Site.Maintenance
case "GETACKNOWLEDGEDALERTS":
result = GetAcknowledgedAlerts();
break;
case "GETJOBSITES":
result = GetJobsites();
break;
case "SAVEAUTOACKNOWLEDGEALERTTYPES":
result = SaveAutoAcknowledgeAlertTypes();
break;
case "GETAUTOACKNOWLEDGEALERTTYPES":
result = GetAutoAcknowledgeAlertTypes();
break;
case "GETAUTOACKNOWLEDGEALERTTYPESHISTORY":
result = GetAutoAcknowledgeAlertTypesHistory();
break;
case "GETWORKORDERGENERATORS":
result = GetWorkOrderGenerators();
break;
case "SAVEWORKORDERGENERATOR":
result = SaveWorkOrderGenerator();
break;
case "DELETEWORKORDERGENERATOR":
result = DeleteWorkOrderGenerator();
break;
case "GETASSIGNTOS":
result = GetAssignTos();
break;
}
}
}
@ -90,11 +115,6 @@ namespace IronIntel.Contractor.Site.Maintenance
// beginDate = beginDate.ToUniversalTime();
if (!DateTime.TryParse(alertparam.EndDate, out endDate))
endDate = DateTime.MaxValue;
else
endDate = endDate.Date.AddDays(1).AddSeconds(-1);
beginDate = SystemParams.CustomerDetail.CustomerTimeToUtc(beginDate);
endDate = SystemParams.CustomerDetail.CustomerTimeToUtc(endDate);
int assigned = -1;
int completed = -1;
@ -106,18 +126,23 @@ namespace IronIntel.Contractor.Site.Maintenance
assigned = 1;
if (alertparam.AlertStatus.Contains("Completed") && !alertparam.AlertStatus.Contains("Uncompleted"))
assigned = 1;
completed = 1;
if (!alertparam.AlertStatus.Contains("Completed") && alertparam.AlertStatus.Contains("Uncompleted"))
assigned = 0;
completed = 0;
}
AssetAlertGridViewItem[] assetalerts = CreateClient<WorkOrderClient>().GetAssetAlertGridViewItems(SystemParams.CompanyID, beginDate, endDate, alertparam.AlertTypes, alertparam.AssetGroups, assigned, completed, alertparam.SearchText, session.User.UID);
AssetAlertGridViewItem[] assetalerts = null;
if (alertparam.AssetID > 0)
assetalerts = CreateClient<WorkOrderProvider>().GetAssetAlertGridViewItemsByAsset(SystemParams.CompanyID, alertparam.AssetID, beginDate, endDate, alertparam.AlertTypes, alertparam.JobSites, assigned, completed, alertparam.SearchText, alertparam.IncludeunCompleted);
else
assetalerts = CreateClient<AlertProvider>().GetAssetAlertGridViewItems(SystemParams.CompanyID, beginDate, endDate, alertparam.AlertTypes, alertparam.AssetGroups, alertparam.JobSites, assigned, completed, alertparam.SearchText, session.User.UID, alertparam.IncludeunCompleted);
if (assetalerts == null || assetalerts.Length == 0)
return new AlertInfo[0];
List<AlertInfo> list = new List<AlertInfo>();
foreach (AssetAlertGridViewItem item in assetalerts)
{
AlertInfo ai = ConvertAlertObj(item);
ai.AlertTime_UTC = item.LastAlertLocalTime;
list.Add(ai);
}
return list.ToArray();
@ -149,11 +174,7 @@ namespace IronIntel.Contractor.Site.Maintenance
// beginDate = beginDate.ToUniversalTime();
if (!DateTime.TryParse(alertparam.EndDate, out endDate))
endDate = DateTime.MaxValue;
else
endDate = endDate.Date.AddDays(1).AddSeconds(-1);
beginDate = SystemParams.CustomerDetail.CustomerTimeToUtc(beginDate);
endDate = SystemParams.CustomerDetail.CustomerTimeToUtc(endDate);
int assigned = -1;
int completed = -1;
@ -165,12 +186,16 @@ namespace IronIntel.Contractor.Site.Maintenance
assigned = 1;
if (alertparam.AlertStatus.Contains("Completed") && !alertparam.AlertStatus.Contains("Uncompleted"))
assigned = 1;
completed = 1;
if (!alertparam.AlertStatus.Contains("Completed") && alertparam.AlertStatus.Contains("Uncompleted"))
assigned = 0;
completed = 0;
}
AssetAlertGridViewItem[] assetalerts = CreateClient<WorkOrderClient>().GetAssetAlertGridViewItems(SystemParams.CompanyID, beginDate, endDate, alertparam.AlertTypes, alertparam.AssetGroups, assigned, completed, alertparam.SearchText, session.User.UID);
AssetAlertGridViewItem[] assetalerts = null;
if (alertparam.AssetID > 0)
assetalerts = CreateClient<WorkOrderProvider>().GetAssetAlertGridViewItemsByAsset(SystemParams.CompanyID, alertparam.AssetID, beginDate, endDate, alertparam.AlertTypes, alertparam.JobSites, assigned, completed, alertparam.SearchText, alertparam.IncludeunCompleted);
else
assetalerts = CreateClient<AlertProvider>().GetAssetAlertGridViewItems(SystemParams.CompanyID, beginDate, endDate, alertparam.AlertTypes, alertparam.AssetGroups, alertparam.JobSites, assigned, completed, alertparam.SearchText, session.User.UID, alertparam.IncludeunCompleted);
if (assetalerts == null || assetalerts.Length == 0)
return new MachineInfoForAlert[0];
@ -205,8 +230,8 @@ namespace IronIntel.Contractor.Site.Maintenance
mi.InspectAlertCount += count;
else
mi.DTCAlertCount += count;
if (ai.AlertTime_UTC > mi.LatestAlertDateTime)
mi.LatestAlertDateTime = ai.AlertTime_UTC;
if (ai.AlertLocalTime > mi.LatestAlertDateTime)
mi.LatestAlertDateTime = ai.AlertLocalTime;
}
return machinealerts.ToArray();
@ -221,6 +246,53 @@ namespace IronIntel.Contractor.Site.Maintenance
}
}
private object GetPMAlertServiceDescriptions()
{
try
{
var session = GetCurrentLoginSession();
if (GetCurrentLoginSession() != null)
{
var clientdata = Context.Request.Params["ClientData"];
long[] alertids = JsonConvert.DeserializeObject<long[]>(clientdata);
return CreateClient<AlertProvider>().GetAlertServiceDescriptions(SystemParams.CompanyID, alertids);
}
return null;
}
catch (Exception ex)
{
AddLog("ERROR", "AlertsBasePage.GetPMAlertServiceDescriptions", ex.Message, ex.ToString());
return ex.Message;
}
}
private AlertInfo ConvertAlertObj1(AssetAlertItem item)
{
AlertInfo ai = new AlertInfo();
ai.AlertID = item.ID;
ai.AlertType = item.AlertType;
ai.AlertLocalTime = item.AlertLocalTime;
ai.Completed = item.Completed;
ai.MachineID = item.AssetID;
ai.Model = item.ModelName;
ai.Make = item.MakeName;
ai.VIN = item.VIN;
ai.MachineName = item.AssetName;
ai.EngineHours = item.EngineHours;
ai.Description = item.Description;
ai.Description = ai.FormatDescription(ai.Description);
ai.ServiceDescription = item.ServiceDescription;
ai.RepeatedAlerts = item.RepeatedAlerts;
ai.AlertCount = item.RepeatedAlerts.Count + 1;
ai.ScheduleID = item.ScheduleID;
ai.IntervalID = item.IntervalID;
ai.Recurring = item.Recurring;
ai.Priority = item.Priority;
ai.ExpectedCost = item.ExpectedCost;
return ai;
}
private AlertInfo ConvertAlertObj(AssetAlertGridViewItem item)
{
AlertInfo ai = new AlertInfo();
@ -229,6 +301,7 @@ namespace IronIntel.Contractor.Site.Maintenance
ai.WorkOrderStatus = item.WorkOrderStatus;
ai.AlertType = item.AlertType;
ai.AlertTime_UTC = item.LastAlertTime;
ai.AlertLocalTime = item.AlertLocalTime;
ai.Completed = item.Completed;
ai.MachineID = item.AssetID;
//ai.ModelID = item.ModelName;
@ -240,10 +313,42 @@ namespace IronIntel.Contractor.Site.Maintenance
ai.EngineHours = item.EngineHours;
ai.CurrentHours = item.CurrentEngineHours;
ai.Description = item.Description;
ai.ServiceDescription = item.ServiceDescription;
ai.Description = ai.FormatDescription(ai.Description);
//ai.ServiceDescription = item.ServiceDescription;
ai.RepeatedAlerts = item.RepeatedAlerts;
ai.AlertCount = item.RepeatedAlerts.Count + 1;
ai.OpenWorkOrderCount = item.OpenWorkOrderCount;
//ai.ScheduleID = item.ScheduleID;
//ai.IntervalID = item.IntervalID;
//ai.Recurring = item.Recurring;
//ai.Priority = item.Priority;
//ai.ExpectedCost = item.ExpectedCost;
return ai;
}
private AlertInfo ConvertAlertObj2(AcknowledgedAlertItem item)
{
AlertInfo ai = new AlertInfo();
ai.AlertID = item.ID;
ai.WorkOrderID = item.WorkOrderId;
ai.AlertType = item.AlertType;
ai.AlertTime_UTC = item.LastAlertTime;
ai.AlertLocalTime = item.AlertLocalTime;
ai.MachineID = item.AssetID;
ai.Model = item.ModelName;
ai.Make = item.MakeName;
ai.VIN = item.VIN;
ai.MachineName = item.AssetName;
ai.EngineHours = item.EngineHours;
ai.Description = item.Description;
ai.Description = ai.FormatDescription(ai.Description);
ai.RepeatedAlerts = item.RepeatedAlerts;
ai.AlertCount = item.RepeatedAlerts.Count + 1;
ai.OpenWorkOrderCount = item.OpenWorkOrderCount;
ai.AcknowledgedByName = item.AcknowledgedBy;
ai.AcknowledgedTime_UTC = item.AcknowledgedTime;
ai.AcknowledgedTime_Local = item.AcknowledgedLocalTime;
ai.AcknowledgedComment = item.AcknowledgedComment;
return ai;
}
@ -265,15 +370,23 @@ namespace IronIntel.Contractor.Site.Maintenance
// beginDate = beginDate.ToUniversalTime();
if (!DateTime.TryParse(alertparam.EndDate, out endDate))
endDate = DateTime.MaxValue;
else
endDate = endDate.Date.AddDays(1).AddSeconds(-1);
alertparam.AlertStatus = new string[0];
AlertManager am = new AlertManager(SystemParams.DataDbConnectionString);
AlertInfo[] alerts = am.SearchAcknowledgedAlerts(session.SessionID, alertparam.SearchText, alertparam.AlertStatus, alertparam.AlertTypes, alertparam.AssetGroups, beginDate, endDate, session.User.UID);
if (alerts == null)
AcknowledgedAlertItem[] ackalerts = CreateClient<AlertProvider>().GetAcknowledgedAlerts(SystemParams.CompanyID, beginDate, endDate, alertparam.AlertTypes, alertparam.AssetGroups, alertparam.SearchText);
if (ackalerts == null || ackalerts.Length == 0)
return new AlertInfo[0];
return alerts.ToArray();
List<AlertInfo> list = new List<AlertInfo>();
foreach (AcknowledgedAlertItem item in ackalerts)
{
AlertInfo ai = ConvertAlertObj2(item);
list.Add(ai);
}
if (list == null)
return new AlertInfo[0];
if (alertparam.AssetID > 0)
list = list.Where(m => m.MachineID == alertparam.AssetID).ToList();
return list.ToArray();
}
else
return new AlertInfo[0];
@ -292,7 +405,7 @@ namespace IronIntel.Contractor.Site.Maintenance
AlertsLisenceItem result = new AlertsLisenceItem();
if (GetCurrentLoginSession() != null)
{
LicenseInfo license = SystemParams.GetLicense();
Foresight.Fleet.Services.Customer.LicenseInfo license = SystemParams.GetLicense();
if (license != null && license.Items.Count > 0)
{
var woitem = license.Items.FirstOrDefault(m => m.Key == "WorkOrder");
@ -314,7 +427,7 @@ namespace IronIntel.Contractor.Site.Maintenance
{
try
{
Services.Users.LoginSession se = GetCurrentLoginSession();
LoginSession se = GetCurrentLoginSession();
if (se != null)
{
var clientdata = Request.Form["ClientData"].Split((char)170);
@ -344,10 +457,17 @@ namespace IronIntel.Contractor.Site.Maintenance
var ids = HttpUtility.HtmlDecode(clientdata[1]);
long workorderid = Convert.ToInt64(id);
long[] alertids = JsonConvert.DeserializeObject<long[]>(ids);
if (alertids != null && alertids.Length == 0)
alertids = null;
AlertManager am = new AlertManager(SystemParams.DataDbConnectionString);
am.AssignedAlertsToWorkOrder(workorderid, alertids);
if (alertids == null)
alertids = new long[0];
var wp = CreateClient<WorkOrderProvider>();
var existsalerts = wp.GetWorkOrderAlerts(SystemParams.CompanyID, workorderid).Select(a => a.ID);
var added = alertids.Except(existsalerts).ToArray();
var deleted = existsalerts.Except(alertids).ToArray();
if (added.Length > 0)
wp.AddOrRemoveAlertsFromWorkOrder(SystemParams.CompanyID, workorderid, added, true);
if (deleted.Length > 0)
wp.AddOrRemoveAlertsFromWorkOrder(SystemParams.CompanyID, workorderid, deleted, false);
return "OK";
}
else
@ -359,85 +479,26 @@ namespace IronIntel.Contractor.Site.Maintenance
}
}
private object GetAlertsByWorkOrder()
{
try
{
if (GetCurrentLoginSession() != null)
{
var woid = Request.Form["ClientData"];
long workorderid = Convert.ToInt64(woid);
AlertManager am = new AlertManager(SystemParams.DataDbConnectionString);
AlertInfo[] alerts = am.GetAlertsByWorkOrder(workorderid);
if (alerts == null)
return new AlertInfo[0];
return alerts;
}
else
return new AlertInfo[0];
}
catch (Exception ex)
{
AddLog("ERROR", "AlertsBasePage.GetAlertsByWorkOrder", ex.Message, ex.ToString());
return ex.Message;
}
}
private object GetWorkOrderAlerts()
{
try
{
if (GetCurrentLoginSession() != null)
var session = GetCurrentLoginSession();
if (session != null)
{
var clientdata = Request.Form["ClientData"];
long workorderid = 0;
long.TryParse(clientdata, out workorderid);
AssetAlertItem[] alerts = CreateClient<WorkOrderClient>().GetAssignedAlerts(SystemParams.CompanyID, workorderid);
AlertItems items = WorkOrderManager.GetWorkOrderAlerts(workorderid, session.SessionID);
if (items == null)
return new AlertItems();
AlertItems items = new AlertItems();
if (alerts != null)
{
var dtcalerts = new List<AlertInfo>();
var pmaalerts = new List<AlertInfo>();
var inspectalerts = new List<AlertInfo>();
var oilalerts = new List<AlertInfo>();
foreach (AssetAlertItem alertitem in alerts.OrderByDescending(ai => ai.AlertTime))
{
List<AlertInfo> tempList = null;
if (alertitem.Category == AssetAlertCategory.PMAlert)
tempList = pmaalerts;
else if (alertitem.Category == AssetAlertCategory.InspectAlert)
tempList = inspectalerts;
else if (alertitem.Category == AssetAlertCategory.OilSampleAlert)
tempList = oilalerts;
else
tempList = dtcalerts;
var existalert = tempList.FirstOrDefault((ai) => ai.Description == alertitem.Description);
if (existalert != null)
{
existalert.AlertCount++;
if (existalert.RepeatedAlerts == null)
existalert.RepeatedAlerts = new List<long>();
existalert.RepeatedAlerts.Add(alertitem.ID);
}
else
{
var a = ConvertAlert(alertitem);
a.AlertCount = 1;
tempList.Add(a);
}
}
items.DTCAlerts = dtcalerts.ToArray();
items.PMAlerts = pmaalerts.ToArray();
items.InspectAlerts = inspectalerts.ToArray();
items.OilAlerts = oilalerts.ToArray();
}
return items;
}
else
return new AlertInfo[0];
return new AlertItems();
}
catch (Exception ex)
{
@ -461,7 +522,8 @@ namespace IronIntel.Contractor.Site.Maintenance
long[] alertids = JsonConvert.DeserializeObject<long[]>(ids);
AssetAlertGridViewItem[] alerts = CreateClient<WorkOrderClient>().GetAssetAlertGridViewItemsByAsset(SystemParams.CompanyID, machineid, Helper.DBMinDateTime, DateTime.MaxValue, null, -1, -1, "");
AssetAlertItem[] alerts = CreateClient<WorkOrderProvider>().GetNoneAssignedAlerts(SystemParams.CompanyID, machineid);
//AssetAlertGridViewItem[] alerts = CreateClient<WorkOrderProvider>().GetAssetAlertGridViewItemsByAsset(SystemParams.CompanyID, machineid, Helper.DBMinDateTime, DateTime.MaxValue, null, null, -1, -1, "", false);
AlertItems items = new AlertItems();
if (alerts != null)
{
@ -469,12 +531,11 @@ namespace IronIntel.Contractor.Site.Maintenance
var pmaalerts = new List<AlertInfo>();
var inspectalerts = new List<AlertInfo>();
var oilalerts = new List<AlertInfo>();
foreach (AssetAlertGridViewItem alertitem in alerts.OrderByDescending(ai => ai.AlertTime))
Dictionary<string, List<AlertInfo>> pmalertdic = new Dictionary<string, List<AlertInfo>>();
foreach (var alertitem in alerts.OrderByDescending(ai => ai.AlertTime))
{
if (alertids != null && alertids.Length > 0 && !alertids.Contains(alertitem.ID))
continue;
if (alertitem.Completed || alertitem.Acknowledged || alertitem.WorkOrderId > 0)
continue;
List<AlertInfo> tempList = null;
var category = DetermineAlertCategory(alertitem.AlertType);
@ -487,15 +548,33 @@ namespace IronIntel.Contractor.Site.Maintenance
else
tempList = dtcalerts;
var a = ConvertAlertObj(alertitem);
var a = ConvertAlertObj1(alertitem);
a.RepeatedAlerts = alertitem.RepeatedAlerts;
a.AlertCount = alertitem.RepeatedAlerts.Count + 1;
tempList.Add(a);
if (category == AssetAlertCategory.PMAlert)
{
if (!pmalertdic.ContainsKey(a.ScheduleID))
pmalertdic[a.ScheduleID] = new List<AlertInfo>();
pmalertdic[a.ScheduleID].Add(a);
}
}
items.DTCAlerts = dtcalerts.ToArray();
items.PMAlerts = pmaalerts.ToArray();
items.InspectAlerts = inspectalerts.ToArray();
items.OilAlerts = oilalerts.ToArray();
items.AllExpectedCost = 0;
foreach (var dic in pmalertdic)
{
items.AllExpectedCost += dic.Value.Where(m => !m.Recurring).Sum(m => m.ExpectedCost);
int minPriority = dic.Value.Select(m => m.Priority).Min();
var recalerts = dic.Value.Where(m => m.Priority == minPriority && m.Recurring && m.ExpectedCost > 0);
if (recalerts != null && recalerts.Count() > 0)
items.AllExpectedCost += recalerts.Sum(m => m.ExpectedCost);
}
}
return items;
}
@ -509,6 +588,77 @@ namespace IronIntel.Contractor.Site.Maintenance
}
}
private string SaveAutoAcknowledgeAlertTypes()
{
try
{
LoginSession session = GetCurrentLoginSession();
if (session != null)
{
var clientdata = Request.Form["ClientData"];
string[] alerttypes = JsonConvert.DeserializeObject<string[]>(clientdata);
CreateClient<WorkOrderProvider>().SaveAutoAcknowledgeAlertTypes(SystemParams.CompanyID, alerttypes, session.User.UID);
return "OK";
}
else
return "Failed";
}
catch (Exception ex)
{
return ex.Message;
}
}
private object GetAutoAcknowledgeAlertTypes()
{
try
{
if (GetCurrentLoginSession() != null)
{
string[] alerttypes = CreateClient<WorkOrderProvider>().GetAutoAcknowledgeAlertTypes(SystemParams.CompanyID, GetCurrentLoginSession().User.UID);
return alerttypes;
}
else
return new string[0];
}
catch (Exception ex)
{
AddLog("ERROR", "AlertsBasePage.GetAutoAcknowledgeAlertTypes", ex.Message, ex.ToString());
return ex.Message;
}
}
private object GetAutoAcknowledgeAlertTypesHistory()
{
try
{
if (GetCurrentLoginSession() != null)
{
AutoAcknowledgeItem[] items = CreateClient<WorkOrderProvider>().GetAutoAcknowledgeAlertTypesHistory(SystemParams.CompanyID, GetCurrentLoginSession().User.UID);
if (items == null || items.Length == 0)
return new AutoAcknowledgeInfo[0];
List<AutoAcknowledgeInfo> ls = new List<AutoAcknowledgeInfo>();
foreach (AutoAcknowledgeItem item in items)
{
AutoAcknowledgeInfo ai = new AutoAcknowledgeInfo();
Helper.CloneProperty(ai, item);
ai.LocalUpdatedOn = ai.UpdatedOnLocal;
ls.Add(ai);
}
return ls.OrderBy(m => m.LocalUpdatedOn).ToArray();
}
else
return new AutoAcknowledgeInfo[0];
}
catch (Exception ex)
{
AddLog("ERROR", "AlertsBasePage.GetAutoAcknowledgeAlertTypesHistory", ex.Message, ex.ToString());
return ex.Message;
}
}
private static readonly string[] PMALERTS = new string[] { "Preventative Maintenance" };
private static readonly string[] INSPECT = new string[] { "Red-Inspect", "Yellow-Inspect", "Green-Inspect", "Info-Inspect" };
private static readonly string[] OILSAMPLE = new string[] { "Oil Sample Result" };
@ -559,6 +709,67 @@ namespace IronIntel.Contractor.Site.Maintenance
}
}
private object GetAssignTos()
{
try
{
var session = GetCurrentLoginSession();
if (session != null)
{
var users = Users.UserManagement.GetActiveUsers(session.SessionID, SystemParams.CompanyID);
List<StringKeyValue> list = new List<StringKeyValue>();
foreach (var u in users)
{
StringKeyValue kv = new StringKeyValue();
kv.Key = u.IID;
kv.Value = u.DisplayName;
list.Add(kv);
}
list = list.OrderBy((m) => m.Value).ToList();
list.Insert(0, new StringKeyValue() { Key = "1", Value = "Alert Creator" });
list.Insert(1, new StringKeyValue() { Key = "2", Value = "First Assigned Contact in Managed Assets" });
return list.ToArray();
}
else
return new StringKeyValue[0];
}
catch (Exception ex)
{
AddLog("ERROR", "AlertsBasePage.GetAssignTos", ex.Message, ex.ToString());
return ex.Message;
}
}
private object GetJobsites()
{
try
{
var session = GetCurrentLoginSession();
if (session != null)
{
JobSiteItem[] jss = CreateClient<JobSiteProvider>().GetJobSiteItems(SystemParams.CompanyID, string.Empty, false);
List<StringKeyValue> list = new List<StringKeyValue>();
foreach (JobSiteItem js in jss)
{
StringKeyValue kv = new StringKeyValue();
kv.Key = js.ID.ToString();
kv.Value = js.Name;
list.Add(kv);
}
return list.OrderBy((m) => m.Value).ToArray();
}
else
return new StringKeyValue[0];
}
catch (Exception ex)
{
AddLog("ERROR", "AlertsBasePage.GetAssetGroups", ex.Message, ex.ToString());
return ex.Message;
}
}
private object GetAlertTypes()
{
try
@ -578,35 +789,83 @@ namespace IronIntel.Contractor.Site.Maintenance
}
}
#region Work Order Generators
private AlertInfo ConvertAlert(AssetAlertItem alertitem)
private object GetWorkOrderGenerators()
{
AlertInfo ai = new AlertInfo();
ai.AlertID = alertitem.ID;
ai.MachineID = alertitem.AssetID;
ai.AlertType = alertitem.AlertType;
ai.Description = alertitem.Description;
ai.AlertTime_UTC = alertitem.AlertTime;
ai.EngineHours = alertitem.EngineHours;
try
{
if (GetCurrentLoginSession() != null)
{
WorkOrderGeneratorInfo[] generators = CreateClient<WorkOrderProvider>().GetWorkOrderGenerators(SystemParams.CompanyID);
if (generators == null)
return new WorkOrderGeneratorInfo[0];
return ai;
return generators;
}
else
return new WorkOrderGeneratorInfo[0];
}
catch (Exception ex)
{
AddLog("ERROR", "AlertsBasePage.GetWorkOrderGenerators", ex.Message, ex.ToString());
return ex.Message;
}
}
}
public class AlertItems
{
public AlertInfo[] DTCAlerts { get; set; }
public AlertInfo[] PMAlerts { get; set; }
public AlertInfo[] InspectAlerts { get; set; }
public AlertInfo[] OilAlerts { get; set; }
}
public class AlertQueryParams
{
public string SearchText { get; set; }
public string[] AlertStatus { get; set; }
public string[] AssetGroups { get; set; }
public string[] AlertTypes { get; set; }
public string BeginDate { get; set; }
public string EndDate { get; set; }
private object SaveWorkOrderGenerator()
{
try
{
var session = GetCurrentLoginSession();
if (session != null)
{
var clientdata = Request.Form["ClientData"];
WorkOrderGeneratorInfo generator = JsonConvert.DeserializeObject<WorkOrderGeneratorInfo>(clientdata);
if (generator.Id > 0)
{
CreateClient<WorkOrderProvider>().UpdateWorkOrderGenerator(SystemParams.CompanyID, generator);
}
else
{
generator.Id = CreateClient<WorkOrderProvider>().AddNewWorkOrderGenerator(SystemParams.CompanyID, generator);
}
return new string[] { generator.Id.ToString(), "" };
}
else
return "Failed";
}
catch (Exception ex)
{
return ex.Message;
}
}
private object DeleteWorkOrderGenerator()
{
try
{
var session = GetCurrentLoginSession();
if (session != null)
{
string id = HttpUtility.HtmlDecode(Request.Form["ClientData"]);
CreateClient<WorkOrderProvider>().DeleteWorkOrderGenerator(SystemParams.CompanyID, Convert.ToInt32(id));
return new string[0];
}
return "Failed";
}
catch (Exception ex)
{
return ex.Message;
}
}
#endregion
}
public class AlertsLisenceItem

View File

@ -6,15 +6,10 @@ using System.Threading.Tasks;
using Newtonsoft.Json;
using IronIntel.Contractor.Machines;
using IronIntel.Contractor.Maintenance;
using IronIntel.Services.Business.Admin;
using System.Web;
using IronIntel.Contractor.Users;
using Foresight.ServiceModel;
using Foresight.Fleet.Services.AssetHealth;
using Foresight.Fleet.Services.Device;
using Foresight.Fleet.Services;
using Foresight.Fleet.Services.Attachment;
using IronIntel.Contractor.Attachment;
namespace IronIntel.Contractor.Site.Maintenance
{
@ -89,23 +84,26 @@ namespace IronIntel.Contractor.Site.Maintenance
var sdatestr = HttpUtility.HtmlDecode(clientdata[1]);
var edatestr = HttpUtility.HtmlDecode(clientdata[2]);
var searchtxt = HttpUtility.HtmlDecode(clientdata[3]);
long assetid = 0;
long.TryParse(HttpUtility.HtmlDecode(clientdata[4]), out assetid);
DateTime beginDate = DateTime.MinValue;
DateTime beginDate = Helper.DBMinDateTime;
DateTime endDate = DateTime.MaxValue;
if (!DateTime.TryParse(sdatestr, out beginDate))
beginDate = DateTime.MinValue;
beginDate = Helper.DBMinDateTime;
if (!DateTime.TryParse(edatestr, out endDate))
endDate = DateTime.MaxValue;
FuelRecord[] fuels = CreateClient<FuelManagementClient>().GetFuelRecords(SystemParams.CompanyID, Convert.ToInt64(type), beginDate, endDate, searchtxt);
if (assetid > 0)
fuels = fuels.Where(m => m.AssetID == assetid).ToArray();
List<FuelRecordInfo> list = new List<FuelRecordInfo>();
foreach (FuelRecord fuel in fuels)
{
FuelRecordInfo fi = new FuelRecordInfo();
Helper.CloneProperty(fi, fuel);
//fi.TransactionDate = fi.TransactionDate.ToLocalTime();
fi.TransactionDate = SystemParams.CustomerDetail.UtcToCustomerTime(fi.TransactionDate);
fi.TransactionLocalDate = fuel.TransactionLocalDate;
list.Add(fi);
}
@ -140,9 +138,7 @@ namespace IronIntel.Contractor.Site.Maintenance
FuelRecordAuditItem fi = new FuelRecordAuditItem();
Helper.CloneProperty(fi, fuel);
//fi.TransactionDate = fi.TransactionDate.ToLocalTime();
fi.TransactionDate=SystemParams.CustomerDetail.UtcToCustomerTime(fi.TransactionDate);
fi.AddedOn = fi.AddedOn.ToLocalTime();
fi.LastUpdatedOn = fi.LastUpdatedOn.ToLocalTime();
fi.TransactionLocalDate = fuel.TransactionLocalDate;
list.Add(fi);
}
@ -171,8 +167,6 @@ namespace IronIntel.Contractor.Site.Maintenance
FuelRecord record = new FuelRecord();
Helper.CloneProperty(record, fuelrecord);
//record.TransactionDate = record.TransactionDate.ToUniversalTime();
record.TransactionDate = SystemParams.CustomerDetail.CustomerTimeToUtc(record.TransactionDate);
long fuleid = record.FuelID;
if (record.FuelID == -1)
{
@ -308,22 +302,21 @@ namespace IronIntel.Contractor.Site.Maintenance
{
string fuleid = HttpUtility.HtmlDecode(Request.Form["ClientData"]);
AttachmentInfo[] atts = CreateClient<AttachmentClient>().GetAttachments(SystemParams.CompanyID, "FuelRecord", fuleid);
AttachmentItem[] atts = CreateClient<AttachmentProvider>().GetAttachmentItems(SystemParams.CompanyID, "FuelRecord", fuleid);
if (atts == null || atts.Length <= 0)
return new AttachmentItem[0];
return new AttachmentItemClient[0];
List<AttachmentItem> list = new List<AttachmentItem>();
foreach (AttachmentInfo att in atts)
List<AttachmentItemClient> list = new List<AttachmentItemClient>();
foreach (Foresight.Fleet.Services.AttachmentItem att in atts)
{
AttachmentItem item = new AttachmentItem();
AttachmentItemClient item = new AttachmentItemClient();
Helper.CloneProperty(item, att);
item.AddedOn = item.AddedOn.AddHours(SystemParams.GetHoursOffset());
list.Add(item);
}
return list.OrderBy(m => m.AddedOn).ToArray();
}
else
return new AttachmentItem[0];
return new AttachmentItemClient[0];
}
catch (Exception ex)
{
@ -348,15 +341,8 @@ namespace IronIntel.Contractor.Site.Maintenance
iconfilebyte = ConvertFile2bytes(uploadFile);
}
AttachmentInfo attachment = new AttachmentInfo();
attachment.StringID = Guid.NewGuid().ToString().ToUpper();
attachment.FileName = uploadFile == null ? "" : uploadFile.FileName;
attachment.Source = "FuelRecord";
attachment.SourceID = fuleid;
attachment.FileData = iconfilebyte;
attachment.AddedByUserIID = session.User.UID;
string attid = CreateClient<AttachmentClient>().AddAttachmentLegacy(SystemParams.CompanyID, attachment);
string FileName = uploadFile == null ? "" : uploadFile.FileName;
long attid = CreateClient<AttachmentProvider>().AddAttachment(SystemParams.CompanyID, "FuelRecord", fuleid, FileName, "", iconfilebyte);
return "OK";
}
@ -377,7 +363,7 @@ namespace IronIntel.Contractor.Site.Maintenance
{
string attachid = HttpUtility.HtmlDecode(Request.Form["ClientData"]);
CreateClient<AttachmentClient>().DeleteAttachmentLegacy(SystemParams.CompanyID, attachid, session.User.UID);
CreateClient<AttachmentProvider>().DeleteAttachment(SystemParams.CompanyID, long.Parse(attachid));
return "OK";
}
return "Failed";
@ -391,4 +377,9 @@ namespace IronIntel.Contractor.Site.Maintenance
#endregion
}
public class AttachmentItemClient : AttachmentItem
{
public string AddedOnStr { get { return AddedOn.ToString(); } }
public byte[] FileData { get; set; }
}
}

View File

@ -1,17 +1,13 @@
using System;
using Foresight.Fleet.Services;
using Foresight.Fleet.Services.Asset;
using Foresight.ServiceModel;
using IronIntel.Contractor.Maintenance;
using IronIntel.Contractor.Users;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
using IronIntel.Contractor.Machines;
using IronIntel.Contractor.Maintenance;
using IronIntel.Services.Business.Admin;
using System.Web;
using IronIntel.Contractor.Users;
using Foresight.ServiceModel;
using Foresight.Fleet.Services.Attachment;
using IronIntel.Contractor.Attachment;
namespace IronIntel.Contractor.Site.Maintenance
{
@ -33,9 +29,6 @@ namespace IronIntel.Contractor.Site.Maintenance
case "GETRECORDS":
GetRecords();
break;
case "GETMACHINES":
Getmachines();
break;
case "GETMACHINEINFO":
GetmachineInfo();
break;
@ -91,9 +84,8 @@ namespace IronIntel.Contractor.Site.Maintenance
{
string json = "";
List<KeyValuePair<int, string>> typeskeypair = new List<KeyValuePair<int, string>>();
MachineServiceClient2 mc = new MachineServiceClient2(SystemParams.SystemServiceAddresses[0]);
MachineType[] types = mc.GetMachineTypes();
foreach (MachineType item in types)
AssetType[] types = CreateClient<AssetClassProvider>().GetAssetTypes(SystemParams.CompanyID);
foreach (AssetType item in types)
{
typeskeypair.Add(new KeyValuePair<int, string>(item.ID, item.Name));
}
@ -117,7 +109,17 @@ namespace IronIntel.Contractor.Site.Maintenance
string searchtxt = HttpUtility.UrlDecode(Request.Params["searchtxt"]);
string sortype = HttpUtility.UrlDecode(Request.Params["sortype"]);
string sortdata = HttpUtility.UrlDecode(Request.Params["sortdata"]);
MaintenanceLogInfo[] logs = MaintenanceManagement.GetMaintenanceLog(session.SessionID, assetid, maintenanceType, string.IsNullOrWhiteSpace(mtype) ? -1 : Convert.ToInt32(mtype), searchtxt, session.User.UID);
string sdatestr = HttpUtility.UrlDecode(Request.Params["startdate"]);
string edatestr = HttpUtility.UrlDecode(Request.Params["enddate"]);
DateTime beginDate = Helper.DBMinDateTime;
DateTime endDate = DateTime.MaxValue;
if (!DateTime.TryParse(sdatestr, out beginDate))
beginDate = Helper.DBMinDateTime;
if (!DateTime.TryParse(edatestr, out endDate))
endDate = DateTime.MaxValue;
MaintenanceLogInfo[] logs = MaintenanceManagement.GetMaintenanceLog(session.SessionID, assetid, maintenanceType, string.IsNullOrWhiteSpace(mtype) ? -1 : Convert.ToInt32(mtype), searchtxt, beginDate, endDate, session.User.UID);
if (!string.IsNullOrWhiteSpace(sortype))
{
@ -190,19 +192,19 @@ namespace IronIntel.Contractor.Site.Maintenance
string json = "";
long mid = -1;
long.TryParse(Request.Params["machineID"].ToString(), out mid);
MaintenanceMachineInfo machine = MaintenanceManagement.GetmachineByMachineID(mid);
json += JsonConvert.SerializeObject(machine);
Response.Write(json);
Response.End();
}
private void Getmachines()
{
var session = GetCurrentLoginSession();
string json = "";
string mtype = Request.Params["type"];
string searchtxt = HttpUtility.UrlDecode(Request.Params["searchtxt"]);
MaintenanceMachineInfo[] machines = MaintenanceManagement.GetMaintenanceMachines(session.SessionID, string.IsNullOrWhiteSpace(mtype) ? -1 : Convert.ToInt32(mtype), searchtxt, session.User.UID).OrderBy(t => t.VIN).ToArray();
json += JsonConvert.SerializeObject(machines);
AssetBasicInfo asset = CreateClient<AssetQueryClient>().GetAssetBasicInfoByID(SystemParams.CompanyID, mid);
MaintenanceMachineInfo mi = new MaintenanceMachineInfo();
mi.MachineID = asset.ID;
mi.MachineName = asset.Name;
mi.MachineName2 = asset.Name2;
mi.VIN = asset.VIN;
mi.EngineHours = asset.EngineHours == null ? 0 : asset.EngineHours.Value;
mi.Make = asset.MakeName;
mi.Model = asset.ModelName;
mi.TypeID = asset.TypeID;
mi.MachineType = asset.TypeName;
json += JsonConvert.SerializeObject(mi);
Response.Write(json);
Response.End();
}
@ -211,7 +213,7 @@ namespace IronIntel.Contractor.Site.Maintenance
var session = GetCurrentLoginSession();
string json = "";
string mtype = Request.Params["type"];
string searchtxt = HttpUtility.UrlDecode(Request.Params["searchtxt"]);
string searchtxt = HttpUtility.HtmlDecode(Request.Params["searchtxt"]);
MaintenanceMachineInfo[] machines = MaintenanceManagement.GetMaintenanceMachines(session.SessionID, string.IsNullOrWhiteSpace(mtype) ? -1 : Convert.ToInt32(mtype), searchtxt, session.User.UID);
if (machines.Length > 0)
@ -230,6 +232,7 @@ namespace IronIntel.Contractor.Site.Maintenance
if (u != null)
{
var clientdata = Request.Form["ClientData"];
clientdata = HttpUtility.HtmlDecode(clientdata);
MaintenanceLogInfo m = JsonConvert.DeserializeObject<MaintenanceLogInfo>(clientdata);
MaintenanceLogInfo oldinfo = null;
@ -247,7 +250,7 @@ namespace IronIntel.Contractor.Site.Maintenance
oldinfo.MaintenanceHours = m.MaintenanceHours;
oldinfo.ODOMeter = m.ODOMeter;
oldinfo.ODOMemterUOM = m.ODOMemterUOM;
oldinfo.Notes = HttpUtility.UrlDecode(m.Notes);
oldinfo.Notes = HttpUtility.HtmlDecode(m.Notes);
oldinfo.LogType = m.LogType;
oldinfo.Cost = m.Cost;
oldinfo.InvoiceNumber = m.InvoiceNumber;
@ -371,16 +374,15 @@ namespace IronIntel.Contractor.Site.Maintenance
var clientdata = Request.Form["ClientData"].Split((char)170);
var woid = HttpUtility.HtmlDecode(clientdata[0]);
AttachmentInfo[] atts = CreateClient<AttachmentClient>().GetAttachments(SystemParams.CompanyID, "MaintenanceLog", woid);
AttachmentItem[] atts = CreateClient<AttachmentProvider>().GetAttachmentItems(SystemParams.CompanyID, "MaintenanceLog", woid);
if (atts == null || atts.Length <= 0)
return new AttachmentItem[0];
List<AttachmentItem> list = new List<AttachmentItem>();
foreach (AttachmentInfo att in atts)
foreach (AttachmentItem att in atts)
{
AttachmentItem item = new AttachmentItem();
Helper.CloneProperty(item, att);
item.AddedOn = item.AddedOn.ToLocalTime();
list.Add(item);
}
return list.OrderBy(m => m.AddedOn).ToArray();
@ -411,15 +413,8 @@ namespace IronIntel.Contractor.Site.Maintenance
iconfilebyte = ConvertFile2bytes(uploadFile);
}
AttachmentInfo attachment = new AttachmentInfo();
attachment.StringID = Guid.NewGuid().ToString().ToUpper();
attachment.FileName = uploadFile == null ? "" : uploadFile.FileName;
attachment.Source = "MaintenanceLog";
attachment.SourceID = woid;
attachment.FileData = iconfilebyte;
attachment.AddedByUserIID = session.User.UID;
string attid = CreateClient<AttachmentClient>().AddAttachmentLegacy(SystemParams.CompanyID, attachment);
string FileName = uploadFile == null ? "" : uploadFile.FileName;
long attid = CreateClient<AttachmentProvider>().AddAttachment(SystemParams.CompanyID, "MaintenanceLog", woid, FileName, "", iconfilebyte);
return "OK";
}
@ -440,7 +435,7 @@ namespace IronIntel.Contractor.Site.Maintenance
{
string attachid = HttpUtility.HtmlDecode(Request.Form["ClientData"]);
CreateClient<AttachmentClient>().DeleteAttachmentLegacy(SystemParams.CompanyID, attachid, session.User.UID);
CreateClient<AttachmentProvider>().DeleteAttachment(SystemParams.CompanyID, long.Parse(attachid));
return "OK";
}
return "Failed";

View File

@ -1,6 +1,5 @@
using Foresight.Fleet.Services.User;
using Foresight.ServiceModel;
using IronIntel.Services;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
@ -8,6 +7,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IronIntel.Contractor.Site.Maintenance
{
public class MaintenanceBasePage : ContractorBasePage
@ -33,20 +33,22 @@ namespace IronIntel.Contractor.Site.Maintenance
private MaintenanceNavigateItem[] GetNavigations()
{
List<MaintenanceNavigateItem> list = GetNavigateItems();
LicenseInfo license = SystemParams.GetLicense();
Foresight.Fleet.Services.Customer.LicenseInfo license = SystemParams.GetLicense();
if (license != null && license.Items.Count > 0)
{
var alitem = license.Items.FirstOrDefault(m => m.Key == "AlertsManagement");
if (alitem == null || !Helper.IsTrue(alitem.Value))
{
MaintenanceNavigateItem item = list.FirstOrDefault(m => m.ID == "nav_alertsmanagement");
list.Remove(item);
}
var woitem = license.Items.FirstOrDefault(m => m.Key == "WorkOrder");
if (woitem == null || !Helper.IsTrue(woitem.Value))
{
MaintenanceNavigateItem item = list.FirstOrDefault(m => m.ID == "nav_workorder");
list.Remove(item);
item = list.FirstOrDefault(m => m.ID == "nav_workorderhis");
list.Remove(item);
}
var alitem = license.Items.FirstOrDefault(m => m.Key == "AlertsManagement");
if (alitem == null || !Helper.IsTrue(alitem.Value))
{
MaintenanceNavigateItem item = list.FirstOrDefault(m => m.ID == "nav_alertsmanagement");
list.Remove(item);
}
var fuelitem = license.Items.FirstOrDefault(m => m.Key == "FuelRecords");
if (fuelitem == null || !Helper.IsTrue(fuelitem.Value))
@ -54,42 +56,66 @@ namespace IronIntel.Contractor.Site.Maintenance
MaintenanceNavigateItem item = list.FirstOrDefault(m => m.ID == "nav_fuelrecord");
list.Remove(item);
}
var critem = license.Items.FirstOrDefault(m => m.Key == "CustomerRecord");
if (critem == null || !Helper.IsTrue(critem.Value))
{
MaintenanceNavigateItem item = list.FirstOrDefault(m => m.ID == "nav_customerrecord");
list.Remove(item);
item = list.FirstOrDefault(m => m.ID == "nav_customersatisfactionsurveys");
list.Remove(item);
item = list.FirstOrDefault(m => m.ID == "nav_surveymanagementresult");
list.Remove(item);
item = list.FirstOrDefault(m => m.ID == "nav_wosurveytemplate");
list.Remove(item);
item = list.FirstOrDefault(m => m.ID == "nav_wosurveytemplatereport");
list.Remove(item);
}
var pmitem = license.Items.FirstOrDefault(m => m.Key == "PreventativeMaintenance");
if (pmitem == null || !Helper.IsTrue(pmitem.Value))
{
MaintenanceNavigateItem item = list.FirstOrDefault(m => m.ID == "nav_maintenanceschedule");
list.Remove(item);
}
var mritem = license.Items.FirstOrDefault(m => m.Key == "MaintenanceRecord");
if (mritem == null || !Helper.IsTrue(mritem.Value))
{
MaintenanceNavigateItem item = list.FirstOrDefault(m => m.ID == "nav_record");
list.Remove(item);
}
}
var user = GetCurrentUser();
if (user.UserType == Users.UserTypes.Common)
{
var client = FleetServiceClientHelper.CreateClient<PermissionProvider>();
var client = CreateClient<PermissionProvider>();
Tuple<Feature, Permissions>[] pmss = client.GetUserPermissions(SystemParams.CompanyID, user.IID);
if (pmss.Length > 0)
{
Tuple<Feature, Permissions> alertpm = pmss.FirstOrDefault(m => m.Item1.Id == Feature.ALERTS_MANAGEMENT);
if (alertpm == null)
{
MaintenanceNavigateItem item = list.FirstOrDefault(m => m.ID == "nav_alertsmanagement");
list.Remove(item);
}
Tuple<Feature, Permissions> wopm = pmss.FirstOrDefault(m => m.Item1.Id == Feature.WORK_ORDER);
if (wopm == null)
{
MaintenanceNavigateItem item = list.FirstOrDefault(m => m.ID == "nav_workorder");
list.Remove(item);
}
Tuple<Feature, Permissions> wohispm = pmss.FirstOrDefault(m => m.Item1.Id == Feature.WORKORDERHISTORY);
if (wohispm == null)
{
MaintenanceNavigateItem itemhis = list.FirstOrDefault(m => m.ID == "nav_workorderhis");
list.Remove(itemhis);
}
Tuple<Feature, Permissions> alertpm = pmss.FirstOrDefault(m => m.Item1.Id == Feature.ALERTS_MANAGEMENT);
if (alertpm == null)
{
MaintenanceNavigateItem item = list.FirstOrDefault(m => m.ID == "nav_alertsmanagement");
list.Remove(item);
}
Tuple<Feature, Permissions> pmpm = pmss.FirstOrDefault(m => m.Item1.Id == Feature.PREVENTATIVE_MAINTENANCE);
if (pmpm == null)
{
MaintenanceNavigateItem item1 = list.FirstOrDefault(m => m.ID == "nav_preventative");
list.Remove(item1);
MaintenanceNavigateItem item2 = list.FirstOrDefault(m => m.ID == "nav_timebased");
list.Remove(item2);
MaintenanceNavigateItem item3 = list.FirstOrDefault(m => m.ID == "nav_hours");
list.Remove(item3);
MaintenanceNavigateItem item4 = list.FirstOrDefault(m => m.ID == "nav_absolutedistance");
list.Remove(item4);
MaintenanceNavigateItem item5 = list.FirstOrDefault(m => m.ID == "nav_relativedistance");
list.Remove(item5);
MaintenanceNavigateItem item6 = list.FirstOrDefault(m => m.ID == "nav_record");
list.Remove(item6);
MaintenanceNavigateItem item = list.FirstOrDefault(m => m.ID == "nav_maintenanceschedule");
list.Remove(item);
item = list.FirstOrDefault(m => m.ID == "nav_record");
list.Remove(item);
}
Tuple<Feature, Permissions> fuelpm = pmss.FirstOrDefault(m => m.Item1.Id == Feature.FUEL_RECORDS);
if (fuelpm == null)
@ -97,9 +123,29 @@ namespace IronIntel.Contractor.Site.Maintenance
MaintenanceNavigateItem item = list.FirstOrDefault(m => m.ID == "nav_fuelrecord");
list.Remove(item);
}
Tuple<Feature, Permissions> crpm = pmss.FirstOrDefault(m => m.Item1.Id == Feature.CUSTOMER_RECORD);
if (crpm == null)
{
MaintenanceNavigateItem item = list.FirstOrDefault(m => m.ID == "nav_customerrecord");
list.Remove(item);
}
Tuple<Feature, Permissions> wosurpm = pmss.FirstOrDefault(m => m.Item1.Id == Feature.WORKORDERSURVEYS);
if (crpm == null || wosurpm == null)
{
MaintenanceNavigateItem item = list.FirstOrDefault(m => m.ID == "nav_customersatisfactionsurveys");
list.Remove(item);
item = list.FirstOrDefault(m => m.ID == "nav_surveymanagementresult");
list.Remove(item);
item = list.FirstOrDefault(m => m.ID == "nav_wosurveytemplate");
list.Remove(item);
item = list.FirstOrDefault(m => m.ID == "nav_wosurveytemplatereport");
list.Remove(item);
}
}
}
else if (user.UserType == Users.UserTypes.Readonly)
list.Clear();
return list.ToArray();
}
@ -108,68 +154,80 @@ namespace IronIntel.Contractor.Site.Maintenance
{
List<MaintenanceNavigateItem> list = new List<MaintenanceNavigateItem>();
MaintenanceNavigateItem item2 = new MaintenanceNavigateItem();
item2.ID = "nav_workorder";
item2.Title = "Work Order";
item2.Url = "WorkOrderMaintenance.aspx";
item2.IconPath = "img/workorder.png";
list.Add(item2);
MaintenanceNavigateItem itemhis = new MaintenanceNavigateItem();
itemhis.ID = "nav_workorderhis";
itemhis.Title = "Work Order History";
itemhis.Url = "WorkOrderHistory.aspx";
itemhis.IconPath = "img/workorder.png";
list.Add(itemhis);
MaintenanceNavigateItem item1 = new MaintenanceNavigateItem();
item1.ID = "nav_alertsmanagement";
item1.Title = "Alerts Management **New**";
item1.Title = "Alerts Management";
item1.Url = "AlertsManagement.aspx";
item1.IconPath = "img/alert.png";
list.Add(item1);
MaintenanceNavigateItem item6 = new MaintenanceNavigateItem();
item6.ID = "nav_workorder";
item6.Title = "Work Order **New**";
item6.Url = "WorkOrderMaintenance.aspx";
item6.IconPath = "img/workorder.png";
list.Add(item6);
MaintenanceNavigateItem item3 = new MaintenanceNavigateItem();
item3.ID = "nav_preventative";
item3.Title = "Absolute Hours Maintenance";
item3.Url = "PreventativeMaintenance.aspx";
item3.ID = "nav_maintenanceschedule";
item3.Title = "Maintenance Schedules";
item3.Url = "MaintenanceSchedulesManagement.aspx";
item3.IconPath = "img/preventative.png";
list.Add(item3);
MaintenanceNavigateItem item4 = new MaintenanceNavigateItem();
item4.ID = "nav_timebased";
item4.Title = "Relative Time Maintenance";
item4.Url = "TimeBasedMaintenance.aspx";
item4.IconPath = "img/timebased.png";
item4.ID = "nav_record";
item4.Title = "Maintenance Record";
item4.Url = "MaintanceRecordsManagement.aspx";
item4.IconPath = "img/record.png";
list.Add(item4);
MaintenanceNavigateItem item7 = new MaintenanceNavigateItem();
item7.ID = "nav_hours";
item7.Title = "Relative Hours Maintenance";
item7.Url = "HoursMaintenance.aspx";
item7.IconPath = "img/hours.png";
list.Add(item7);
MaintenanceNavigateItem item5 = new MaintenanceNavigateItem();
item5.ID = "nav_absolutedistance";
item5.Title = "Absolute Distance Maintenance";
item5.Url = "AbsoluteDistanceMaintenance.aspx";
item5.IconPath = "img/preventative.png";
item5.ID = "nav_fuelrecord";
item5.Title = "Fuel Records";
item5.Url = "FuelRecordManagement.aspx";
item5.IconPath = "img/fuelrecord.png";
list.Add(item5);
MaintenanceNavigateItem item6 = new MaintenanceNavigateItem();
item6.ID = "nav_customerrecord";
item6.Title = "Customer Record";
item6.Url = "CustomerRecordManagement.aspx";
item6.IconPath = "img/customerrecord.png";
list.Add(item6);
MaintenanceNavigateItem item7 = new MaintenanceNavigateItem();
item7.ID = "nav_customersatisfactionsurveys";
item7.Title = "Customer Satisfaction Surveys";
//item7.Url = "SurveyTemplateManagement.aspx";
item7.IconPath = "img/customerrecord.png";
list.Add(item7);
MaintenanceNavigateItem item8 = new MaintenanceNavigateItem();
item8.ID = "nav_relativedistance";
item8.Title = "Relative Distance Maintenance";
item8.Url = "RelativeDistanceMaintenance.aspx";
item8.IconPath = "img/hours.png";
item8.ID = "nav_surveymanagementresult";
item8.Title = "Survey Management/Result";
item8.Url = "SurveyManagement.aspx";
list.Add(item8);
MaintenanceNavigateItem item2 = new MaintenanceNavigateItem();
item2.ID = "nav_record";
item2.Title = "Maintenance Record **Legacy**";
item2.Url = "MaintanceRecordsManagement.aspx";
item2.IconPath = "img/record.png";
list.Add(item2);
MaintenanceNavigateItem item9 = new MaintenanceNavigateItem();
item9.ID = "nav_fuelrecord";
item9.Title = "Fuel Records";
item9.Url = "FuelRecordManagement.aspx";
item9.IconPath = "img/fuelrecord.png";
item9.ID = "nav_wosurveytemplate";
item9.Title = "Templates";
item9.Url = "SurveyTemplateManagement.aspx";
list.Add(item9);
MaintenanceNavigateItem item10 = new MaintenanceNavigateItem();
item10.ID = "nav_wosurveytemplatereport";
item10.Title = "Reports";
item10.Url = "SurveyTemplateReport.aspx";
list.Add(item10);
return list;
}
public class MaintenanceNavigateItem

View File

@ -1,26 +0,0 @@
using IronIntel.Contractor.Maintenance;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IronIntel.Contractor.Site.Maintenance
{
public class ScheduleSaveArgs
{
public string IID { get; set; }
public string Name { get; set; }
public string ScheduleUom { get; set; }
public string Type { get; set; }
public string Notes { get; set; }
public PmIntervalItem[] Intervals { get; set; }
}
public class ScheduleMachineArgs
{
public string IID { get; set; }
public MaintenanceMachineInfo[] Machines { get; set; }
}
}

View File

@ -1,7 +1,7 @@
using Foresight.Fleet.Services.AssetHealth;
using Foresight.Fleet.Services.Asset;
using Foresight.Fleet.Services.AssetHealth;
using IronIntel.Contractor.Machines;
using IronIntel.Contractor.Maintenance;
using IronIntel.Services.Business.Admin;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
@ -69,6 +69,9 @@ namespace IronIntel.Contractor.Site.Maintenance
case "GETPMSCHEDULEBYID":
result = GetPMScheduleByID();
break;
case "GETMAINTENANCESCHEDULES":
result = GetMaintenanceSchedules();
break;
}
}
}
@ -116,7 +119,7 @@ namespace IronIntel.Contractor.Site.Maintenance
if (string.IsNullOrWhiteSpace(pmtype))
pmtype = "PM";
return MaintenanceManagement.GetPmSchedule(session.SessionID, pmtype);
return MaintenanceManagement.GetPmSchedule(session.SessionID, pmtype, string.Empty, string.Empty);
}
else
return new PmScheduleInfo[0];
@ -127,6 +130,32 @@ namespace IronIntel.Contractor.Site.Maintenance
return ex.Message;
}
}
private object GetMaintenanceSchedules()
{
try
{
var session = GetCurrentLoginSession();
if (session != null)
{
var clientdata = Request.Form["ClientData"];
string[] param = JsonConvert.DeserializeObject<string[]>(clientdata);
var pmtype = param[0];
var pmid = param[1];
var filter = HttpUtility.HtmlDecode(param[2]);
return MaintenanceManagement.GetPmSchedule(session.SessionID, pmtype, pmid, filter);
}
else
return new PmScheduleInfo[0];
}
catch (Exception ex)
{
AddLog("ERROR", "PreventativeMaintenanceBasePage.GetPmSchedule", ex.Message, ex.ToString());
return ex.Message;
}
}
private object GetPMScheduleByID()
{
try
@ -316,17 +345,7 @@ namespace IronIntel.Contractor.Site.Maintenance
var s = Request.Form["ClientData"];
var type = JsonConvert.DeserializeObject<MachineItem>(s);
//MaintenanceMachineInfo[] selected;
//if (!string.IsNullOrWhiteSpace(type.VIN))
//{
// selected = MaintenanceManagement.GetPmMachinesByScheduleId(type.VIN);
//}
//else
//{
// selected = new MaintenanceMachineInfo[0];
//}
var machines = MaintenanceManagement.GetMaintenanceMachines1(session.SessionID, (int)type.MachineID, type.Name, session.User.UID)
var machines = MaintenanceManagement.GetMaintenanceMachines(session.SessionID, (int)type.MachineID, type.Name, session.User.UID)
//.Where(m => !selected.Any(t => t.MachineID == m.MachineID))
.OrderBy(m => m.VIN)
.ToArray();
@ -336,18 +355,38 @@ namespace IronIntel.Contractor.Site.Maintenance
private PMAssetItem[] GetSelectedMachines()
{
var iid = Request.Form["ClientData"];
List<PMAssetItem> result = new List<PMAssetItem>();
var assets = CreateClient<PMClient>().GetPMAssets(SystemParams.CompanyID, iid);
foreach (var asset in assets)
try
{
PMAssetItem a = new PMAssetItem();
Helper.CloneProperty(a, asset);
a.EngineHours = asset.CurrentEngineHours;
a.Odometer = asset.CurrentOdometer;
result.Add(a);
var session = GetCurrentLoginSession();
if (session != null)
{
var iid = Request.Form["ClientData"];
List<PMAssetItem> result = new List<PMAssetItem>();
var assets = CreateClient<PMClient>().GetPMAssets(SystemParams.CompanyID, iid);
if (session.User.UserType < Foresight.Fleet.Services.User.UserTypes.Admin)
{
AssetBasicInfo[] allassets = CreateClient<AssetQueryClient>(SystemParams.CompanyID).GetAssetBasicInfoByUser(SystemParams.CompanyID, "", session.User.UID, 0);
var allassetids = allassets.Select(a => a.ID).ToList();
assets = assets.Where(a => allassetids.Contains(a.AssetId)).ToArray();
}
foreach (var asset in assets)
{
PMAssetItem a = new PMAssetItem();
Helper.CloneProperty(a, asset);
a.EngineHours = asset.CurrentEngineHours;
a.Odometer = asset.CurrentOdometer;
result.Add(a);
}
return result.ToArray();
}
else
return null;
}
catch (Exception ex)
{
return null;
}
return result.ToArray();
}
private string SaveMachines()
@ -409,7 +448,21 @@ namespace IronIntel.Contractor.Site.Maintenance
{
public string ModelName { get; set; }
public string Notes { get; set; }
public double? StartOdometer { get; set; }
private double? _StartOdometer;
public double? StartOdometer
{
get
{
return _StartOdometer;
}
set
{
if (value != null)
_StartOdometer = Math.Round(value.Value, 2);
else
_StartOdometer = value;
}
}
public double? StartHours { get; set; }
public DateTime? StartDate { get; set; }
public string TypeName { get; set; }
@ -420,7 +473,22 @@ namespace IronIntel.Contractor.Site.Maintenance
public string VIN { get; set; }
public long AssetId { get; set; }
public double? EngineHours { get; set; }
public double? Odometer { get; set; }
private double? _Odometer;
public double? Odometer
{
get
{
return _Odometer;
}
set
{
if (value != null)
_Odometer = Math.Round(value.Value, 2);
else
_Odometer = value;
}
}
public string PMScheduleId { get; set; }
public int? StartIntervalValue { get; set; }
public string StartDateString

File diff suppressed because it is too large Load Diff