void HandlePopUpInput(PopUpMenu selForm) { var trigger = false; for (var i = 0; i < selForm.ListModifiers.Group.Count; i++) { var flag = selForm.ListModifiers.Group.ElementAt(i).Cells[0].Value.Equals(Device.Resources.Images[0x001B]); if (flag) trigger = true; int q; for (q = 0; q < _modifiers.Count; q++) if(_modifiers.ElementAt(q).Value.Id == (string)selForm.ListModifiers.Group.ElementAt(i).Cells[2].Value) break; _modifiers[_modifiers.ElementAt(q).Key] = new Modifier() { Select = flag, Name = _modifiers[_modifiers.ElementAt(q).Key].Name, Id = _modifiers[_modifiers.ElementAt(q).Key].Id, Required = _modifiers[_modifiers.ElementAt(q).Key].Required }; } if(_e != null) _e.Item.TemplateName = trigger ? RecSets.MarkerOrder.POPUPORDERChecked.ToString() : RecSets.MarkerOrder.POPUPORDER.ToString(); else _last.TemplateName = trigger ? RecSets.MarkerOrder.POPUPORDERChecked.ToString() : RecSets.MarkerOrder.POPUPORDER.ToString(); //Удаляем из системы обработчики selForm.PopupCancelled -= new EventHandler(SelFormPopupCancelled); selForm.Hidden -= new EventHandler(SelFormHidden); selForm.Destroy(); }
private void ReloadPopUp(string tag) { if (_dg.PopUpBusy) return; _dg.PopUpBusy = true; //В tag может быть Guid или Id var modifiers = (IModifiers)_dg.CurrentOrder.FindModifiersTagGuid(tag); _modifiers = modifiers.GetModifiers(); var dish = _dg.CurrentOrder.FindIdTagGuid(tag); var selForm = new PopUpMenu(_dg, _modifiers, dish.Id, _OkEnable); selForm.PopupCancelled += new EventHandler(SelFormPopupCancelled); selForm.PostbackComplete += new EventHandler(ShowCheckboxPostbackComplete); selForm.Show(); }
//Смотрим наличие PopUp выбора типа кола 0.33/0.5/1 private void PopUpChildren(string tag) { //tag - id но оно может несоответствовать меню, так как в словарь засунули с новым ид //надо смотреть словарь и проверять соответствие клюсч-ид, если разные - возвращать ид меню _iD = tag; //Сохраняем ключ словаря tag = SeeDishNewNameId(tag, out FlagOld); //Получаем спмсок модификаторов из меню List<Modifikator> currentModifikators = GetModifikators(tag); //Смотрим Dish по iD currentModifikators = FlagOld ? GetXmlModifikators(tag, currentModifikators) : GetDishModifikators(_iD, currentModifikators); //todo модификаторов нет выходим. Это ошибочная ситуация if (!currentModifikators.Any()) { FormMain.ConsolePrint("ошибка получения списка модификаторов." + tag.ToString()); return; } var selForm = new PopUpMenu(DG.Device, currentModifikators); //На Cancel вешаем как и на OK. Cancel не имеет логики, в дальнейшем убрать selForm.PopupCancelled += new EventHandler(SelFormPopupCancelled); //selForm.Hidden += new EventHandler(SelFormHidden); selForm.PostbackComplete += new EventHandler(ShowCheckboxPostbackComplete); //selForm.Tag = group; selForm.Show(); }
//Модернизируем _order.Dish void HandlePopUpInput(PopUpMenu selForm) { //todo CLONE Тут не получим модификаторы по клону bool flagClone; var id = SeeDishNewNameId(_iD, out flagClone); //Смотрим по правильному Ид и для клона и для сингла var currentModifikators = GetModifikators(id); var pointElement = 0; if (!FlagOld) //блюдо новое и в Dish { //Берем по правильному iD var dish = _order.Dish[_iD]; var count = 0; //Чистим старые модификаторы dish.Modifikators.Clear(); //Заносим новые foreach (var p in selForm.Checks) { if (p.Checked.ToString() == "CHECKED") //Проверяем наличие галочки dish.Modifikators.Add(new Modifikator { Name = currentModifikators.ElementAt(count).Name, Id = currentModifikators.ElementAt(count).Id, Check = true }); count++; } _order.Dish.Remove(_iD); _order.Dish.Add(_iD, dish); } else { //Удаляем модификаторы - старые try { pointElement = GetLineTag(_lineTag); while (DG.OrderTable.Descendants("СтрокаЗаказа").ElementAt(pointElement + 1).Attributes("Модификатор").First().Value == "Да") { DG.OrderTable.Descendants("СтрокаЗаказа").ElementAt(pointElement + 1).Remove(); } } catch (Exception) { } //Заносим новые var count = 0; foreach (var p in selForm.Checks) { if (p.Checked.ToString() == "CHECKED") { DG.OrderTable.Descendants("СтрокаЗаказа").ElementAt(pointElement).AddAfterSelf(new XElement("СтрокаЗаказа", new XAttribute("НомерСтроки", "99"), //Потом переименуем все new XAttribute("Товар", currentModifikators.ElementAt(count).Name), new XAttribute("Модификатор", "Да"), new XAttribute("ТоварИД", currentModifikators.ElementAt(count).Id))); }; count++; } } //Удаляем из системы обработчики selForm.PopupCancelled -= new EventHandler(SelFormPopupCancelled); selForm.Hidden -= new EventHandler(SelFormHidden); selForm.Destroy(); }