⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ordercontroller.vb

📁 C#语言制作asp.net网上商店的
💻 VB
📖 第 1 页 / 共 2 页
字号:
Imports Microsoft.Practices.EnterpriseLibrary.Data
Imports Microsoft.Practices.EnterpriseLibrary.Common
Imports System.Data.SqlClient
Imports System.Data.Common
Imports System.Data
Imports System.Collections.Generic
Imports System.Text
Imports System.Web
Imports System.Windows.Forms
Imports System.Security.Cryptography
Imports System.IO
Namespace NetShopForge.Library.Order
    Public Class OrderController


#Region "---Public Method---"

        Public Shared Function GetOrderList(ByVal pageSize As Integer, ByVal pageIndex As Integer, Optional ByVal sqlWhere As String = "", Optional ByVal isDesc As Boolean = True) As List(Of OrderInfo)
            Dim oList As New List(Of OrderInfo)

            Dim db As Database = DatabaseFactory.CreateDatabase
            Dim dbCommand As DbCommand = db.GetStoredProcCommand("nsf_Order_GetOrderListByPage")

            db.AddInParameter(dbCommand, "@pagesize", DbType.Int32, pageSize)
            db.AddInParameter(dbCommand, "@pageindex", DbType.Int32, pageIndex)
            db.AddInParameter(dbCommand, "@OrderType", DbType.Boolean, isDesc)
            If sqlWhere.Length > 0 Then db.AddInParameter(dbCommand, "@SqlWhere", DbType.String, sqlWhere)

            Using reader As IDataReader = db.ExecuteReader(dbCommand)
                While reader.Read
                    oList.Add(FillOrderInfo(reader))
                End While
                Return oList
            End Using
            Return oList
        End Function
        Public Shared Function GetOrderNumberByPage(ByVal sqlWhere As String) As Integer
            Dim db As Database = DatabaseFactory.CreateDatabase
            Dim dbCommand As DbCommand = db.GetStoredProcCommand("nsf_Order_GetOrderListByPage")

            db.AddInParameter(dbCommand, "@IsCount", DbType.Boolean, True)
            If sqlWhere.Length > 0 Then db.AddInParameter(dbCommand, "@SqlWhere", DbType.String, sqlWhere)

            Return CInt(db.ExecuteScalar(dbCommand))
        End Function
        Public Shared Function GetOrder(ByVal orderID As Integer) As OrderInfo
            Dim db As Database = DatabaseFactory.CreateDatabase
            Dim dbCommand As DbCommand = db.GetStoredProcCommand("nsf_Order_GetOrder")
            ' Add paramters
            ' Input parameters can specify the input value
            db.AddInParameter(dbCommand, "@orderID", DbType.String, orderID)
            Using reader As IDataReader = db.ExecuteReader(dbCommand)
                While reader.Read
                    Return FillOrderInfo(reader)
                End While
                Return Nothing
            End Using

        End Function
        Public Shared Function GetOrderDetailList(ByVal orderID As Integer) As List(Of OrderDetailInfo)
            Dim odList As New List(Of OrderDetailInfo)

            Dim db As Database = DatabaseFactory.CreateDatabase
            Dim dbCommand As DbCommand = db.GetStoredProcCommand("nsf_Order_GetOrderDetailList")

            db.AddInParameter(dbCommand, "@OrderID", DbType.Int32, orderID)

            Using reader As IDataReader = db.ExecuteReader(dbCommand)
                While reader.Read
                    odList.Add(FillOrderDetailInfo(reader))
                End While
                Return odList
            End Using
            Return odList
        End Function
        Private Shared Function GetCurrentTimeOrder() As String
            Dim random As Random = New Random()

            Return Now.ToString("yyyyMMddHHmmss") & random.Next(0, 9999).ToString("####0000")
        End Function


        Public Shared Function GetNotProcessedOrder() As Integer
            Dim sqlWhere As String = String.Format("OrderStatus={0}", CInt(OrderStatus.NotProcessed))
            Return GetOrderNumberByPage(sqlWhere)
        End Function

        Public Shared Function CreateOrder(ByVal provisionOrder As OrderInfo, ByVal provisionOrderDeteails As List(Of OrderDetailInfo)) As Integer

            Dim orderID As Integer = AddOrder(provisionOrder)
            Dim oItem As OrderDetailInfo
            For Each oItem In provisionOrderDeteails
                AddOrderDetail(oItem, orderID)
            Next
            Return orderID
        End Function


        Public Shared Function GetOrderNoteList(ByVal orderID As Integer, ByVal Actions() As OrderAction) As List(Of OrderNoteInfo)
            Dim WhereCondition As String
            If Actions.Length = 0 Then
                WhereCondition = String.Format("OrderID={0} ", orderID.ToString)
            Else
                Dim a As OrderAction
                WhereCondition = String.Format("OrderID={0} ", orderID.ToString)
                Dim sTemp As String = ""
                For Each a In Actions
                    sTemp += String.Format(",{0}", CInt(a).ToString)
                Next
                sTemp = sTemp.Substring(1)
                WhereCondition += " AND OrderStatus IN (" & sTemp & ")"
            End If
            Return GetOrderNoteList(WhereCondition)
        End Function



        Private Shared Function GetOrderNoteList(ByVal WhereCondition As String) As List(Of OrderNoteInfo)
            Dim onList As New List(Of OrderNoteInfo)

            Dim db As Database = DatabaseFactory.CreateDatabase
            Dim dbCommand As DbCommand = db.GetStoredProcCommand("nsf_Order_GetOrderNoteList")

            db.AddInParameter(dbCommand, "@WhereCondition", DbType.String, WhereCondition)
            db.AddInParameter(dbCommand, "@OrderByExpression", DbType.String, "Date")

            Using reader As IDataReader = db.ExecuteReader(dbCommand)
                While reader.Read
                    onList.Add(FillOrderNoteInfo(reader))
                End While
                Return onList
            End Using
            Return onList
        End Function



        Public Shared Sub DeleteOrder(ByVal orderID As Integer)


            Dim db As Database = DatabaseFactory.CreateDatabase
            Dim dbCommand As DbCommand = db.GetStoredProcCommand("nsf_Order_DeleteOrder")

            db.AddInParameter(dbCommand, "@OrderID", DbType.Int32, orderID)

            db.ExecuteNonQuery(dbCommand)

        End Sub



#Region "Permission Sets"

        Public Shared Function GetOrderActionsForUser(ByVal status As OrderStatus) As List(Of OrderAction)

            Dim actions As New List(Of OrderAction)
            actions.Add(OrderAction.ViewDetail)
            actions.Add(OrderAction.B_Review)

            Select Case status
                Case OrderStatus.AwatingShipmentToCustomer
                    'actions.Add(OrderAction.B_Refund)
                Case OrderStatus.NotProcessed
                    actions.Add(OrderAction.B_Cancel)
                    '  actions.Add(OrderAction.B_Modify)
                    actions.Add(OrderAction.B_Pay)
                Case OrderStatus.OrderCancelledPriorToShipping
                Case OrderStatus.OrderComplete
                Case OrderStatus.OrderRefunded
                Case OrderStatus.ReceivedAwaitingPayment
                    actions.Add(OrderAction.B_Cancel)
                    actions.Add(OrderAction.B_Pay)
                Case OrderStatus.ReceivedPaymentProcessingOrder
                    actions.Add(OrderAction.B_Cancel)
                    '   actions.Add(OrderAction.B_Refund)
                Case OrderStatus.ShippedToCustomer
                    actions.Add(OrderAction.B_Received)
            End Select

            Return actions

        End Function

        Public Shared Function GetOrderActionsForAdmin(ByVal status As OrderStatus) As List(Of OrderAction)
            Dim actions As New List(Of OrderAction)
            actions.Add(OrderAction.ViewDetail)
            '   actions.Add(OrderAction.S_Review)
            Select Case status
                Case OrderStatus.AwatingShipmentToCustomer
                    'actions.Add(OrderAction.S_Refund)
                    actions.Add(OrderAction.S_Cancel)
                    actions.Add(OrderAction.S_Shipped)
                Case OrderStatus.NotProcessed
                    actions.Add(OrderAction.S_Cancel)
                    actions.Add(OrderAction.S_Modify)
                    actions.Add(OrderAction.S_Received)
                Case OrderStatus.OrderCancelledPriorToShipping
                Case OrderStatus.OrderComplete
                Case OrderStatus.OrderRefunded
                Case OrderStatus.ReceivedAwaitingPayment
                    actions.Add(OrderAction.S_Cancel)
                    actions.Add(OrderAction.S_ReceivedPay)
                Case OrderStatus.ReceivedPaymentProcessingOrder
                    actions.Add(OrderAction.S_Cancel)
                    actions.Add(OrderAction.S_Shipped)
                    '   actions.Add(OrderAction.S_Refund)
                Case OrderStatus.ShippedToCustomer
                    actions.Add(OrderAction.S_Complete)
            End Select
            Return actions

        End Function

        Public Shared Function IsPay(ByVal status As Order.OrderStatus) As Boolean
            Dim pay As Boolean = True
            Select Case status
                Case OrderStatus.AwatingShipmentToCustomer
                Case OrderStatus.NotProcessed
                    pay = False
                Case OrderStatus.OrderCancelledPriorToShipping
                Case OrderStatus.OrderComplete
                Case OrderStatus.OrderRefunded
                Case OrderStatus.ReceivedAwaitingPayment
                    pay = False
                Case OrderStatus.ReceivedPaymentProcessingOrder
                Case OrderStatus.ShippedToCustomer
            End Select

            Return pay



        End Function
        Public Shared Function GetChineseOrderStatus(ByVal status As Order.OrderStatus) As String
            Dim s As String = ""
            Select Case status
                Case OrderStatus.AwatingShipmentToCustomer
                    s = "准备发货"
                Case OrderStatus.NotProcessed

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -