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();
     }
 }
示例#9
0
        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;
                }
            }
        }
示例#10
0
 /// <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;
         }
     }
 }
示例#11
0
 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();
     }
 }