private void SubmitPaymentAmount(PaymentType paymentType, ChangePaymentType changeTemplate, decimal paymentDueAmount, decimal tenderedAmount) { var returningAmount = _returningAmountViewModel.GetReturningAmount(tenderedAmount, paymentDueAmount, changeTemplate); var paidAmount = (changeTemplate == null) ? tenderedAmount - returningAmount : tenderedAmount; var paymentAmount = paymentDueAmount > paidAmount ? paymentDueAmount - paidAmount : _paymentEditor.GetRemainingAmount(); _orderSelectorViewModel.UpdateSelectedTicketPaidItems(); _paymentEditor.UpdateTicketPayment(paymentType, changeTemplate, paymentDueAmount, paidAmount, tenderedAmount); _numberPadViewModel.LastTenderedAmount = (paidAmount / _paymentEditor.ExchangeRate).ToString(LocalSettings.ReportCurrencyFormat); _tenderedValueViewModel.UpdatePaymentAmount(paymentAmount); if (returningAmount == 0 && _paymentEditor.GetRemainingAmount() == 0) { OnClosePaymentScreen(""); } else { if (returningAmount > 0) { _returningAmountViewModel.PublishEvent(EventTopicNames.Activate); } if (paymentDueAmount <= paidAmount) { _orderSelectorViewModel.PersistSelectedItems(); } _numberPadViewModel.ResetValues(); RaisePropertyChanged(() => SelectedTicketTitle); } }