diff --git a/IronIntelContractorBusiness/ExportExcelManager.cs b/IronIntelContractorBusiness/ExportExcelManager.cs index e0ba987..c114a15 100644 --- a/IronIntelContractorBusiness/ExportExcelManager.cs +++ b/IronIntelContractorBusiness/ExportExcelManager.cs @@ -73,7 +73,7 @@ namespace IronIntel.Contractor { var dr = dt.NewRow(); dr[0] = r.VIN; - dr[1] = r.ShowName; + dr[1] = r.DisplayName; dr[2] = r.Outside; dr[3] = r.Vendor; dr[4] = r.RentalRate; @@ -161,7 +161,7 @@ namespace IronIntel.Contractor dr[2] = r.LastUpdateDateStr; //dr[3] = r.OperateType; dr[3] = r.VIN; - dr[4] = r.ShowName; + dr[4] = r.DisplayName; dr[5] = r.Outside; dr[6] = r.Vendor; dr[7] = r.RentalRate; diff --git a/IronIntelContractorBusiness/Machines/MachineItem.cs b/IronIntelContractorBusiness/Machines/MachineItem.cs index 549147a..3169c3e 100644 --- a/IronIntelContractorBusiness/Machines/MachineItem.cs +++ b/IronIntelContractorBusiness/Machines/MachineItem.cs @@ -247,7 +247,7 @@ namespace IronIntel.Contractor.Machines public string AddedOnStr { get { return AddedOn == DateTime.MinValue ? "" : AddedOn.ToShortDateString(); } } public string AddedBy { get; set; } public string AddedByName { get; set; } - public string ShowName + public string DisplayName { get { @@ -294,6 +294,8 @@ namespace IronIntel.Contractor.Machines public long Id { get; set; } public bool Active { get; } public long DeviceID { get; set; } + public bool FIInstalltion { get; set; } + public string Installer { get; set; } public string AddDateStr { get { return AddLocalDate == null ? "" : AddLocalDate.Value.ToShortDateString(); } } public string InvoiceDateStr { get { return InvoiceDate == null ? "" : InvoiceDate.Value.ToShortDateString(); } } public string ServiceStartDateStr { get { return ServiceStartDate == null ? "" : ServiceStartDate.Value.ToShortDateString(); } } diff --git a/IronIntelContractorBusiness/Machines/MachineRentalInfo.cs b/IronIntelContractorBusiness/Machines/MachineRentalInfo.cs index 9be24c2..5387c55 100644 --- a/IronIntelContractorBusiness/Machines/MachineRentalInfo.cs +++ b/IronIntelContractorBusiness/Machines/MachineRentalInfo.cs @@ -37,7 +37,7 @@ namespace IronIntel.Contractor.Machines public bool Selected { get; set; } - public string ShowName + public string DisplayName { get { diff --git a/IronIntelContractorBusiness/Maintenance/MaintenanceInfo.cs b/IronIntelContractorBusiness/Maintenance/MaintenanceInfo.cs index f808c6c..0f230e9 100644 --- a/IronIntelContractorBusiness/Maintenance/MaintenanceInfo.cs +++ b/IronIntelContractorBusiness/Maintenance/MaintenanceInfo.cs @@ -104,7 +104,7 @@ namespace IronIntel.Contractor.Maintenance public bool HasAttachment { get; set; } public string[] AttachmentIDs { get; set; }//用于保存 - public string ShowName + public string DisplayName { get { @@ -158,7 +158,7 @@ namespace IronIntel.Contractor.Maintenance return StartDate.ToShortDateString(); } } - public string ShowName + public string DisplayName { get { diff --git a/IronIntelContractorBusiness/MapView/AssetMapViewManagement.cs b/IronIntelContractorBusiness/MapView/AssetMapViewManagement.cs index 08ef5cb..7af2c95 100644 --- a/IronIntelContractorBusiness/MapView/AssetMapViewManagement.cs +++ b/IronIntelContractorBusiness/MapView/AssetMapViewManagement.cs @@ -20,7 +20,7 @@ namespace IronIntel.Contractor.MapView /// 根据Contractorid获取机器列表 /// /// - public static AssetViewItem[] GetAssets(string sessionid, string companyid, string useriid, string filtertext, int onroad, MachineAlertViewQueryParameter param, bool IncludeNoLocation) + public static AssetMapViewPinItem[] GetAssets(string sessionid, string companyid, string useriid, string filtertext, int onroad, MachineAlertViewQueryParameter param, bool IncludeNoLocation) { if (string.IsNullOrEmpty(companyid)) companyid = SystemParams.CompanyID; @@ -39,14 +39,15 @@ namespace IronIntel.Contractor.MapView var client = FleetServiceClientHelper.CreateClient(companyid, sessionid); AssetMapViewPinItem[] assets = client.GetAssets(companyid, useriid, qp); - List result = new List(); - foreach (var a in assets) - { - AssetViewItem avi = new AssetViewItem(); - Helper.CloneProperty(avi, a); - result.Add(avi); - } - return result.ToArray(); + return assets; + //List result = new List(); + //foreach (var a in assets) + //{ + // AssetViewItem avi = new AssetViewItem(); + // Helper.CloneProperty(avi, a); + // result.Add(avi); + //} + //return result.ToArray(); } public static AssetDetailViewItem GetAssetDetailItem(string sessionid, string companyid, long machineid, string datasource = null) @@ -65,6 +66,7 @@ namespace IronIntel.Contractor.MapView mi.GroupNames = asset.GroupNames; mi.IconUrl = asset.MapViewIconUrl; mi.AssetIconUrl = asset.AssetIconUrl; + mi.Description = asset.Description; if (asset.CurrentHours != null) { @@ -226,8 +228,8 @@ namespace IronIntel.Contractor.MapView var client = FleetServiceClientHelper.CreateClient(companyid, sessionid); AssetBasicInfo asset = client.GetAssetBasicInfoByID(companyid, Convert.ToInt64(machineid)); - AssetViewItem ai = new AssetViewItem(); - Helper.CloneProperty(ai, asset); + //AssetViewItem ai = new AssetViewItem(); + //Helper.CloneProperty(ai, asset); double timeOffset = SystemParams.GetHoursOffset(); startTime = startTime.AddHours(-timeOffset); @@ -257,7 +259,7 @@ namespace IronIntel.Contractor.MapView ls.Add(li); } AssetLocationHistoryViewItem al = new AssetLocationHistoryViewItem(); - al.Machine = ai; + al.Machine = asset; al.Locations = ls.ToArray(); return al; } diff --git a/IronIntelContractorBusiness/MapView/AssetViewItems.cs b/IronIntelContractorBusiness/MapView/AssetViewItems.cs index b9949c1..d131df8 100644 --- a/IronIntelContractorBusiness/MapView/AssetViewItems.cs +++ b/IronIntelContractorBusiness/MapView/AssetViewItems.cs @@ -9,39 +9,6 @@ using System.Threading.Tasks; namespace IronIntel.Contractor.MapView { - public class AssetViewItem - { - public long ID { get; set; } - public string VIN { get; set; } - public string Name { get; set; } - public string Name2 { get; set; } - public string Make { get; set; } - public string Model { get; set; } - public int Priority { get; set; } - public string AssetType { get; set; } - public double Latitude { get; set; } - public double Longitude { get; set; } - public string IconUrl { get; set; } - public string AlertTips { get; set; } - public List AssetGroups { get; set; } - public List JobSites { get; set; } - public string ShowName - { - get - { - //Name取值顺序为Name2,Name,VIN,ID用于前端显示 - string name = Name2; - if (string.IsNullOrWhiteSpace(name)) - name = Name; - if (string.IsNullOrWhiteSpace(name)) - name = VIN; - if (string.IsNullOrWhiteSpace(name)) - name = ID.ToString(); - return name; - } - }//由于地图显示及排序的名称 - - } public class AssetDetailViewItem { private double _EngineHours; @@ -84,6 +51,7 @@ namespace IronIntel.Contractor.MapView public long ID { get; set; } public string IconUrl { get; set; } public string AssetIconUrl { get; set; } + public string Description { get; set; } public LocationViewItem Location { get; set; } public string EngineHoursDateText { @@ -100,7 +68,7 @@ namespace IronIntel.Contractor.MapView public class AssetLocationHistoryViewItem { - public AssetViewItem Machine { get; set; } + public AssetBasicInfo Machine { get; set; } public LocationViewItem[] Locations { get; set; } } diff --git a/IronIntelContractorBusiness/MapView/MachineStateInfo.cs b/IronIntelContractorBusiness/MapView/MachineStateInfo.cs index 7fb8cd8..d2d3611 100644 --- a/IronIntelContractorBusiness/MapView/MachineStateInfo.cs +++ b/IronIntelContractorBusiness/MapView/MachineStateInfo.cs @@ -66,7 +66,7 @@ namespace IronIntel.Contractor.MapView public int MapAlertLayerPriority { get; set; } public Int64 GpsDeviceID { get; set; } //空 -1 public string AssetGroupNames { get; set; } - public string ShowName + public string DisplayName { get { diff --git a/IronIntelContractorBusiness/OTRConfig/HarshDrivingItem.cs b/IronIntelContractorBusiness/OTRConfig/HarshDrivingItem.cs index 6327e6f..38014d3 100644 --- a/IronIntelContractorBusiness/OTRConfig/HarshDrivingItem.cs +++ b/IronIntelContractorBusiness/OTRConfig/HarshDrivingItem.cs @@ -40,7 +40,7 @@ namespace IronIntel.Contractor.OTRConfig public HarshDrivingEvents HarshDringEvent { get; set; } public SpeedingBehaviors SpeedingBehavior { get; set; } - public string ShowName + public string DisplayName { get { diff --git a/IronIntelContractorBusiness/Properties/AssemblyInfo.cs b/IronIntelContractorBusiness/Properties/AssemblyInfo.cs index 59a8bc7..ca68b8a 100644 --- a/IronIntelContractorBusiness/Properties/AssemblyInfo.cs +++ b/IronIntelContractorBusiness/Properties/AssemblyInfo.cs @@ -33,4 +33,4 @@ using System.Runtime.InteropServices; // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("2.20.526")] +[assembly: AssemblyFileVersion("2.20.609")] diff --git a/IronIntelContractorBusiness/Users/AppModuleInfo.cs b/IronIntelContractorBusiness/Users/AppModuleInfo.cs index 75fe67c..5296903 100644 --- a/IronIntelContractorBusiness/Users/AppModuleInfo.cs +++ b/IronIntelContractorBusiness/Users/AppModuleInfo.cs @@ -5,6 +5,7 @@ using System.Text; using System.Threading.Tasks; using System.Data; using Foresight.Data; +using Foresight.Fleet.Services.User; namespace IronIntel.Contractor.Users { @@ -20,6 +21,245 @@ namespace IronIntel.Contractor.Users public string ForeColor { get; set; } public bool OpenInNewWindow { get; set; } public AppModuleType ModuleType { get; set; } + public List SubItems { get; set; } + + public List GetMaintenanceNavigateItems(Tuple[] pmss) + { + List list = new List(); + + NavigateItem item = new NavigateItem(); + item.ID = "nav_alertsmanagement"; + item.FeatureID = Feature.ALERTS_MANAGEMENT; + item.Title = "Alerts Management **New**"; + item.Url = Url + "#" + item.ID; + item.PageUrl = "AlertsManagement.aspx"; + item.IconPath = "img/alert.png"; + if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.ALERTS_MANAGEMENT) != null) + list.Add(item); + + item = new NavigateItem(); + item.ID = "nav_workorder"; + item.FeatureID = Feature.WORK_ORDER; + item.Title = "Work Order **New**"; + item.Url = Url + "#" + item.ID; + item.PageUrl = "WorkOrderMaintenance.aspx"; + item.IconPath = "img/workorder.png"; + if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.WORK_ORDER) != null) + list.Add(item); + + item = new NavigateItem(); + item.ID = "nav_preventative"; + item.FeatureID = Feature.PREVENTATIVE_MAINTENANCE; + item.Title = "Absolute Hours Maintenance"; + item.Url = Url + "#" + item.ID; + item.PageUrl = "PreventativeMaintenance.aspx"; + item.IconPath = "img/preventative.png"; + if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.PREVENTATIVE_MAINTENANCE) != null) + list.Add(item); + + item = new NavigateItem(); + item.ID = "nav_timebased"; + item.FeatureID = Feature.PREVENTATIVE_MAINTENANCE; + item.Title = "Relative Time Maintenance"; + item.Url = Url + "#" + item.ID; + item.PageUrl = "TimeBasedMaintenance.aspx"; + item.IconPath = "img/timebased.png"; + if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.PREVENTATIVE_MAINTENANCE) != null) + list.Add(item); + + item = new NavigateItem(); + item.ID = "nav_hours"; + item.FeatureID = Feature.PREVENTATIVE_MAINTENANCE; + item.Title = "Relative Hours Maintenance"; + item.Url = Url + "#" + item.ID; + item.PageUrl = "HoursMaintenance.aspx"; + item.IconPath = "img/hours.png"; + if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.PREVENTATIVE_MAINTENANCE) != null) + list.Add(item); + + item = new NavigateItem(); + item.ID = "nav_absolutedistance"; + item.FeatureID = Feature.PREVENTATIVE_MAINTENANCE; + item.Title = "Absolute Distance Maintenance"; + item.Url = Url + "#" + item.ID; + item.PageUrl = "AbsoluteDistanceMaintenance.aspx"; + item.IconPath = "img/preventative.png"; + if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.PREVENTATIVE_MAINTENANCE) != null) + list.Add(item); + + item = new NavigateItem(); + item.FeatureID = Feature.PREVENTATIVE_MAINTENANCE; + item.ID = "nav_relativedistance"; + item.Title = "Relative Distance Maintenance"; + item.Url = Url + "#" + item.ID; + item.PageUrl = "RelativeDistanceMaintenance.aspx"; + item.IconPath = "img/hours.png"; + if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.PREVENTATIVE_MAINTENANCE) != null) + list.Add(item); + + item = new NavigateItem(); + item.ID = "nav_record"; + item.FeatureID = Feature.PREVENTATIVE_MAINTENANCE; + item.Title = "Maintenance Record **Legacy**"; + item.Url = Url + "#" + item.ID; + item.PageUrl = "MaintanceRecordsManagement.aspx"; + item.IconPath = "img/record.png"; + if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.PREVENTATIVE_MAINTENANCE) != null) + list.Add(item); + + item = new NavigateItem(); + item.ID = "nav_fuelrecord"; + item.FeatureID = Feature.FUEL_RECORDS; + item.Title = "Fuel Records"; + item.Url = Url + "#" + item.ID; + item.PageUrl = "FuelRecordManagement.aspx"; + item.IconPath = "img/fuelrecord.png"; + if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.FUEL_RECORDS) != null) + list.Add(item); + + + return list; + } + + public List GetSecurityNavigateItems(Tuple[] pmss, UserInfo user) + { + if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.USERS) == null) + return null; + + List list = new List(); + NavigateItem item = new NavigateItem(); + item.ID = "nav_users"; + item.FeatureID = Feature.USERS; + item.Title = "Users"; + item.Url = Url + "#" + item.ID; + item.PageUrl = "UserManage.aspx"; + item.IconPath = "img/users.png"; + list.Add(item); + + item = new NavigateItem(); + item.ID = "nav_user_group"; + item.Title = "User Group"; + item.Url = Url + "#" + item.ID; + item.PageUrl = "UserGroup.aspx"; + item.IconPath = "img/usergroup.png"; + list.Add(item); + + item = new NavigateItem(); + item.ID = "nav_dts"; + item.Title = "DataTable Permission"; + item.Url = Url + "#" + item.ID; + item.PageUrl = "../fic/fic/Management/DataTablePermission.aspx"; + //item.IconPath = "img/permission.png"; + list.Add(item); + + item = new NavigateItem(); + item.ID = "nav_filters"; + item.Title = "Dashboard Filters"; + item.Url = Url + "#" + item.ID; + item.PageUrl = "../fic/fic/Management/FiltersManagement.aspx"; + item.IconPath = "img/filters.png"; + list.Add(item); + + if (IronIntel.Contractor.SystemParams.IsDealer) + { + item = new NavigateItem(); + item.ID = "nav_usertocontractor"; + item.Title = "User To Contractor"; + item.Url = Url + "#" + item.ID; + item.PageUrl = "UserToContractorPage.aspx"; + item.IconPath = "img/contractor.png"; + list.Add(item); + } + + item = new NavigateItem(); + item.ID = "nav_curfew"; + item.FeatureID = Feature.CURFEW_CONFIG; + item.Title = "Curfew Configuration"; + item.Url = Url + "#" + item.ID; + item.PageUrl = "CurfewManage.aspx"; + item.IconPath = "img/curfew.png"; + list.Add(item); + + if (user.UserType == UserTypes.SupperAdmin) + { + item = new NavigateItem(); + item.ID = "nav_curfewmt"; + item.FeatureID = Feature.CURFEW_CONFIG; + item.Title = "Curfew Movement Tolerance"; + item.Url = Url + "#" + item.ID; + item.PageUrl = "CurfewMovementTolerance.aspx"; + item.IconPath = "img/curfewmovementtolerance.png"; + list.Add(item); + } + + return list; + } + + public List GetAssetsNavigateItems(Tuple[] pmss, UserInfo user) + { + List list = new List(); + + NavigateItem item = new NavigateItem(); + item.ID = "nav_managmachines"; + item.FeatureID = Feature.MANAGE_ASSETS; + item.Title = "Manage Assets"; + item.Url = Url + "#" + item.ID; + item.PageUrl = "ManageMachines.aspx"; + item.IconPath = "img/machines.png"; + if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.MANAGE_ASSETS) != null) + list.Add(item); + + item = new NavigateItem(); + item.ID = "nav_managrentals"; + item.FeatureID = Feature.MANAGE_ASSETS; + item.Title = "Manage Rentals"; + item.Url = Url + "#" + item.ID; + item.PageUrl = "ManageRentals.aspx"; + item.IconPath = "img/rental.png"; + if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.MANAGE_ASSETS) != null) + list.Add(item); + + item = new NavigateItem(); + item.ID = "nav_machinegroups"; + item.FeatureID = Feature.ASSET_GROUP; + item.Title = "Asset Groups"; + item.Url = Url + "#" + item.ID; + item.PageUrl = "MachineGroups.aspx"; + item.IconPath = "img/machinegroups.png"; + if (!IronIntel.Contractor.SystemParams.IsDealer && user.UserType >= UserTypes.Admin) + list.Add(item); + + item = new NavigateItem(); + item.ID = "nav_managegpsdevices"; + item.FeatureID = Feature.MANAGE_DEVICES; + item.Title = "Manage Devices"; + item.Url = Url + "#" + item.ID; + item.PageUrl = "ManageGPSDevices.aspx"; + item.IconPath = "img/devices.png"; + if (pmss.FirstOrDefault(m => m.Item1.Id == Feature.MANAGE_DEVICES) != null) + list.Add(item); + + item = new NavigateItem(); + item.ID = "nav_managmodels"; + item.Title = "Manage Models"; + item.Url = Url + "#" + item.ID; + item.PageUrl = "ManageModels.aspx"; + item.IconPath = "img/model.png"; + if (user.UserType >= UserTypes.Admin) + list.Add(item); + + return list; + } + } + + public class NavigateItem + { + public string ID { get; set; } + public int FeatureID { get; set; } + public string Title { get; set; } + public string Url { get; set; } + public string PageUrl { get; set; } + public string IconPath { get; set; } } public class SecurityNavigateItem diff --git a/IronIntelContractorBusiness/Users/AppModulesManagement.cs b/IronIntelContractorBusiness/Users/AppModulesManagement.cs index 9c14893..176ffd9 100644 --- a/IronIntelContractorBusiness/Users/AppModulesManagement.cs +++ b/IronIntelContractorBusiness/Users/AppModulesManagement.cs @@ -29,6 +29,8 @@ namespace IronIntel.Contractor.Users var pc = FleetServiceClientHelper.CreateClient(); FeatureModule[] ms = pc.GetAvailableModules(SystemParams.CompanyID, user.IID); + Tuple[] pmss = pc.GetUserPermissions(SystemParams.CompanyID, user.IID); + List moudles = new List(); moudles.AddRange(ms); if (ms.FirstOrDefault(m => m.Id == FeatureModule.MODULE_MAPVIEW) == null) @@ -47,6 +49,13 @@ namespace IronIntel.Contractor.Users ami.Visible = true; ami.ModuleType = AppModuleType.System; + if (m.Id == FeatureModule.MODULE_ASSETHEALTH) + ami.SubItems = ami.GetMaintenanceNavigateItems(pmss); + else if (m.Id == FeatureModule.MODULE_SECURITY) + ami.SubItems = ami.GetSecurityNavigateItems(pmss, user); + else if (m.Id == FeatureModule.MODULE_MANAGEASSETS) + ami.SubItems = ami.GetAssetsNavigateItems(pmss, user); + list.Add(ami); } AppModuleInfo[] wsps = GetFICWorkspace(user); @@ -89,7 +98,7 @@ namespace IronIntel.Contractor.Users return ai; } - private static AppModuleInfo[] GetFICWorkspace(UserInfo user) + public static AppModuleInfo[] GetFICWorkspace(UserInfo user) { if (string.IsNullOrWhiteSpace(SystemParams.FICDbConnectionString)) { diff --git a/IronIntelContractorBusiness/Users/UserInfo.cs b/IronIntelContractorBusiness/Users/UserInfo.cs index 6ff9e09..7d2dfd1 100644 --- a/IronIntelContractorBusiness/Users/UserInfo.cs +++ b/IronIntelContractorBusiness/Users/UserInfo.cs @@ -35,6 +35,7 @@ namespace IronIntel.Contractor.Users public bool AllowLoginIntoPC { get; set; } public bool AllowLoginIntoInspectMobile { get; set; } public bool AllowLoginIntoFleetMobile { get; set; } + public string LandingPage { get; set; } public string GroupNamesStr { get { return (GroupNames == null || GroupNames.Length == 0) ? "" : string.Join(",", GroupNames); } } public string ContactTypeName diff --git a/IronIntelContractorBusiness/Users/UserParams.cs b/IronIntelContractorBusiness/Users/UserParams.cs index b82dec5..24f688f 100644 --- a/IronIntelContractorBusiness/Users/UserParams.cs +++ b/IronIntelContractorBusiness/Users/UserParams.cs @@ -29,6 +29,7 @@ namespace IronIntel.Contractor.Users private const string _ExcludeNoLocation = "ExcludeNoLocation"; private const string _MapViewSearches = "MapViewSearches"; + private const string _LandingPage = "LandingPage"; public static UserParamInfo GetUserParams(string sessionid, string useriid) { @@ -82,6 +83,9 @@ namespace IronIntel.Contractor.Users case _ExcludeNoLocation: userParams.ExcludeNoLocation = int.Parse(value) == 1; break; + case _LandingPage: + userParams.LandingPage = value; + break; } } userParams.MapViewSearches = GetMapViewSearches(sessionid, useriid); @@ -168,6 +172,11 @@ namespace IronIntel.Contractor.Users if (userParams.ExcludeNoLocation) db.ExecSQL(SQL, useriid, _ExcludeNoLocation, userParams.ExcludeNoLocation ? 1 : 0); + + if (!string.IsNullOrEmpty(userParams.LandingPage)) + db.ExecSQL(SQL, useriid, _LandingPage, userParams.LandingPage); + else + db.ExecSQL(SQL_Delete, useriid, _LandingPage); } public static string GetStringParameter(string useriid, string paramname) @@ -311,6 +320,7 @@ namespace IronIntel.Contractor.Users public bool ExcludeNoLocation { get; set; } = true; public MapViewSearchItem[] MapViewSearches { get; set; } + public string LandingPage { get; set; } } public class MapViewSearcheHelper diff --git a/IronIntelContractorSiteLib/ContractorBasePage.cs b/IronIntelContractorSiteLib/ContractorBasePage.cs index 0bb6bae..f356172 100644 --- a/IronIntelContractorSiteLib/ContractorBasePage.cs +++ b/IronIntelContractorSiteLib/ContractorBasePage.cs @@ -97,6 +97,8 @@ namespace IronIntel.Contractor.Site protected virtual bool CanDirectAccess { get { return false; } } + protected virtual int FeatureID { get { return -1; } } + protected bool CheckUserToken() { var session = GetCurrentLoginSession(); @@ -150,7 +152,7 @@ namespace IronIntel.Contractor.Site RedirectToLoginPage(); return false; } - if (!AllowCurrentLoginSessionEnter()) + if (!AllowCurrentLoginSessionEnter() || !CheckRight(FeatureID)) { if (ThrowIfNotAllowed) { @@ -158,11 +160,7 @@ namespace IronIntel.Contractor.Site } else { - string entry = GetUserDefaultEntryPageUrl(session.User); - if (string.IsNullOrEmpty(entry)) - Response.Redirect(entry, true); - else - Response.Redirect(LoginPageUrl, true); + RedirectToEntryPage(); } return false; } @@ -176,6 +174,25 @@ namespace IronIntel.Contractor.Site Response.Redirect(LoginPageUrl + "?f=" + url); } + protected void RedirectToEntryPage() + { + var session = GetCurrentLoginSession(); + string entry = GetUserDefaultEntryPageUrl(session.User); + //if (!user.IsForesightUser) + //{ + // string pageurl = UserParams.GetStringParameter(user.UID, "LandingPage");//如果LandingPage没有权限会现成跳转死循环 + // if (!string.IsNullOrEmpty(pageurl)) + // { + // string url = entry.Substring(0, entry.LastIndexOf('/') + 1); + // entry = url + pageurl; + // } + //} + if (!string.IsNullOrEmpty(entry)) + Response.Redirect(entry, true); + else + Response.Redirect(LoginPageUrl, true); + } + protected void DoLogout() { string sid = null; @@ -268,6 +285,12 @@ namespace IronIntel.Contractor.Site var session = GetCurrentLoginSession(); return FleetServiceClientHelper.CreateClient(companyid, session == null ? "" : session.SessionID); } + protected bool CheckRight(int featureid) + { + if (featureid < 0) + return true; + return CheckRight(SystemParams.CompanyID, featureid); + } protected bool CheckRight(string custid, int featureid) { diff --git a/IronIntelContractorSiteLib/CredentialEntryBasePage.cs b/IronIntelContractorSiteLib/CredentialEntryBasePage.cs index 262539d..c7f6139 100644 --- a/IronIntelContractorSiteLib/CredentialEntryBasePage.cs +++ b/IronIntelContractorSiteLib/CredentialEntryBasePage.cs @@ -65,9 +65,7 @@ namespace IronIntel.Contractor.Site } var ui = UserManagement.GetUserByIID(session.User.UID); return ui != null && ui.UserType >= UserTypes.Admin; - } - - protected override bool ThrowIfNotAllowed { get { return true; } } + } private void GetCredentials() { diff --git a/IronIntelContractorSiteLib/JobSitesBasePage.cs b/IronIntelContractorSiteLib/JobSitesBasePage.cs index 85efa9b..db46f50 100644 --- a/IronIntelContractorSiteLib/JobSitesBasePage.cs +++ b/IronIntelContractorSiteLib/JobSitesBasePage.cs @@ -1,4 +1,5 @@ using Foresight.Fleet.Services.JobSite; +using Foresight.Fleet.Services.MapView; using Foresight.Standard; using IronIntel.Contractor.FilterQ; using IronIntel.Contractor.JobSites; @@ -248,15 +249,15 @@ namespace IronIntel.Contractor.Site } } - private AssetViewItem[] GetMachines() + private AssetMapViewPinItem[] GetMachines() { var session = GetCurrentLoginSession(); if (session != null) { - AssetViewItem[] items = AssetMapViewManagement.GetAssets(session.SessionID, SystemParams.CompanyID, session.User.UID, "", -1, null, false); + AssetMapViewPinItem[] items = AssetMapViewManagement.GetAssets(session.SessionID, SystemParams.CompanyID, session.User.UID, "", -1, null, false); return items; } - return new AssetViewItem[0]; + return new AssetMapViewPinItem[0]; } private object[] GetSelectedAssets() @@ -398,7 +399,7 @@ namespace IronIntel.Contractor.Site MachineViewItem[] items = JobSitesManagement.GetBindingMachines(session.SessionID, session.User.UID); if (items != null) { - items = items.OrderBy((m) => m.ShowName).ToArray(); + items = items.OrderBy((m) => m.DisplayName).ToArray(); } return items; } diff --git a/IronIntelContractorSiteLib/MachineDeviceBasePage.cs b/IronIntelContractorSiteLib/MachineDeviceBasePage.cs index 662bdec..8959931 100644 --- a/IronIntelContractorSiteLib/MachineDeviceBasePage.cs +++ b/IronIntelContractorSiteLib/MachineDeviceBasePage.cs @@ -523,7 +523,7 @@ namespace IronIntel.Contractor.Site if (machines == null) return new MachineItem[0]; - return machines.Where(m => m.Hide == false).OrderBy(m => m.ShowName).ToArray(); + return machines.Where(m => m.Hide == false).OrderBy(m => m.DisplayName).ToArray(); } else return new MachineItem[0]; @@ -554,7 +554,7 @@ namespace IronIntel.Contractor.Site if (machines == null) return new MachineItem[0]; - return machines.Where(m => m.Hide == false).OrderBy(m => m.ShowName).ToArray(); + return machines.Where(m => m.Hide == false).OrderBy(m => m.DisplayName).ToArray(); } else return new MachineItem[0]; @@ -630,6 +630,9 @@ namespace IronIntel.Contractor.Site contractorid = SystemParams.CompanyID; string searchtxt = HttpUtility.HtmlDecode(ps[1]); FFSDevice.DeviceInfo[] devs = CreateClient(contractorid).GetDevices(contractorid, searchtxt); + + if (devs == null) + return new DeviceItem[0]; List list = new List(); foreach (var dev in devs) { diff --git a/IronIntelContractorSiteLib/Maintenance/FuelRecordBasePage.cs b/IronIntelContractorSiteLib/Maintenance/FuelRecordBasePage.cs index 768fc2b..ed407de 100644 --- a/IronIntelContractorSiteLib/Maintenance/FuelRecordBasePage.cs +++ b/IronIntelContractorSiteLib/Maintenance/FuelRecordBasePage.cs @@ -104,7 +104,8 @@ namespace IronIntel.Contractor.Site.Maintenance { FuelRecordInfo fi = new FuelRecordInfo(); Helper.CloneProperty(fi, fuel); - fi.TransactionDate = fi.TransactionDate.ToLocalTime(); + //fi.TransactionDate = fi.TransactionDate.ToLocalTime(); + fi.TransactionDate = SystemParams.CustomerDetail.UtcToCustomerTime(fi.TransactionDate); list.Add(fi); } @@ -138,7 +139,8 @@ namespace IronIntel.Contractor.Site.Maintenance { FuelRecordAuditItem fi = new FuelRecordAuditItem(); Helper.CloneProperty(fi, fuel); - fi.TransactionDate = fi.TransactionDate.ToLocalTime(); + //fi.TransactionDate = fi.TransactionDate.ToLocalTime(); + fi.TransactionDate=SystemParams.CustomerDetail.UtcToCustomerTime(fi.TransactionDate); fi.AddedOn = fi.AddedOn.ToLocalTime(); fi.LastUpdatedOn = fi.LastUpdatedOn.ToLocalTime(); list.Add(fi); @@ -169,7 +171,8 @@ namespace IronIntel.Contractor.Site.Maintenance FuelRecord record = new FuelRecord(); Helper.CloneProperty(record, fuelrecord); - record.TransactionDate = record.TransactionDate.ToUniversalTime(); + //record.TransactionDate = record.TransactionDate.ToUniversalTime(); + record.TransactionDate = SystemParams.CustomerDetail.CustomerTimeToUtc(record.TransactionDate); long fuleid = record.FuelID; if (record.FuelID == -1) { diff --git a/IronIntelContractorSiteLib/Maintenance/WorkOrderBasePage.cs b/IronIntelContractorSiteLib/Maintenance/WorkOrderBasePage.cs index 1d14f2d..6d841d3 100644 --- a/IronIntelContractorSiteLib/Maintenance/WorkOrderBasePage.cs +++ b/IronIntelContractorSiteLib/Maintenance/WorkOrderBasePage.cs @@ -369,7 +369,7 @@ namespace IronIntel.Contractor.Site.Maintenance { machines = new MachineItem[0]; } - return machines.Where(m => m.Hide == false).OrderBy(m => m.ShowName).ToArray(); + return machines.Where(m => m.Hide == false).OrderBy(m => m.DisplayName).ToArray(); } diff --git a/IronIntelContractorSiteLib/MapView/MapViewHandler.cs b/IronIntelContractorSiteLib/MapView/MapViewHandler.cs index 1f78886..ef13c84 100644 --- a/IronIntelContractorSiteLib/MapView/MapViewHandler.cs +++ b/IronIntelContractorSiteLib/MapView/MapViewHandler.cs @@ -116,9 +116,9 @@ namespace IronIntel.Contractor.Site.MapView string serverVersion = SystemParams.GetVersion(); return serverVersion; } - private AssetViewItem[] GetAssets() + private object GetAssets() { - AssetViewItem[] assets = null; + AssetMapViewPinItem[] assets = null; if (LoginSession != null) { var clientdata = Context.Request.Params["ClientData"]; @@ -136,9 +136,23 @@ namespace IronIntel.Contractor.Site.MapView SystemParams.WriteRefreshLog(LoginSession.User.UID, UserHostAddress, "Assets", p.IsAutoRefresh ? "Auto" : "Manual"); } else - assets = new AssetViewItem[0]; + assets = new AssetMapViewPinItem[0]; - return assets; + List results = new List(); + foreach (var r in assets) + { + //if (sb.Length > 0) + //{ + // sb.Append((char)171); + //} + StringBuilder sb = new StringBuilder(); + r.ToFormatedString(sb, (char)170); + results.Add(sb.ToString()); + } + + return results.ToArray(); + + //return assets; } private AssetGroupViewItem[] GetAssetGroups() diff --git a/IronIntelContractorSiteLib/Properties/AssemblyInfo.cs b/IronIntelContractorSiteLib/Properties/AssemblyInfo.cs index 040b067..bbaae6d 100644 --- a/IronIntelContractorSiteLib/Properties/AssemblyInfo.cs +++ b/IronIntelContractorSiteLib/Properties/AssemblyInfo.cs @@ -33,4 +33,4 @@ using System.Runtime.InteropServices; // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("2.20.526")] +[assembly: AssemblyFileVersion("2.20.609")] diff --git a/IronIntelContractorSiteLib/UserManageBasePage.cs b/IronIntelContractorSiteLib/UserManageBasePage.cs index e607d40..cd64bf7 100644 --- a/IronIntelContractorSiteLib/UserManageBasePage.cs +++ b/IronIntelContractorSiteLib/UserManageBasePage.cs @@ -96,6 +96,9 @@ namespace IronIntel.Contractor.Site case "GETFEATURESDEFINEDONUSER": result = GetFeaturesDefinedOnUser(); break; + case "GETFEATURESMOUDULES": + result = GetFeaturesMoudules(); + break; } } } @@ -197,6 +200,7 @@ namespace IronIntel.Contractor.Site { var uid = Request.Form["ClientData"]; var user = UserManagement.GetUserByIID(uid); + user.LandingPage = UserParams.GetStringParameter(uid, "LandingPage"); if (user == null) user = new UserInfo(); return user; @@ -227,6 +231,25 @@ namespace IronIntel.Contractor.Site } item.Active = true; item.IID = UserManagement.AddUser(item, item.TransPass, session.User.UID, session.SessionID, Request.UserHostName); + if (item.UserType == UserTypes.Common) + { + List> features = new List>(); + KeyValuePair feature = new KeyValuePair(100, new Foresight.Fleet.Services.User.Permissions[] { Foresight.Fleet.Services.User.Permissions.FullControl }); + features.Add(feature); + feature = new KeyValuePair(200, new Foresight.Fleet.Services.User.Permissions[] { Foresight.Fleet.Services.User.Permissions.FullControl }); + features.Add(feature); + feature = new KeyValuePair(210, new Foresight.Fleet.Services.User.Permissions[] { Foresight.Fleet.Services.User.Permissions.FullControl }); + features.Add(feature); + feature = new KeyValuePair(220, new Foresight.Fleet.Services.User.Permissions[] { Foresight.Fleet.Services.User.Permissions.FullControl }); + features.Add(feature); + feature = new KeyValuePair(230, new Foresight.Fleet.Services.User.Permissions[] { Foresight.Fleet.Services.User.Permissions.FullControl }); + features.Add(feature); + feature = new KeyValuePair(600, new Foresight.Fleet.Services.User.Permissions[] { Foresight.Fleet.Services.User.Permissions.FullControl }); + features.Add(feature); + + var client = CreateClient(); + client.UpdateFeaturesForUser(SystemParams.CompanyID, item.IID, features.ToArray(), session.User.UID); + } } else { @@ -250,6 +273,7 @@ namespace IronIntel.Contractor.Site FI.FIC.Models.Schedule.ScheduleManager.SaveEmailScheduleItems(item.IID, user.Schedule, "en-us"); } } + UserParams.SetStringParameter(item.IID, "LandingPage", item.LandingPage); } catch (Exception ex) @@ -565,12 +589,33 @@ namespace IronIntel.Contractor.Site var p = JsonConvert.DeserializeObject(s); var machines = MaintenanceManagement.GetMaintenanceMachines(session.SessionID, int.Parse(p.Key), p.Value, session.User.UID) - .OrderBy(m => m.ShowName) + .OrderBy(m => m.DisplayName) .ToArray(); return machines; } + private object GetFeaturesMoudules() + { + try + { + var session = GetCurrentLoginSession(); + if (session != null) + { + List list = Acl.GetAvailableAppModuleInfos(session.User.UID).ToList(); + return list.ToArray(); + } + else + { + return new AppModuleInfo[0]; + } + } + catch (Exception ex) + { + return ex.Message; + } + } + private class UserMachineGroupInfoItem { public MachineGroup[] AllMachineGroups { get; set; } diff --git a/Reflib/FICore.std.dll b/Reflib/FICore.std.dll index e424a5a..38526bf 100644 Binary files a/Reflib/FICore.std.dll and b/Reflib/FICore.std.dll differ diff --git a/Reflib/FleetClientBase.dll b/Reflib/FleetClientBase.dll index 8929361..b22801e 100644 Binary files a/Reflib/FleetClientBase.dll and b/Reflib/FleetClientBase.dll differ diff --git a/Reflib/FleetServiceClient.dll b/Reflib/FleetServiceClient.dll index f7da860..778a193 100644 Binary files a/Reflib/FleetServiceClient.dll and b/Reflib/FleetServiceClient.dll differ diff --git a/Site b/Site index 140d1ff..52722c5 160000 --- a/Site +++ b/Site @@ -1 +1 @@ -Subproject commit 140d1ffce0271bde011b93bce204fff9f8bf90b4 +Subproject commit 52722c5b42974a2019a4602a5975c4d1c2a10392