2475 lines
101 KiB
C#
2475 lines
101 KiB
C#
using Foresight.Fleet.Services.Asset;
|
||
using Foresight.Fleet.Services.AssetHealth;
|
||
using Foresight.Fleet.Services.Inspection;
|
||
using Foresight.Fleet.Services.Inspection.Package;
|
||
using Foresight.Fleet.Services.User;
|
||
using IronIntel.Contractor.FilterQ;
|
||
using IronIntel.Contractor.Machines;
|
||
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 System.Web;
|
||
using Foresight.Standard;
|
||
using Foresight.Fleet.Services.AssetHealth.WorkOrder;
|
||
using FI.FIC;
|
||
|
||
namespace IronIntel.Contractor.Site
|
||
{
|
||
public class InspectionBasePage : ContractorBasePage
|
||
{
|
||
protected void ProcessRequest(string method)
|
||
{
|
||
object result = null;
|
||
try
|
||
{
|
||
string methodName = Request.Params["MethodName"];
|
||
if (methodName != null)
|
||
{
|
||
switch (methodName)
|
||
{
|
||
case "GetGlobalSections":
|
||
result = GetGlobalSections();
|
||
break;
|
||
case "GetGlobalQuestions":
|
||
result = GetGlobalQuestions();
|
||
break;
|
||
case "SaveGlobalSection":
|
||
result = SaveGlobalSection();
|
||
break;
|
||
case "SaveGlobalQuestion":
|
||
result = SaveGlobalQuestion();
|
||
break;
|
||
case "DeleteGlobalSection":
|
||
result = DeleteGlobalSection();
|
||
break;
|
||
case "DeleteGlobalQuestion":
|
||
result = DeleteGlobalQuestion();
|
||
break;
|
||
case "GetTemplates":
|
||
result = GetTemplates();
|
||
break;
|
||
case "GetTemplate":
|
||
result = GetTemplate();
|
||
break;
|
||
case "SaveTemplate":
|
||
result = SaveTemplate();
|
||
break;
|
||
case "DeleteTemplate":
|
||
result = DeleteTemplate();
|
||
break;
|
||
case "PublishTemplate":
|
||
result = PublishTemplate();
|
||
break;
|
||
case "GetAssetMakes":
|
||
result = GetAssetMakes();
|
||
break;
|
||
case "GetAssetModels":
|
||
result = GetAssetModels();
|
||
break;
|
||
case "GetAssetTypes":
|
||
result = GetAssetTypes();
|
||
break;
|
||
case "GetAssetGroups":
|
||
result = GetAssetGroups();
|
||
break;
|
||
case "GetInspectItems":
|
||
result = GetInspectItems();
|
||
break;
|
||
case "GetGlobalSectionsByID":
|
||
result = GetGlobalSectionsByID();
|
||
break;
|
||
case "GetInspectionReport":
|
||
result = GetInspectionReport();
|
||
break;
|
||
case "TemplateSaveAs":
|
||
result = TemplateSaveAs();
|
||
break;
|
||
case "GetInspectEmailList":
|
||
result = GetInspectEmailList();
|
||
break;
|
||
case "GetInspectionReportForEdit":
|
||
result = GetInspectionReportForEdit();
|
||
break;
|
||
case "GetAssetBasicInfoForEdit":
|
||
result = GetAssetBasicInfoForEdit();
|
||
break;
|
||
case "UpdateInspectionReport":
|
||
result = UpdateInspectionReport();
|
||
break;
|
||
case "UploadStaticPicture":
|
||
result = UploadStaticPicture();
|
||
break;
|
||
case "GetStaticPictureContent":
|
||
result = GetStaticPictureContent();
|
||
break;
|
||
case "DeleteStaticPicture":
|
||
result = DeleteStaticPicture();
|
||
break;
|
||
case "GetFuelReportItems":
|
||
result = GetFuelReportItems();
|
||
break;
|
||
case "GetFuelReport":
|
||
result = GetFuelReport();
|
||
break;
|
||
case "GetFuelReportHeaderFooter":
|
||
result = GetFuelReportHeaderFooter();
|
||
break;
|
||
case "UpdateFuelReportHeaderFooter":
|
||
result = UpdateFuelReportHeaderFooter();
|
||
break;
|
||
case "SendFuelTruckFuelReport":
|
||
result = SendFuelTruckFuelReport();
|
||
break;
|
||
case "GetFuelLogEmailList":
|
||
result = GetFuelLogEmailList();
|
||
break;
|
||
case "GetFuelTypes":
|
||
result = GetFuelTypes();
|
||
break;
|
||
case "GetCreatedPackages":
|
||
result = GetCreatedPackages();
|
||
break;
|
||
case "DeletePackage":
|
||
result = DeletePackage();
|
||
break;
|
||
case "CreatePackage":
|
||
result = CreatePackage();
|
||
break;
|
||
case "GetPackageData":
|
||
result = GetPackageData();
|
||
break;
|
||
case "ImportPackage":
|
||
result = ImportPackage();
|
||
break;
|
||
case "GetAssetWorkOrders":
|
||
result = GetAssetWorkOrders();
|
||
break;
|
||
case "GetInspectLayouts":
|
||
result = GetInspectionLayouts();
|
||
break;
|
||
case "GetInspectLayout":
|
||
result = GetInspectLayout();
|
||
break;
|
||
case "SaveInspectLayout":
|
||
result = SaveInspectLayout();
|
||
break;
|
||
case "DeleteInspectLayout":
|
||
result = DeleteInspectLayout();
|
||
break;
|
||
case "UpdateInspectionWorkOrder":
|
||
result = UpdateInspectionWorkOrder();
|
||
break;
|
||
case "GetInspectHistoryItems":
|
||
result = GetInspectHistoryItems();
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
SystemParams.WriteLog("error", "InspectionBasePage", ex.Message, ex.ToString());
|
||
throw ex;
|
||
}
|
||
string json = JsonConvert.SerializeObject(result);
|
||
Response.Write(json);
|
||
Response.End();
|
||
}
|
||
protected void ProcessFileRequest()
|
||
{
|
||
bool download = false;
|
||
string fileName = "";
|
||
byte[] buffer = null;
|
||
try
|
||
{
|
||
string type = Request.Params["t"];
|
||
if (type != null)
|
||
{
|
||
switch (type)
|
||
{
|
||
case "1"://download
|
||
buffer = GetInspectionPDF(out fileName, false);
|
||
download = true;
|
||
break;
|
||
case "2"://print
|
||
buffer = GetInspectionPDF(out fileName);
|
||
break;
|
||
case "3"://download fuel
|
||
buffer = GetFuelReportPDF(out fileName, false);
|
||
download = true;
|
||
break;
|
||
case "4"://print fuel
|
||
buffer = GetFuelReportPDF(out fileName);
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
SystemParams.WriteLog("error", "InspectionBasePage", ex.Message, ex.ToString());
|
||
throw ex;
|
||
}
|
||
|
||
fileName = HttpUtility.UrlEncode(string.IsNullOrEmpty(fileName) ? "attachment" : fileName, System.Text.Encoding.UTF8) + ".pdf";
|
||
|
||
Response.ContentType = "application/pdf";
|
||
Response.BufferOutput = false;
|
||
Response.ContentEncoding = System.Text.Encoding.UTF8;
|
||
Response.AddHeader("Content-Disposition"
|
||
, string.Format("{0}filename={1}", download ? "attachment;" : "", fileName));
|
||
if (buffer != null)
|
||
{
|
||
Response.AddHeader("Content-Length", buffer.Length.ToString());
|
||
Response.BinaryWrite(buffer);
|
||
}
|
||
Response.Flush();
|
||
Response.End();
|
||
}
|
||
|
||
protected object GetInspectItem(string inspectionid)
|
||
{//只有id,不知道类型
|
||
var sesstion = GetCurrentLoginSession();
|
||
|
||
AssetInspectClient aclient = CreateClient<AssetInspectClient>();
|
||
AssetInspectItem aitem = aclient.GetInspectItem(SystemParams.CompanyID, inspectionid, sesstion.User.UID);
|
||
if (aitem != null)
|
||
{
|
||
if (!CheckRight(SystemParams.CompanyID, Foresight.Fleet.Services.User.Feature.INSPECTION_REPORTS))
|
||
return null;
|
||
else
|
||
return aitem;
|
||
}
|
||
|
||
TeamIntelligenceClient tclient = CreateClient<TeamIntelligenceClient>();
|
||
TeamInspectItem titem = tclient.GetInspectItem(SystemParams.CompanyID, inspectionid, sesstion.User.UID);
|
||
|
||
if (!CheckRight(SystemParams.CompanyID, Foresight.Fleet.Services.User.Feature.TEAM_REPORTS))
|
||
return null;
|
||
else
|
||
return titem;
|
||
}
|
||
|
||
|
||
private object GetInspectItems()
|
||
{
|
||
try
|
||
{
|
||
var sesstion = GetCurrentLoginSession();
|
||
if (sesstion != null)
|
||
{
|
||
string clientdata = HttpUtility.HtmlDecode(Request.Params["ClientData"]);
|
||
string[] ps = JsonConvert.DeserializeObject<string[]>(clientdata);
|
||
bool teamintelligence = Helper.IsTrue(ps[0]);
|
||
DateTime startdate = Helper.DBMinDateTime;
|
||
DateTime enddate = DateTime.MaxValue;
|
||
if (!DateTime.TryParse(ps[1], out startdate))
|
||
startdate = Helper.DBMinDateTime;
|
||
if (!DateTime.TryParse(ps[2], out enddate))
|
||
enddate = DateTime.MaxValue;
|
||
|
||
string filter = HttpUtility.HtmlDecode(ps[3]);
|
||
|
||
if (teamintelligence)
|
||
{
|
||
var client = CreateClient<TeamIntelligenceClient>();
|
||
TeamInspectItem[] insplectitems = client.GetInspectItems(SystemParams.CompanyID, startdate, enddate, filter, sesstion.User.UID);
|
||
if (insplectitems == null || insplectitems.Length == 0)
|
||
return new TeamInspectInfo[0];
|
||
|
||
List<TeamInspectInfo> list = new List<TeamInspectInfo>();
|
||
foreach (TeamInspectItem item in insplectitems)
|
||
{
|
||
TeamInspectInfo inspect = new TeamInspectInfo();
|
||
Helper.CloneProperty(inspect, item);
|
||
list.Add(inspect);
|
||
}
|
||
return list.ToArray();
|
||
}
|
||
else
|
||
{
|
||
var client = CreateClient<AssetInspectClient>();
|
||
AssetInspectItem[] insplectitems = client.GetInspectItems(SystemParams.CompanyID, startdate, enddate, filter, sesstion.User.UID);
|
||
if (insplectitems == null || insplectitems.Length == 0)
|
||
return new AssetInspectInfo[0];
|
||
|
||
List<AssetInspectInfo> list = new List<AssetInspectInfo>();
|
||
foreach (AssetInspectItem item in insplectitems)
|
||
{
|
||
AssetInspectInfo inspect = new AssetInspectInfo();
|
||
Helper.CloneProperty(inspect, item);
|
||
if (inspect.WorkOrderId <= 0)
|
||
{
|
||
inspect.WorkOrderNumber = "Not Assigned";
|
||
}
|
||
|
||
List<WorkOrderListItem> lswo = new List<WorkOrderListItem>();
|
||
lswo.Add(new WorkOrderListItem() { Id = -1, WorkOrderNumber = "Not Assigned" });
|
||
if (inspect.WorkOrderId > 0)
|
||
lswo.Add(new WorkOrderListItem() { Id = inspect.WorkOrderId, WorkOrderNumber = inspect.WorkOrderNumber });
|
||
inspect.WorkOrders = lswo.ToArray();
|
||
|
||
list.Add(inspect);
|
||
}
|
||
return list.ToArray();
|
||
}
|
||
|
||
}
|
||
else
|
||
return new AssetInspectItem[0];
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
private object UpdateInspectionWorkOrder()
|
||
{
|
||
try
|
||
{
|
||
var sesstion = GetCurrentLoginSession();
|
||
if (sesstion != null)
|
||
{
|
||
string clientdata = Request.Params["ClientData"];
|
||
string[] ps = JsonConvert.DeserializeObject<string[]>(clientdata);
|
||
string ispid = ps[0];
|
||
long woid = 0;
|
||
long oldwoid = 0;
|
||
long.TryParse(ps[1], out woid);
|
||
long.TryParse(ps[2], out oldwoid);
|
||
|
||
CreateClient<AssetInspectClient>().UpdateInspectionWorkOrder(SystemParams.CompanyID, ispid, woid, oldwoid);
|
||
return new string[0];
|
||
}
|
||
else
|
||
return "Failed";
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
private object GetInspectHistoryItems()
|
||
{
|
||
try
|
||
{
|
||
var sesstion = GetCurrentLoginSession();
|
||
if (sesstion != null)
|
||
{
|
||
string clientdata = Request.Params["ClientData"];
|
||
string[] ps = JsonConvert.DeserializeObject<string[]>(clientdata);
|
||
bool teamintelligence = Helper.IsTrue(ps[0]);
|
||
string inspectid = HttpUtility.HtmlDecode(ps[1]);
|
||
|
||
AssetInspectItem[] insplectitems = null;
|
||
|
||
if (teamintelligence)
|
||
{
|
||
var client = CreateClient<TeamIntelligenceClient>();
|
||
insplectitems = client.GetInspectHistoryItems(SystemParams.CompanyID, inspectid);
|
||
}
|
||
else
|
||
{
|
||
var client = CreateClient<AssetInspectClient>();
|
||
insplectitems = client.GetInspectHistoryItems(SystemParams.CompanyID, inspectid);
|
||
}
|
||
|
||
if (insplectitems == null || insplectitems.Length == 0)
|
||
return new AssetInspectInfo[0];
|
||
|
||
List<AssetInspectInfo> list = new List<AssetInspectInfo>();
|
||
foreach (AssetInspectItem item in insplectitems)
|
||
{
|
||
AssetInspectInfo inspect = new AssetInspectInfo();
|
||
Helper.CloneProperty(inspect, item);
|
||
list.Add(inspect);
|
||
}
|
||
return list.ToArray();
|
||
}
|
||
else
|
||
return new AssetInspectItem[0];
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
|
||
private object GetInspectionReportForEdit()
|
||
{
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
string clientdata = Request.Params["ClientData"];
|
||
string[] ps = JsonConvert.DeserializeObject<string[]>(clientdata);
|
||
bool teamintelligence = Helper.IsTrue(ps[0]);
|
||
string id = HttpUtility.HtmlDecode(ps[1]);
|
||
string companyId = SystemParams.CompanyID;
|
||
|
||
InspectReportInfo report = null;
|
||
var aic = CreateClient<AssetInspectClient>();
|
||
if (teamintelligence)
|
||
{
|
||
var client = CreateClient<TeamIntelligenceClient>();
|
||
report = client.GetInspection(companyId, id);
|
||
}
|
||
else
|
||
{
|
||
report = aic.GetInspection(companyId, id);
|
||
}
|
||
|
||
if (report == null)
|
||
return null;
|
||
|
||
var ir = new InspectReportEditItem();
|
||
Helper.CloneProperty(ir, report);
|
||
ir.CommitTime = ir.CommitTimeLocal;
|
||
ir.Answers.AddRange(report.Answers);
|
||
ir.Medias.AddRange(report.Medias);
|
||
if (!teamintelligence)
|
||
{
|
||
var aclient = FleetServiceClientHelper.CreateClient<AssetQueryClient>(companyId, session.SessionID);
|
||
ir.Asset = aclient.GetAssetBasicInfoByID(companyId, ir.AssetId);
|
||
}
|
||
// list
|
||
//bool hasAsset = false;
|
||
bool hasEmail = false;
|
||
bool hasJobsite = false;
|
||
foreach (var p in report.Template.Pages)
|
||
{
|
||
foreach (var s in p.Sections)
|
||
{
|
||
foreach (var q in s.Questions)
|
||
{
|
||
if (q.QuestionType == QuestionTypes.DropDown)
|
||
{
|
||
//if (q.LookupSource == LookupSources.Assets)
|
||
//{
|
||
// hasAsset = true;
|
||
//}
|
||
//else
|
||
if (q.LookupSource == LookupSources.Employee)
|
||
{
|
||
hasEmail = true;
|
||
}
|
||
else if (q.LookupSource == LookupSources.Jobsites)
|
||
{
|
||
hasJobsite = true;
|
||
}
|
||
}
|
||
else if (q.QuestionType == QuestionTypes.EmailList)
|
||
{
|
||
hasEmail = true;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
var ic = CreateClient<InspectMobileClient>();
|
||
if (hasEmail)
|
||
{
|
||
ir.EmailList = Download(() => ic.DownloadTeamIntelligenceUsers(companyId)).OrderBy(e => e.UserName).ToArray();
|
||
}
|
||
//if (hasAsset)
|
||
//{
|
||
// var ac = CreateClient<AssetQueryClient>();
|
||
// ir.AssetList = ac.GetAssetBasicInfoByUser(companyId, string.Empty, session.User.UID);
|
||
//}
|
||
if (hasJobsite)
|
||
{
|
||
ir.JobSiteList = Download(() => ic.DownloadJobSites(companyId, session.User.UID)).OrderBy(j => j.Name).ToArray();
|
||
}
|
||
return ir;
|
||
}
|
||
else
|
||
return null;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
private object GetAssetBasicInfoForEdit()
|
||
{
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
string clientdata = Request.Params["ClientData"];
|
||
//string[] ps = JsonConvert.DeserializeObject<string[]>(clientdata);
|
||
string companyId = SystemParams.CompanyID;
|
||
|
||
var ac = CreateClient<InspectMobileClient>();
|
||
var list = new List<AssetItem>();
|
||
var assets = Download(startid => ac.DownloadAssets(companyId, session.User.UID, startid, 20000))
|
||
.OrderBy(a => a.Name)
|
||
.ToArray();
|
||
|
||
return assets;
|
||
}
|
||
else
|
||
return null;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
private List<AssetItem> Download(Func<long, AssetItem[]> download, long startid = -1, int size = 100)
|
||
{
|
||
var list = new List<AssetItem>();
|
||
int count = 0;
|
||
while (count < 5)
|
||
{
|
||
try
|
||
{
|
||
var items = download(startid);
|
||
list.AddRange(items);
|
||
if (items.Length < size)
|
||
{
|
||
return list;
|
||
}
|
||
else
|
||
{
|
||
startid = items[items.Length - 1].Id;
|
||
}
|
||
}
|
||
catch
|
||
{
|
||
count++;
|
||
}
|
||
}
|
||
return null;
|
||
}
|
||
|
||
IEnumerable<T> Download<T>(Func<IEnumerable<T>> download)
|
||
{
|
||
int count = 0;
|
||
while (count < 5)
|
||
{
|
||
try
|
||
{
|
||
return download();
|
||
}
|
||
catch
|
||
{
|
||
count++;
|
||
}
|
||
}
|
||
return null;
|
||
}
|
||
|
||
private object UpdateInspectionReport()
|
||
{
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
string clientdata = Request.Params["ClientData"];
|
||
clientdata = HttpUtility.HtmlDecode(clientdata);
|
||
var report = JsonConvert.DeserializeObject<InspectReportInfo>(clientdata);
|
||
bool isTeam = report.Target == TemplateTargets.Person;
|
||
|
||
string companyId = SystemParams.CompanyID;
|
||
foreach (var a in report.Answers)
|
||
{
|
||
if (string.IsNullOrEmpty(a.Id))
|
||
{
|
||
a.Id = Guid.NewGuid().ToString();
|
||
}
|
||
}
|
||
|
||
// TODO: media
|
||
|
||
if (isTeam)
|
||
{
|
||
var tc = CreateClient<TeamIntelligenceClient>();
|
||
tc.UpdateTeamInspect(companyId, report, session.User.UID);
|
||
}
|
||
else
|
||
{
|
||
var ac = CreateClient<AssetInspectClient>();
|
||
ac.UpdateAssetInspect(companyId, report, session.User.UID);
|
||
}
|
||
|
||
return true;
|
||
}
|
||
else
|
||
return null;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
private object GetInspectionReport()
|
||
{
|
||
try
|
||
{
|
||
var sesstion = GetCurrentLoginSession();
|
||
if (sesstion != null)
|
||
{
|
||
string clientdata = Request.Params["ClientData"];
|
||
string[] ps = JsonConvert.DeserializeObject<string[]>(clientdata);
|
||
bool teamintelligence = Helper.IsTrue(ps[0]);
|
||
string id = HttpUtility.HtmlDecode(ps[1]);
|
||
|
||
InspectReportInfo report = null;
|
||
ReportLayoutInfo layout = null;
|
||
if (teamintelligence)
|
||
{
|
||
var client = CreateClient<TeamIntelligenceClient>();
|
||
report = client.GetInspection(SystemParams.CompanyID, id);
|
||
if (report != null)
|
||
layout = client.GetInspectReportLayout(SystemParams.CompanyID, id);
|
||
}
|
||
else
|
||
{
|
||
var client = CreateClient<AssetInspectClient>();
|
||
report = client.GetInspection(SystemParams.CompanyID, id);
|
||
if (report != null)
|
||
layout = client.GetInspectReportLayout(SystemParams.CompanyID, id);
|
||
}
|
||
|
||
if (report == null)
|
||
return null;
|
||
|
||
InspectReportItem ir = new InspectReportItem();
|
||
Helper.CloneProperty(ir, report);
|
||
ir.CommitTime = ir.CommitTimeLocal;
|
||
ir.Answers.AddRange(report.Answers);
|
||
ir.Medias.AddRange(report.Medias);
|
||
ir.IdentifiedQuestions = new List<IdentifiedQuestionItem>();
|
||
foreach (var p in ir.Template.Pages)
|
||
{
|
||
foreach (var s in p.Sections)
|
||
{
|
||
foreach (var q in s.Questions)
|
||
{
|
||
var qType = ConvertQuestionType(q);
|
||
foreach (var a in ir.Answers)
|
||
{
|
||
if (q.Id.Equals(a.QuestionId, StringComparison.OrdinalIgnoreCase))
|
||
{
|
||
if (qType == QuestionTypes.Date || qType == QuestionTypes.DateAndTime)
|
||
{
|
||
DateTime dt = DateTime.Now;
|
||
if (DateTime.TryParse(a.Result, out dt))
|
||
{
|
||
if (qType == QuestionTypes.Date)
|
||
a.Result = dt.ToString("M/d/yyyy tt");
|
||
else if (qType == QuestionTypes.DateAndTime)
|
||
a.Result = dt.ToString("M/d/yyyy h:mm:ss tt");
|
||
}
|
||
}
|
||
else if (qType == QuestionTypes.Number
|
||
|| qType == QuestionTypes.Integer
|
||
|| qType == QuestionTypes.EngingHours
|
||
|| qType == QuestionTypes.Odometer)
|
||
{
|
||
double tn = 0;
|
||
if (double.TryParse(a.Result, out tn))
|
||
a.Result = tn.ToString("#,##0.##");
|
||
}
|
||
|
||
//IdentifiedQuestion
|
||
if (qType != QuestionTypes.DropDown
|
||
&& qType != QuestionTypes.YesOrNo
|
||
&& qType != QuestionTypes.List)
|
||
{
|
||
if (a.SeverityLevel != SeverityLeveles.None)
|
||
{
|
||
if (qType == QuestionTypes.Picture)
|
||
{
|
||
var ms = ir.Medias.FirstOrDefault(m => m.AnswerId.ToString() == a.Id.ToString());
|
||
if (ms == null)
|
||
continue;
|
||
}
|
||
IdentifiedQuestionItem iq = new IdentifiedQuestionItem();
|
||
Helper.CloneProperty(iq, q);
|
||
if (q.StaticPictures != null && q.StaticPictures.Count > 0)
|
||
{
|
||
foreach (var sp in q.StaticPictures)
|
||
{
|
||
PictureInfo isp = new PictureInfo();
|
||
Helper.CloneProperty(isp, sp);
|
||
iq.StaticPictures.Add(isp);
|
||
}
|
||
}
|
||
iq.IdentifiedSeverityLevel = a.SeverityLevel;
|
||
ir.IdentifiedQuestions.Add(iq);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if (a.SelectedItems != null && a.SelectedItems.Count() > 0)
|
||
{
|
||
bool hasseveritylevel = a.SelectedItems.Count(m => m.SeverityLevel != SeverityLeveles.None) > 0;
|
||
if (hasseveritylevel)
|
||
{
|
||
IdentifiedQuestionItem iq = new IdentifiedQuestionItem();
|
||
Helper.CloneProperty(iq, q);
|
||
if (q.StaticPictures != null && q.StaticPictures.Count > 0)
|
||
{
|
||
foreach (var sp in q.StaticPictures)
|
||
{
|
||
PictureInfo isp = new PictureInfo();
|
||
Helper.CloneProperty(isp, sp);
|
||
iq.StaticPictures.Add(isp);
|
||
}
|
||
}
|
||
|
||
iq.IdentifiedSeverityLevel = SeverityLeveles.Low;
|
||
bool isHigh = a.SelectedItems.Count(m => m.SeverityLevel == SeverityLeveles.High) > 0;
|
||
if (isHigh)
|
||
iq.IdentifiedSeverityLevel = SeverityLeveles.High;
|
||
else
|
||
{
|
||
bool isMedium = a.SelectedItems.Count(m => m.SeverityLevel == SeverityLeveles.Medium) > 0;
|
||
if (isMedium)
|
||
iq.IdentifiedSeverityLevel = SeverityLeveles.Medium;
|
||
}
|
||
ir.IdentifiedQuestions.Add(iq);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if (a.SeverityLevel != SeverityLeveles.None)
|
||
{
|
||
IdentifiedQuestionItem iq = new IdentifiedQuestionItem();
|
||
Helper.CloneProperty(iq, q);
|
||
if (q.StaticPictures != null && q.StaticPictures.Count > 0)
|
||
{
|
||
foreach (var sp in q.StaticPictures)
|
||
{
|
||
PictureInfo isp = new PictureInfo();
|
||
Helper.CloneProperty(isp, sp);
|
||
iq.StaticPictures.Add(isp);
|
||
}
|
||
}
|
||
iq.IdentifiedSeverityLevel = a.SeverityLevel;
|
||
ir.IdentifiedQuestions.Add(iq);
|
||
}
|
||
}
|
||
}
|
||
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
if (!teamintelligence)
|
||
{
|
||
var aclient = FleetServiceClientHelper.CreateClient<AssetQueryClient>(SystemParams.CompanyID, sesstion.SessionID);
|
||
ir.Asset = aclient.GetAssetBasicInfoByID(SystemParams.CompanyID, ir.AssetId);
|
||
}
|
||
ir.IdentifiedQuestions = ir.IdentifiedQuestions.OrderByDescending(m => m.IdentifiedSeverityLevel).ToList();
|
||
|
||
if (layout != null)
|
||
{
|
||
layout.PageHeaderLeft = Escape(layout.PageHeaderLeft);
|
||
layout.PageHeaderCenter = Escape(layout.PageHeaderCenter);
|
||
layout.PageHeaderRight = Escape(layout.PageHeaderRight);
|
||
layout.PageFooterLeft = Escape(layout.PageFooterLeft);
|
||
layout.PageFooterCenter = Escape(layout.PageFooterCenter);
|
||
layout.PageFooterRight = Escape(layout.PageFooterRight);
|
||
}
|
||
ir.ReportLayout = layout;
|
||
return ir;
|
||
}
|
||
else
|
||
return null;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
string Escape(string html)
|
||
{
|
||
if (string.IsNullOrEmpty(html))
|
||
{
|
||
return string.Empty;
|
||
}
|
||
return HttpUtility.HtmlEncode(html).Replace("\n", "<br/>");
|
||
}
|
||
|
||
private QuestionTypes ConvertQuestionType(Question q)
|
||
{
|
||
var questionType = q.QuestionType;
|
||
if (questionType == QuestionTypes.FuelRecords)
|
||
{
|
||
switch (q.SubType)
|
||
{
|
||
case (int)FuelRecordTypes.TransactionDate:
|
||
questionType = QuestionTypes.DateAndTime;
|
||
break;
|
||
case (int)FuelRecordTypes.Odometer:
|
||
case (int)FuelRecordTypes.Quantity:
|
||
case (int)FuelRecordTypes.UnitCost:
|
||
case (int)FuelRecordTypes.TotalCost:
|
||
questionType = QuestionTypes.Odometer;
|
||
break;
|
||
case (int)FuelRecordTypes.FuelType:
|
||
case (int)FuelRecordTypes.State:
|
||
case (int)FuelRecordTypes.DistributedBy:
|
||
questionType = QuestionTypes.DropDown;
|
||
break;
|
||
case (int)FuelRecordTypes.Notes:
|
||
questionType = QuestionTypes.MultipleLineText;
|
||
break;
|
||
case (int)FuelRecordTypes.Picture:
|
||
questionType = QuestionTypes.Picture;
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
return questionType;
|
||
}
|
||
|
||
private byte[] GetInspectionPDF(out string fileName, bool print = true)
|
||
{
|
||
fileName = "";
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
string id = Request.Params["id"];
|
||
bool teamintelligence = Helper.IsTrue(Request.Params["team"]);
|
||
byte[] bytes = null;
|
||
if (teamintelligence)
|
||
{
|
||
var client = CreateClient<TeamIntelligenceClient>();
|
||
bytes = client.GetInspectionPDF(SystemParams.CompanyID, id);
|
||
fileName = client.GetInspection(SystemParams.CompanyID, id).Template.Name;
|
||
FICHostEnvironment.WriteExportAuditTrail(session.User.UID, "Inspection", "", print ? "Print" : "Download", fileName, print ? "" : ".pdf", bytes);
|
||
}
|
||
else
|
||
{
|
||
var client = CreateClient<AssetInspectClient>();
|
||
bytes = client.GetInspectionPDF(SystemParams.CompanyID, id);
|
||
fileName = client.GetInspection(SystemParams.CompanyID, id).Template.Name;
|
||
FICHostEnvironment.WriteExportAuditTrail(session.User.UID, "AssetInspect", "", print ? "Print" : "Download", fileName, print ? "" : ".pdf", bytes);
|
||
}
|
||
return bytes;
|
||
}
|
||
else
|
||
return null;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return null;
|
||
}
|
||
}
|
||
|
||
private object GetTemplates()
|
||
{
|
||
try
|
||
{
|
||
var user = GetCurrentUser();
|
||
if (user != null)
|
||
{
|
||
string clientdata = HttpUtility.HtmlDecode(Request.Params["ClientData"]);
|
||
string[] ps = JsonConvert.DeserializeObject<string[]>(clientdata);
|
||
bool teamintelligence = Helper.IsTrue(ps[0]);
|
||
int state = 0;
|
||
if (!int.TryParse(ps[1], out state))
|
||
state = -1;
|
||
string filter = HttpUtility.HtmlDecode(ps[2]);
|
||
|
||
int makeid = -1;
|
||
if (!int.TryParse(ps[3], out makeid))
|
||
makeid = -1;
|
||
int[] modelids = JsonConvert.DeserializeObject<int[]>(ps[4]);
|
||
int[] typeids = JsonConvert.DeserializeObject<int[]>(ps[5]);
|
||
string[] groupids = JsonConvert.DeserializeObject<string[]>(ps[6]);
|
||
|
||
FormTemplateItem[] templates = null;
|
||
if (teamintelligence)
|
||
{
|
||
var client = CreateClient<TeamIntelligenceClient>();
|
||
templates = client.GetFormTemplateItems(SystemParams.CompanyID, filter, user.IID, state);
|
||
}
|
||
else
|
||
{
|
||
var client = CreateClient<AssetInspectClient>();
|
||
templates = client.GetAssetTemplateItems(SystemParams.CompanyID, filter, makeid, modelids, typeids, groupids, user.IID, state);
|
||
}
|
||
return templates;
|
||
}
|
||
else
|
||
return new FormTemplateItem[0];
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
private object GetInspectEmailList()
|
||
{
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
string clientdata = Request.Params["ClientData"];
|
||
bool teamintelligence = Helper.IsTrue(clientdata);
|
||
|
||
UserEmailInfo[] users = null;
|
||
if (teamintelligence)
|
||
{
|
||
var client = CreateClient<TeamIntelligenceClient>();
|
||
users = client.GetInspectEmailList(SystemParams.CompanyID, string.Empty);
|
||
}
|
||
else
|
||
{
|
||
var client = CreateClient<AssetInspectClient>();
|
||
users = client.GetInspectEmailList(SystemParams.CompanyID, string.Empty);
|
||
}
|
||
return users;
|
||
}
|
||
else
|
||
return new UserEmailInfo[0];
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
private object GetTemplate()
|
||
{
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
var clientdata = Request.Params["ClientData"];
|
||
string[] ps = JsonConvert.DeserializeObject<string[]>(clientdata);
|
||
bool teamintelligence = Helper.IsTrue(ps[0]);
|
||
string id = HttpUtility.HtmlDecode(ps[1]);
|
||
|
||
FormTemplateInfo template = null;
|
||
if (teamintelligence)
|
||
{
|
||
var client = CreateClient<TeamIntelligenceClient>();
|
||
template = client.GetFormTemplate(SystemParams.CompanyID, Convert.ToInt64(id));
|
||
}
|
||
else
|
||
{
|
||
var client = CreateClient<AssetInspectClient>();
|
||
template = client.GetFormTemplate(SystemParams.CompanyID, Convert.ToInt64(id));
|
||
}
|
||
return template;
|
||
}
|
||
else
|
||
return null;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
private object TemplateSaveAs()
|
||
{
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
string clientdata = Request.Params["ClientData"];
|
||
string[] ps = JsonConvert.DeserializeObject<string[]>(clientdata);
|
||
bool teamintelligence = Helper.IsTrue(ps[0]);
|
||
long srctempid = Convert.ToInt64(ps[1]);
|
||
string newtemplatename = HttpUtility.HtmlDecode(ps[2]);
|
||
|
||
if (teamintelligence)
|
||
{
|
||
var client = CreateClient<TeamIntelligenceClient>();
|
||
long id = client.TemplateSaveAs(SystemParams.CompanyID, srctempid, newtemplatename, session.User.UID);
|
||
}
|
||
else
|
||
{
|
||
var client = CreateClient<AssetInspectClient>();
|
||
long id = client.TemplateSaveAs(SystemParams.CompanyID, srctempid, newtemplatename, session.User.UID);
|
||
}
|
||
return "OK";
|
||
}
|
||
else
|
||
{
|
||
return "Failed";
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
private object SaveTemplate()
|
||
{
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
string clientdata = Request.Params["ClientData"];
|
||
string[] ps = JsonConvert.DeserializeObject<string[]>(clientdata);
|
||
bool teamintelligence = Helper.IsTrue(ps[0]);
|
||
var data = HttpUtility.HtmlDecode(ps[1]);
|
||
FormTemplateInfo templateinfo = JsonConvert.DeserializeObject<FormTemplateInfo>(HttpUtility.HtmlDecode(data));
|
||
|
||
var user = UserManagement.GetUserByIID(session.User.UID);
|
||
if (user.UserType == Users.UserTypes.Readonly)
|
||
return "";
|
||
else if (user.UserType == Users.UserTypes.Common)
|
||
{
|
||
var pc = CreateClient<PermissionProvider>(session.SessionID);
|
||
Tuple<Feature, Permissions>[] pmss = pc.GetUserPermissions(SystemParams.CompanyID, user.IID);
|
||
if (pmss.Length > 0)
|
||
{
|
||
int pkey = teamintelligence ? Feature.TEAM_TEMPLATES : Feature.INSPECTION_TEMPLATES;
|
||
Tuple<Feature, Permissions> pm = pmss.FirstOrDefault(m => m.Item1.Id == pkey);
|
||
if (pm.Equals(default(KeyValuePair<int, Permissions>))
|
||
|| pm.Item2 != Permissions.FullControl)
|
||
{
|
||
return "";
|
||
}
|
||
}
|
||
else
|
||
return "";
|
||
}
|
||
|
||
if (templateinfo != null)
|
||
{
|
||
if (templateinfo.Pages != null)
|
||
{
|
||
foreach (var p in templateinfo.Pages)
|
||
{
|
||
if (string.IsNullOrWhiteSpace(p.Id))
|
||
p.Id = Guid.NewGuid().ToString();
|
||
if (p.Sections != null)
|
||
{
|
||
foreach (var s in p.Sections)
|
||
{
|
||
if (string.IsNullOrWhiteSpace(s.Id))
|
||
s.Id = Guid.NewGuid().ToString();
|
||
|
||
if (s.Questions != null)
|
||
{
|
||
foreach (var q in s.Questions)
|
||
{
|
||
if (string.IsNullOrWhiteSpace(q.Id))
|
||
q.Id = Guid.NewGuid().ToString();
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
if (user.UserType < Users.UserTypes.SupperAdmin && !templateinfo.Editable)
|
||
{
|
||
if (teamintelligence)
|
||
{
|
||
var client = CreateClient<TeamIntelligenceClient>();
|
||
string[] useriids = null;
|
||
if (templateinfo.EmailList != null)
|
||
useriids = templateinfo.EmailList.Select(u => u.UserIID).ToArray();
|
||
client.SetTemplateEmailList(SystemParams.CompanyID, templateinfo.Id, useriids, templateinfo.Emails);
|
||
}
|
||
else
|
||
{
|
||
var client = CreateClient<AssetInspectClient>();
|
||
string[] useriids = null;
|
||
if (templateinfo.EmailList != null)
|
||
useriids = templateinfo.EmailList.Select(u => u.UserIID).ToArray();
|
||
|
||
client.SetTemplateEmailList(SystemParams.CompanyID, templateinfo.Id, useriids, templateinfo.Emails);
|
||
}
|
||
return templateinfo.Id;
|
||
}
|
||
|
||
FormTemplateInfo newtemp = null;
|
||
if (teamintelligence)
|
||
{
|
||
var client = CreateClient<TeamIntelligenceClient>();
|
||
newtemp = client.UpdateTemplate(SystemParams.CompanyID, templateinfo, session.User.UID);
|
||
}
|
||
else
|
||
{
|
||
var client = CreateClient<AssetInspectClient>();
|
||
newtemp = client.UpdateTemplate(SystemParams.CompanyID, templateinfo, session.User.UID);
|
||
}
|
||
if (templateinfo.Id < 0)
|
||
{
|
||
// add template, need return some properties like Editable, IssueId
|
||
return newtemp;
|
||
}
|
||
return newtemp.Id;
|
||
}
|
||
else
|
||
{
|
||
return "Failed";
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
private object DeleteTemplate()
|
||
{
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
string clientdata = Request.Params["ClientData"];
|
||
string[] ps = JsonConvert.DeserializeObject<string[]>(clientdata);
|
||
bool teamintelligence = Helper.IsTrue(ps[0]);
|
||
long tempid = Convert.ToInt64(ps[1]);
|
||
|
||
if (teamintelligence)
|
||
{
|
||
var client = CreateClient<TeamIntelligenceClient>();
|
||
client.DeleteTemplate(SystemParams.CompanyID, tempid, session.User.UID, string.Empty);
|
||
}
|
||
else
|
||
{
|
||
var client = CreateClient<AssetInspectClient>();
|
||
client.DeleteTemplate(SystemParams.CompanyID, tempid, session.User.UID, string.Empty);
|
||
}
|
||
return "OK";
|
||
}
|
||
else
|
||
{
|
||
return "Failed";
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
private object PublishTemplate()
|
||
{
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
string clientdata = Request.Params["ClientData"];
|
||
string[] ps = JsonConvert.DeserializeObject<string[]>(clientdata);
|
||
bool teamintelligence = Helper.IsTrue(ps[0]);
|
||
long tempid = Convert.ToInt64(ps[1]);
|
||
|
||
if (teamintelligence)
|
||
{
|
||
var client = CreateClient<TeamIntelligenceClient>();
|
||
client.PublishTemplate(SystemParams.CompanyID, tempid, session.User.UID);
|
||
}
|
||
else
|
||
{
|
||
var client = CreateClient<AssetInspectClient>();
|
||
client.PublishTemplate(SystemParams.CompanyID, tempid, session.User.UID);
|
||
}
|
||
return "OK";
|
||
}
|
||
else
|
||
{
|
||
return "Failed";
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
private object GetGlobalSections()
|
||
{
|
||
try
|
||
{
|
||
if (GetCurrentLoginSession() != null)
|
||
{
|
||
var data = Request.Params["ClientData"];
|
||
bool teamintelligence = Helper.IsTrue(data);
|
||
|
||
Section[] sections = null;
|
||
if (teamintelligence)
|
||
{
|
||
var client = CreateClient<TeamIntelligenceClient>();
|
||
sections = client.GetGlobalSectionItems(SystemParams.CompanyID);
|
||
}
|
||
else
|
||
{
|
||
var client = CreateClient<AssetInspectClient>();
|
||
sections = client.GetGlobalSectionItems(SystemParams.CompanyID);
|
||
}
|
||
return sections;
|
||
}
|
||
else
|
||
return new Section[0];
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
private object GetGlobalQuestions()
|
||
{
|
||
try
|
||
{
|
||
if (GetCurrentLoginSession() != null)
|
||
{
|
||
string clientdata = Request.Params["ClientData"];
|
||
string[] ps = JsonConvert.DeserializeObject<string[]>(clientdata);
|
||
bool teamintelligence = Helper.IsTrue(ps[0]);
|
||
string sectionid = HttpUtility.HtmlDecode(ps[1]);
|
||
|
||
Question[] questions = null;
|
||
if (teamintelligence)
|
||
{
|
||
var client = CreateClient<TeamIntelligenceClient>();
|
||
questions = client.GetGlobalQuestions(SystemParams.CompanyID, sectionid);
|
||
}
|
||
else
|
||
{
|
||
var client = CreateClient<AssetInspectClient>();
|
||
questions = client.GetGlobalQuestions(SystemParams.CompanyID, sectionid);
|
||
}
|
||
return questions;
|
||
}
|
||
else
|
||
return new Question[0];
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
private object SaveGlobalSection()
|
||
{
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
string clientdata = Request.Params["ClientData"];
|
||
string[] ps = JsonConvert.DeserializeObject<string[]>(clientdata);
|
||
bool teamintelligence = Helper.IsTrue(ps[0]);
|
||
var data = HttpUtility.HtmlDecode(ps[1]);
|
||
Section sec = JsonConvert.DeserializeObject<Section>(data);
|
||
|
||
if (string.IsNullOrEmpty(sec.Id))
|
||
sec.Id = Guid.NewGuid().ToString();
|
||
|
||
if (teamintelligence)
|
||
{
|
||
var client = CreateClient<TeamIntelligenceClient>();
|
||
client.UpdateGlobalSectionItem(SystemParams.CompanyID, sec, session.User.UID);
|
||
}
|
||
else
|
||
{
|
||
var client = CreateClient<AssetInspectClient>();
|
||
client.UpdateGlobalSectionItem(SystemParams.CompanyID, sec, session.User.UID);
|
||
}
|
||
|
||
return new string[] { sec.Id, "Saved successfully." };
|
||
}
|
||
else
|
||
{
|
||
return "Failed";
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
private object SaveGlobalQuestion()
|
||
{
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
string clientdata = Request.Params["ClientData"];
|
||
string[] data = JsonConvert.DeserializeObject<string[]>(clientdata);
|
||
bool teamintelligence = Helper.IsTrue(data[0]);
|
||
string sectioinid = data[1];
|
||
Question q = JsonConvert.DeserializeObject<Question>(HttpUtility.HtmlDecode(data[2]));
|
||
|
||
if (teamintelligence)
|
||
{
|
||
var client = CreateClient<TeamIntelligenceClient>();
|
||
if (string.IsNullOrEmpty(q.Id))
|
||
{
|
||
q.Id = Guid.NewGuid().ToString();
|
||
client.AddGlobalQuestion(SystemParams.CompanyID, sectioinid, q, session.User.UID);
|
||
}
|
||
else
|
||
{
|
||
client.UpdateGlobalQuestion(SystemParams.CompanyID, sectioinid, q, session.User.UID);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
var client = CreateClient<AssetInspectClient>();
|
||
if (string.IsNullOrEmpty(q.Id))
|
||
{
|
||
q.Id = Guid.NewGuid().ToString();
|
||
client.AddGlobalQuestion(SystemParams.CompanyID, sectioinid, q, session.User.UID);
|
||
}
|
||
else
|
||
{
|
||
client.UpdateGlobalQuestion(SystemParams.CompanyID, sectioinid, q, session.User.UID);
|
||
}
|
||
}
|
||
|
||
return new string[] { q.Id, "Saved successfully." };
|
||
}
|
||
else
|
||
{
|
||
return "Failed";
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
private object DeleteGlobalSection()
|
||
{
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
string clientdata = Request.Params["ClientData"];
|
||
string[] ps = JsonConvert.DeserializeObject<string[]>(clientdata);
|
||
bool teamintelligence = Helper.IsTrue(ps[0]);
|
||
string sectionid = HttpUtility.HtmlDecode(ps[1]);
|
||
|
||
if (teamintelligence)
|
||
{
|
||
var client = CreateClient<TeamIntelligenceClient>();
|
||
client.DeleteGlobalSection(SystemParams.CompanyID, sectionid, "", session.User.UID);
|
||
}
|
||
else
|
||
{
|
||
var client = CreateClient<AssetInspectClient>();
|
||
client.DeleteGlobalSection(SystemParams.CompanyID, sectionid, "", session.User.UID);
|
||
}
|
||
return "OK";
|
||
}
|
||
else
|
||
{
|
||
return "Failed";
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
private object DeleteGlobalQuestion()
|
||
{
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
string clientdata = Request.Params["ClientData"];
|
||
string[] ps = JsonConvert.DeserializeObject<string[]>(clientdata);
|
||
bool teamintelligence = Helper.IsTrue(ps[0]);
|
||
string questionid = HttpUtility.HtmlDecode(ps[1]);
|
||
|
||
if (teamintelligence)
|
||
{
|
||
var client = CreateClient<TeamIntelligenceClient>();
|
||
client.DeleteGlobalQuestion(SystemParams.CompanyID, questionid, "", session.User.UID);
|
||
}
|
||
else
|
||
{
|
||
var client = CreateClient<AssetInspectClient>();
|
||
client.DeleteGlobalQuestion(SystemParams.CompanyID, questionid, "", session.User.UID);
|
||
}
|
||
return "OK";
|
||
}
|
||
else
|
||
{
|
||
return "Failed";
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
private object GetGlobalSectionsByID()
|
||
{
|
||
try
|
||
{
|
||
if (GetCurrentLoginSession() != null)
|
||
{
|
||
string clientdata = Request.Params["ClientData"];
|
||
string[] ps = JsonConvert.DeserializeObject<string[]>(clientdata);
|
||
bool teamintelligence = Helper.IsTrue(ps[0]);
|
||
string[] sids = JsonConvert.DeserializeObject<string[]>(ps[1]);
|
||
|
||
Section[] sections = null;
|
||
if (teamintelligence)
|
||
{
|
||
var client = CreateClient<TeamIntelligenceClient>();
|
||
sections = client.GetGlobalSection(SystemParams.CompanyID, sids);
|
||
}
|
||
else
|
||
{
|
||
var client = CreateClient<AssetInspectClient>();
|
||
sections = client.GetGlobalSection(SystemParams.CompanyID, sids);
|
||
}
|
||
return sections;
|
||
}
|
||
else
|
||
return new Section[0];
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
private object GetAssetMakes()
|
||
{
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
AssetMake[] makes = CreateClient<AssetClassProvider>().GetAssetMakes(string.Empty);
|
||
List<AssetMakeItem> ls = new List<AssetMakeItem>();
|
||
foreach (var mk in makes)
|
||
{
|
||
AssetMakeItem item = new AssetMakeItem();
|
||
Helper.CloneProperty(item, mk);
|
||
ls.Add(item);
|
||
}
|
||
return ls.OrderBy(m => m.Name).ToArray();
|
||
|
||
}
|
||
else
|
||
return new AssetMakeItem[0];
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
private object GetAssetModels()
|
||
{
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
var clientdata = Request.Form["ClientData"];
|
||
string[] ps = JsonConvert.DeserializeObject<string[]>(clientdata);
|
||
int makeid = -1;
|
||
int.TryParse(ps[0], out makeid);
|
||
var searchtxt = HttpUtility.HtmlDecode(ps[1]);
|
||
|
||
AssetModel[] models = CreateClient<AssetClassProvider>().GetAssetModels(makeid, searchtxt);
|
||
List<AssetModelItem> ls = new List<AssetModelItem>();
|
||
foreach (var md in models)
|
||
{
|
||
AssetModelItem item = new AssetModelItem();
|
||
Helper.CloneProperty(item, md);
|
||
if (md.MakeId > 0)
|
||
{
|
||
item.MakeID = md.MakeId;
|
||
item.MakeName = md.MakeName;
|
||
}
|
||
if (md.TypeId > 0)
|
||
{
|
||
item.TypeID = md.TypeId;
|
||
item.TypeName = md.TypeName;
|
||
}
|
||
ls.Add(item);
|
||
}
|
||
|
||
return ls.OrderBy(m => m.Name).ToArray();
|
||
}
|
||
else
|
||
return new AssetModelItem[0];
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
private object GetAssetTypes()
|
||
{
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
AssetType[] types = CreateClient<AssetClassProvider>().GetAssetTypes(SystemParams.CompanyID);
|
||
return types;
|
||
|
||
}
|
||
else
|
||
return new AssetType[0];
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
private object GetAssetGroups()
|
||
{
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
var groups = CreateClient<AssetQueryClient>(SystemParams.CompanyID).GetAssetGroups(SystemParams.CompanyID, "", session.User.UID);
|
||
return groups.OrderBy(g => g.Name).ToArray();
|
||
}
|
||
else
|
||
return new AssetGroupInfo[0];
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
private object UploadStaticPicture()
|
||
{
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
string clientdata = HttpUtility.HtmlDecode(Request.Params["ClientData"]);
|
||
bool teamintelligence = Helper.IsTrue(clientdata);
|
||
|
||
HttpPostedFile uploadFile = null;
|
||
byte[] iconfilebyte = null;
|
||
if (Request.Files.Count > 0)
|
||
{
|
||
uploadFile = Request.Files[0];
|
||
iconfilebyte = ConvertFile2bytes(uploadFile);
|
||
}
|
||
string filetype = uploadFile.FileName.Substring(uploadFile.FileName.LastIndexOf("."));
|
||
if (teamintelligence)
|
||
{
|
||
var client = CreateClient<TeamIntelligenceClient>();
|
||
Tuple<string, string> tp = client.UploadStaticPicture(SystemParams.CompanyID, filetype, iconfilebyte);
|
||
return tp;
|
||
}
|
||
else
|
||
{
|
||
var client = CreateClient<AssetInspectClient>();
|
||
Tuple<string, string> tp = client.UploadStaticPicture(SystemParams.CompanyID, filetype, iconfilebyte);
|
||
return tp;
|
||
}
|
||
}
|
||
return null;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
private object GetStaticPictureContent()
|
||
{
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
string clientdata = Request.Params["ClientData"];
|
||
string[] ps = JsonConvert.DeserializeObject<string[]>(clientdata);
|
||
bool teamintelligence = Helper.IsTrue(ps[0]);
|
||
string fileid = ps[1];
|
||
if (teamintelligence)
|
||
{
|
||
var client = CreateClient<TeamIntelligenceClient>();
|
||
return client.GetStaticPictureContent(SystemParams.CompanyID, fileid);
|
||
}
|
||
else
|
||
{
|
||
var client = CreateClient<AssetInspectClient>();
|
||
return client.GetStaticPictureContent(SystemParams.CompanyID, fileid);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
return null;
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
private object DeleteStaticPicture()
|
||
{
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
string clientdata = Request.Params["ClientData"];
|
||
string[] ps = JsonConvert.DeserializeObject<string[]>(clientdata);
|
||
bool teamintelligence = Helper.IsTrue(ps[0]);
|
||
string fileid = ps[1];
|
||
if (teamintelligence)
|
||
{
|
||
var client = CreateClient<TeamIntelligenceClient>();
|
||
client.DeleteStaticPicture(SystemParams.CompanyID, fileid);
|
||
}
|
||
else
|
||
{
|
||
var client = CreateClient<AssetInspectClient>();
|
||
client.DeleteStaticPicture(SystemParams.CompanyID, fileid);
|
||
}
|
||
return "OK";
|
||
}
|
||
else
|
||
{
|
||
return "Failed";
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
private object GetFuelTypes()
|
||
{
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
List<KeyValuePair<string, string>> list = FuelManagementClient.FuelTypes.OrderBy(m => m.Value).ToList();
|
||
var type1 = list.FirstOrDefault(m => m.Value == "Unleaded Regular");
|
||
var type2 = list.FirstOrDefault(m => m.Value == "Unleaded Plus");
|
||
var type3 = list.FirstOrDefault(m => m.Value == "Diesel #1");
|
||
list.Remove(type1);
|
||
list.Remove(type2);
|
||
list.Remove(type3);
|
||
list = list.OrderBy(m => m.Value).ToList();
|
||
list.Insert(0, type1);
|
||
list.Insert(1, type2);
|
||
list.Insert(2, type3);
|
||
return list.ToArray();
|
||
}
|
||
else
|
||
return new StringKeyValue[0];
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
AddLog("ERROR", "InspectionBasePage.GetFuelTypes", ex.Message, ex.ToString());
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
#region Fuel Log
|
||
|
||
private object GetFuelReportItems()
|
||
{
|
||
try
|
||
{
|
||
var sesstion = GetCurrentLoginSession();
|
||
if (sesstion != null)
|
||
{
|
||
string clientdata = Request.Params["ClientData"];
|
||
string[] ps = JsonConvert.DeserializeObject<string[]>(clientdata);
|
||
bool teamintelligence = Helper.IsTrue(ps[0]);
|
||
DateTime startdate = Helper.DBMinDateTime;
|
||
DateTime enddate = DateTime.MaxValue;
|
||
if (!DateTime.TryParse(ps[1], out startdate))
|
||
startdate = Helper.DBMinDateTime;
|
||
if (!DateTime.TryParse(ps[2], out enddate))
|
||
enddate = DateTime.MaxValue;
|
||
|
||
if (teamintelligence)
|
||
{
|
||
var client = CreateClient<TeamIntelligenceClient>();
|
||
return new FuelTruckFuelReportItemInfo[0];
|
||
}
|
||
else
|
||
{
|
||
var client = CreateClient<AssetInspectClient>();
|
||
FuelTruckFuelReportItem[] fuelitems = client.GetFuelReportItems(SystemParams.CompanyID, startdate, enddate, -1);
|
||
if (fuelitems == null || fuelitems.Length == 0)
|
||
return new FuelLogItem[0];
|
||
|
||
fuelitems = fuelitems.OrderByDescending(m => m.CheckInTimeLocal).ToArray();
|
||
|
||
List<FuelLogItem> ls = new List<FuelLogItem>();
|
||
foreach (FuelTruckFuelReportItem item in fuelitems)
|
||
{
|
||
FuelTruckFuelReportItemInfo fuelinfo = new FuelTruckFuelReportItemInfo();
|
||
Helper.CloneProperty(fuelinfo, item);
|
||
|
||
FuelLogItem fuellog = ls.FirstOrDefault(m => m.LocalCalendarDate == fuelinfo.LocalCalendarDate);
|
||
if (fuellog == null)
|
||
{
|
||
fuellog = new FuelLogItem();
|
||
fuellog.LocalCalendarDate = fuelinfo.LocalCalendarDate;
|
||
fuellog.FuelReportItems = new List<FuelTruckFuelReportItemInfo>();
|
||
fuellog.FuelReportItems.Add(fuelinfo);
|
||
ls.Add(fuellog);
|
||
}
|
||
else
|
||
{
|
||
if (fuellog.FuelReportItems == null)
|
||
fuellog.FuelReportItems = new List<FuelTruckFuelReportItemInfo>();
|
||
fuellog.FuelReportItems.Add(fuelinfo);
|
||
}
|
||
}
|
||
|
||
return ls.OrderByDescending(m => m.LocalCalendarDate).ToArray();
|
||
}
|
||
|
||
}
|
||
else
|
||
return new FuelLogItem[0];
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
private object GetFuelReport()
|
||
{
|
||
try
|
||
{
|
||
var sesstion = GetCurrentLoginSession();
|
||
if (sesstion != null)
|
||
{
|
||
string clientdata = Request.Params["ClientData"];
|
||
string[] ps = JsonConvert.DeserializeObject<string[]>(clientdata);
|
||
bool teamintelligence = Helper.IsTrue(ps[0]);
|
||
string id = HttpUtility.HtmlDecode(ps[1]);
|
||
|
||
FuelTruckFuelReport report = null;
|
||
FuelReportHeaderFooterItem hf = null;
|
||
if (teamintelligence)
|
||
{
|
||
var client = CreateClient<TeamIntelligenceClient>();
|
||
}
|
||
else
|
||
{
|
||
var client = CreateClient<AssetInspectClient>();
|
||
report = client.GetFuelReport(SystemParams.CompanyID, Convert.ToInt64(id));
|
||
hf = client.GetFuelReportHeaderFooter(SystemParams.CompanyID);
|
||
}
|
||
|
||
if (report == null)
|
||
return null;
|
||
|
||
FuelTruckFuelReportInfo fr = new FuelTruckFuelReportInfo();
|
||
Helper.CloneProperty(fr, report);
|
||
fr.TotalQtyStr = FormatDouble(report.TotalQty);
|
||
fr.StartMasterMeterStr = FormatDouble(report.StartMasterMeter);
|
||
fr.EndMasterMeterStr = FormatDouble(report.EndMasterMeter);
|
||
fr.InchesLeftonTruckStr = FormatDouble(report.InchesLeftonTruck);
|
||
if (report.Items != null)
|
||
{
|
||
List<FuelDetailInfo> list = new List<FuelDetailInfo>();
|
||
foreach (var a in report.Items)
|
||
{
|
||
FuelDetailInfo fi = new FuelDetailInfo();
|
||
Helper.CloneProperty(fi, a);
|
||
fi.AssetMeterStr = FormatDouble(fi.AssetMeter, fi.AssetMeterUnits);
|
||
fi.MasterMeterStr = FormatDouble(fi.MasterMeter);
|
||
fi.QtyPumpedStr = FormatDouble(fi.QtyPumped);
|
||
fi.QtyOnTruckStr = FormatDouble(fi.QtyOnTruck);
|
||
list.Add(fi);
|
||
}
|
||
fr.FuelDetailItems = list.ToArray();
|
||
}
|
||
|
||
fr.HeaderFooter = hf;
|
||
return fr;
|
||
}
|
||
else
|
||
return null;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
private object GetFuelReportHeaderFooter()
|
||
{
|
||
try
|
||
{
|
||
var sesstion = GetCurrentLoginSession();
|
||
if (sesstion != null)
|
||
{
|
||
string clientdata = Request.Params["ClientData"];
|
||
bool teamintelligence = Helper.IsTrue(clientdata);
|
||
|
||
FuelReportHeaderFooterItem item = null;
|
||
if (teamintelligence)
|
||
{
|
||
var client = CreateClient<TeamIntelligenceClient>();
|
||
}
|
||
else
|
||
{
|
||
var client = CreateClient<AssetInspectClient>();
|
||
item = client.GetFuelReportHeaderFooter(SystemParams.CompanyID);
|
||
}
|
||
|
||
return item;
|
||
|
||
}
|
||
else
|
||
return null;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
private object UpdateFuelReportHeaderFooter()
|
||
{
|
||
try
|
||
{
|
||
var sesstion = GetCurrentLoginSession();
|
||
if (sesstion != null)
|
||
{
|
||
string clientdata = Request.Params["ClientData"];
|
||
string[] ps = JsonConvert.DeserializeObject<string[]>(clientdata);
|
||
bool teamintelligence = Helper.IsTrue(ps[0]);
|
||
string data = HttpUtility.HtmlDecode(ps[1]);
|
||
FuelReportHeaderFooterItem item = JsonConvert.DeserializeObject<FuelReportHeaderFooterItem>(data);
|
||
if (teamintelligence)
|
||
{
|
||
var client = CreateClient<TeamIntelligenceClient>();
|
||
}
|
||
else
|
||
{
|
||
var client = CreateClient<AssetInspectClient>();
|
||
client.UpdateFuelReportHeaderFooter(SystemParams.CompanyID, item);
|
||
}
|
||
return "OK";
|
||
}
|
||
else
|
||
{
|
||
return "Failed";
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
private object GetFuelLogEmailList()
|
||
{
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
Foresight.Fleet.Services.User.UserInfo[] users = FleetServiceClientHelper.CreateClient<UserQueryClient>(SystemParams.CompanyID, session.SessionID).GetUsersByCustomerID(SystemParams.CompanyID, "");
|
||
|
||
if (users == null || users.Length == 0)
|
||
return new Foresight.Fleet.Services.User.UserInfo[0];
|
||
|
||
return users;
|
||
}
|
||
else
|
||
return new Foresight.Fleet.Services.User.UserInfo[0];
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
private object SendFuelTruckFuelReport()
|
||
{
|
||
try
|
||
{
|
||
var sesstion = GetCurrentLoginSession();
|
||
if (sesstion != null)
|
||
{
|
||
string clientdata = Request.Params["ClientData"];
|
||
string[] ps = JsonConvert.DeserializeObject<string[]>(clientdata);
|
||
bool teamintelligence = Helper.IsTrue(ps[0]);
|
||
string id = HttpUtility.HtmlDecode(ps[1]);
|
||
string edata = HttpUtility.HtmlDecode(ps[2]);
|
||
string[] emails = JsonConvert.DeserializeObject<string[]>(edata);
|
||
if (teamintelligence)
|
||
{
|
||
var client = CreateClient<TeamIntelligenceClient>();
|
||
}
|
||
else
|
||
{
|
||
var client = CreateClient<AssetInspectClient>();
|
||
client.SendFuelTruckFuelReport(SystemParams.CompanyID, Convert.ToInt64(id), emails);
|
||
}
|
||
return "OK";
|
||
}
|
||
else
|
||
{
|
||
return "Failed";
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
private byte[] GetFuelReportPDF(out string fileName, bool print = true)
|
||
{
|
||
fileName = "";
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
string id = Request.Params["id"];
|
||
bool teamintelligence = Helper.IsTrue(Request.Params["team"]);
|
||
byte[] bytes = null;
|
||
if (teamintelligence)
|
||
{
|
||
var client = CreateClient<TeamIntelligenceClient>();
|
||
}
|
||
else
|
||
{
|
||
var client = CreateClient<AssetInspectClient>();
|
||
bytes = client.GetFuelLogPDF(SystemParams.CompanyID, Convert.ToInt64(id));
|
||
fileName = "Fuel Log * Shipping Paper";//client.GetFuelReport(SystemParams.CompanyID, Convert.ToInt64(id)).EmployeeNumber;
|
||
FICHostEnvironment.WriteExportAuditTrail(session.User.UID, "FuelReport", "", print ? "Print" : "Download", fileName, print ? "" : ".pdf", bytes);
|
||
}
|
||
return bytes;
|
||
}
|
||
else
|
||
return null;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return null;
|
||
}
|
||
}
|
||
|
||
protected object GetFuelReportItem(long reportid)
|
||
{//只有id,不知道类型
|
||
var sesstion = GetCurrentLoginSession();
|
||
bool fuellog = SystemParams.HasLicense("FuelLog");
|
||
bool isadmin = (sesstion.User.UserType == Foresight.Fleet.Services.User.UserTypes.SupperAdmin || sesstion.User.UserType == Foresight.Fleet.Services.User.UserTypes.Admin);
|
||
AssetInspectClient aclient = CreateClient<AssetInspectClient>();
|
||
FuelTruckFuelReport aitem = aclient.GetFuelReport(SystemParams.CompanyID, reportid);
|
||
if (aitem != null)
|
||
{
|
||
var ins = CheckRight(SystemParams.CompanyID, Feature.INSPECTION_REPORTS);
|
||
if (fuellog && (isadmin || (sesstion.User.UserType == Foresight.Fleet.Services.User.UserTypes.Common && ins)))
|
||
return aitem;
|
||
else
|
||
return null;
|
||
}
|
||
return null;
|
||
}
|
||
|
||
public static string FormatDouble(double val, string unit = "")
|
||
{
|
||
if (val > 0)
|
||
return string.Format("{0:N2}", val) + " " + unit;
|
||
return string.Empty;
|
||
}
|
||
#endregion
|
||
|
||
#region Packages
|
||
|
||
private object GetCreatedPackages()
|
||
{
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
var client = CreateClient<InspectPackageProvider>();
|
||
InspectPackageItem[] items = client.GetCreatedPackages(SystemParams.CompanyID);
|
||
if (items == null)
|
||
return new InspectPackageInfo[0];
|
||
|
||
List<InspectPackageInfo> ls = new List<InspectPackageInfo>();
|
||
foreach (InspectPackageItem item in items)
|
||
{
|
||
InspectPackageInfo pi = new InspectPackageInfo();
|
||
Helper.CloneProperty(pi, item);
|
||
ls.Add(pi);
|
||
}
|
||
return ls.ToArray();
|
||
}
|
||
else
|
||
return new InspectPackageInfo[0];
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
private object DeletePackage()
|
||
{
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
string clientdata = Request.Params["ClientData"];
|
||
string[] ps = JsonConvert.DeserializeObject<string[]>(clientdata);
|
||
bool teamintelligence = Helper.IsTrue(ps[0]);
|
||
string packageid = ps[1];
|
||
|
||
var client = CreateClient<InspectPackageProvider>();
|
||
client.DeletePackage(SystemParams.CompanyID, packageid);
|
||
return "OK";
|
||
}
|
||
else
|
||
{
|
||
return "Failed";
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
private object GetPackageContent()
|
||
{
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
string clientdata = Request.Params["ClientData"];
|
||
string[] ps = JsonConvert.DeserializeObject<string[]>(clientdata);
|
||
bool teamintelligence = Helper.IsTrue(ps[0]);
|
||
string packageid = ps[1];
|
||
|
||
var client = CreateClient<InspectPackageProvider>();
|
||
client._GetPackageContent(SystemParams.CompanyID, packageid);
|
||
return "OK";
|
||
}
|
||
else
|
||
{
|
||
return "Failed";
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
private object CreatePackage()
|
||
{
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
string clientdata = HttpUtility.HtmlDecode(Request.Params["ClientData"]);
|
||
string[] ps = JsonConvert.DeserializeObject<string[]>(clientdata);
|
||
long[] templates = JsonConvert.DeserializeObject<long[]>(ps[3]);
|
||
string[] globalsections = JsonConvert.DeserializeObject<string[]>(ps[4]);
|
||
|
||
var client = CreateClient<InspectPackageProvider>();
|
||
string pkgid = client.CreatePackage(SystemParams.CompanyID, ps[0], ps[1], ps[2], templates, globalsections);
|
||
return new { Id = pkgid };
|
||
}
|
||
else
|
||
{
|
||
return "Failed";
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
private object GetPackageData()
|
||
{
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
string clientdata = HttpUtility.HtmlDecode(Request.Params["ClientData"]);
|
||
string pwd = clientdata;
|
||
byte[] buffer = null;
|
||
if (Request.Files.Count > 0)
|
||
{
|
||
var pkgfile = Request.Files[0];
|
||
buffer = ConvertFile2bytes(pkgfile);
|
||
}
|
||
if (buffer != null && !string.IsNullOrEmpty(pwd))
|
||
{
|
||
var pkgdata = InspectPackage.FromBuffer(pwd, buffer);
|
||
InspectPackageData data = new InspectPackageData();
|
||
data.GlobalSections.AddRange(pkgdata.GlobalItems.Values.Where(t => t.ItemType == 1));
|
||
data.IssueId = pkgdata.IssueId;
|
||
data.IssueName = pkgdata.IssueName;
|
||
data.Notes = pkgdata.Notes;
|
||
data.PackageId = pkgdata.PackageId;
|
||
data.PackageName = pkgdata.PackageName;
|
||
//data.StaticPictures
|
||
data.Templates.AddRange(pkgdata.Templates);
|
||
return data;
|
||
}
|
||
return "";
|
||
}
|
||
else
|
||
{
|
||
return "Failed";
|
||
}
|
||
}
|
||
catch (BusinessException ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return "Invalid package.";
|
||
}
|
||
}
|
||
private object ImportPackage()
|
||
{
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
string clientdata = HttpUtility.HtmlDecode(Request.Params["ClientData"]);
|
||
string[] ps = JsonConvert.DeserializeObject<string[]>(clientdata);
|
||
long[] templates = JsonConvert.DeserializeObject<long[]>(ps[1]);
|
||
string[] globalsections = JsonConvert.DeserializeObject<string[]>(ps[2]);
|
||
|
||
byte[] buffer = null;
|
||
if (Request.Files.Count > 0)
|
||
{
|
||
var pkgfile = Request.Files[0];
|
||
buffer = ConvertFile2bytes(pkgfile);
|
||
}
|
||
if (buffer != null)
|
||
{
|
||
var client = CreateClient<InspectPackageProvider>();
|
||
client.ImportPackage(SystemParams.CompanyID, buffer, templates, globalsections, ps[0] == "1");
|
||
}
|
||
return "OK";
|
||
}
|
||
else
|
||
{
|
||
return "Failed";
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
private object GetAssetWorkOrders()
|
||
{
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
var clientdata = Request.Form["ClientData"];
|
||
long assetid = 0;
|
||
if (long.TryParse(clientdata, out assetid))
|
||
{
|
||
var wos = CreateClient<WorkOrderProvider>().GetWorkOrderItemsByAsset(SystemParams.CompanyID, assetid);
|
||
return wos.OrderByDescending(w => !w.Completed).ThenBy(w => w.WorkOrderNumber).ToArray();
|
||
}
|
||
|
||
return new WorkOrderListItem[0];
|
||
}
|
||
else
|
||
return new WorkOrderListItem[0];
|
||
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
AddLog("ERROR", "WorkOrderBasePage.GetAssetWorkOrders", ex.Message, ex.ToString());
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
private object GetInspectionLayouts()
|
||
{
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
var clientdata = HttpUtility.UrlDecode(Request.Form["ClientData"]);
|
||
string[] ps = JsonConvert.DeserializeObject<string[]>(clientdata);
|
||
bool teamintelligence = Helper.IsTrue(ps[0]);
|
||
if (teamintelligence)
|
||
{
|
||
return CreateClient<TeamIntelligenceClient>().GetReportLayoutItems(SystemParams.CompanyID, ps[1]);
|
||
}
|
||
else
|
||
{
|
||
return CreateClient<AssetInspectClient>().GetReportLayoutItems(SystemParams.CompanyID, ps[1]);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
return new ReportLayoutItem[0];
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
AddLog("ERROR", "InspectionPage.GetInspectionLayouts", ex.Message, ex.ToString());
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
private object GetInspectLayout()
|
||
{
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
var clientdata = HttpUtility.UrlDecode(Request.Form["ClientData"]);
|
||
string[] ps = JsonConvert.DeserializeObject<string[]>(clientdata);
|
||
bool teamintelligence = Helper.IsTrue(ps[0]);
|
||
string id = ps[1];
|
||
if (teamintelligence)
|
||
{
|
||
return CreateClient<TeamIntelligenceClient>().GetReportLayoutInfo(SystemParams.CompanyID, id);
|
||
}
|
||
else
|
||
{
|
||
return CreateClient<AssetInspectClient>().GetReportLayoutInfo(SystemParams.CompanyID, id);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
return new ReportLayoutItem[0];
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
AddLog("ERROR", "InspectionPage.GetInspectLayout", ex.Message, ex.ToString());
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
private object DeleteInspectLayout()
|
||
{
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
var clientdata = HttpUtility.UrlDecode(Request.Form["ClientData"]);
|
||
string[] ps = JsonConvert.DeserializeObject<string[]>(clientdata);
|
||
bool teamintelligence = Helper.IsTrue(ps[0]);
|
||
string id = ps[1];
|
||
if (teamintelligence)
|
||
{
|
||
CreateClient<TeamIntelligenceClient>().DeleteReportLayout(SystemParams.CompanyID, id);
|
||
}
|
||
else
|
||
{
|
||
CreateClient<AssetInspectClient>().DeleteReportLayout(SystemParams.CompanyID, id);
|
||
}
|
||
return "OK";
|
||
}
|
||
else
|
||
{
|
||
return "Failed";
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
AddLog("ERROR", "InspectionPage.DeleteInspectLayout", ex.Message, ex.ToString());
|
||
return ex.Message;
|
||
}
|
||
}
|
||
|
||
private object SaveInspectLayout()
|
||
{
|
||
try
|
||
{
|
||
var session = GetCurrentLoginSession();
|
||
if (session != null)
|
||
{
|
||
string clientdata = HttpUtility.UrlDecode(Request.Params["ClientData"]);
|
||
var layout = JsonConvert.DeserializeObject<ReportLayoutInfo>(clientdata);
|
||
if (string.IsNullOrEmpty(layout.Id))
|
||
{
|
||
layout.Id = Guid.NewGuid().ToString();
|
||
}
|
||
bool teamintelligence = layout.Target == TemplateTargets.Person;
|
||
|
||
if (Request.Files.Count > 0)
|
||
{
|
||
for (int i = 0; i < Request.Files.Count; i++)
|
||
{
|
||
var logoFile = Request.Files[i];
|
||
var logo = ConvertFile2bytes(logoFile);
|
||
string key = Request.Files.AllKeys[i];
|
||
if (string.Compare("iconFile", key, true) == 0)
|
||
layout.LOGO = FI.FIC.ResManager.MakeThumbnail(logo, 0, 180, "H");
|
||
else if (string.Compare("iconCenterFile", key, true) == 0)
|
||
layout.CenterLOGO = FI.FIC.ResManager.MakeThumbnail(logo, 0, 180, "H");
|
||
else if (string.Compare("iconRightFile", key, true) == 0)
|
||
layout.RightLOGO = FI.FIC.ResManager.MakeThumbnail(logo, 0, 180, "H");
|
||
}
|
||
}
|
||
|
||
if (teamintelligence)
|
||
{
|
||
CreateClient<TeamIntelligenceClient>().UpdateReportLayout(SystemParams.CompanyID, layout);
|
||
}
|
||
else
|
||
{
|
||
CreateClient<AssetInspectClient>().UpdateReportLayout(SystemParams.CompanyID, layout);
|
||
}
|
||
|
||
return new string[] { layout.Id, "Saved successfully." };
|
||
}
|
||
else
|
||
{
|
||
return "Failed";
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
AddLog("ERROR", "InspectionPage.SaveInspectLayout", ex.Message, ex.ToString());
|
||
return ex.Message;
|
||
}
|
||
}
|
||
}
|
||
|
||
class TeamInspectInfo : TeamInspectItem
|
||
{
|
||
public string CommitTimeStr { get { return CommitTime == DateTime.MinValue ? "" : CommitTime.ToString(("M/d/yyyy h:mm tt")); } }
|
||
public string CommitTimeLocalStr { get { return CommitTimeLocal == DateTime.MinValue ? "" : CommitTimeLocal.ToString(("M/d/yyyy h:mm tt")); } }
|
||
public string LastUpdatedTimeLocalStr { get { return LastUpdatedTime.Year <= 1900 ? "" : LastUpdatedTimeLocal.ToString(("M/d/yyyy h:mm tt")); } }
|
||
}
|
||
|
||
class InspectReportItem : InspectReportInfo
|
||
{
|
||
public AssetBasicInfo Asset { get; set; }
|
||
public string CommitTimeStr { get { return CommitTime == DateTime.MinValue ? "" : CommitTime.ToString("M/d/yyyy h:mm tt"); } }
|
||
public string CommitTimeLocalStr { get { return CommitTimeLocal == DateTime.MinValue ? "" : CommitTimeLocal.ToString(("M/d/yyyy h:mm tt")); } }
|
||
public List<IdentifiedQuestionItem> IdentifiedQuestions { get; set; }
|
||
public ReportLayoutInfo ReportLayout { get; set; }
|
||
}
|
||
class IdentifiedQuestionItem : Question
|
||
{
|
||
public SeverityLeveles IdentifiedSeverityLevel { get; set; }
|
||
}
|
||
class InspectReportEditItem : InspectReportInfo
|
||
{
|
||
public AssetBasicInfo Asset { get; set; }
|
||
public string CommitTimeStr { get { return CommitTime == DateTime.MinValue ? "" : CommitTime.ToString("M/d/yyyy h:mm tt"); } }
|
||
public string CommitTimeLocalStr { get { return CommitTimeLocal == DateTime.MinValue ? "" : CommitTimeLocal.ToString("M/d/yyyy h:mm tt"); } }
|
||
public UserEmailInfo[] EmailList { get; set; }
|
||
public AssetBasicInfo[] AssetList { get; set; }
|
||
public JobSiteItem[] JobSiteList { get; set; }
|
||
}
|
||
|
||
class FuelLogItem
|
||
{
|
||
public DateTime LocalCalendarDate { get; set; }
|
||
public string LocalCalendarDateStr { get { return LocalCalendarDate == DateTime.MinValue ? "" : LocalCalendarDate.ToString("M/d/yyyy"); } }
|
||
public int FuelReportCount { get { return FuelReportItems == null ? 0 : FuelReportItems.Count(); } }
|
||
public List<FuelTruckFuelReportItemInfo> FuelReportItems { get; set; }
|
||
}
|
||
|
||
class FuelTruckFuelReportItemInfo : FuelTruckFuelReportItem
|
||
{
|
||
public string LocalCalendarDateStr { get { return LocalCalendarDate == DateTime.MinValue ? "" : LocalCalendarDate.ToString("M/d/yyyy"); } }
|
||
public string CheckInTimeLocalStr { get { return CheckInTimeLocal == DateTime.MinValue ? "" : CheckInTimeLocal.ToString("h:mm tt"); } }
|
||
public string CheckOutTimeLocalStr { get { return CheckOutTimeLocal == null ? "" : CheckOutTimeLocal.Value.ToString("h:mm tt"); } }
|
||
}
|
||
|
||
class FuelTruckFuelReportInfo : FuelTruckFuelReport
|
||
{
|
||
public string LocalCalendarDateStr { get { return LocalCalendarDate == DateTime.MinValue ? "" : LocalCalendarDate.ToString("M/d/yyyy"); } }
|
||
public FuelDetailInfo[] FuelDetailItems { get; set; }
|
||
public string CheckInLocalStr { get { return CheckInLocal == DateTime.MinValue ? "" : CheckInLocal.ToString("M/d/yyyy h:mm tt"); } }
|
||
public string CheckOutLocalStr { get { return CheckOutLocal == null ? "" : CheckOutLocal.Value.ToString("M/d/yyyy h:mm tt"); } }
|
||
|
||
public string StartMasterMeterStr { get; set; }
|
||
public string EndMasterMeterStr { get; set; }
|
||
public string TotalQtyStr { get; set; }
|
||
public string InchesLeftonTruckStr { get; set; }
|
||
public FuelReportHeaderFooterItem HeaderFooter { get; set; }
|
||
}
|
||
|
||
class FuelDetailInfo : FuelDetailItem
|
||
{
|
||
public string CommitTimeLocalStr { get { return CommitTimeLocal == DateTime.MinValue ? "" : CommitTimeLocal.ToString("M/d/yyyy h:mm tt"); } }
|
||
public string AssetMeterStr { get; set; }
|
||
public string MasterMeterStr { get; set; }
|
||
public string QtyPumpedStr { get; set; }
|
||
public string QtyOnTruckStr { get; set; }
|
||
}
|
||
class InspectPackageInfo : InspectPackageItem
|
||
{
|
||
public string CreatedOnLocalStr { get { return CreatedOnLocal == DateTime.MinValue ? "" : CreatedOnLocal.ToString("M/d/yyyy h:mm tt"); } }
|
||
|
||
}
|
||
class InspectPackageData : InspectPackage
|
||
{
|
||
public List<Pkg_TemplateItem> GlobalSections { get; set; } = new List<Pkg_TemplateItem>();
|
||
}
|
||
}
|
||
|