Esempio n. 1
0
        public ActionResult CreateInvoice()
        {
            double bookingAmount = Convert.ToDouble(Request.Form["totalamount"]);
            string invoiceNumber = String.Empty;
            int    lastId        = 0;
            var    invoiceCount  = TheRepository.GetAllInvoices().Count();

            if (invoiceCount > 0)
            {
                lastId = TheRepository.GetAllInvoices().Max(a => a.id);
            }
            else
            {
                lastId = 1;
            }

            invoiceNumber = String.Format("INYTINV{0}", lastId);
            InvoiceModel invoiceModel = new InvoiceModel();

            invoiceModel.customerId             = Convert.ToInt32(Request.Form["customerId"]);
            invoiceModel.serviceProviderId      = Convert.ToInt32(Request.Form["serviceproviderid"]);
            invoiceModel.paypalBookingReference = Request.Form["reference"];
            invoiceModel.amount        = bookingAmount;
            invoiceModel.invoiceNumber = invoiceNumber;
            invoiceModel.paidDate      = DateTime.Now;


            InvoiceModel newinvoice = new InvoiceModel();

            newinvoice = TheRepository.CreateInvoice(invoiceModel);

            newinvoice.serviceprovider = TheRepository.GetServiceProvider(invoiceModel.serviceProviderId);
            newinvoice.customer        = TheRepository.GetCustomer(invoiceModel.customerId);
            newinvoice.bookings        = TheRepository.GetAllBookingsByCustomer(invoiceModel.customerId).Where(a => a.bookingReference == invoiceModel.paypalBookingReference).ToList();

            foreach (var booking in newinvoice.bookings)
            {
                booking.serviceName = TheRepository.GetServiceById(booking.serviceId).Service;
            }


            InvoiceModel model = new InvoiceModel();

            model = TheRepository.GetInvoiceById(newinvoice.id);
            model.serviceprovider = TheRepository.GetServiceProvider(model.serviceProviderId);
            model.customer        = TheRepository.GetCustomer(model.customerId);
            model.bookings        = TheRepository.GetAllBookingsByCustomer(model.customerId).Where(a => a.bookingReference == model.paypalBookingReference).ToList();

            foreach (var booking in model.bookings)
            {
                booking.serviceName = TheRepository.GetServiceById(booking.serviceId).Service;
            }

            var renderedHTML = ControllerExtensions.RenderViewAsHTMLStringForInvoice(this, "PrintInvoice.cshtml", model);
            var cus          = TheRepository.GetCustomer(newinvoice.customerId);

            EmailManager.SendEmail2(cus.emailAddress, "Invoice", renderedHTML.Result);

            return(View(newinvoice));
        }