@model IEnumerable @using SmartStore.Core.Domain.Orders; @using SmartStore.Core.Domain.Catalog; @using SmartStore.Web.Models.Order; @using SmartStore.Services.Localization; @using SmartStore.Core.Html; @{ Layout = "~/Views/Shared/_Print.cshtml"; // title Html.AddTitleParts(T("PageTitle.OrderDetails").Text); var pdfMode = ViewBag.PdfMode == true; if (!pdfMode) { Html.AddBodyCssClass("screen"); } } @functions { private IHtmlString JoinValues(string[] values, string separator = " ") { var normalized = values.Where(x => x.HasValue()); return MvcHtmlString.Create(String.Join(separator, normalized)); } }
@foreach (var order in Model) { var colWidths = order.ShowSku ? new int[] { 45, 20, 5, 15, 15 } : new int[] { 65, 0, 5, 15, 15 }; var company = order.MerchantCompanyInfo; var address = order.BillingAddress;
@Html.Widget("invoice_top", order)
@{ var city = JoinValues(new string[] { company.ZipCode, company.City }).ToString(); var country = JoinValues(new string[] { company.CountryName, company.StateName }, ", ").ToString(); } @JoinValues(new string[] { company.CompanyName, company.Street, company.Street2, city, country }, " · ")
@if (address.CompanyEnabled && address.Company.HasValue()) {
@address.Company
}
@JoinValues(new string[] { address.FirstName, address.LastName })
@if (address.StreetAddressEnabled && address.Address1.HasValue()) {
@address.Address1
} @if (address.StreetAddress2Enabled && address.Address2.HasValue()) {
@address.Address2
} @if (address.ZipPostalCodeEnabled || address.CityEnabled) {
@JoinValues(new string[] { address.ZipPostalCode, address.City })
} @if (address.StateProvinceEnabled || address.CountryEnabled) {
@JoinValues(new string[] { address.CountryName, address.StateProvinceName }, ", ")
}
@Html.Widget("invoice_orderinfo_top", order)
@T("PDFInvoice.Order#"): @order.OrderNumber
@T("Common.Date"): @order.CreatedOn.ToShortDateString()
@T("Order.PaymentMethod"): @order.PaymentMethod
@T("Order.ShippingMethod"): @order.ShippingMethod
@Html.Widget("invoice_orderinfotable_after", order)
@Html.Widget("invoice_orderinfo_bottom", order)
@Html.Widget("invoice_lines_before", order)

@T("PDFInvoice.Product(s)")

@if (order.ShowSku) { } @for (int i = 0; i < order.Items.Count; i++) { var item = order.Items[i]; @OrderLine(item, order.ShowSku) @if (item.ProductType == ProductType.BundledProduct) { @BundleItems(item, order.ShowSku) } }
@T("PDFInvoice.ProductName")@T("PDFInvoice.SKU")@T("PDFInvoice.ProductQuantity") @T("PDFInvoice.ProductPrice") @T("PDFInvoice.ProductTotal")
@Html.Widget("invoice_checkoutattributes_before", order) @if (order.CheckoutAttributeInfo.HasValue()) {
@Html.Raw(order.CheckoutAttributeInfo)
} @Html.Widget("invoice_ordertotals_before", order)
@if (order.OrderSubTotalDiscount.HasValue()) { } @if (order.IsShippable) { } @if (order.PaymentMethodAdditionalFee.HasValue()) { } @if (order.DisplayTaxRates && order.TaxRates.Count > 0) { foreach (var taxRate in order.TaxRates) { } } @if (order.DisplayTax) { } @if (order.OrderTotalDiscount.HasValue()) { } @if (order.GiftCards.Count > 0) { foreach (var gc in order.GiftCards) { } } @if (order.RedeemedRewardPoints > 0) { }
@T("Order.SubTotal"): @order.OrderSubtotal
@T("Order.SubTotalDiscount"): @order.OrderSubTotalDiscount
@T("Order.Shipping"): @order.OrderShipping
@T("Order.PaymentMethodAdditionalFee"): @order.PaymentMethodAdditionalFee
@taxRate.Label: @taxRate.Value
@T("Order.Tax"): @order.Tax
@T("Order.TotalDiscount"): @order.OrderTotalDiscount
@Html.Raw(string.Format(T("Order.GiftCardInfo").Text, gc.CouponCode)): @gc.Amount
@string.Format(T("Order.RewardPoints").Text, order.RedeemedRewardPoints): @order.RedeemedRewardPointsAmount
@T("Order.OrderTotal"): @order.OrderTotal
@Html.Widget("invoice_ordernotes_before", order) @if (order.RenderOrderNotes && order.OrderNotes.Count > 0) {

@T("PDFInvoice.OrderNotes")

@foreach (var note in order.OrderNotes) { }
@T("PDFInvoice.OrderNotes.CreatedOn") @T("PDFInvoice.OrderNotes.Note")
@note.CreatedOn.ToString() @Html.Raw(note.Note)
} @Html.Widget("invoice_bottom", order)
}
@helper OrderLine(OrderDetailsModel.OrderItemModel item, bool showSku) { @item.ProductName @if (item.AttributeInfo.HasValue()) {
@Html.Raw(item.AttributeInfo)
} @if (showSku) { @item.Sku } @item.Quantity @item.QuantityUnit @item.UnitPrice @item.SubTotal } @helper BundleItems(OrderDetailsModel.OrderItemModel parentItem, bool showSku) { if (parentItem.BundleItems == null) { return; } foreach (var item in parentItem.BundleItems.OrderBy(x => x.DisplayOrder)) {
@item.ProductName @if (item.AttributeInfo.HasValue()) {
@Html.Raw(item.AttributeInfo)
}
@if (showSku) {   } @if (parentItem.BundlePerItemShoppingCart) { @item.Quantity } else {   } @if (!String.IsNullOrWhiteSpace(item.PriceWithDiscount)) { @Html.Raw(item.PriceWithDiscount) } else {   }   } }