//Счетчик к-ва одного блюда +/-
 protected void AddCountDish(string dish, string id, float count, string marker)
 {
     var value = new Specification { Count = count, NameDish = dish, Marker = marker, IdDish = id};
     //Уберем вставку из старого чека по "НомерСтроки"
     if (id.Length < 3)
     {
         AddCountToXmlOrder(count, id);
         return;
     }
     var temp = _order.Dish[id];
     value.Modifikators = temp.Modifikators;
     _order.Dish.Remove(id);
     _order.Dish.Add(id, value);
 }
Exemple #2
0
 //По нажатию на меню
 public Item AddItem(ListCellButtonClickEventArgs e)
 {
     var c = new Item();
     //Cells из меню, у них другой порядок !!!!!
     c.ItemLine.Add("1"); //Count
     c.ItemLine.Add(e.Item.Cells[0].Value.ToString()); //Name
     c.ItemLine.Add(e.Item.Cells[1].Value.ToString()); //Id
     c.ItemLine.Add(MenuXml.GetMarker(e.Item.Cells[1].Value.ToString()));//Marker
     //Блюдо может быть нажато повторно
     //тогда оно не полезет в Dictionary
     //будет исключение
     var value = new Specification { Count = 1, NameDish = e.Item.Cells[0].Value.ToString(), Marker = e.Item.TemplateName };
         try
         {
             _order.Dish.Add(e.Item.Cells[1].Value.ToString(), value);
         }
         catch (Exception)
         {
             return null;
         }
     return c;
 }
 private void OrderFromCach(IEnumerable<CardItem> list)
 {
     //Грузим последний в окно
     //_lblHeader.Text = string.Format("Order - {0}", DG.OrderTable.Element("Заказ").Attribute("НомерЗаказа").Value);
     foreach (var p in list)
     {
         var item = new ListItem(_lstOrders.Group.Definition);
         item.Cells[0].Value = p.Count;
         item.Cells[1].Value = p.Name;
         item.Cells[2].Value = p.Id;
         item.TemplateName = p.Template;
         item.Tag = p.Tag;
         _lstOrders.Group.Add(item);
     }
     //Восстанавливаем Dish
     var dish = DG.CachingDich[DG.TableN];
     foreach (var p in dish)
     {
         var temp = new Specification { Count = p.Count, NameDish = p.Name, Marker = p.Marker, IdDish = p.IdDish, Modifikators = p.Modifikators };
         _order.Dish.Add(p.Key, temp);
     }
 }
        //При нажатии в меню добавляем блюдо в чек
        private void AddLineToOrderScreen(string dish, string id, 
                    string count, bool print, bool addDish, bool children)
        {
            //Вычисляем маркер
            //PRINTON - серый
            //PRINTOFF- красный/нередактируемый
            //Defaul - обычный
            //POPUPORDER - c Модификатор
            var marker = print ? "PRINTOFF" : "Default";
            if ((id.Length < 3) && (!print)) marker = "PRINTON"; //можно править
            if (children && (id.Length < 3)) marker = "PRINTOFFPOPUP"; //блюдо в чеке с детьми и можно править
            if (children && (id.Length > 3)) marker = "POPUPORDER"; //блюдо в меню с детьми
            if(print) marker = "PRINTOFF";
            //Выходим, если стол красный "CALCULATE"
            if (DG.Calc && addDish)
            {
                MessageBox.Show(this.Device, "Этот стол рассчитан!", MessageBoxButtons.OKAY, null, null);
                return;
            }
            //Блюдо может быть нажато повторно
            //тогда оно не полезет в Dictionary
            //будет исключение
            var guidKey = id;
            if (addDish) //Старые не заносим в Dish
            {   //записываем id, будем использовать в GetPrice(id)
                var value = new Specification {Count = 1, NameDish = dish, Marker = marker, IdDish = id};
                try
                {
                    _order.Dish.Add(id, value);
                }
                catch (Exception)
                { //Надо засунуть в словарь повторно, если есть Модификатор
                    if(!children) return;
                    //Добавляем в List строя ключь Random
                    guidKey = Guid.NewGuid().ToString();
                    _order.Dish.Add(guidKey, value); //todo Теряем Id
                }
            }

            var item = new ListItem(_lstOrders.Group.Definition);
            item.Cells[0].Value = count;
            item.Cells[1].Value = dish;
            //Если блюдо из старого чека, нас интересует не id, а НомерСтроки из Orders.xml
            //это будем отслеживать при нажатии и править DataGarcon.OrderTable
            //Cells[2] - используем для идентификации в заказе - это строка
            item.Cells[2].Value = id;
            item.Tag = guidKey; //Засовываем в Tag старый Ид или новое значение
            item.TemplateName = marker;
            _lstOrders.Group.Add(item);
            //PushList(addDish); //todo раскоментировать, если добавлять вверх списка
        }
Exemple #5
0
 private void ChangeCount(ListCellGestureEventArgs e, int count)
 {
     e.Item.Cells[0].Value = count.ToString();
     var id = e.Item.Cells[2].Value.ToString();
     var value = new Specification { Count = count, NameDish = e.Item.Cells[1].Value.ToString() };
     //XML нет в Dish
     if (e.Item.Cells[2].Value.ToString().Length < 3) return;
     _order.Dish.Remove(id);
     _order.Dish.Add(id, value);
 }