/// <summary> /// Cancel selected menu order item. /// If this item is new order, delete from list. /// If this item already print to kitchen, mark for cancel. /// </summary> /// <param name="item">Order bill item to cancel</param> /// <returns>true = success, false = fail</returns> public static bool CancelOrderBillItem(OrderBill selectedBill, OrderBillItem item, int employeeID) { if (selectedBill == null || selectedBill.CloseBillDate != DateTime.MinValue) return false; if (item.BillDetailID == 0) { // Case item is new order OrderBillItem[] oldItems = selectedBill.Items; if (oldItems != null && oldItems.Length > 1) { // Remove old item selectedBill.Items = new OrderBillItem[oldItems.Length - 1]; int cnt = 0; for (int i = 0;i < oldItems.Length;i++) { if (oldItems[i] != item) { selectedBill.Items[cnt] = oldItems[i]; cnt++; } } } else selectedBill.Items = null; } else { // Case item already print to kitchen. item.CancelReasonID = Utils.CancelForm.Show("Select Cancel Reason"); item.Status = 0; // Cancel status item.EmployeeID = employeeID; item.ChangeFlag = true; } return true; }
/// <summary> /// Add Menu Item to Selected Bill by menu item. /// </summary> /// <param name="menu">Menu Item for insert to selected bill.</param> public static OrderBillItem AddOrderBillItem(OrderBill selectedBill, MenuService.MenuItem menu, int employeeID) { OrderBillItem item = new OrderBillItem(); item.MenuID = menu.ID; item.Unit = 1; item.DefaultOption = true; item.Status = 1; // New Order Status item.EmployeeID = employeeID; item.ChangeFlag = true; if (AddOrderBillItem(selectedBill, item)) return item; else return null; }
public static OrderBillItem AddOrderBillItem(OrderBill selectedBill, MenuItem menu, int employeeID) { OrderBillItem item = new OrderBillItem(); item.MenuID = menu.ID; item.Unit = 1; item.DefaultOption = true; item.Status = 1; item.EmployeeID = employeeID; item.ServeTime = AppParameter.MinDateTime; item.ChangeFlag = true; if (AddOrderBillItem(selectedBill, item)) { return item; } return null; }
/// <summary> /// Add Menu Item to Selected Bill by order bill item. /// </summary> /// <param name="item">Order bill item for insert to selected bill.</param> /// <returns>true = success, false = fail</returns> public static bool AddOrderBillItem(OrderBill selectedBill, OrderBillItem item) { if (selectedBill == null || selectedBill.CloseBillDate != DateTime.MinValue) return false; OrderBillItem[] oldItems = selectedBill.Items; if (oldItems != null) { // Append new order selectedBill.Items = new OrderBillItem[oldItems.Length + 1]; for (int i = 0;i < oldItems.Length;i++) selectedBill.Items[i] = oldItems[i]; } else selectedBill.Items = new OrderBillItem[1]; selectedBill.Items[selectedBill.Items.Length - 1] = item; return true; }
// Methods public static bool AddOrderBillItem(OrderBill selectedBill, OrderBillItem item) { if ((selectedBill == null) || (selectedBill.CloseBillDate != AppParameter.MinDateTime)) { return false; } OrderBillItem[] items = selectedBill.Items; if (items != null) { selectedBill.Items = new OrderBillItem[items.Length + 1]; for (int i = 0; i < items.Length; i++) { selectedBill.Items[i] = items[i]; } } else { selectedBill.Items = new OrderBillItem[1]; } selectedBill.Items[selectedBill.Items.Length - 1] = item; return true; }
public override void UpdateForm() { int userID; this.selectedItem = null; this.menuTypes = MenuManagement.MenuTypes; this.menuOptions = MenuManagement.MenuOptions; if (((MainForm) base.MdiParent).User != null) { userID = ((MainForm) base.MdiParent).User.UserID; } else { userID = this.selectedBill.EmployeeID; } this.receipt = new Receipt(this.selectedBill, userID); this.DiscountPad.Items.Clear(); this.discountSelected.Clear(); this.paymentSelected.Clear(); this.LoadDiscountSelected(); this.LblPageID.Text = "Employee ID:" + userID.ToString() + " | STCB011"; if (AppParameter.IsDemo()) { this.LblTotalChange.Text = "Change"; this.LblGuest.Text = "Guest"; } else { this.LblTotalChange.Text = "Tip"; this.LblGuest.Text = "Seat"; } this.StartInputNone(); this.UpdateTableInformation(); this.UpdateSummary(); this.UpdateOrderGrid(); this.UpdateDiscountList(); this.UpdatePaymentTypeList(); }
private void ListOrderItem_ItemClick(object sender, ItemsListEventArgs e) { this.StartInputNone(); if (e.Item.Value is OrderBill) { this.selectedBill = (OrderBill) e.Item.Value; this.selectedItem = null; this.UpdateOrderGrid(); } else if (e.Item.Value is OrderBillItem) { this.selectedItem = (OrderBillItem) e.Item.Value; for (int i = 0; (i >= 0) && (i < this.orderInfo.Bills.Length); i++) { if (this.orderInfo.Bills[i].Items != null) { for (int j = 0; j < this.orderInfo.Bills[i].Items.Length; j++) { if (this.orderInfo.Bills[i].Items[j] == this.selectedItem) { this.selectedBill = this.orderInfo.Bills[i]; i = -2; break; } } } } this.UpdateOrderGrid(); } }
/// <summary> /// Initial form when start take order. /// (Call this method from outside) /// </summary> public override void UpdateForm() { LoadMenus(); // Check for reserve mode takeOutMode = (tableInfo.TableID == 0); OrderService.OrderService service = new OrderService.OrderService(); if (!takeOrderResume) { // Load old table order information (Web Services) if (!takeOutMode) { orderInfo = service.GetOrder(tableInfo.TableID); if (orderInfo != null) { if (tableInfo.TableID != orderInfo.TableID) { TableService.TableService tabService = new TableService.TableService(); tableInfo = tabService.GetTableInformation(orderInfo.TableID); } tableIDList = service.GetTableReference(orderInfo.OrderID); } else tableIDList = null; } else if (takeOutOrderID > 0) { orderInfo = service.GetOrderByOrderID(takeOutOrderID); tableIDList = null; } else { orderInfo = null; tableIDList = null; } // Reset input isChanged = false; } else { if (!takeOutMode) orderInfo = service.GetOrder(tableInfo.TableID); } // Check exist order information if (orderInfo != null) { // Found (Edit order) guestNumber = orderInfo.NumberOfGuest; billNumber = orderInfo.Bills.Length; } else if (guestNumber <= 0) { // Not found (New order) guestNumber = billNumber = 1; } // Check Demo version if (AppParameter.IsDemo()) { ListOrderItem.ItemWidth = 240; ListOrderCount.Left = 248; ListOrderItemBy.Visible = true; LblGuest.Text = "Guest"; } else { ListOrderItem.ItemWidth = 280; ListOrderCount.Left = 288; ListOrderItemBy.Visible = false; LblGuest.Text = "Seat"; } ListOrderCount.Left = ListOrderItem.Left + ListOrderItem.ItemWidth; // Clear Input selectedBill = null; selectedItem = null; selectedType = null; if (orderInfo != null && orderInfo.Bills != null) { for (int i = 0;i < orderInfo.Bills.Length;i++) if (orderInfo.Bills[i].CloseBillDate == DateTime.MinValue) { selectedBill = orderInfo.Bills[i]; break; } } // Update screen LblPageID.Text = "Employee ID:" + ((MainForm)MdiParent).UserID + " | "; if (takeOutMode) LblPageID.Text += "STTO021"; else LblPageID.Text += "STTO011"; PanCustName.Visible = takeOutMode; BtnSearch.Visible = takeOutMode; OptionPad.AutoRefresh = false; OptionPad.Red = OptionPad.Green = OptionPad.Blue = 1; OptionPad.AutoRefresh = true; ListOrderItem.Reset(); ListOrderCount.Reset(); ListOrderItemBy.Reset(); UpdateTableInformation(); StartInputMenu(); }
private void ListOrderItem_ItemClick(object sender, smartRestaurant.Controls.ItemsListEventArgs e) { OrderBill bill = null; OrderBillItem item = null; // Check for move item if (moveItem) { bill = selectedBill; item = selectedItem; } // Check for selected item and selected bill if (e.Item.Value is OrderBill) { selectedBill = (OrderBill)e.Item.Value; selectedItem = null; StartInputMenu(); } else if (e.Item.Value is OrderBillItem) { selectedItem = (OrderBillItem)e.Item.Value; for (int i = 0;i >= 0 && i < orderInfo.Bills.Length;i++) { if (orderInfo.Bills[i].Items != null) { for (int j = 0;j < orderInfo.Bills[i].Items.Length;j++) if (orderInfo.Bills[i].Items[j] == selectedItem) { selectedBill = orderInfo.Bills[i]; i = -2; break; } } } if (selectedBill.CloseBillDate != DateTime.MinValue) StartInputMenu(); else StartInputOption(); } // Move item if (item != null) { if (bill != selectedBill) { if (OrderManagement.MoveOrderBillItem(bill, selectedBill, item)) { isChanged = true; UpdateOrderGrid(); } } else UpdateOrderGrid(); } }
/// <summary> /// This method use for user to select bill item list. This method will check for user /// click is bill item or order bill and will change selectedBill and selectedItem variable /// to. /// </summary> /// <param name="sender">Sender object</param> /// <param name="e">Event object</param> private void ListOrderItem_ItemClick(object sender, smartRestaurant.Controls.ItemsListEventArgs e) { StartInputNone(); if (e.Item.Value is OrderBill) { selectedBill = (OrderBill)e.Item.Value; selectedItem = null; UpdateOrderGrid(); } else if (e.Item.Value is OrderBillItem) { selectedItem = (OrderBillItem)e.Item.Value; for (int i = 0;i >= 0 && i < orderInfo.Bills.Length;i++) { if (orderInfo.Bills[i].Items != null) { for (int j = 0;j < orderInfo.Bills[i].Items.Length;j++) if (orderInfo.Bills[i].Items[j] == selectedItem) { selectedBill = orderInfo.Bills[i]; i = -2; break; } } } UpdateOrderGrid(); } }
public override void UpdateForm() { this.LoadMenus(); this.takeOutMode = this.tableInfo.TableID == 0; smartRestaurant.OrderService.OrderService service = new smartRestaurant.OrderService.OrderService(); if (!this.takeOrderResume) { if (!this.takeOutMode) { this.orderInfo = service.GetOrder(this.tableInfo.TableID); if (this.orderInfo != null) { if (this.tableInfo.TableID != this.orderInfo.TableID) { this.tableInfo = this.tabService.GetTableInformation(this.orderInfo.TableID); } this.tableIDList = service.GetTableReference(this.orderInfo.OrderID); } else { this.tableIDList = null; } } else if (this.takeOutOrderID > 0) { this.orderInfo = service.GetOrderByOrderID(this.takeOutOrderID); this.tableIDList = null; } else { this.orderInfo = null; this.tableIDList = null; } this.isChanged = false; } else if (!this.takeOutMode) { this.orderInfo = service.GetOrder(this.tableInfo.TableID); } if (this.orderInfo != null) { this.guestNumber = this.orderInfo.NumberOfGuest; this.billNumber = this.orderInfo.Bills.Length; } else if (this.guestNumber <= 0) { this.guestNumber = this.billNumber = 1; } if (AppParameter.IsDemo()) { this.ListOrderItem.ItemWidth = 240; this.ListOrderCount.Left = 0xf8; this.ListOrderItem.Row = 14; this.ListOrderCount.Row = 14; this.ListOrderItemBy.Row = 14; this.ListOrderItemBy.Visible = true; this.LblTotalText.Visible = false; this.LblTotalValue.Visible = false; this.LblGuest.Text = "Guest"; } else { if (AppParameter.ShowOrderItemPrice) { this.ListOrderItem.ItemWidth = 240; this.ListOrderCount.Left = 0xf8; this.ListOrderCount.ItemWidth = 80; this.ListOrderItem.Row = 13; this.ListOrderCount.Row = 13; this.LblTotalText.Visible = true; this.LblTotalValue.Visible = true; } else { this.ListOrderItem.ItemWidth = 280; this.ListOrderCount.Left = 0x120; this.ListOrderCount.ItemWidth = 40; this.ListOrderItem.Row = 14; this.ListOrderCount.Row = 14; this.LblTotalText.Visible = false; this.LblTotalValue.Visible = false; } this.ListOrderItemBy.Visible = false; this.LblGuest.Text = "Seat"; } this.ListOrderCount.Left = this.ListOrderItem.Left + this.ListOrderItem.ItemWidth; this.selectedBill = null; this.selectedItem = null; this.selectedType = null; if ((this.orderInfo != null) && (this.orderInfo.Bills != null)) { for (int i = 0; i < this.orderInfo.Bills.Length; i++) { if (this.orderInfo.Bills[i].CloseBillDate == AppParameter.MinDateTime) { this.selectedBill = this.orderInfo.Bills[i]; break; } } } this.LblPageID.Text = "Employee ID:" + ((MainForm) base.MdiParent).UserID + " | "; if (this.takeOutMode) { this.LblPageID.Text = this.LblPageID.Text + "STTO021"; } else { this.LblPageID.Text = this.LblPageID.Text + "STTO011"; } this.PanCustName.Visible = this.takeOutMode; this.BtnSearch.Visible = this.takeOutMode; this.OptionPad.AutoRefresh = false; this.OptionPad.Red = this.OptionPad.Green = this.OptionPad.Blue = 1f; this.OptionPad.AutoRefresh = true; this.ListOrderItem.Reset(); this.ListOrderCount.Reset(); this.ListOrderItemBy.Reset(); this.UpdateTableInformation(); this.StartInputMenu(); }
public static bool MoveOrderBillItem(OrderBill sourceBill, OrderBill destBill, OrderBillItem item) { if (((sourceBill == null) || (sourceBill.CloseBillDate != AppParameter.MinDateTime)) || ((destBill == null) || (destBill.CloseBillDate != AppParameter.MinDateTime))) { return false; } OrderBillItem[] items = destBill.Items; if (items != null) { destBill.Items = new OrderBillItem[items.Length + 1]; for (int i = 0; i < items.Length; i++) { destBill.Items[i] = items[i]; } } else { destBill.Items = new OrderBillItem[1]; } destBill.Items[destBill.Items.Length - 1] = item; items = sourceBill.Items; if ((items != null) && (items.Length > 1)) { sourceBill.Items = new OrderBillItem[items.Length - 1]; int index = 0; for (int j = 0; j < items.Length; j++) { if (items[j] != item) { sourceBill.Items[index] = items[j]; index++; } } } else { sourceBill.Items = null; } return true; }
public static bool IsCancel(OrderBillItem item) { return (item.Status == 0); }
/// <summary> /// Return OrderBillItem to string format /// (amount) name* /// - option/option/... /// </summary> /// <param name="item">OrderBillItem object to show</param> /// <returns>Output of bill item string.</returns> public static string OrderBillItemDisplayString(OrderBillItem item) { StringBuilder sb = new StringBuilder(); if (item.ServeTime != DateTime.MinValue) sb.Append("[F] "); else sb.Append("[O] "); MenuItem menuItem = MenuManagement.GetMenuItemFromID(item.MenuID); if (menuItem == null) sb.Append("Unknown"); else sb.Append(MenuManagement.GetMenuLanguageName(menuItem)); if (item.Message != null && item.Message.Length > 0) sb.Append("*"); if (!item.DefaultOption && item.ItemChoices != null) { bool found; int cnt = 0; for (int optionCnt = 0;optionCnt < item.ItemChoices.Length;optionCnt++) { found = false; for (int defaultCnt = 0;defaultCnt < menuItem.MenuDefaults.Length;defaultCnt++) if (menuItem.MenuDefaults[defaultCnt].DefaultChoiceID == item.ItemChoices[optionCnt].ChoiceID) found = true; if (found) continue; OptionChoice option = MenuManagement.GetOptionChoiceFromID(item.ItemChoices[optionCnt].ChoiceID); if (option != null) { if (cnt == 0) sb.Append("\n-"); else sb.Append("/"); sb.Append(option.ChoiceName); cnt++; } } } return sb.ToString(); }
private void ListOrderItem_ItemClick(object sender, ItemsListEventArgs e) { OrderBill sourceBill = null; OrderBillItem selectedItem = null; if (this.moveItem) { sourceBill = this.selectedBill; selectedItem = this.selectedItem; } if (e.Item.Value is OrderBill) { this.selectedBill = (OrderBill) e.Item.Value; this.selectedItem = null; this.StartInputMenu(); } else if (e.Item.Value is OrderBillItem) { this.selectedItem = (OrderBillItem) e.Item.Value; for (int i = 0; (i >= 0) && (i < this.orderInfo.Bills.Length); i++) { if (this.orderInfo.Bills[i].Items != null) { for (int j = 0; j < this.orderInfo.Bills[i].Items.Length; j++) { if (this.orderInfo.Bills[i].Items[j] == this.selectedItem) { this.selectedBill = this.orderInfo.Bills[i]; i = -2; break; } } } } if (this.selectedBill.CloseBillDate != AppParameter.MinDateTime) { this.StartInputMenu(); } else { this.StartInputOption(); } } if (selectedItem != null) { if (sourceBill != this.selectedBill) { if (OrderManagement.MoveOrderBillItem(sourceBill, this.selectedBill, selectedItem)) { this.isChanged = true; this.UpdateOrderGrid(); } } else { this.UpdateOrderGrid(); } } }
private void StartInputMenu() { this.inputState = 0; this.inputValue = ""; this.selectedItem = null; this.selectedType = null; this.moveItem = false; this.CategoryPad.AutoRefresh = false; this.CategoryPad.ItemStart = 0; this.CategoryPad.AutoRefresh = true; this.UpdateOrderGrid(); this.UpdateMonitor(); this.OptionPad.AutoRefresh = false; this.OptionPad.Items.Clear(); this.OptionPad.ItemStart = 0; this.OptionPad.Red = 1f; this.OptionPad.Green = 1f; this.OptionPad.Blue = 1f; this.OptionPad.AutoRefresh = true; }
public static string OrderBillCountDisplayString(OrderBillItem item, ref double price) { StringBuilder builder = new StringBuilder(); builder.Append(item.Unit); price = 0.0; if (AppParameter.ShowOrderItemPrice) { MenuItem menuItemFromID = MenuManagement.GetMenuItemFromID(item.MenuID); if (menuItemFromID != null) { price = menuItemFromID.Price * item.Unit; builder.Append("\n"); builder.Append(((double) price).ToString("N")); } } return builder.ToString(); }
private void AddOrderBillItem(smartRestaurant.MenuService.MenuItem menu) { OrderBillItem item = OrderManagement.AddOrderBillItem(this.selectedBill, menu, this.employeeID); if (item != null) { this.selectedItem = item; this.isChanged = true; this.StartInputOption(); } else { this.StartInputMenu(); this.isChanged = false; } }
public static string OrderBillItemDisplayString(OrderBillItem item) { StringBuilder builder = new StringBuilder(); if (item.ServeTime != AppParameter.MinDateTime) { builder.Append("[F] "); } else { builder.Append("[O] "); } MenuItem menuItemFromID = MenuManagement.GetMenuItemFromID(item.MenuID); if (menuItemFromID == null) { builder.Append("Unknown"); } else { builder.Append(MenuManagement.GetMenuLanguageName(menuItemFromID)); } if ((item.Message != null) && (item.Message.Length > 0)) { builder.Append("*"); } if (!item.DefaultOption && (item.ItemChoices != null)) { int num = 0; for (int i = 0; i < item.ItemChoices.Length; i++) { bool flag = false; for (int j = 0; j < menuItemFromID.MenuDefaults.Length; j++) { if (menuItemFromID.MenuDefaults[j].DefaultChoiceID == item.ItemChoices[i].ChoiceID) { flag = true; } } if (!flag) { OptionChoice optionChoiceFromID = MenuManagement.GetOptionChoiceFromID(item.ItemChoices[i].ChoiceID); if (optionChoiceFromID != null) { if (num == 0) { builder.Append("\n-"); } else { builder.Append("/"); } builder.Append(optionChoiceFromID.ChoiceName); num++; } } } } return builder.ToString(); }
/// <summary> /// Initial form when start show PrintReceiptForm class. /// Call this method from MainForm. This method will clear all variable and /// load new value from property that MainForm seted. After that, will update /// screen object for show all value. /// </summary> public override void UpdateForm() { // Clear Input selectedItem = null; // Get Menu menuTypes = MenuManagement.MenuTypes; menuOptions = MenuManagement.MenuOptions; // Create Receipt int employeeID; if (((MainForm)MdiParent).User != null) employeeID = ((MainForm)MdiParent).User.UserID; else employeeID = selectedBill.EmployeeID; receipt = new Receipt(selectedBill, employeeID); // Clear Discount Pad DiscountPad.Items.Clear(); discountSelected.Clear(); paymentSelected.Clear(); LoadDiscountSelected(); // Update screen LblPageID.Text = "Employee ID:" + employeeID.ToString() + " | STCB011"; if (AppParameter.IsDemo()) { LblTotalChange.Text = "Change"; LblGuest.Text = "Guest"; } else { LblTotalChange.Text = "Tip"; LblGuest.Text = "Seat"; } StartInputNone(); UpdateTableInformation(); UpdateSummary(); UpdateOrderGrid(); UpdateDiscountList(); UpdatePaymentTypeList(); }
public static bool UndoCancelOrderBillItem(OrderBillItem item, int employeeID) { if (item == null) { return false; } if (IsCancel(item)) { item.Status = 1; item.CancelReasonID = 0; item.EmployeeID = employeeID; item.ChangeFlag = true; } return true; }
/// <summary> /// Method to clear variable and prepare for next menu entry. /// </summary> private void StartInputMenu() { inputState = INPUT_MENU; inputValue = ""; selectedItem = null; selectedType = null; moveItem = false; CategoryPad.AutoRefresh = false; CategoryPad.ItemStart = 0; CategoryPad.AutoRefresh = true; UpdateOrderGrid(); UpdateMonitor(); OptionPad.AutoRefresh = false; OptionPad.Items.Clear(); OptionPad.ItemStart = 0; OptionPad.Red = 1; OptionPad.Green = 1; OptionPad.Blue = 1; OptionPad.AutoRefresh = true; }
public static bool CancelOrderBillItem(OrderBill selectedBill, OrderBillItem item, int employeeID) { if ((selectedBill == null) || (selectedBill.CloseBillDate != AppParameter.MinDateTime)) { return false; } if (item.BillDetailID == 0) { OrderBillItem[] items = selectedBill.Items; if ((items != null) && (items.Length > 1)) { selectedBill.Items = new OrderBillItem[items.Length - 1]; int index = 0; for (int i = 0; i < items.Length; i++) { if (items[i] != item) { selectedBill.Items[index] = items[i]; index++; } } } else { selectedBill.Items = null; } } else { int num3 = CancelForm.Show("Select Cancel Reason"); if (num3 < 0) { return false; } item.CancelReasonID = num3; item.Status = 0; item.EmployeeID = employeeID; item.ChangeFlag = true; } return true; }
/// <summary> /// Add Menu Item to Selected Bill by menu item. /// </summary> /// <param name="menu">Menu Item for insert to selected bill.</param> private void AddOrderBillItem(MenuService.MenuItem menu) { OrderBillItem item = OrderManagement.AddOrderBillItem(selectedBill, menu, employeeID); if (item != null) { selectedItem = item; isChanged = true; StartInputOption(); } else { StartInputMenu(); isChanged = false; } }
/// <summary> /// Move Menu Item to Selected Bill. /// </summary> /// <param name="item">Order bill item for move.</param> /// <returns>true = success, false = fail</returns> public static bool MoveOrderBillItem(OrderBill sourceBill, OrderBill destBill, OrderBillItem item) { if (sourceBill == null || sourceBill.CloseBillDate != DateTime.MinValue || destBill == null || destBill.CloseBillDate != DateTime.MinValue) return false; // Append order OrderBillItem[] oldItems = destBill.Items; if (oldItems != null) { destBill.Items = new OrderBillItem[oldItems.Length + 1]; for (int i = 0;i < oldItems.Length;i++) destBill.Items[i] = oldItems[i]; } else destBill.Items = new OrderBillItem[1]; destBill.Items[destBill.Items.Length - 1] = item; // Remove old item oldItems = sourceBill.Items; if (oldItems != null && oldItems.Length > 1) { sourceBill.Items = new OrderBillItem[oldItems.Length - 1]; int cnt = 0; for (int i = 0;i < oldItems.Length;i++) { if (oldItems[i] != item) { sourceBill.Items[cnt] = oldItems[i]; cnt++; } } } else sourceBill.Items = null; return true; }