@using System
@using System.Linq
@using Emanager.Data.Abstractions.Account
@using Emanager.Data.Abstractions.Ecommerce.Model
@using Emanager.Razor
@if (Model.Model == null)
{
Order Not Found
}
else
{
var order = (SalesOrder)Model.Model;
if (string.IsNullOrWhiteSpace(order.PurchaseOrderNumber))
{
order.PurchaseOrderNumber = order.Notes
.Where(x => x.Text.IndexOf("Purchase Order", StringComparison.OrdinalIgnoreCase) > -1)
.Select(x => x.Text.Replace("Purchase Order #:", string.Empty))
.FirstOrDefault();
}
if (string.IsNullOrWhiteSpace(order.ShippingAccountNumber))
{
order.ShippingAccountNumber = order.Notes
.Where(x => x.Text.IndexOf("UPS Account", StringComparison.OrdinalIgnoreCase) > -1)
.Select(x => x.Text.Replace("UPS Account", string.Empty))
.FirstOrDefault();
}
Order Date
@order.Created.ToString("ddd, MMM dd, yyyy")
Order #
@order.OrderNumber
@if (!string.IsNullOrEmpty(order.PurchaseOrderNumber))
{
PO #
@order.PurchaseOrderNumber
}
@if (!string.IsNullOrEmpty(order.ShippingAccountNumber))
{
Shipping Account #
@order.ShippingAccountNumber
}
Account #
@order.Customer.Metadata.AccountNumber
Name
@order.Customer.FirstName @order.Customer.MiddleName @order.Customer.LastName
@if (!string.IsNullOrWhiteSpace(@order.Customer.CompanyName))
{
Company
@order.Customer.CompanyName
}
Email
@order.Customer.EmailAddress
@foreach (var phone in order.Customer.PhoneNumbers)
{
@phone.PhoneType
@phone.Number
}
@renderAddress("Bill To:", order.BillToAddress)
@renderAddress("Ship To:", order.ShipToAddress)
Item #
Name
QTY
Unit
Price
Line Total
@{
var totals = order.Totals;
var subTotal = totals.NontaxableItemSubtotal + totals.TaxableItemSubtotal;
var shipping = totals.NontaxableShippingSubtotal + totals.TaxableShippingSubtotal;
var tax = totals.TaxSubtotal;
var coupon = totals.TaxableItemCouponSubtotal;
var discount = totals.MemberDiscount;
var grand = totals.GrandTotal;
}
Sub Total
@subTotal.ToString("C")
@if (coupon != 0)
{
Coupon
$@coupon.ToString("F")
}
@if (discount != 0)
{
Discount
$@discount.ToString("F")
}
Shipping
@shipping.ToString("C")
Tax
@tax.ToString("C")
Grand Total
@grand.ToString("C")
@foreach (var item in order.LineItems)
{
@item.SKU
@item.Name
@item.Quantity
@item.UnitOfMaterial
@item.UnitPrice.ToString("c")
@((item.Quantity * item.UnitPrice).ToString("c"))
}
}
@helper renderAddress(string label, Address address)
{
@address.NameOrCompany
@address.Line1
@if (!string.IsNullOrEmpty(address.Line2))
{
@address.Line2
}
@if (!string.IsNullOrEmpty(address.Line3))
{
@address.Line3
}
@address.City, @address.StateProvince @address.PostalCode
@address.Country
}