private OrderTag GetCurrentTag(OrderTag current) { if (current != null) return current; var selected = _selectedItem.GetOrderTagValues().FirstOrDefault(x => x.OrderTagGroupId == OrderTagGroup.Id); if (selected == null) return null; return OrderTagGroup.OrderTags.SingleOrDefault(x => x.Name == selected.TagValue); }
public bool ToggleOrderTag(OrderTagGroup orderTagGroup, OrderTag orderTag, int userId) { var result = true; var otag = OrderTagValues.FirstOrDefault(x => x.Name == orderTag.Name); if (otag == null) { if (orderTagGroup.MaxSelectedItems > 1 && OrderTagValues.Count(x => x.OrderTagGroupId == orderTagGroup.Id) >= orderTagGroup.MaxSelectedItems) { return(false); } var tagIndex = -1; if (orderTagGroup.MaxSelectedItems == 1) { var sTag = OrderTagValues.SingleOrDefault(x => x.OrderTagGroupId == orderTag.OrderTagGroupId); if (sTag != null) { tagIndex = OrderTagValues.IndexOf(sTag); } OrderTagValues.Where(x => x.OrderTagGroupId == orderTagGroup.Id).ToList().ForEach(x => OrderTagValues.Remove(x)); } TagOrder(orderTagGroup, orderTag, userId, tagIndex); } else { otag.Quantity++; if (orderTagGroup.MaxSelectedItems == 1 || (orderTag.MaxQuantity > 0 && otag.Quantity > orderTag.MaxQuantity)) { UntagOrder(otag); result = false; } } return(result); }
private void TagOrder(OrderTagGroup orderTagGroup, OrderTag orderTag, int userId, int tagIndex, string tagNote) { var otag = new OrderTagValue { TagValue = orderTag.Name, OrderTagGroupId = orderTagGroup.Id, TagName = orderTagGroup.Name, TagNote = !string.IsNullOrEmpty(tagNote) ? tagNote : null, MenuItemId = orderTag.MenuItemId, AddTagPriceToOrderPrice = orderTagGroup.AddTagPriceToOrderPrice, PortionName = orderTag.MenuItemId > 0 ? PortionName : null, UserId = userId, Quantity = 1, OrderKey = orderTagGroup.SortOrder.ToString("000") + orderTag.SortOrder.ToString("000") }; otag.UpdatePrice(orderTag.Price); if (tagIndex > -1) { OrderTagValues.Insert(tagIndex, otag); } else { OrderTagValues.Add(otag); } OrderTags = JsonHelper.Serialize(OrderTagValues); _orderTagValues = null; }
public void TagIfNotTagged(OrderTagGroup orderTagGroup, OrderTag orderTag, int userId) { if (OrderTagValues.FirstOrDefault(x => x.OrderTagGroupId == orderTagGroup.Id && x.Name == orderTag.Name) == null) { ToggleOrderTag(orderTagGroup, orderTag, userId); } }
private void TagOrder(OrderTagGroup orderTagGroup, OrderTag orderTag, int userId, int tagIndex) { var otag = new OrderTagValue { Name = orderTag.Name, OrderTagGroupId = orderTagGroup.Id, OrderTagGroupName = orderTagGroup.Name, MenuItemId = orderTag.MenuItemId, AddTagPriceToOrderPrice = orderTagGroup.AddTagPriceToOrderPrice, PortionName = PortionName, SubValue = !string.IsNullOrEmpty(orderTagGroup.ButtonHeader) && orderTag.Price == 0 && orderTagGroup.MaxSelectedItems == 1, UserId = userId, Quantity = 1, NewTag = true, OrderKey = orderTagGroup.Order.ToString("000") + orderTag.Order.ToString("000") }; otag.UpdatePrice(TaxIncluded, TaxRate, orderTag.Price); if (tagIndex > -1) { OrderTagValues.Insert(tagIndex, otag); } else { OrderTagValues.Add(otag); } }
public OrderTagViewModel(OrderTag model, IMenuService menuService) { _menuService = menuService; Model = model; if (string.IsNullOrEmpty(model.Name)) model.Name = string.Format("[{0}]", Resources.NewProperty); UpdateMenuItem(model.MenuItemId); }
public OrderTagButtonViewModel(IEnumerable<Order> selectedOrders, OrderTagGroup tagGroup, OrderTag model) { _selectedOrders = selectedOrders; Model = model; OrderTagGroup = tagGroup; if (string.IsNullOrEmpty(model.Name)) model.Name = string.Format("[{0}]", Resources.NewProperty); }
public OrderTag AddOrderTag(string name, decimal price) { var prp = new OrderTag { Name = name, Price = price }; OrderTags.Add(prp); return(prp); }
public void UntagIfTagged(OrderTagGroup orderTagGroup, OrderTag orderTag) { var value = OrderTagValues.FirstOrDefault(x => x.OrderTagGroupId == orderTagGroup.Id && x.Name == orderTag.Name); if (value != null) { UntagOrder(value); } }
public bool UntagIfTagged(OrderTagGroup orderTagGroup, OrderTag orderTag) { var value = OrderTagValues.FirstOrDefault(x => x.OrderTagGroupId == orderTagGroup.Id && x.TagValue == orderTag.Name); if (value != null) { UntagOrder(value); return(true); } return(false); }
public void UpdateNextTag(OrderTag current) { CurrentTag = GetCurrentTag(current); NextTag = OrderTagGroup.OrderTags.First(); if (CurrentTag != null) { var nProp = OrderTagGroup.OrderTags.SkipWhile(x => x.Name != CurrentTag.Name).Skip(1).FirstOrDefault(); if (nProp != null) NextTag = nProp; } Name = CurrentTag != null ? CurrentTag.Name : OrderTagGroup.Name; }
public void UntagIfTagged(OrderTagGroup orderTagGroup, OrderTag orderTag, int userId) { var value = OrderTagValues.FirstOrDefault(x => x.OrderTagGroupId == orderTagGroup.Id && x.Name == orderTag.Name); if (value != null) ToggleOrderTag(orderTagGroup, orderTag, userId); }
private void TagOrder(OrderTagGroup orderTagGroup, OrderTag orderTag, int userId, int tagIndex) { var otag = new OrderTagValue { Name = orderTag.Name, OrderTagGroupId = orderTagGroup.Id, OrderTagGroupName = orderTagGroup.Name, MenuItemId = orderTag.MenuItemId, AddTagPriceToOrderPrice = orderTagGroup.AddTagPriceToOrderPrice, PortionName = PortionName, SubValue = !string.IsNullOrEmpty(orderTagGroup.ButtonHeader) && orderTag.Price == 0 && orderTagGroup.MaxSelectedItems == 1, UserId = userId, Quantity = 1, NewTag = true, OrderKey = orderTagGroup.Order.ToString("000") + orderTag.Order.ToString("000") }; otag.UpdatePrice(TaxIncluded, TaxRate, orderTag.Price); if (tagIndex > -1) OrderTagValues.Insert(tagIndex, otag); else OrderTagValues.Add(otag); }
public void UntagIfTagged(OrderTagGroup orderTagGroup, OrderTag orderTag) { var value = OrderTagValues.FirstOrDefault(x => x.OrderTagGroupId == orderTagGroup.Id && x.Name == orderTag.Name); if (value != null) UntagOrder(value); }
public bool ToggleOrderTag(OrderTagGroup orderTagGroup, OrderTag orderTag, int userId) { var result = true; var otag = OrderTagValues.FirstOrDefault(x => x.Name == orderTag.Name); if (otag == null) { if (orderTagGroup.MaxSelectedItems > 1 && OrderTagValues.Count(x => x.OrderTagGroupId == orderTagGroup.Id) >= orderTagGroup.MaxSelectedItems) return false; var tagIndex = -1; if (orderTagGroup.MaxSelectedItems == 1) { var sTag = OrderTagValues.SingleOrDefault(x => x.OrderTagGroupId == orderTag.OrderTagGroupId); if (sTag != null) tagIndex = OrderTagValues.IndexOf(sTag); OrderTagValues.Where(x => x.OrderTagGroupId == orderTagGroup.Id).ToList().ForEach(x => OrderTagValues.Remove(x)); } TagOrder(orderTagGroup, orderTag, userId, tagIndex); } else { otag.Quantity++; if (orderTagGroup.MaxSelectedItems == 1 || (orderTag.MaxQuantity > 0 && otag.Quantity > orderTag.MaxQuantity)) { UntagOrder(otag); result = false; } } return result; }
public bool IsTaggedWith(OrderTag model) { return OrderTagValues.Any(x => x.Name == model.Name); }
public void TagOrders(Ticket ticket, IEnumerable<Order> selectedOrders, OrderTagGroup orderTagGroup, OrderTag orderTag, string tagNote) { var so = selectedOrders.ToList(); if (orderTagGroup.MaxSelectedItems == 1) { foreach (var order in so.Where(x => x.OrderTagExists(y => y.OrderTagGroupId == orderTagGroup.Id && y.TagValue != orderTag.Name))) { var orderTagValue = order.GetOrderTagValues().First(x => x.OrderTagGroupId == orderTagGroup.Id); order.UntagOrder(orderTagValue); _applicationState.NotifyEvent(RuleEventNames.OrderUntagged, new { Ticket = ticket, Order = order, OrderTagName = orderTagGroup.Name, OrderTagValue = orderTagValue.TagValue }); } } foreach (var selectedOrder in so) { var result = selectedOrder.ToggleOrderTag(orderTagGroup, orderTag, _applicationState.CurrentLoggedInUser.Id, tagNote); if (orderTagGroup.SaveFreeTags && orderTagGroup.OrderTags.All(x => x.Name != orderTag.Name)) { _ticketDao.SaveFreeOrderTag(orderTagGroup.Id, orderTag); _cacheService.ResetOrderTagCache(); } _applicationState.NotifyEvent(result ? RuleEventNames.OrderTagged : RuleEventNames.OrderUntagged, new { Ticket = ticket, Order = selectedOrder, OrderTagName = orderTagGroup.Name, OrderTagValue = orderTag.Name }); } }
private void TagOrder(OrderTagGroup orderTagGroup, OrderTag orderTag, int userId, int tagIndex) { var otag = new OrderTagValue { Name = orderTag.Name, OrderTagGroupId = orderTagGroup.Id, MenuItemId = orderTag.MenuItemId, AddTagPriceToOrderPrice = orderTagGroup.AddTagPriceToOrderPrice, PortionName = PortionName, UserId = userId, DecreaseInventory = orderTagGroup.DecreaseOrderInventory, CalculatePrice = orderTagGroup.CalculateOrderPrice, Quantity = 1, UnlocksOrder = orderTagGroup.UnlocksOrder, NewTag = true }; otag.UpdatePrice(TaxIncluded, TaxRate, orderTag.Price); if (tagIndex > -1) OrderTagValues.Insert(tagIndex, otag); else OrderTagValues.Add(otag); CalculatePrice = orderTagGroup.CalculateOrderPrice; DecreaseInventory = orderTagGroup.DecreaseOrderInventory; if (orderTagGroup.UnlocksOrder) Locked = false; }
public void UntagOrders(Ticket ticket, IEnumerable<Order> selectedOrders, OrderTagGroup orderTagGroup, OrderTag orderTag) { foreach (var selectedOrder in selectedOrders.Where(selectedOrder => selectedOrder.UntagIfTagged(orderTagGroup, orderTag))) { _applicationState.NotifyEvent(RuleEventNames.OrderUntagged, new { Ticket = ticket, Order = selectedOrder, OrderTagName = orderTagGroup.Name, OrderTagValue = orderTag.Name }); } }
private void TagOrder(OrderTagGroup orderTagGroup, OrderTag orderTag, int userId, int tagIndex, string tagNote) { var otag = new OrderTagValue { TagValue = orderTag.Name, OrderTagGroupId = orderTagGroup.Id, TagName = orderTagGroup.Name, TagNote = !string.IsNullOrEmpty(tagNote) ? tagNote : null, MenuItemId = orderTag.MenuItemId, AddTagPriceToOrderPrice = orderTagGroup.AddTagPriceToOrderPrice, PortionName = orderTag.MenuItemId > 0 ? PortionName : null, UserId = userId, Quantity = 1, OrderKey = orderTagGroup.SortOrder.ToString("000") + orderTag.SortOrder.ToString("000") }; otag.UpdatePrice(orderTag.Price); if (tagIndex > -1) OrderTagValues.Insert(tagIndex, otag); else OrderTagValues.Add(otag); OrderTags = JsonHelper.Serialize(OrderTagValues); _orderTagValues = null; }
public bool IsTaggedWith(OrderTag orderTag) { return OrderTagValues.Any(x => x.TagValue == orderTag.Name); }
public bool IsTaggedWith(OrderTag orderTag) { return(OrderTagValues.Any(x => x.TagValue == orderTag.Name)); }
public bool IsTaggedWith(OrderTag model) { return(OrderTagValues.Any(x => x.Name == model.Name)); }
public bool UntagIfTagged(OrderTagGroup orderTagGroup, OrderTag orderTag) { var value = OrderTagValues.FirstOrDefault(x => x.OrderTagGroupId == orderTagGroup.Id && x.TagValue == orderTag.Name); if (value != null) { UntagOrder(value); return true; } return false; }
public OrderTag AddOrderTag(string name, decimal price) { var prp = new OrderTag { Name = name, Price = price }; OrderTags.Add(prp); return prp; }
public void ToggleOrderTag(OrderTagGroup orderTagGroup, OrderTag orderTag, int userId) { var result = _model.ToggleOrderTag(orderTagGroup, orderTag, userId); _automationService.NotifyEvent(result ? RuleEventNames.OrderTagged : RuleEventNames.OrderUntagged, new { Order = Model, OrderTagName = orderTagGroup.Name, OrderTagValue = orderTag.Name }); RefreshProperties(); RaisePropertyChanged(() => TotalPrice); RaisePropertyChanged(() => Quantity); RaisePropertyChanged(() => Description); RaisePropertyChanged(() => FontWeight); RaisePropertyChanged(() => IsLocked); }