📄 ordercontroller.vb
字号:
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 + -