private void OnMakePaymentExecute(string obj) { if (CanCloseTicket()) { SelectedTicket.PublishEvent(EventTopicNames.MakePayment); } }
private void OnRemoveTicketLock(string obj) { SelectedTicket.UnLock(); _ticketOrdersViewModel.Refresh(); _allAutomationCommands = null; RefreshVisuals(); }
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"); }
private void OnUpdateFreeTag(string obj) { var cachedTag = AppServices.MainDataContext.SelectedDepartment.TicketTagGroups.Single( x => x.Id == SelectedTicket.LastSelectedTicketTag.Id); Debug.Assert(cachedTag != null); var ctag = cachedTag.TicketTags.SingleOrDefault(x => x.Name.ToLower() == FreeTag.ToLower()); if (ctag == null && cachedTag.SaveFreeTags) { using (var workspace = WorkspaceFactory.Create()) { var tt = workspace.Single <TicketTagGroup>(x => x.Id == SelectedTicket.LastSelectedTicketTag.Id); Debug.Assert(tt != null); var tag = tt.TicketTags.SingleOrDefault(x => x.Name.ToLower() == FreeTag.ToLower()); if (tag == null) { tag = new TicketTag { Name = FreeTag }; tt.TicketTags.Add(tag); workspace.Add(tag); workspace.CommitChanges(); } } } SelectedTicket.UpdateTag(SelectedTicket.LastSelectedTicketTag, new TicketTag { Name = FreeTag }); FreeTag = string.Empty; }
public void AssignTableToSelectedTicket(int tableId) { if (SelectedTicket == null) { CreateNewTicket(); } var table = _ticketWorkspace.GetTableWithId(tableId); Debug.Assert(SelectedTicket != null); if (!string.IsNullOrEmpty(SelectedTicket.LocationName)) { var oldTable = _ticketWorkspace.GetTicketTable(); if (oldTable.TicketId == SelectedTicket.Id) { oldTable.IsTicketLocked = false; oldTable.TicketId = 0; } } if (table.TicketId > 0 && table.TicketId != SelectedTicket.Id) { MoveTicketItems(SelectedTicket.TicketItems.ToList(), table.TicketId); OpenTicket(table.TicketId); } SelectedTicket.DepartmentId = AppServices.CurrentTerminal.DepartmentId > 0 ? AppServices.CurrentTerminal.DepartmentId : SelectedDepartment.Id; SelectedTicket.LocationName = table.Name; table.TicketId = SelectedTicket.GetRemainingAmount() > 0 ? SelectedTicket.Id : 0; }
private bool CanChangeTable(string arg) { if (SelectedTicket != null && !SelectedTicket.IsLocked) { return(SelectedTicket.CanChangeTable()); } return(true); }
private void OnRemoveTicketLock(string obj) { SelectedTicket.UnLock(); _ticketOrdersViewModel.Refresh(); _allAutomationCommands = null; _entityButtons = null; RaisePropertyChanged(() => EntityButtons); RefreshVisuals(); }
private void OnPortionSelected(MenuItemPortion obj) { SelectedItem.UpdatePortion(obj, AppServices.MainDataContext.SelectedDepartment.PriceTag); SelectedTicket.RefreshVisuals(); SelectedTicket.RecalculateTicket(); if (SelectedItemPropertyGroups.Count == 0 && SelectedItemGroupedPropertyItems.Count == 0) { SelectedTicket.ClearSelectedItems(); } }
private void ClosePaymentScreen() { var paidItems = MergedItems.SelectMany(x => x.PaidItems); SelectedTicket.UpdatePaidItems(paidItems); AppServices.MainDataContext.SelectedTicket.PublishEvent(EventTopicNames.PaymentSubmitted); TenderedAmount = ""; ReturningAmount = ""; ReturningAmountVisibility = Visibility.Collapsed; SelectedTicket = null; }
private void UpdateSelectors() { var serviceAmount = SelectedTicket.GetPreTaxServicesTotal() + SelectedTicket.GetPostTaxServicesTotal(); var sum = SelectedTicket.GetPlainSum(); foreach (var order in SelectedTicket.Orders) { UpdateSelector(order, serviceAmount, sum); } RoundSelectors(); }
private void UpdateSelectors() { var serviceAmount = SelectedTicket.GetPreTaxServicesTotal() + SelectedTicket.GetPostTaxServicesTotal(); var sum = SelectedTicket.GetPlainSum(); foreach (var order in SelectedTicket.Orders.Where(x => x.CalculatePrice)) { UpdateSelector(order, serviceAmount, sum, SelectedTicket.TaxIncluded); } RoundSelectors(); }
private void button_Click(object sender, System.Windows.RoutedEventArgs e) { if (SelectedEmployee != null) { SelectedTicket.SetEmployeeId(SelectedEmployee.Id); SelectedTicket.Update(); } Window window1 = Window.GetWindow(this); if (window1 != null) { window1.Close(); } }
private void OnReasonSelected(int?reasonId) { var rid = reasonId.GetValueOrDefault(0); Reason r = AppServices.MainDataContext.Reasons[rid]; if (r.ReasonType == 0) { SelectedTicket.VoidSelectedItems(rid); } if (r.ReasonType == 1) { SelectedTicket.GiftSelectedItems(rid); } }
private void RoundSelectors() { if (AutoRoundValue != 0 && RemainingTotal > 0) { var amount = 0m; foreach (var selector in Selectors) { var price = selector.Price; var newPrice = decimal.Round(price / AutoRoundValue, MidpointRounding.AwayFromZero) * AutoRoundValue; selector.Price = newPrice; amount += (newPrice * selector.RemainingQuantity); } var mLast = Selectors.Where(x => x.RemainingQuantity > 0).OrderBy(x => x.RemainingPrice).First(); mLast.Price += ((SelectedTicket.GetSum() / ExchangeRate) - amount) / mLast.RemainingQuantity; } }
private void OnCloseCommandExecuted(string obj) { var unselectedItem = SelectedItemPropertyGroups.FirstOrDefault(x => x.ForceValue && SelectedItem.Properties.Count(y => y.Model.PropertyGroupId == x.Id) == 0); if (unselectedItem != null) { InteractionService.UserIntraction.GiveFeedback(string.Format(Resources.SelectionRequired_f, unselectedItem.Name)); return; } _showTicketNoteEditor = false; _showExtraPropertyEditor = false; _showFreeTagEditor = false; _removeModifier = false; FreeTag = string.Empty; SelectedTicket.ClearSelectedItems(); }
private void OnPrintJobExecute(PrintJob printJob) { var message = SelectedTicket.GetPrintError(); if (!string.IsNullOrEmpty(message)) { MainWindowViewModel.ShowFeedback(message); return; } if (SelectedTicket.Id == 0) { var result = DataContext.CloseSelectedTicket(); DataContext.OpenTicket(result.TicketId); } AppServices.PrintService.ManualPrintTicket(SelectedTicket.Model, printJob); InvokeCloseTicketRequested(EventArgs.Empty); }
private void OnOrderTagEvent(EventParameters <OrderTagData> obj) { if (obj.Topic == EventTopicNames.OrderTagSelected) { _ticketService.TagOrders(SelectedTicket, SelectedTicket.ExtractSelectedOrders(), obj.Value.OrderTagGroup, obj.Value.SelectedOrderTag, ""); _ticketOrdersViewModel.SelectedTicket = SelectedTicket; ClearSelection = true; RefreshVisuals(); } if (obj.Topic == EventTopicNames.OrderTagRemoved) { _ticketService.UntagOrders(SelectedTicket, SelectedTicket.ExtractSelectedOrders(), obj.Value.OrderTagGroup, obj.Value.SelectedOrderTag); _ticketOrdersViewModel.RefreshSelectedOrders(); RefreshVisuals(); } }
private void OnSelectCalculationSelector(CalculationSelector calculationSelector) { foreach (var calculationType in calculationSelector.CalculationTypes) { var amount = calculationType.Amount; if (amount == 0) { amount = GetTenderedValue(); } if (calculationType.CalculationMethod == 0 || calculationType.CalculationMethod == 1) { amount = amount / ExchangeRate; } SelectedTicket.AddCalculation(calculationType, amount); } UpdatePaymentAmount(0); OrderSelector.UpdateTicket(SelectedTicket); RefreshValues(); }
private void TaxExemption() { string result = PosDialogWindow.PromptKeyboard(Types.Strings.EnterTaxExemptionId, SelectedTicket.TaxExemptId); if (result == null) { return; } if (String.IsNullOrEmpty(result)) { result = null; } SelectedTicket.SetTaxExemptId(result); SelectedTicket.Update(); // Update the tax on the payment control paymentControl.SelectedTicket = SelectedTicket; }
private bool CanShowOrderStatesExecute(OrderStateGroup arg) { if (!SelectedOrders.Any()) { return(false); } if (!arg.DecreaseOrderInventory && !arg.IncreaseOrderInventory && SelectedOrders.Any(x => !x.Locked && !x.IsStateApplied(arg))) { return(false); } if (!arg.CalculateOrderPrice && !SelectedTicket.CanRemoveSelectedOrders(SelectedOrders)) { return(false); } if (SelectedOrders.Any(x => !x.DecreaseInventory && !x.IsStateApplied(arg))) { return(false); } return(!arg.UnlocksOrder || !SelectedOrders.Any(x => x.Locked && x.OrderStateGroupId == arg.Id)); }
private void OnPropertyGroupSelected(MenuItemGroupedPropertyItemViewModel obj) { if (_removeModifier) { SelectedItem.RemoveProperty(obj.MenuItemPropertyGroup, obj.CurrentProperty); obj.UpdateNextProperty(null); } else { SelectedItem.ToggleProperty(obj.MenuItemPropertyGroup, obj.NextProperty); obj.UpdateNextProperty(obj.NextProperty); } SelectedTicket.RefreshVisuals(); SelectedTicket.RecalculateTicket(); if (_removeModifier) { OnRemoveModifier(""); } RaisePropertyChanged("IsRemoveModifierButtonVisible"); }
private bool CanMoveOrders(string arg) { if (SelectedTicket.IsLocked || SelectedTicket.IsClosed) { return(false); } if (!SelectedTicket.CanRemoveSelectedOrders(SelectedOrders)) { return(false); } if (SelectedOrders.Any(x => x.Id == 0)) { return(false); } if (SelectedOrders.Any(x => !x.Locked) && _userService.IsUserPermittedFor(PermissionNames.MoveUnlockedOrders)) { return(true); } return(_userService.IsUserPermittedFor(PermissionNames.MoveOrders)); }
public void RefreshValues() { if (SelectedTicket == null) { return; } _ticketService.RecalculateTicket(SelectedTicket); if (GetRemainingAmount() < 0) { foreach (var cSelector in _cacheService.GetCalculationSelectors().Where(x => !string.IsNullOrEmpty(x.ButtonHeader))) { foreach (var ctemplate in cSelector.CalculationTypes) { while (SelectedTicket.Calculations.Any(x => x.CalculationTypeId == ctemplate.Id)) { SelectedTicket.AddCalculation(ctemplate, 0); } } } _ticketService.RecalculateTicket(SelectedTicket); if (GetRemainingAmount() >= 0) { InteractionService.UserIntraction.GiveFeedback(Resources.AllDiscountsRemoved); } } if (GetPaymentDueValue() <= 0) { UpdatePaymentAmount(SelectedTicket != null ? GetRemainingAmount() : 0); } Totals.ResetCache(); RaisePropertyChanged(() => SelectedTicket); RaisePropertyChanged(() => Totals); RaisePropertyChanged(() => ReturningAmountVisibility); RaisePropertyChanged(() => ReturningAmount); TenderedAmount = ""; }
public void UpdateCalculations() { _ticketService.RecalculateTicket(SelectedTicket); if (GetRemainingAmount() < 0) { foreach (var cSelector in _applicationState.GetCalculationSelectors().Where(x => !string.IsNullOrEmpty(x.ButtonHeader))) { foreach (var ctemplate in cSelector.CalculationTypes) { while (SelectedTicket.Calculations.Any(x => x.CalculationTypeId == ctemplate.Id)) { SelectedTicket.AddCalculation(ctemplate, 0); } } } _ticketService.RecalculateTicket(SelectedTicket); if (GetRemainingAmount() >= 0) { InteractionService.UserIntraction.GiveFeedback(Resources.AllDiscountsRemoved); } } }
public void UpdateTicketPayment(PaymentType paymentType, ChangePaymentType changeTemplate, decimal paymentDueAmount, decimal paidAmount, decimal tenderedAmount) { var paymentAccount = paymentType.Account ?? _ticketService.GetAccountForPayment(SelectedTicket, paymentType); if (paymentDueAmount > SelectedTicket.GetRemainingAmount() && paidAmount > SelectedTicket.GetRemainingAmount()) { var account = _accountBalances.GetActiveAccount(); if (account != null) { var ticketAmount = SelectedTicket.GetRemainingAmount(); var accountAmount = paidAmount - ticketAmount; var accountBalance = _accountBalances.GetAccountBalance(account.Id); if (accountAmount > accountBalance) { accountAmount = accountBalance; } if (ticketAmount > 0) { _ticketService.AddPayment(SelectedTicket, paymentType, paymentAccount, ticketAmount, tenderedAmount); } if (accountAmount > 0) { _ticketService.AddAccountTransaction(SelectedTicket, account, paymentAccount, accountAmount, ExchangeRate); } } _accountBalances.Refresh(); } else { _ticketService.AddPayment(SelectedTicket, paymentType, paymentAccount, paidAmount, tenderedAmount); if (paidAmount > paymentDueAmount && changeTemplate != null) { _ticketService.AddChangePayment(SelectedTicket, changeTemplate, changeTemplate.Account, paidAmount - paymentDueAmount); } } }
public void RefreshValues() { SelectedTicket.RecalculateTicket(); if (SelectedTicket.Model.GetRemainingAmount() < 0) { SelectedTicket.Model.Discounts.Clear(); SelectedTicket.RecalculateTicket(); InteractionService.UserIntraction.GiveFeedback(Resources.AllDiscountsRemoved); } if (GetPaymentValue() <= 0) { PaymentAmount = AppServices.MainDataContext.SelectedTicket != null ? AppServices.MainDataContext.SelectedTicket.GetRemainingAmount().ToString("#,#0.00") : ""; } SelectedTicket.Discounts.Clear(); SelectedTicket.Discounts.AddRange(SelectedTicket.Model.Discounts.Select(x => new DiscountViewModel(x))); RaisePropertyChanged("SelectedTicket"); RaisePropertyChanged("ReturningAmountVisibility"); RaisePropertyChanged("PaymentsVisibility"); RaisePropertyChanged("ReturningAmount"); TenderedAmount = ""; }
public decimal GetRemainingAmount() { return(SelectedTicket.GetRemainingAmount()); }
public bool IsTaggedWith(string tagGroup) { return(!string.IsNullOrEmpty(SelectedTicket.GetTagValue(tagGroup))); }
private void OnEditTicketNote(string obj) { SelectedTicket.PublishEvent(EventTopicNames.EditTicketNote); }
private void OnMoveOrders(string obj) { SelectedTicket.PublishEvent(EventTopicNames.MoveSelectedOrders); }