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 + -
显示快捷键?