private SideMenuInfo GetStaff(Menu[] Staff) { SideMenuInfo report = new SideMenuInfo { Name = "Staff", Icon = "~/Content/Images/Icons/Documents.png" }; List <TreeMenu> reportMenus = new List <TreeMenu>(); foreach (Menu parent in Staff.Where(p => string.IsNullOrWhiteSpace(p.PARENT_PGM)).OrderBy(p => p.SORT_ORDER)) { TreeMenu menu = new TreeMenu(parent); menu.SubMenus = GetSubMenus(menu.PGM_NO, Staff); reportMenus.Add(menu); } Collection <SideMenuInfo> roots = new Collection <SideMenuInfo>(); foreach (var item in reportMenus) { SideMenuInfo info = CovertToDocumentsMenuInfo(item); if (info != null) { roots.Add(info); } } report.ChildNodes = roots; return(report); }
private SideMenuInfo CovertToSideMenuInfo(TreeMenu treeMenu, Collection <SideMenu> nodes, string rootcode, string username) { if (treeMenu.PGM_ID.StartsWith("Warehouse")) { return(ConvertToWarehouses(treeMenu)); } if (treeMenu.PGM_ID == "TMALL" && treeMenu.SubMenus != null) { foreach (var channel in treeMenu.SubMenus) { string channelName = channel.PGM_ID; foreach (var action in channel.SubMenus) { action.PGM_ID = channelName + action.PGM_ID; } } } SideMenu node = nodes.Count(p => p.Code == treeMenu.PGM_ID) > 1 ? nodes.FirstOrDefault(p => p.Code == treeMenu.PGM_ID && p.ParentCode == rootcode) : nodes.FirstOrDefault(p => p.Code == treeMenu.PGM_ID); if (node == null) { return(null); } SideMenuInfo result = SideMenuInfo.CreateFrom(node); result.Name = treeMenu.PGM_NM; result.Type = SideItemType.Page; result.BadgeId = node.Code.Replace(" ", ""); result.Badge = ReadBadge(node.Code, username); if (treeMenu.SubMenus != null && treeMenu.SubMenus.Length > 0) { foreach (var info in treeMenu.SubMenus.Select(temp => CovertToSideMenuInfo(temp, nodes, rootcode, username)).Where(info => info != null)) { result.ChildNodes.Add(info); } } return(result); }
private SideMenuInfo CovertToDocumentsMenuInfo(TreeMenu treeMenu) { SideMenuInfo result = new SideMenuInfo { Name = treeMenu.PGM_NM, Type = SideItemType.Page, ChildNodes = new Collection <SideMenuInfo>() }; if (treeMenu.SubMenus != null && treeMenu.SubMenus.Length > 0) { foreach (var info in treeMenu.SubMenus.Select(CovertToDocumentsMenuInfo)) { result.ChildNodes.Add(info); } } else { result.Controller = "WebReport"; result.Action = "Documents"; result.Parameters = new { menuid = treeMenu.PGM_NO }; } return(result); }
private SideMenuInfo ConvertToWarehouses(TreeMenu treeMenu) { SideMenuInfo warehouseRoot = new SideMenuInfo { Name = treeMenu.PGM_NM, Type = SideItemType.Page, Icon = "~/Content/Images/Icons/warehouse_mg.png", ChildNodes = new Collection <SideMenuInfo>() }; if (treeMenu.SubMenus == null) { return(warehouseRoot); } foreach (var ws in treeMenu.SubMenus) { string code = ws.PGM_ID.Substring(3); WarehousesGroupModel wgGroup = WarehouseGroup?.FirstOrDefault(p => p.Hdr.WarehouseCode == code); if (wgGroup == null) { continue; } string[] codes = wgGroup.Detl != null ? new[] { code }.Concat(wgGroup.Detl.Select(p => p.WarehouseCode)).ToArray() : new[] { code }; SideMenuInfo warehouse = new SideMenuInfo { Name = ws.PGM_NM.Replace($"({code})", ""), Type = SideItemType.Warehouse, BadgeId = "wh-" + code + "-num", Badge = QtyResult?.GetAssignedQty(codes), Parameters = new { warehouse = code }, ChildNodes = new Collection <SideMenuInfo>() }; if (ws?.SubMenus != null) { foreach (var warehouseAction in ws.SubMenus) { SideMenuInfo action = null; switch (warehouseAction.PGM_ID) { case "View all orders": action = new SideMenuInfo { Type = SideItemType.Warehouse, Code = "View all orders", Name = warehouseAction.PGM_NM, Parameters = new { warehouse = code }, BadgeId = "wh-" + code + "-total", Badge = QtyResult?.GetViewAllQty(codes), Action = "ViewAllAssignedOrders", Controller = "WhAll" }; break; case "Pick": action = new SideMenuInfo { Type = SideItemType.Warehouse, Code = "Pick", DropSwitch = false, Name = warehouseAction.PGM_NM, Badge = warehouse.Badge, Parameters = new { warehouse = code }, BadgeId = "wh-" + code + "-picknum", Action = "Pick", Controller = "WhPick" }; break; case "Pick confirm": action = new SideMenuInfo { Type = SideItemType.Warehouse, Code = "Pick confirm", DropSwitch = false, Name = warehouseAction.PGM_NM, Badge = QtyResult?.GetPickingQty(codes), Parameters = new { warehouse = code }, BadgeId = "wh-" + code + "-pickednum", FullScreen = true, Action = "ScanQRToPicked", Controller = "Warehouse" }; break; case "Pack": action = new SideMenuInfo { Type = SideItemType.Warehouse, Name = warehouseAction.PGM_NM, Code = "Pack", DropSwitch = false, Badge = QtyResult?.GetPackQty(codes), Parameters = new { warehouse = code }, BadgeId = "wh-" + code + "-packnum", FullScreen = true, Action = "ScanQRToPacking", Controller = "Warehouse" }; break; case "Shipment": action = new SideMenuInfo { Type = SideItemType.Warehouse, Code = "Shipment", DropSwitch = false, Name = warehouseAction.PGM_NM, Badge = QtyResult?.GetPackedQty(codes), Parameters = new { warehouse = code }, BadgeId = "wh-" + code + "-shipnum", FullScreen = true, Action = "Ship", Controller = "Warehouse" }; break; case "Shipped": action = new SideMenuInfo { Type = SideItemType.Warehouse, Code = "Shipped", DropSwitch = false, Name = warehouseAction.PGM_NM, Badge = QtyResult?.GetShippedQty(codes), Parameters = new { warehouse = code }, BadgeId = "wh-" + code + "-shippednum", FullScreen = false, Action = "Shipped", Controller = "Warehouse" }; break; case "Return": action = new SideMenuInfo { Type = SideItemType.Warehouse, Code = "Return", DropSwitch = false, Name = warehouseAction.PGM_NM, Parameters = new { warehouse = code }, FullScreen = true, Action = "RefundOrder", Controller = "Warehouse" }; break; case "View All Refund": action = new SideMenuInfo { Type = SideItemType.Warehouse, Code = "View All Refund", DropSwitch = false, Name = warehouseAction.PGM_NM, Parameters = new { warehouse = code }, Badge = QtyResult?.GetRFAssignedQty(codes), BadgeId = "wh-" + code + "-rfassignednum", Action = "ViewAllRefund", Controller = "WhRefund" }; break; case "BatchPrint": action = new SideMenuInfo { Type = SideItemType.Warehouse, Code = "BatchPrint", DropSwitch = false, FullScreen = false, Name = warehouseAction.PGM_NM, Parameters = new { warehouse = code }, Action = "BatchPrint", Controller = "Warehouse" }; break; //case "CartGet": // action = new SideMenuInfo // { // Type = SideItemType.Warehouse, // Code = "CartGet", // DropSwitch = false, // FullScreen = true, // Name = StringResource.CartGet, // Parameters = new { warehouse = warehouseCode }, // Action = "AssignCart", // Controller = "PickCart" // }; // break; case "CartLoad": action = new SideMenuInfo { Type = SideItemType.Warehouse, Code = "CartLoad", DropSwitch = false, FullScreen = true, Name = warehouseAction.PGM_NM, Parameters = new { warehouse = code }, Action = "InstallBar", Controller = "PickCart" }; break; case "CartUnload": action = new SideMenuInfo { Type = SideItemType.Warehouse, Code = "CartUnload", DropSwitch = false, Name = warehouseAction.PGM_NM, Parameters = new { warehouse = code }, Action = "UninstallCarts", Controller = "PickCart" }; break; //case "CartCheckOut": // action = new SideMenuInfo // { // Type = SideItemType.Warehouse, // Code = "CartCheckOut", // DropSwitch = false, // Name = StringResource.CartCheckOut, // Parameters = new { warehouse = warehouseCode }, // Action = "ConfirmBag", // Controller = "PickCart" // }; // break; case "RackBox": action = new SideMenuInfo { Type = SideItemType.Warehouse, Code = "RackBox", DropSwitch = false, Name = warehouseAction.PGM_NM, Parameters = new { warehouse = code }, Action = "Index", Controller = "PickZoneBox" }; break; case "OutStockReport": action = new SideMenuInfo { Type = SideItemType.Warehouse, Code = "OutStockReport", DropSwitch = false, Name = warehouseAction.PGM_NM, Parameters = new { warehouse = code }, Action = "SkuLaneInfo", Controller = "AppStockoutReport" }; break; case "RackSetUp": action = new SideMenuInfo { Type = SideItemType.Warehouse, Code = "RackSetUp", DropSwitch = false, Name = warehouseAction.PGM_NM, Parameters = new { warehouse = code }, Action = "Setting", Controller = "RackBoxPrint" }; break; case "RackLabelPrint": action = new SideMenuInfo { Type = SideItemType.Warehouse, Code = "RackLabelPrint", DropSwitch = false, Name = warehouseAction.PGM_NM, Parameters = new { warehouse = code }, Action = "Index", Controller = "RackBoxPrint" }; break; case "SKUWithOutRack": action = new SideMenuInfo { Type = SideItemType.Warehouse, Code = "SKUWithOutRack", DropSwitch = false, Name = warehouseAction.PGM_NM, Parameters = new { warehouse = code }, Action = "SKUWithOutRack", Controller = "SkuWithoutRack" }; break; } if (action == null) { continue; } warehouse.ChildNodes.Add(action); } } warehouseRoot.ChildNodes.Add(warehouse); } return(warehouseRoot); }