Imports BVSoftware.BVC.Core Imports System.Text Public Class Invoice Inherits System.Web.UI.UserControl #Region " Web Form Designer Generated Code " 'This call is required by the Web Form Designer. Private Sub InitializeComponent() End Sub Protected WithEvents lblOrderNumber As System.Web.UI.WebControls.Label Protected WithEvents TimeOfOrderField As System.Web.UI.WebControls.Label Protected WithEvents BillingAddressField As System.Web.UI.WebControls.Label Protected WithEvents UsernameField As System.Web.UI.WebControls.Label Protected WithEvents PaymentMethodField As System.Web.UI.WebControls.Label Protected WithEvents PaymentInfoField As System.Web.UI.WebControls.Label Protected WithEvents Datagrid2 As System.Web.UI.WebControls.DataGrid Protected WithEvents CouponField As System.Web.UI.WebControls.Label Protected WithEvents SubTotalField As System.Web.UI.WebControls.Label Protected WithEvents TaxTotalField As System.Web.UI.WebControls.Label Protected WithEvents ShippingTotalField As System.Web.UI.WebControls.Label Protected WithEvents HandlingTotalField As System.Web.UI.WebControls.Label Protected WithEvents GiftWrappingTotalField As System.Web.UI.WebControls.Label Protected WithEvents GrandTotalField As System.Web.UI.WebControls.Label Protected WithEvents lblInstructions As System.Web.UI.WebControls.Label Protected WithEvents PackageList As System.Web.UI.WebControls.DataList Protected WithEvents NonPackageItems As System.Web.UI.WebControls.DataGrid Protected WithEvents StoreLogo As System.Web.UI.WebControls.Image Protected WithEvents StoreAddress As System.Web.UI.WebControls.Label 'NOTE: The following placeholder declaration is required by the Web Form Designer. 'Do not delete or move it. Private designerPlaceholderDeclaration As System.Object Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init 'CODEGEN: This method call is required by the Web Form Designer 'Do not modify it using the code editor. InitializeComponent() End Sub #End Region Private _o As Orders.Order Public Property CurrentOrder() As Orders.Order Get Return _o End Get Set(ByVal Value As Orders.Order) _o = Value End Set End Property Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load If Not Page.IsPostBack Then LoadCurrentOrder() End If End Sub Public Sub LoadOrderByID(ByVal orderID As Integer) _o = OrderServices.GetExistingOrder(orderID) LoadOrder(_o) End Sub Public Sub LoadOrder(ByRef ord As Orders.Order) _o = ord LoadCurrentOrder() End Sub Public Sub LoadCurrentOrder() Try Me.StoreLogo.ImageUrl = ImageHelper.GetLogoImageURL Me.StoreLogo.ImageUrl = ImageHelper.ConvertLocalImageToURL(Me.StoreLogo.ImageUrl) Me.StoreAddress.Text = ContactServices.Addresses.ToHtmlString(WebAppSettings.ContactAddress) Me.lblOrderNumber.Text = _o.CompletedOrderID Me.UsernameField.Text = HttpUtility.HtmlEncode(_o.UserName) Me.TimeOfOrderField.Text = _o.TimeOfOrder If _o.Instructions.Trim.Length > 0 Then Me.lblInstructions.Text = HttpUtility.HtmlEncode(_o.Instructions) Else Me.lblInstructions.Text = "none" End If ' Shipping Items If _o.Packages.Length > 0 Then PackageList.Visible = True PackageList.DataSource = _o.Packages PackageList.DataBind() End If ' Load non-shipping items If _o.GetNonShippingItems.Count > 0 Then NonPackageItems.DataSource = _o.GetNonShippingItems NonPackageItems.DataBind() End If ' BEGIN PAYMENT INFO Me.BillingAddressField.Text = ContactServices.Addresses.ToHtmlString(_o.BillingAddress) PaymentMethodField.Text = "" If _o.Payments.Length > 0 Then Dim sb As New StringBuilder For i As Integer = 0 To _o.Payments.Length - 1 If _o.Payments(i).PaymentType = BVSoftware.BVC.Interfaces.PaymentRecordType.Information Then Select Case _o.Payments(i).PaymentMethod Case BVSoftware.BVC.Interfaces.PaymentMethod.Cash sb.Append("
Cash ") Case BVSoftware.BVC.Interfaces.PaymentMethod.Check sb.Append("
Check " & _o.Payments(i).CheckNumber & " ") Case BVSoftware.BVC.Interfaces.PaymentMethod.CreditCard Select Case _o.Payments(i).CreditCardType Case BVSoftware.BVC.Interfaces.CreditCardType.Amex sb.Append("
Amex ") Case BVSoftware.BVC.Interfaces.CreditCardType.DinersClub sb.Append("
Diner's Club ") Case BVSoftware.BVC.Interfaces.CreditCardType.Discover sb.Append("
Discover ") Case BVSoftware.BVC.Interfaces.CreditCardType.JCB sb.Append("
JCB ") Case BVSoftware.BVC.Interfaces.CreditCardType.MasterCard sb.Append("
Mastercard ") Case BVSoftware.BVC.Interfaces.CreditCardType.Visa sb.Append("
Visa ") End Select If _o.Payments(i).CreditCardNumber.Length > 14 Then sb.Append("-" & _o.Payments(i).CreditCardNumber.Substring(_o.Payments(i).CreditCardNumber.Length - 4, 4) & " ") Else sb.Append("") End If Case BVSoftware.BVC.Interfaces.PaymentMethod.GiftCertificate sb.Append("
Gift Cert. " & _o.Payments(i).GiftCertificateNumber & " ") Case BVSoftware.BVC.Interfaces.PaymentMethod.Other sb.Append("
Other ") Case BVSoftware.BVC.Interfaces.PaymentMethod.PayPal sb.Append("
PayPal ") Case BVSoftware.BVC.Interfaces.PaymentMethod.Telephone sb.Append("
Telephone ") Case BVSoftware.BVC.Interfaces.PaymentMethod.Fax sb.Append("
Fax ") Case BVSoftware.BVC.Interfaces.PaymentMethod.Email sb.Append("
Email ") Case BVSoftware.BVC.Interfaces.PaymentMethod.PurchaseOrder sb.Append("
Purchase Order " & _o.Payments(i).PurchaseOrderNumber & " ") End Select sb.Append(String.Format("{0:C}", _o.Payments(i).Amount)) sb.Append("
") End If Next PaymentMethodField.Text = sb.ToString sb = Nothing Else PaymentMethodField.Text = "none" End If Me.PaymentInfoField.Text = "" 'Select Case thisOrder.PaymentStatus ' Case Orders.OrderPaymentStatus.NoPayment ' Me.PaymentInfoField.Text += "No Payment Processing" ' Case Orders.OrderPaymentStatus.Authorized ' Me.PaymentInfoField.Text += "Payment Authorized Only" ' Case Orders.OrderPaymentStatus.Charged ' Me.PaymentInfoField.Text += "Payment Received" ' Case Orders.OrderPaymentStatus.PaymentError ' Me.PaymentInfoField.Text += "PAYMENT ERROR" 'End Select ' Promotional Codes CouponField.Text = "" If _o.Coupons.Length = 0 Then CouponField.Text = "none" Else For k As Integer = 0 To _o.Coupons.Length - 1 CouponField.Text += _o.Coupons(k) & "
" Next End If ' Summary Me.SubTotalField.Text = String.Format("{0:c}", _o.SubTotal) Me.TaxTotalField.Text = String.Format("{0:c}", _o.TaxTotal) Me.ShippingTotalField.Text = String.Format("{0:c}", _o.ShippingTotal) Me.HandlingTotalField.Text = String.Format("{0:c}", _o.HandlingFee) Me.GrandTotalField.Text = String.Format("{0:c}", _o.GrandTotal) Me.GiftWrappingTotalField.Text = String.Format("{0:c}", _o.GiftWrapCharge) Catch Ex As Exception 'msg.ShowException(Ex) End Try End Sub Public Sub NonPackageItems_ItemDataBound(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles NonPackageItems.ItemDataBound If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then Dim editID As String = CType(sender, DataGrid).DataKeys(e.Item.ItemIndex) Dim Item As Orders.OrderItem = OrderServices.OrderItems.GetByID(editID) If Not Item Is Nothing Then e.Item.Cells(0).Text = OrderServices.OrderItems.GetDisplaySKUForItem(Item) Dim sDescription As String = Item.DisplayName If Item.DisplayDescription.Trim.Length > 0 Then sDescription += Item.DisplayDescription End If e.Item.Cells(1).Text = sDescription e.Item.Cells(2).Text = String.Format("{0:c}", Item.AdjustedSitePrice) e.Item.Cells(4).Text = String.Format("{0:c}", Item.LineTotal) End If Item = Nothing End If End Sub Private Sub PackageList_ItemDataBound(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles PackageList.ItemDataBound If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then Dim editID As String = PackageList.DataKeys(e.Item.ItemIndex) Dim pak As Shipping.Package = ShippingServices.Packages.GetPackageByID(editID) If Not pak Is Nothing Then Dim ShipToLabel As Label = e.Item.FindControl("PackageShipAddress") If Not ShipToLabel Is Nothing Then ShipToLabel.Text = ContactServices.Addresses.ToHtmlString(pak.DestinationAddress) ShipToLabel.Text += "
Ship By: " & pak.ShippingMethodName End If Dim PackageItems As DataGrid = e.Item.FindControl("PackageItems") If Not PackageItems Is Nothing Then AddHandler PackageItems.ItemDataBound, AddressOf Me.NonPackageItems_ItemDataBound PackageItems.DataSource = _o.GetItemsForPackage(pak.ID) PackageItems.DataBind() End If End If pak = Nothing End If End Sub End Class