private void ApplyDiscount() { TicketDiscount result = null; FormattedListBoxItem selectedItem = (FormattedListBoxItem)listBoxAvailable.SelectedItem; Discount discount = (Discount)selectedItem.ReferenceObject; bool hasPermission = (!discount.RequiresPermission || SessionManager.ActiveEmployee.HasPermission(Permissions.RegisterDiscounts)); if (!hasPermission && (PosHelper.GetPermission(Permissions.RegisterDiscounts) == null)) { PosDialogWindow.ShowDialog( Types.Strings.YouDoNotHavePermissionToApplyThisDiscount, Types.Strings.PermissionDenied); return; } if (discount.Amount == null) { double?amount = discount.AmountIsPercentage ? PosDialogWindow.PromptPercentage(this, Types.Strings.EnterDiscountPercentage, null) : PosDialogWindow.PromptNumber(Types.Strings.EnterDiscountAmount, (double?)null); if (amount != null) { result = TicketDiscount.Add(discount.Id, SelectedTicket.PrimaryKey, amount.Value, SessionManager.PseudoEmployeeId); } } else { result = TicketDiscount.Add(discount.Id, SelectedTicket.PrimaryKey, null, SessionManager.PseudoEmployeeId); } if (result != null) { listBoxAvailable.SelectedItem = null; listBoxAvailable.Items.Remove(selectedItem); listBoxApplied.Items.Add(selectedItem); listBoxApplied.SelectedItem = selectedItem; } }