예제 #1
0
        public async Task <ActionResult> AddRefund(RefundDetailsViewModel model)
        {
            if (!ModelState.IsValid)
            {
                var data = await mediator.SendAsync(new GetAccountManagementData(model.NotificationId));

                var accountManagementViewModel = new AccountManagementViewModel(data);
                accountManagementViewModel.PaymentViewModel = new PaymentDetailsViewModel {
                    NotificationId = model.NotificationId
                };
                accountManagementViewModel.RefundViewModel   = model;
                accountManagementViewModel.ShowRefundDetails = true;

                return(View("Index", accountManagementViewModel));
            }

            var refundData = new NotificationTransactionData
            {
                Date           = model.RefundDate.AsDateTime().Value,
                NotificationId = model.NotificationId,
                Debit          = Convert.ToDecimal(model.RefundAmount),
                Comments       = model.RefundComments.Trim(),
                ReceiptNumber  = "NA"
            };

            await mediator.SendAsync(new AddNotificationTransaction(refundData));

            return(RedirectToAction("index", "AccountManagement", new { id = model.NotificationId }));
        }
        private async Task<RefundDetailsViewModel> GetNewRefundDetailsViewModel(Guid id)
        {
            var limit = await mediator.SendAsync(new GetRefundLimit(id));

            var refundViewModel = new RefundDetailsViewModel
            {
                NotificationId = id,
                Limit = limit
            };

            return refundViewModel;
        }
예제 #3
0
        private async Task <RefundDetailsViewModel> GetNewRefundDetailsViewModel(Guid id)
        {
            var limit = await mediator.SendAsync(new GetRefundLimit(id));

            var refundViewModel = new RefundDetailsViewModel
            {
                NotificationId = id,
                Limit          = limit
            };

            return(refundViewModel);
        }
예제 #4
0
        private async Task <RefundDetailsViewModel> GetNewRefundDetailsViewModel(Guid id)
        {
            var accountOverview = await mediator.SendAsync(new GetImportNotificationAccountOverview(id));

            var firstPayment =
                accountOverview.Transactions.OrderBy(x => x.Date)
                .FirstOrDefault(x => x.Transaction == TransactionType.Payment);

            var model = new RefundDetailsViewModel
            {
                NotificationId           = id,
                Limit                    = accountOverview.TotalPaid,
                FirstPaymentReceivedDate = firstPayment == null ? (DateTime?)null : firstPayment.Date
            };

            return(model);
        }
        public async Task<ActionResult> AddRefund(RefundDetailsViewModel model)
        {
            if (!ModelState.IsValid)
            {
                var data = await mediator.SendAsync(new GetImportNotificationAccountOverview(model.NotificationId));
                var accountManagementViewModel = new AccountManagementViewModel(data);
                accountManagementViewModel.PaymentViewModel = new PaymentDetailsViewModel();
                accountManagementViewModel.RefundViewModel = model;
                accountManagementViewModel.ShowRefundDetails = true;

                return View("Index", accountManagementViewModel);
            }

            var refundData = new AddNotificationRefund(model.NotificationId, Convert.ToDecimal(model.RefundAmount),
                model.RefundDate.AsDateTime().Value, model.RefundComments);

            await mediator.SendAsync(refundData);

            return RedirectToAction("index", "AccountManagement", new { id = model.NotificationId });
        }
예제 #6
0
        public async Task <ActionResult> AddRefund(RefundDetailsViewModel model)
        {
            if (!ModelState.IsValid)
            {
                var data = await mediator.SendAsync(new GetImportNotificationAccountOverview(model.NotificationId));

                var accountManagementViewModel = new AccountManagementViewModel(data);
                accountManagementViewModel.PaymentViewModel  = new PaymentDetailsViewModel();
                accountManagementViewModel.RefundViewModel   = model;
                accountManagementViewModel.ShowRefundDetails = true;

                return(View("Index", accountManagementViewModel));
            }

            var refundData = new AddNotificationRefund(model.NotificationId, Convert.ToDecimal(model.RefundAmount),
                                                       model.RefundDate.AsDateTime().Value, model.RefundComments.Trim());

            await mediator.SendAsync(refundData);

            return(RedirectToAction("index", "AccountManagement", new { id = model.NotificationId }));
        }
        public async Task<ActionResult> AddRefund(RefundDetailsViewModel model)
        {
            if (!ModelState.IsValid)
            {
                var data = await mediator.SendAsync(new GetAccountManagementData(model.NotificationId));
                var accountManagementViewModel = new AccountManagementViewModel(data);
                accountManagementViewModel.PaymentViewModel = new PaymentDetailsViewModel { NotificationId = model.NotificationId };
                accountManagementViewModel.RefundViewModel = model;
                accountManagementViewModel.ShowRefundDetails = true;

                return View("Index", accountManagementViewModel);
            }

            var refundData = new NotificationTransactionData
            {
                Date = model.RefundDate.AsDateTime().Value,
                NotificationId = model.NotificationId,
                Debit = Convert.ToDecimal(model.RefundAmount),
                Comments = model.Comments,
                ReceiptNumber = "NA"
            };

            await mediator.SendAsync(new AddNotificationTransaction(refundData));

            return RedirectToAction("index", "AccountManagement", new { id = model.NotificationId });
        }
        private async Task<RefundDetailsViewModel> GetNewRefundDetailsViewModel(Guid id)
        {
            var accountOverview = await mediator.SendAsync(new GetImportNotificationAccountOverview(id));

            var firstPayment =
                accountOverview.Transactions.OrderBy(x => x.Date)
                    .FirstOrDefault(x => x.Transaction == TransactionType.Payment);

            var model = new RefundDetailsViewModel
            {
                NotificationId = id,
                Limit = accountOverview.TotalPaid,
                FirstPaymentReceivedDate = firstPayment == null ? (DateTime?)null : firstPayment.Date
            };

            return model;
        }