private KitchenOrderPrint GetKitchenOrderPrintModel(Services.Printout order) { Services.Item item, itemMenu; KitchenOrderPrint model; List <LineItem> subItems; try { model = new KitchenOrderPrint(); model.Items = new List <LineItem>(); model.Check = _orderService.GetCheck(order.CheckId); model.id = order.id; model.CreatedDate = model.Check.DateCreated; model.Comments = _commentService.GetItemComment(order.CheckId, CommonUnit.CommentType.Check, SessionData.customer.id); // If no printers - webSocket not running, or no connection to webSocket if (SessionData.printers != null) { model.PrinterKitchenWidth = SessionData.printerKitchenWidth; } List <Services.ChecksMenu> menus = _orderService.GetMenuItems(order.CheckId); List <ChecksMenuProduct> products; Boolean ordered; foreach (Services.ChecksMenu menuItem in menus) { itemMenu = _itemService.GetItem(menuItem.MenuId); ordered = ((CommonUnit.MenuItemStatus)menuItem.Status == CommonUnit.MenuItemStatus.Ordered); products = _orderService.GetProducts(menuItem.id); subItems = new List <LineItem>(); foreach (Services.ChecksMenuProduct productItem in products) { foreach (Services.ChecksMenuProductItem associatedItem in productItem.ChecksMenuProductItems) { item = _itemService.GetItemProductAssosiationsById(associatedItem.ItemId); if (item != null) { subItems.Add(new LineItem() { Description = item.Name, Ordered = ordered }); } } } model.Items.Add(new LineItem() { Description = itemMenu.Name, Ordered = ordered, id = itemMenu.id, Comments = _commentService.GetItemComment(menuItem.id, CommonUnit.CommentType.MenuItem, SessionData.customer.id), SubItems = subItems }); _orderService.UpdateMenuItemStatus(menuItem.id, CommonUnit.MenuItemStatus.Ordered); } } catch (Exception ex) { base.Log(ex); return(null); } finally { } return(model); }
public String PrintKitchenOrders(Services.Printout order) { KitchenOrderPrint model = GetKitchenOrderPrintModel(order); return(RenderViewToString(this.ControllerContext, "Printouts/_SendKitchenOrder2PrinterPartial", model)); }