Esempio n. 1
0
 private void SendPurchaseEmail(MyAccountOrderSummaryViewModel viewModel)
 {
     ConvertSummaryToPDF(viewModel);
 }
Esempio n. 2
0
        public string ConvertSummaryToPDF(MyAccountOrderSummaryViewModel viewModel)
        {
            var pdfFullName = string.Format("{0}TTTOrder({1}).pdf", Properties.Settings.Default.OrderPDFPath, viewModel.SalesOrderID);
            Document document = new Document(new RectangleReadOnly(842, 595), 88f, 88f, 10f, 10f);

            PdfWriter.GetInstance(document, new FileStream(pdfFullName, FileMode.Create));
            document.Open();

            var summaryContent = RenderRazorViewToString("OrderSummary", viewModel);

            summaryContent = summaryContent.Replace("<hr class=\"divline\" />",
                ".......................................................................................................................................................................................................");

            summaryContent = summaryContent.Replace("<hr noshade=\"noshade\" class=\"divline\" />",
                ".........................................................");

            summaryContent = summaryContent.Replace("<hr class=\"divline short\" />",
                "...............................................................................................................................");

            List<IElement> htmlarraylist = HTMLWorker.ParseToList(new StringReader(summaryContent),null);
            for (int k = 0; k < htmlarraylist.Count; k++)
            {
                document.Add((IElement)htmlarraylist[k]);
            }

            document.Close();

            return pdfFullName;
        }
Esempio n. 3
0
        public virtual ActionResult OrderSummary(int id)
        {
            var access = Util.SessionAccess;
            var viewModel = new MyAccountOrderSummaryViewModel() { SalesOrderID = id };

            using (var context = new TTTEntities())
            {
                var salesOrder = context.trnsalesorders.Single(a => a.ID == id);

                if (salesOrder == null)
                    throw new ApplicationException("No Order found.");

                viewModel.BillingAddress = context.lnksoaddresses
                    .Include(a => a.refcountry)
                    .SingleOrDefault(a => a.IsBilling && a.Active && a.SalesOrderID == salesOrder.ID);

                viewModel.ShippingAddress = context.lnksoaddresses
                    .Include(a => a.refcountry)
                    .SingleOrDefault(a => a.IsShipping && a.Active && a.SalesOrderID == salesOrder.ID);

                viewModel.Items =
                    (from a in context.lnksalesorders
                     join b in context.lnkmodelsizes on a.ModelSizeID equals b.ID into bTemp
                     from bb in bTemp.DefaultIfEmpty()
                     join c in context.lnkmodelcolourdescs on new { ColourDescID = bb.ColourDescID, ModelID = bb.ModelID }
                         equals new { ColourDescID = c.ColourDescID, ModelID = c.ModelID } into cTemp
                     from cc in cTemp.DefaultIfEmpty()
                     join d in context.refmodels on cc.ModelID equals d.ID into dTemp
                     from dd in dTemp.DefaultIfEmpty()
                     join e in context.refbrands on dd.BrandID equals e.ID into eTemp
                     from ee in eTemp.DefaultIfEmpty()
                     join f in context.refcategories on ee.CategoryID equals f.ID into fTemp
                     from ff in fTemp.DefaultIfEmpty()
                     join h in context.refcolourdescs on cc.ColourDescID equals h.ID into hTemp
                     from hh in hTemp.DefaultIfEmpty()
                     join i in context.refcolours on hh.ColourID equals i.ID into iTemp
                     from ii in iTemp.DefaultIfEmpty()
                     join g in context.lnkcustomizemodelimages on a.SKU equals g.SKU into gTemp
                     from gg in gTemp.DefaultIfEmpty()
                     join j in context.refcustomizemodels on gg.CustomizeModelID equals j.ID into jTemp
                     from jj in jTemp.DefaultIfEmpty()
                     where a.SalesOrderID == salesOrder.ID && a.Active
                     select new MyAccountOrderSummaryItem
                     {
                         Color = a.ModelSizeID.HasValue ? hh.Name : gg.Colour,
                         Name = a.ModelSizeID.HasValue ? dd.Name : jj.Name,
                         Price = a.ModelSizeID.HasValue ? dd.Price : jj.Price,
                         Quantity = a.Quantity,
                         Size = a.ModelSizeID.HasValue ? bb.Size : a.Size,
                         SKU = a.SKU
                     }).ToList();

                viewModel.Subtotal = viewModel.Items.Sum(a => a.Price * a.Quantity);
                viewModel.ShippingPrice = Properties.Settings.Default.ShippingFee;
                viewModel.OrderTotalPrice = viewModel.Subtotal + viewModel.ShippingPrice;

                if (salesOrder.VoucheID.HasValue)
                {
                    var currentVoucher = context.tblvouchers.Where(a => a.ID == salesOrder.VoucheID.Value).Single();

                    viewModel.VoucherCode = currentVoucher.Code;
                    viewModel.RebateCashValue = currentVoucher.Value;
                    viewModel.OrderTotalPrice -= currentVoucher.Value;
                }

                if (!string.IsNullOrEmpty(salesOrder.PaymentGatewayTransID))
                {
                    var salesOrderIDString = salesOrder.ID.ToString();
                    var logPayment = context.logpayments
                        .FirstOrDefault(a => a.TransId == salesOrder.PaymentGatewayTransID && a.RefNo == salesOrderIDString);

                    viewModel.PaymentDT = logPayment == null ? "" : logPayment.CreateDT.ToString("dd MMM yyyy, hh.mmsstt");
                    viewModel.PaymentStatus = "Paid";
                }
                
            }

            return View(viewModel);
        }