private void OnPropertySelected(MenuItemProperty obj)
        {
            var mig = SelectedItemPropertyGroups.FirstOrDefault(propertyGroup => propertyGroup.Properties.Contains(obj));

            Debug.Assert(mig != null);
            if (_removeModifier)
            {
                if (mig.ForceValue && SelectedItem.Properties.Count(x => x.Model.PropertyGroupId == mig.Id) < 2)
                {
                    InteractionService.UserIntraction.GiveFeedback(string.Format(Resources.SelectionRequired_f, mig.Name));
                }
                else
                {
                    SelectedItem.RemoveProperty(mig, obj);
                }
            }
            else
            {
                SelectedItem.ToggleProperty(mig, obj);
            }
            SelectedTicket.RefreshVisuals();
            SelectedTicket.RecalculateTicket();
            if (_removeModifier)
            {
                OnRemoveModifier("");
            }
            RaisePropertyChanged("IsRemoveModifierButtonVisible");
        }
Ejemplo n.º 2
0
        public TicketItemProperty ToggleProperty(MenuItemPropertyGroup group, MenuItemProperty menuItemProperty)
        {
            var ti = _model.ToggleProperty(group, menuItemProperty);

            if (ti != null)
            {
                RuleExecutor.NotifyEvent(RuleEventNames.ModifierSelected,
                                         new
                {
                    Ticket                    = AppServices.MainDataContext.SelectedTicket,
                    TicketItem                = Model,
                    TicketTag                 = AppServices.MainDataContext.SelectedTicket.Tag,
                    MenuItemName              = _model.MenuItemName,
                    ModifierGroupName         = group.Name,
                    ModifierName              = menuItemProperty.Name,
                    ModifierPrice             = ti.PropertyPrice.Amount + ti.VatAmount,
                    ModifierQuantity          = ti.Quantity,
                    IsRemoved                 = !_model.Properties.Contains(ti),
                    IsPriceAddedToParentPrice = ti.CalculateWithParentPrice,
                    TotalPropertyCount        = Model.Properties.Count,
                    TotalModifierQuantity     = Model.Properties.Where(x => x.PropertyGroupId == group.Id).Sum(x => x.Quantity),
                    TotalModifierPrice        = Model.Properties.Where(x => x.PropertyGroupId == group.Id).Sum(x => x.PropertyPrice.Amount + x.VatAmount)
                });
            }
            RefreshProperties();
            RaisePropertyChanged("Properties");
            RaisePropertyChanged("TotalPrice");
            RaisePropertyChanged("Quantity");
            return(ti);
        }
Ejemplo n.º 3
0
 public MenuItemPropertyViewModel(MenuItemProperty model)
 {
     Model = model;
     if (string.IsNullOrEmpty(model.Name))
     {
         model.Name = string.Format("[{0}]", Resources.NewProperty);
     }
     UpdateMenuItem(model.MenuItemId);
 }
Ejemplo n.º 4
0
        public void RemoveProperty(MenuItemPropertyGroup mig, MenuItemProperty menuItemProperty)
        {
            var p = Model.Properties.Where(x => x.PropertyGroupId == mig.Id && x.Name == menuItemProperty.Name && (x.VatAmount + x.PropertyPrice.Amount) == menuItemProperty.Price.Amount).FirstOrDefault();

            if (p != null)
            {
                Model.Properties.Remove(p);
            }
            RefreshProperties();
            RaisePropertyChanged("Properties");
            RaisePropertyChanged("TotalPrice");
            RaisePropertyChanged("Quantity");
        }
Ejemplo n.º 5
0
        public void Setup()
        {
            _shimObject = ShimsContext.Create();

            _menuBuilderObject        = new MenuPropertyBuilderForm();
            _menuBuilderPrivateObject = new PrivateObject(_menuBuilderObject);

            _propertyGridMenu = (WinForms.PropertyGrid)_menuBuilderPrivateObject.GetField("_pgMenu");
            _menuItemProperty = new MenuItemProperty();

            _treeViewMenu     = (WinForms.TreeView)_menuBuilderPrivateObject.GetField("_tvMenu");
            _btnMoveUp        = (ButtonXP)_menuBuilderPrivateObject.GetField("_bMoveUp");
            _btnMoveDown      = (ButtonXP)_menuBuilderPrivateObject.GetField("_bMoveDown");
            _btnChildSibling  = (ButtonXP)_menuBuilderPrivateObject.GetField("_bChildSibling");
            _btnSiblingParent = (ButtonXP)_menuBuilderPrivateObject.GetField("_bSlibingParent");
            _btnAddChild      = (ButtonXP)_menuBuilderPrivateObject.GetField("_bAddChild");
            _btnRemoveNode    = (ButtonXP)_menuBuilderPrivateObject.GetField("_bRemoveNode");
        }
Ejemplo n.º 6
0
        public void UpdateNextProperty(MenuItemProperty current)
        {
            CurrentProperty = current;
            if (CurrentProperty != null && CurrentProperty.Name.ToLower() == "x")
            {
                CurrentProperty = null;
            }
            NextProperty = MenuItemPropertyGroup.Properties.First();
            var selected             = _selectedItem.Properties.FirstOrDefault(x => x.Model.PropertyGroupId == MenuItemPropertyGroup.Id);
            var selectedPropertyName = selected != null ? selected.Model.Name : "";

            if (!string.IsNullOrEmpty(selectedPropertyName))
            {
                CurrentProperty = MenuItemPropertyGroup.Properties.FirstOrDefault(x => x.Name == selectedPropertyName);
                var nProp = MenuItemPropertyGroup.Properties.SkipWhile(x => x.Name != selectedPropertyName).Skip(1).FirstOrDefault();
                if (nProp != null)
                {
                    NextProperty = nProp;
                }
            }
            Name = CurrentProperty != null ? CurrentProperty.Name : MenuItemPropertyGroup.Name;
        }
Ejemplo n.º 7
0
 private TicketItemProperty FindProperty(MenuItemProperty property)
 {
     return(Properties.FirstOrDefault(x => x.Name == property.Name && (x.PropertyPrice.Amount + x.VatAmount) == property.Price.Amount));
 }
Ejemplo n.º 8
0
        public TicketItemProperty ToggleProperty(MenuItemPropertyGroup group, MenuItemProperty property)
        {
            if (property.Name.ToLower() == "x")
            {
                var groupItems = Properties.Where(x => x.PropertyGroupId == group.Id).ToList();
                foreach (var tip in groupItems)
                {
                    Properties.Remove(tip);
                }
                if (group.MultipleSelection)
                {
                    Quantity = 1;
                }
                return(null);
            }

            var ti = FindProperty(property);

            if (ti == null)
            {
                ti = new TicketItemProperty
                {
                    Name          = property.Name,
                    PropertyPrice = new Price {
                        Amount = property.Price.Amount, CurrencyCode = property.Price.CurrencyCode
                    },
                    PropertyGroupId          = group.Id,
                    MenuItemId               = property.MenuItemId,
                    CalculateWithParentPrice = group.CalculateWithParentPrice,
                    PortionName              = PortionName,
                    Quantity = group.MultipleSelection ? 0 : 1
                };

                if (VatIncluded && VatRate > 0)
                {
                    ti.PropertyPrice.Amount = ti.PropertyPrice.Amount / ((100 + VatRate) / 100);
                    ti.PropertyPrice.Amount = decimal.Round(ti.PropertyPrice.Amount, 2);
                    ti.VatAmount            = property.Price.Amount - ti.PropertyPrice.Amount;
                }
                else if (VatRate > 0)
                {
                    ti.VatAmount = (property.Price.Amount * VatRate) / 100;
                }
                else
                {
                    ti.VatAmount = 0;
                }
            }
            if (group.SingleSelection || !string.IsNullOrEmpty(group.GroupTag))
            {
                var tip = Properties.FirstOrDefault(x => x.PropertyGroupId == group.Id);
                if (tip != null)
                {
                    Properties.Insert(Properties.IndexOf(tip), ti);
                    Properties.Remove(tip);
                }
            }
            else if (group.MultipleSelection)
            {
                ti.Quantity++;
            }
            else if (!group.MultipleSelection && Properties.Contains(ti))
            {
                Properties.Remove(ti);
                _lastSelectedProperty = ti;
                return(ti);
            }

            if (!Properties.Contains(ti))
            {
                Properties.Add(ti);
            }

            _lastSelectedProperty = ti;
            return(ti);
        }
Ejemplo n.º 9
0
 public MenuItemPropertyViewModel(MenuItemProperty model)
 {
     Model = model;
 }