public void GeneratePdf(string invoiceNumber, Stream pdfStream) { string name; GetInvoiceResult invoice = this.InvoiceService.GetInvoice(new GetInvoiceParameter(invoiceNumber) { GetInvoiceLines = true }); InvoiceModel invoiceModel = this.GetInvoiceMapper.MapResult(invoice, null); Theme theme = base.UnitOfWork.GetRepository <Theme>().Get(SiteContext.Current.WebsiteDto.ThemeId); if (theme.ThemeSource == null) { name = (theme.IsSystemTheme ? "System" : "User"); } else { name = theme.ThemeSource.Name; } string str = string.Format("~/frontendresources/{0}/{1}/pdfviews/invoicedetails.cshtml", name, theme.Name); ThemeContentDto byPath = this.ThemeContentProvider.GetByPath(str); if (invoiceModel.InvoiceNumber.Contains("-")) { string[] invoiceNumberArray = invoiceModel.InvoiceNumber.Split('-'); if (invoiceNumberArray.Length > 0) { invoiceModel.InvoiceNumber = invoiceNumberArray[0]; } } dynamic expando = invoiceModel.ToJson(false).ToExpando(); DateTime invoiceDate = invoiceModel.InvoiceDate; expando.InvoiceDateDisplay = invoiceDate.ToShortDateString(); invoiceDate = invoiceModel.DueDate; expando.DueDateDisplay = invoiceDate.ToShortDateString(); decimal invoiceTotal = invoiceModel.InvoiceTotal - invoiceModel.CurrentBalance; expando.PaymentTotalDisplay = invoiceTotal.ToString("0.00"); foreach (dynamic obj in (IEnumerable)expando.InvoiceLines) { obj.QtyInvoicedDisplay = obj.QtyInvoiced.ToString("0"); } //Display Company logo based on website CustomSettings customSettings = new CustomSettings(); expando.CompanyIdentifier = customSettings.CompanyNameIdentifier; PdfGeneratorHelper.GeneratePdf(this.EmailTemplateRenderer.Render(byPath.Content, expando), pdfStream); }
public override InvoiceModel MapResult(GetInvoiceResult serviceResult, HttpRequestMessage request) { InvoiceHistory invoiceHistory = serviceResult.InvoiceHistory; Currency currency = serviceResult.Currency; InvoiceModel invoiceModel = ObjectToObjectMapper.Map <InvoiceHistory, InvoiceModel>(invoiceHistory); invoiceModel.DiscountAmountDisplay = CurrencyFormatProvider.GetString(invoiceModel.DiscountAmount, currency); invoiceModel.CurrentBalanceDisplay = CurrencyFormatProvider.GetString(invoiceModel.CurrentBalance, currency); invoiceModel.InvoiceTotalDisplay = CurrencyFormatProvider.GetString(invoiceModel.InvoiceTotal, currency); invoiceModel.OtherChargesDisplay = CurrencyFormatProvider.GetString(invoiceModel.OtherCharges, currency); invoiceModel.ProductTotalDisplay = CurrencyFormatProvider.GetString(invoiceModel.ProductTotal, currency); invoiceModel.ShippingAndHandlingDisplay = CurrencyFormatProvider.GetString(invoiceModel.ShippingAndHandling, currency); invoiceModel.TaxAmountDisplay = CurrencyFormatProvider.GetString(invoiceModel.TaxAmount, currency); invoiceModel.ShipViaDescription = serviceResult.ShipViaDescription; invoiceModel.Properties = serviceResult.Properties; invoiceModel.Uri = request == null ? string.Empty : UrlHelper.Link("InvoiceV1", new { invoiceid = invoiceModel.InvoiceNumber }, request); HandlerBase.CopyCustomPropertiesToResult(invoiceHistory, invoiceModel, null); foreach (GetInvoiceLineResult invoiceLineResult in serviceResult.GetInvoiceLineResults) { InvoiceLineModel destination = new InvoiceLineModel(); if (invoiceLineResult.ProductDto != null) { ObjectToObjectMapper.Map(invoiceLineResult.ProductDto, destination); destination.ProductUri = invoiceLineResult.ProductDto.ProductDetailUrl; destination.Properties.Add("ProductID", invoiceLineResult.ProductDto.Id.ToString()); } ObjectToObjectMapper.Map(invoiceLineResult.InvoiceHistoryLine, destination); destination.UnitPriceDisplay = CurrencyFormatProvider.GetString(destination.UnitPrice, currency); destination.DiscountAmountDisplay = CurrencyFormatProvider.GetString(destination.DiscountAmount, currency); destination.LineTotalDisplay = CurrencyFormatProvider.GetString(destination.LineTotal, currency); HandlerBase.CopyCustomPropertiesToResult(invoiceLineResult.InvoiceHistoryLine, destination, null); invoiceModel.InvoiceLines.Add(destination); } foreach (InvoiceHistoryTaxDto invoiceHistoryTax in invoiceModel.InvoiceHistoryTaxes) { invoiceHistoryTax.TaxCode = TranslationLocalizer.TranslateLabel(invoiceHistoryTax.TaxCode); invoiceHistoryTax.TaxDescription = TranslationLocalizer.TranslateLabel(invoiceHistoryTax.TaxDescription); invoiceHistoryTax.TaxAmountDisplay = CurrencyFormatProvider.GetString(invoiceHistoryTax.TaxAmount, currency); } //invoiceModel.InvoiceDate = DateTime.SpecifyKind(invoiceModel.InvoiceDate, DateTimeKind.Unspecified) removed in 4.4; return(invoiceModel); }