orderitemcontrol.ascx.vb
来自「C#语言制作asp.net网上商店的」· VB 代码 · 共 235 行
VB
235 行
Imports NetShopForge.Library.Order
Imports NetShopForge.Library.Shipping
Imports NetShopForge.Library.Payment
Partial Class Admin_Management_Controls_OrderItemControl
Inherits System.Web.UI.UserControl
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
Dim action As String = Request("action")
hfOrderID.Value = Request("orderid")
If Not IsNothing(action) Then
' Dim OC As New OrderController
Dim O As OrderInfo = OrderController.GetOrder(CInt(hfOrderID.Value))
Dim a As OrderAction = CInt(action)
Dim actions As Generic.List(Of OrderAction) = OrderController.GetOrderActionsForAdmin(O.OrderStatus)
hfOrderStatus.Value = CInt(O.OrderStatus)
If Not actions.Contains(a) Then
GoOrderItem()
Else
SetActionButton(actions)
BindData(O, a)
lbTitle.Text = String.Format("#{0} [{1}]", O.OrderNumber, Order.OrderController.GetChineseOrderStatus(O.OrderStatus))
Dim reviewUrl As String = String.Format("{0}?mode=orderitem&orderid={1}&action={2}", Page.ResolveUrl("~/Admin/Management/Orders.aspx"), hfOrderID.Value, CInt(OrderAction.S_Review))
hlAddReview.NavigateUrl = reviewUrl
If a = OrderAction.S_Cancel OrElse Not (actions.Contains(OrderAction.S_Cancel)) Then
hlOrderCancel.Visible = False
Else
Dim cancelUrl As String = String.Format("{0}?mode=orderitem&orderid={1}&action={2}", Page.ResolveUrl("~/Admin/Management/Orders.aspx"), hfOrderID.Value, CInt(OrderAction.S_Cancel))
hlOrderCancel.NavigateUrl = cancelUrl
End If
End If
End If
End If
End Sub
#Region " ---Private Method---"
Private Sub SetActionButton(ByVal actions As Generic.List(Of OrderAction))
btnRecive.Enabled = actions.Contains(OrderAction.S_Received)
btnRecivePay.Enabled = actions.Contains(OrderAction.S_ReceivedPay)
btnShipped.Enabled = actions.Contains(OrderAction.S_Shipped)
btnComplete.Enabled = actions.Contains(OrderAction.S_Complete)
End Sub
Private Sub BindData(ByVal O As OrderInfo, ByVal a As OrderAction)
Select Case a
Case OrderAction.S_Cancel
mvOrderItem.ActiveViewIndex = 1
btnCancel.OnClientClick = "return confirm('你确定要取消订单?');"
Case OrderAction.ViewDetail
mvOrderItem.ActiveViewIndex = 3
BindOrderItem(O)
Case OrderAction.S_Modify
mvOrderItem.ActiveViewIndex = 0
Case OrderAction.S_Review
mvOrderItem.ActiveViewIndex = 2
BindOrderReview(O)
Case Else
mvOrderItem.ActiveViewIndex = 3
BindOrderItem(O)
End Select
End Sub
#Region "BindOrderItem"
Private Sub BindOrderItem(ByVal O As OrderInfo)
lbOrderStatus.Text = String.Format("({0})", OrderController.GetChineseOrderStatus(O.OrderStatus))
Dim objS As ShippingMethodInfo
Dim objP As PaymentMethodInfo
Dim objpc As New PaymentController
objP = objpc.GetPaymentMethodInfo(CInt(O.PaymentMethodID))
Dim objSC As New ShippingController
objS = objSC.GetShippingMethod(CInt(O.ShippingMethodID))
ShippingAddress.Text = GetShippingAddressString(O)
ShippingMethod.Text = GetShippingMethodString(objS)
' OrderController.IsPay()
PaymentMethod.Text = GetPaymentMethodString(objP)
BindShippingItem()
SetFeeInfo(O)
End Sub
Private Function GetShippingMethodString(ByVal objS As ShippingMethodInfo) As String
Dim sbOut As New System.Text.StringBuilder
sbOut.Append("<table>")
sbOut.Append(String.Format("<tr><td><b>{0}</b></td></tr><tr><td>配送送费用:{1} </td></tr>", objS.ShippingMethodName, String.Format("{0:c}", objS.ShippingPrice)))
sbOut.Append("<tr><td>" & objS.ShippingMethodDescription & "</td></tr>")
sbOut.Append("</table>")
Return sbOut.ToString
End Function
Private Function GetPaymentMethodString(ByVal objp As PaymentMethodInfo) As String
Dim sbOut As New System.Text.StringBuilder
sbOut.Append("<table>")
sbOut.Append(String.Format("<tr><td><b>{0} </b></td></tr>", objp.PaymentMethodName))
sbOut.Append("<tr><td>" & objp.Description & "</td></tr>")
sbOut.Append("</table>")
Return sbOut.ToString
End Function
Public Function GetShippingAddressString(ByVal O As OrderInfo) As String
Dim sbOut As New System.Text.StringBuilder
sbOut.Append("<table>")
sbOut.Append(String.Format("<tr><td>姓名:<b>{0} {1}</b></td></tr><tr><td>地址:{2} </td></tr>", O.ShipName, "", O.ShipAddress))
If (Not String.IsNullOrEmpty(O.ShipAddress2)) Then
sbOut.Append(String.Format("<tr><td>地址2:{0}</td></tr>", O.ShipAddress2))
End If
sbOut.Append("<tr><td>邮政编码:" & O.ShipPostalCode & "</td></tr>")
sbOut.Append(String.Format("<tr><td>地区:{0},{1},{2}</td></tr>", O.ShipState, O.ShipCity, O.ShipArea))
sbOut.Append("<tr><td>")
sbOut.Append(String.Format("电话:{0} ", O.ShipPhone))
sbOut.Append("</td></tr>")
sbOut.Append("</table>")
Return sbOut.ToString
End Function
Private Sub BindShippingItem()
'bind Product
' Dim OC As New OrderController
gvItems.DataSource = OrderController.GetOrderDetailList(CInt(hfOrderID.Value))
gvItems.DataBind()
End Sub
Private Sub SetFeeInfo(ByVal O As OrderInfo)
Dim sbOut As New System.Text.StringBuilder
sbOut.Append("<table border=""0"" cellpadding=""0"" cellspacing=""0"" style=""width: 100%"">")
sbOut.Append(String.Format("<tr><td style=""width: 120px"">{0}</td><td>{1}</td></tr>", "价格总计:", String.Format("{0:c}", O.ProductSubtotalFee)))
sbOut.Append(String.Format("<tr><td style=""width: 120px"">{0}</td><td>{1}</td></tr>", "运费:", String.Format("{0:c}", O.ShippingFee)))
If O.CouponFee > 0 Then sbOut.Append(String.Format("<tr><td style=""width: 120px"">{0}</td><td style=""color: red;"">{1}</td></tr>", "红包折扣:", String.Format("{0:c}", -O.CouponFee)))
sbOut.Append("<tr><td align=""left"" class=""ReviewLinks"" colspan=""2"">")
' sbOut.Append(" <hr />")
sbOut.Append(String.Format("{0}{1}</td> </tr>", "费用总计:", String.Format("{0:c}", O.TotalFee)))
sbOut.Append("</table>")
Fee.Text = sbOut.ToString
End Sub
#End Region
Private Sub BindOrderReview(ByVal O As OrderInfo)
'Dim oc As New OrderController
Dim noteList As Generic.List(Of OrderNoteInfo)
noteList = OrderController.GetOrderNoteList(O.OrderID, New OrderAction() {OrderAction.B_Review, OrderAction.S_Review})
rpOrderReview.DataSource = noteList
rpOrderReview.DataBind()
End Sub
#End Region
Protected Sub btnCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCancel.Click
Dim cancelReason As String = ""
If rbOthoer.Checked Then
cancelReason = txtOther.Text
Else
cancelReason = rbCancel.SelectedValue
End If
Dim orderID As Integer = CInt(hfOrderID.Value)
OrderController.UpdateOrderStatus(orderID, OrderStatus.OrderCancelledPriorToShipping)
Dim ordernote As New OrderNoteInfo
ordernote.Action = OrderAction.B_Cancel
ordernote.Note = cancelReason
ordernote.NoteDate = Now
ordernote.OrderStatus = OrderStatus.OrderCancelledPriorToShipping
OrderController.AddOrderNote(ordernote)
GoOrderItem()
End Sub
Protected Sub btnBack_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnBack.Click
GoOrderItem()
End Sub
Private Sub GoOrderItem()
Dim Url As String = String.Format("{0}?mode=orderitem&orderid={1}&action={2}", Page.ResolveUrl("~/Admin/Management/Orders.aspx"), hfOrderID.Value, CInt(OrderAction.ViewDetail))
My.Response.Redirect(Url)
End Sub
Protected Sub btnRecive_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnRecive.Click
UpdateOrderStatus(OrderStatus.ReceivedAwaitingPayment)
End Sub
Protected Sub btnRecivePay_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnRecivePay.Click
UpdateOrderStatus(OrderStatus.ReceivedPaymentProcessingOrder)
End Sub
Protected Sub btnShipped_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnShipped.Click
UpdateOrderStatus(OrderStatus.ShippedToCustomer)
End Sub
Protected Sub btnComplete_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnComplete.Click
UpdateOrderStatus(OrderStatus.OrderComplete)
End Sub
Private Sub UpdateOrderStatus(ByVal status As OrderStatus)
OrderController.UpdateOrderStatus(hfOrderID.Value, status)
Dim actions As Generic.List(Of OrderAction) = OrderController.GetOrderActionsForAdmin(status)
SetActionButton(actions)
hfOrderStatus.Value = CInt(status)
lbOrderStatus.Text = String.Format("({0})", OrderController.GetChineseOrderStatus(status))
End Sub
End Class
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?