private void ListCustPhone_ItemClick(object sender, smartRestaurant.Controls.ItemsListEventArgs e) { if (e.Item.Value is CustomerService.CustomerInformation) { selectedCust = (CustomerService.CustomerInformation)e.Item.Value; UpdateCustomerField(); } }
private void ListOrderQueue_ItemClick(object sender, smartRestaurant.Controls.ItemsListEventArgs e) { if (e.Item.Value is TakeOutInformation) selectedTakeOut = (TakeOutInformation)e.Item.Value; UpdateOrderButton(); }
/// <summary> /// This method work when user click at Discount button and update value in /// <i>discountSelected</i>. After that, receipt compute new price. /// </summary> /// <param name="sender">Sender object</param> /// <param name="e">Event object</param> private void DiscountPad_PadClick(object sender, smartRestaurant.Controls.ButtonListPadEventArgs e) { if (e.Value == null) return; Discount dis = Receipt.SearchDiscountByID(int.Parse(e.Value)); if (discountSelected.Contains(e.Index)) { // Deselect discount discountSelected.Remove(e.Index); receipt.UseDiscountRemove(dis); } else { // Select discount discountSelected.Add(e.Index); receipt.UseDiscountAdd(dis); } UpdateDiscountList(); UpdateSummary(); }
/// <summary> /// This method work when user click change page for discount list. /// </summary> /// <param name="sender">Sender object</param> /// <param name="e">Event object</param> private void DiscountPad_PageChange(object sender, smartRestaurant.Controls.ButtonListPadEventArgs e) { UpdateDiscountList(); }
private void OptionPad_PadClick(object sender, smartRestaurant.Controls.ButtonListPadEventArgs e) { if ((inputState != INPUT_MENU && inputState != INPUT_OPTION) || (inputState == INPUT_MENU && (inputValue == null || inputValue.Length == 0))) return; // Get Index int index; int optionID, choiceID; if (e.Value == null) return; try { if (inputState == INPUT_OPTION) { string[] strs = e.Value.Split(':'); optionID = int.Parse(strs[0]); choiceID = int.Parse(strs[1]); index = 0; } else { optionID = choiceID = 0; index = int.Parse(e.Value); } } catch (Exception ex) { MessageForm.Show(ex.ToString(), "Exception"); return; } MenuService.MenuItem menu; switch (inputState) { case INPUT_MENU: menu = selectedType.MenuItems[index]; AddOrderBillItem(menu); break; case INPUT_OPTION: string optionStr = optionID + ":"; string choiceStr = choiceID.ToString(); // Set Default to item if (selectedItem.ItemChoices == null) { menu = MenuManagement.GetMenuItemFromID(selectedItem.MenuID); selectedItem.ItemChoices = new OrderItemChoice[menu.MenuDefaults.Length]; for (int i = 0;i < menu.MenuDefaults.Length;i++) { selectedItem.ItemChoices[i] = new OrderItemChoice(); selectedItem.ItemChoices[i].OptionID = menu.MenuDefaults[i].OptionID; selectedItem.ItemChoices[i].ChoiceID = menu.MenuDefaults[i].DefaultChoiceID; } selectedItem.DefaultOption = false; } // Update Screen for (int i = 0;i < OptionPad.Items.Count;i++) { ButtonItem bItem = (ButtonItem)OptionPad.Items[i]; if (bItem.Value.Substring(0, optionStr.Length) == optionStr) { if (bItem.Value.Substring(optionStr.Length) == choiceStr) OptionPad.SetMatrix(i, 2, 1, 2); else OptionPad.SetMatrix(i, 1, 1, 1); } } // Update Data Object for (int i = 0;i < selectedItem.ItemChoices.Length;i++) { if (selectedItem.ItemChoices[i].OptionID == optionID) { selectedItem.ItemChoices[i].ChoiceID = choiceID; selectedItem.DefaultOption = false; selectedItem.ChangeFlag = true; isChanged = true; break; } } break; } }
/// <summary> /// This method works when user select table from table list button. /// After user select, this method will find table information object and pass it to /// MainForm.ShowTakeOrderForm() to show take order form in new or resume order case. /// If this method can't find table information, will show error screen. /// </summary> /// <param name="sender">Sender object</param> /// <param name="e">Event object</param> private void TablePad_PadClick(object sender, smartRestaurant.Controls.ButtonListPadEventArgs e) { if (e.Value == null) return; int tableValue = int.Parse(e.Value); if (tableValue < 0) tableValue = -tableValue; // Search table object by table id for (int i = 0;i < tableInfo.Length;i++) { if (tableInfo[i].TableID == tableValue) { ((MainForm)MdiParent).ShowTakeOrderForm(tableInfo[i]); return; } } // If not found in loop MessageForm.Show("Select Table", "Can't find table information."); }
/// <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(); } }
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(); } }
private void NumberKeyPad_PadClick(object sender, smartRestaurant.Controls.NumberPadEventArgs e) { if (e.IsNumeric) { switch (this.focusField) { case 0: this.FieldUserID.Text = this.FieldUserID.Text + e.Number; return; case 1: this.FieldPassword.Text = this.FieldPassword.Text + "*"; this.hiddenPassword = this.hiddenPassword + e.Number; return; } } else if (e.IsCancel) { switch (this.focusField) { case 0: if (this.FieldUserID.Text.Length > 0) { this.FieldUserID.Text = this.FieldUserID.Text.Substring(0, this.FieldUserID.Text.Length - 1); } return; case 1: if (this.FieldPassword.Text.Length > 0) { this.FieldPassword.Text = this.FieldPassword.Text.Substring(0, this.FieldPassword.Text.Length - 1); this.hiddenPassword = this.hiddenPassword.Substring(0, this.hiddenPassword.Length - 1); } return; } } else if (e.IsEnter) { switch (this.focusField) { case 0: this.focusField = 1; this.CheckFocusField(); return; case 1: this.BtnLogin_Click(null, null); return; default: return; } } }
/// <summary> /// Event method for users click pad on number key pad.<br/> /// This method has 2 main cases. First case is focus on UserID field. /// The other case is focus on Password field. /// </summary> /// <param name="sender">Sender object</param> /// <param name="e">Event object</param> private void NumberKeyPad_PadClick(object sender, smartRestaurant.Controls.NumberPadEventArgs e) { if (e.IsNumeric) { switch (focusField) { case FIELD_USERID: FieldUserID.Text += e.Number; break; case FIELD_PASSWORD: FieldPassword.Text += "*"; hiddenPassword += e.Number; break; } } else if (e.IsCancel) { switch (focusField) { case FIELD_USERID: if (FieldUserID.Text.Length > 0) FieldUserID.Text = FieldUserID.Text.Substring(0, FieldUserID.Text.Length - 1); break; case FIELD_PASSWORD: if (FieldPassword.Text.Length > 0) { FieldPassword.Text = FieldPassword.Text.Substring(0, FieldPassword.Text.Length - 1); hiddenPassword = hiddenPassword.Substring(0, hiddenPassword.Length - 1); } break; } } else if (e.IsEnter) { switch (focusField) { case FIELD_USERID: focusField = FIELD_PASSWORD; CheckFocusField(); break; case FIELD_PASSWORD: BtnLogin_Click(null, null); break; } } }
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; } }
/// <summary> /// This method works when user click at waiting list button. Will call /// OrderService.ServeWaitingOrder() to mark bill item to served status. /// </summary> /// <param name="sender">Sender object</param> /// <param name="e">Event object</param> private void BillItemPad_PadClick(object sender, smartRestaurant.Controls.ButtonListPadEventArgs e) { if (e.Value == null) return; int id = int.Parse(e.Value); OrderService.OrderService service = new OrderService.OrderService(); if (id < 0) { // Order ID id = -id; orderWaiting = service.ServeWaitingOrder(id, 0); } else { // Bill Detail ID orderWaiting = service.ServeWaitingOrder(0, id); } UpdateWaitingList(); }
/// <summary> /// This method works when user change page for table list button. /// </summary> /// <param name="sender">Sender object</param> /// <param name="e">Event object</param> private void TablePad_PageChange(object sender, smartRestaurant.Controls.ButtonListPadEventArgs e) { UpdateTableStatus(); }
private void MessagePad_PadClick(object sender, smartRestaurant.Controls.KeyboardPadEventArgs e) { if (e.KeyCode == KeyboardPad.BUTTON_OK) { switch (inputState) { case INPUT_FIRSTNAME: FieldFName.Text = e.Text; break; case INPUT_MIDDLENAME: FieldMName.Text = e.Text; break; case INPUT_LASTNAME: FieldLName.Text = e.Text; break; case INPUT_ADDRESS: FieldAddress.Text = e.Text; break; case INPUT_MEMO: FieldMemo.Text = e.Text; break; } } else if (e.KeyCode != KeyboardPad.BUTTON_CANCEL) return; MessagePad.Visible = false; ExitInputMessage(); }
/// <summary> /// This event use when user type number pad. When input state is INPUT_PAYVALUE, /// number value will send to input value. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void NumberKeyPad_PadClick(object sender, smartRestaurant.Controls.NumberPadEventArgs e) { if (inputState == INPUT_NONE) return; if (e.IsNumeric) { if (inputState == INPUT_PAYVALUE) { try { double tmpValue = Double.Parse(inputValue); tmpValue = (tmpValue * 10.0) + (0.01 * (double)e.Number); inputValue = tmpValue.ToString("N"); } catch (Exception) { inputValue = "0.0" + e.Number.ToString(); } } else { inputValue += e.Number.ToString(); } UpdateMonitor(); } else if (e.IsCancel) { if (inputState == INPUT_PAYVALUE) { try { double tmpValue = Double.Parse(inputValue); tmpValue = Math.Floor(tmpValue * 10.0) / 100.0; inputValue = tmpValue.ToString("N"); if (tmpValue == 0) { StartInputNone(); receipt.PaymentMethod = null; UpdatePaymentTypeList(); } else UpdateMonitor(); } catch (Exception) { StartInputNone(); receipt.PaymentMethod = null; UpdatePaymentTypeList(); } receipt.PaymentMethod = null; } else { if (inputValue.Length > 1) { inputValue = inputValue.Substring(0, inputValue.Length - 1); UpdateMonitor(); } else StartInputNone(); } } else if (e.IsEnter) { inputValue = inputValue.Replace(",",""); if (inputValue != "") { int intValue; double doubleValue; // Set Value from string to int try { intValue = Int32.Parse(inputValue); } catch (Exception) { intValue = 0; } // Set Value from string to double try { doubleValue = Double.Parse(inputValue); } catch (Exception) { doubleValue = 0.0; } // Check for each case switch (inputState) { case INPUT_PAYVALUE: receipt.PayValue = doubleValue; receipt.SetPaymentMethod(receipt.PaymentMethod, receipt.PayValue); break; case INPUT_POINTAMOUNT: receipt.PointAmount = intValue; break; } } receipt.PaymentMethod = null; UpdatePaymentTypeList(); StartInputNone(); UpdateSummary(); } }
private void NumberKeyPad_PadClick(object sender, smartRestaurant.Controls.NumberPadEventArgs e) { if (e.IsNumeric) { FieldPhone.Text += e.Number.ToString(); } else if (e.IsCancel) { if (FieldPhone.Text.Length > 1) FieldPhone.Text = FieldPhone.Text.Substring(0, FieldPhone.Text.Length - 1); else FieldPhone.Text = ""; } UpdateCustomerButton(); }
/// <summary> /// This method work when user click on PaymentType button list. This method will /// set input state to INPUT_PAYVALUE. /// </summary> /// <param name="sender">Sender object</param> /// <param name="e">Event object</param> private void PaymentTypePad_PadClick(object sender, smartRestaurant.Controls.ButtonListPadEventArgs e) { if (e.Value == null) return; receipt.PaymentMethod = Receipt.SearchPaymentMethodByID(int.Parse(e.Value)); int pos = receipt.PaymentMethodList.IndexOf(receipt.PaymentMethod); if (pos >= 0) receipt.PayValue = (double)receipt.PayValueList[pos]; else receipt.PayValue = 0; StartInputPayValue(); UpdatePaymentTypeList(); UpdateSummary(); }
private void NumberKeyPad_PadClick(object sender, smartRestaurant.Controls.NumberPadEventArgs e) { if (e.IsNumeric) { if (inputState == INPUT_OPTION || inputState == INPUT_MOVEITEM) StartInputMenu(); inputValue += e.Number.ToString(); UpdateMonitor(); } else if (e.IsCancel) { if (inputValue.Length > 1) { inputValue = inputValue.Substring(0, inputValue.Length - 1); UpdateMonitor(); } else StartInputMenu(); } else if (e.IsEnter) { int intValue; // Set Value from string to int try { intValue = Int32.Parse(inputValue); } catch (Exception) { intValue = 0; } // Check for each case switch (inputState) { case INPUT_MENU: if (intValue != 0 && selectedBill != null) { MenuService.MenuItem menu = MenuManagement.GetMenuItemKeyID(intValue); if (menu != null) { AddOrderBillItem(menu); return; } } break; case INPUT_UNIT: if (selectedItem != null) { if (intValue > 0 && selectedItem.Unit != intValue) { selectedItem.Unit = intValue; selectedItem.ChangeFlag = true; isChanged = true; } StartInputMenu(); return; } break; case INPUT_OPTION: break; case INPUT_GUEST: if (intValue > 0) { guestNumber = intValue; UpdateTableInformation(); } break; case INPUT_BILL: if (intValue > 0) { billNumber = intValue; if (billNumber > guestNumber) guestNumber = billNumber; ChangeBillCount(); UpdateOrderGrid(); UpdateTableInformation(); } break; case INPUT_MOVEITEM: break; } StartInputMenu(); } }
/// <summary> /// This method work when user change page in PaymentType button list. /// </summary> /// <param name="sender">Sender object</param> /// <param name="e">Event object</param> private void PaymentTypePad_PageChange(object sender, smartRestaurant.Controls.ButtonListPadEventArgs e) { UpdatePaymentTypeList(); }
private void CategoryPad_PadClick(object sender, smartRestaurant.Controls.ButtonListPadEventArgs e) { int typeIndex; // Check for click in other input state if (inputState == INPUT_UNIT || inputState == INPUT_OPTION) StartInputMenu(); if (inputState != INPUT_MENU) return; // Get type button index if (e.Value == null) return; try { typeIndex = int.Parse(e.Value); } catch (Exception ex) { MessageForm.Show(ex.ToString(), "Exception"); return; } // Show at monitor inputValue = e.Button.Text.Substring(0,2); UpdateMonitor(); // Set Menu Item selectedType = menuTypes[typeIndex]; MenuService.MenuItem[] menuItems = selectedType.MenuItems; OptionPad.AutoRefresh = false; OptionPad.Items.Clear(); OptionPad.ItemStart = 0; if (menuItems != null) for (int i = 0;i < menuItems.Length;i++) OptionPad.Items.Add(new ButtonItem(MenuManagement.GetMenuLanguageName(menuItems[i]), i.ToString())); OptionPad.Red = e.Button.Red; OptionPad.Green = e.Button.Green; OptionPad.Blue = e.Button.Blue; OptionPad.AutoRefresh = true; }
private void MessagePad_PadClick(object sender, smartRestaurant.Controls.KeyboardPadEventArgs e) { if (e.KeyCode == KeyboardPad.BUTTON_OK) { dialogResult = true; this.Close(); } else if (e.KeyCode == KeyboardPad.BUTTON_CANCEL) { dialogResult = false; this.Close(); } }