/// <summary>
        ///Create Pdf
        /// </summary>
        /// <param name="itemDetails"></param>
        /// <returns></returns>
        public FileResult CreatePdf(PaymentDetailsViewModel itemDetails)
        {
            MemoryStream workStream = new MemoryStream();
            StringBuilder status = new StringBuilder("");
            DateTime dTime = DateTime.Now;
            //file name to be created   
            string strPDFFileName = string.Format("ShipmentPackagingSlip" + dTime.ToString("yyyyMMdd") + "-" + ".pdf");
            Document doc = new Document();
            //doc.SetMargins(0 f, 0 f, 0 f, 0 f);
            //Create PDF Table with 5 columns  
            PdfPTable tableLayout = new PdfPTable(5);
            //doc.SetMargins(0 f, 0 f, 0 f, 0 f);
            //Create PDF Table  

            string strAttachment = Server.MapPath("~/Downloads/" + strPDFFileName);


            PdfWriter.GetInstance(doc, workStream).CloseStream = false;
            doc.Open();

            //Add Content to PDF   
            doc.Add(_paymentDetailsService.AddContentToPDF(tableLayout));

            // Closing the document  
            doc.Close();

            byte[] byteInfo = workStream.ToArray();
            workStream.Write(byteInfo, 0, byteInfo.Length);
            workStream.Position = 0;


            return File(workStream, "application/pdf", strPDFFileName);

        }
        public async Task<ActionResult> AddPayment(PaymentDetailsViewModel model)
        {
            if (!ModelState.IsValid)
            {
                var data = await mediator.SendAsync(new GetAccountManagementData(model.NotificationId));
                var accountManagementViewModel = new AccountManagementViewModel(data);
                accountManagementViewModel.RefundViewModel = await GetNewRefundDetailsViewModel(model.NotificationId);
                accountManagementViewModel.PaymentViewModel = model;
                accountManagementViewModel.ShowPaymentDetails = true;

                return View("Index", accountManagementViewModel);
            }

            if (model.PaymentMethod != PaymentMethod.Cheque)
            {
                model.Receipt = "NA";
            }

            var paymentData = new NotificationTransactionData
            {
                Date = model.PaymentDate.AsDateTime().Value,
                NotificationId = model.NotificationId,
                Credit = Convert.ToDecimal(model.PaymentAmount),
                PaymentMethod = model.PaymentMethod,
                ReceiptNumber = model.Receipt,
                Comments = model.Comments
            };

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

            return RedirectToAction("Index", "AccountManagement");
        }
        public async Task <ActionResult> AddPayment(PaymentDetailsViewModel model)
        {
            if (!ModelState.IsValid)
            {
                var data = await mediator.SendAsync(new GetAccountManagementData(model.NotificationId));

                var accountManagementViewModel = new AccountManagementViewModel(data);
                accountManagementViewModel.RefundViewModel = await GetNewRefundDetailsViewModel(model.NotificationId);

                accountManagementViewModel.PaymentViewModel   = model;
                accountManagementViewModel.ShowPaymentDetails = true;

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

            if (model.PaymentMethod != PaymentMethod.Cheque)
            {
                model.Receipt = "NA";
            }

            var paymentData = new NotificationTransactionData
            {
                Date           = model.PaymentDate.AsDateTime().Value,
                NotificationId = model.NotificationId,
                Credit         = Convert.ToDecimal(model.PaymentAmount),
                PaymentMethod  = model.PaymentMethod,
                ReceiptNumber  = model.Receipt,
                Comments       = model.PaymentComments.Trim()
            };

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

            return(RedirectToAction("Index", "AccountManagement"));
        }
Esempio n. 4
0
        public Task <PaymentDetailsViewModel> GetPaymentPage(CreateOrderFlowContext context, SubmitPaymentDetailsCommand command)
        {
            var viewModel = new PaymentDetailsViewModel
            {
                FlowContext   = context,
                PaymentMethod = command?.PaymentMethod ?? context.PaymentMethod,
            };

            return(Task.FromResult(viewModel));
        }
Esempio n. 5
0
        private PaymentDetailsViewModel CreateDetails(OrderDto orderDto)
        {
            var total     = _orderService.ComputeTotal(orderDto.Details);
            var viewModel = new PaymentDetailsViewModel
            {
                UserId  = orderDto.UserId,
                OrderId = orderDto.Id,
                Total   = total
            };

            return(viewModel);
        }
Esempio n. 6
0
        public static PaymentDetailsViewModel ToDetailsViewModel(this Payment source)
        {
            var destination = new PaymentDetailsViewModel();

            destination.Id            = source.Id;
            destination.InvoiceId     = source.InvoiceId;
            destination.PaymentMethod = source.PaymentMethod.Name;
            destination.Amount        = source.Amount;
            destination.ProcessedAt   = source.ProcessedAt;
            destination.ProcessedBy   = source.User.UserName;

            return(destination);
        }
 public ViewModelLocator()
 {
     if (!DesignerProperties.GetIsInDesignMode(new DependencyObject()))
     {
         MainViewModel             = new MainViewModel();
         HomeViewModel             = new HomeViewModel();
         PaymentsViewModel         = new PaymentsViewModel();
         InvoiceViewModel          = new InvoicesViewModel();
         AddPaymentViewModel       = new AddPaymentViewModel();
         AddInvoiceViewModel       = new AddInvoiceViewModel();
         InvoiceDetailsViewModel   = new InvoiceDetailsViewModel();
         PaymentDetailsViewModel   = new PaymentDetailsViewModel();
         BalanceStatementViewModel = new BalanceStatementViewModel();
     }
 }
        /// <summary>
        /// Get new order view
        /// </summary>
        /// <returns></returns>
        public ActionResult Index()
        {
            PaymentDetailsViewModel viewModel = new PaymentDetailsViewModel();
            var paymentTypes = new List<SelectListItem>()
            {
                new SelectListItem() { Text = Helpers.EnumHelper.GetDescription(Enums.PaymentCategories.PhysicalProduct).ToString(), Value = ((int)Enums.PaymentCategories.PhysicalProduct).ToString() },

                new SelectListItem() { Text = Enums.PaymentCategories.Book.ToString(), Value = ((int)Enums.PaymentCategories.Book).ToString() },

                new SelectListItem() { Text = Enums.PaymentCategories.Membership.ToString(), Value = ((int)Enums.PaymentCategories.Membership).ToString() },

                new SelectListItem() { Text = Helpers.EnumHelper.GetDescription(Enums.PaymentCategories.UpgradeMembership).ToString(), Value = ((int)Enums.PaymentCategories.UpgradeMembership).ToString() },
            };
            viewModel.PaymentCategories = paymentTypes;
            return View("PaymentDetails", viewModel);
        }
        public async Task<ActionResult> AddPayment(Guid id, PaymentDetailsViewModel model)
        {
            if (!ModelState.IsValid)
            {
                var data = await mediator.SendAsync(new GetImportNotificationAccountOverview(id));
                var accountManagementViewModel = new AccountManagementViewModel(data);
                accountManagementViewModel.RefundViewModel = await GetNewRefundDetailsViewModel(id);
                accountManagementViewModel.PaymentViewModel = model;
                accountManagementViewModel.ShowPaymentDetails = true;

                return View("Index", accountManagementViewModel);
            }

            await mediator.SendAsync(new AddNotificationPayment(id,
                model.PaymentAmount.Value,
                model.PaymentMethod,
                model.PaymentDate.AsDateTime().Value,
                model.ReceiptNumber,
                model.PaymentComments));

            return RedirectToAction("Index", "AccountManagement");
        }
        public ActionResult AddOrderPaymentDetails(PaymentDetailsViewModel model)
        {
            if (model != null)
            {
                var orderPaymentDetail = MapperHelper.MapSingle<PaymentDetailsViewModel, OrderPaymentDetail>(model);
                _paymentDetailsService.AddOrderPaymentDetails(orderPaymentDetail);

                //Send an email
                if (model.IsActivationUpgradeEmailSent)
                {
                    //Hardcoded some values to send an email..To be configured in config file
                    var mailModel = new MailModel()
                    {
                        From = "*****@*****.**",
                        To = "*****@*****.**",
                        Subject = model.IsActiveMembership ? "Activate Membership" : "Upgrade Membership",
                        Body = model.IsActiveMembership ? "Membership activated successfully" : "Membership upgraded successfully"
                    };
                    EmailHelper.SendEmail(mailModel);
                }

            }
            return RedirectToAction("GetOrderPaymentDetails");
        }
        public async Task <ActionResult> AddPayment(Guid id, PaymentDetailsViewModel model)
        {
            if (!ModelState.IsValid)
            {
                var data = await mediator.SendAsync(new GetImportNotificationAccountOverview(id));

                var accountManagementViewModel = new AccountManagementViewModel(data);
                accountManagementViewModel.RefundViewModel = await GetNewRefundDetailsViewModel(id);

                accountManagementViewModel.PaymentViewModel   = model;
                accountManagementViewModel.ShowPaymentDetails = true;

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

            await mediator.SendAsync(new AddNotificationPayment(id,
                                                                model.PaymentAmount.Value,
                                                                model.PaymentMethod,
                                                                model.PaymentDate.AsDateTime().Value,
                                                                model.ReceiptNumber,
                                                                model.PaymentComments.Trim()));

            return(RedirectToAction("Index", "AccountManagement"));
        }
Esempio n. 12
0
 public void Payment(PaymentDetailsViewModel viewModel)
 {
     Return(View("PaymentDetails", viewModel));
 }
Esempio n. 13
0
        public async Task <ChargeDetails> PrepareOrderForPayment(Order order, AddressViewModel shippingAddress, PaymentDetailsViewModel paymentDetails)
        {
            var details = new ChargeDetails
            {
                ID    = order.Id,
                Items = order.OrderItems.Select(item => new ItemDetails()
                {
                    Name       = item.ItemOrdered.ProductName,
                    ItemNumber = item.ItemOrdered.CatalogItemId,
                    UnitPrice  = item.UnitPrice,
                    Amount     = item.Units,
                    LineTotal  = item.UnitPrice * item.Units
                }).ToList(),
                Address = new Flaky.Data.Address()
                {
                    FirstLine = shippingAddress.Street,
                    City      = shippingAddress.City,
                    State     = shippingAddress.State,
                    Country   = shippingAddress.Country,
                    ZipCode   = shippingAddress.ZipCode
                },
                PaymentDetails = new Flaky.Data.PaymentDetails()
                {
                    Brand           = paymentDetails.Brand,
                    CardNumber      = paymentDetails.CardNumber,
                    CardHolderName  = paymentDetails.CardHolderName,
                    CVC             = paymentDetails.CVC,
                    ExperationMonth = paymentDetails.ExperationMonth,
                    ExperationYear  = paymentDetails.ExperationYear
                }
            };

            details.Taxes = await _billingClient.CalculateTax(details);

            details.TotalAmmount = details.Items.Sum(item => item.LineTotal) + details.Taxes.Sum(tax => tax.Amount);

            return(details);
        }
Esempio n. 14
0
 public PaymentDetails(PaymentDetailsViewModel o)
 {
     objInvoiceDetailsViewModel = o;
     InitializeComponent();
     this.DataContext = objInvoiceDetailsViewModel;
 }