📄 frmordersmanager.vb
字号:
MenuInfoList.RemoveAt(Index)
MenuList.Items.RemoveAt(Index)
End If
End Sub
Private Sub chkQueryAddress_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkQueryAddress.CheckedChanged, chkOrderDate.CheckedChanged, chkQueryExcute.CheckedChanged, chkQueryName.CheckedChanged, chkQueryTel.CheckedChanged
txtQueryAddress.Enabled = chkQueryAddress.Checked
txtQueryName.Enabled = chkQueryName.Checked
txtQueryTel.Enabled = chkQueryTel.Checked
QueryExcuteDate.Enabled = chkQueryExcute.Checked
QueryOrderDate.Enabled = chkOrderDate.Checked
End Sub
Private Sub rdtQueryInnerOrder_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rdtQueryInnerOrder.CheckedChanged, rdtQueryOuterOrder.CheckedChanged
chkQueryAddress.Enabled = rdtQueryOuterOrder.Checked
txtQueryAddress.Enabled = chkQueryAddress.Checked
QueryList.Enabled = rdtQueryInnerOrder.Checked
End Sub
Private Sub rdtInnerOrder_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rdtInnerOrder.CheckedChanged, rdtOuterOrder.CheckedChanged
txtOrderContents.Enabled = rdtOuterOrder.Checked
txtOrderAddress.Enabled = rdtOuterOrder.Checked
ProviderTables.Enabled = rdtInnerOrder.Checked
If rdtInnerOrder.Checked = True Then
ProviderTables.Items.Clear()
sqlstr = "SELECT tablenum,roomname,persons FROM TableInfo"
Dim tempDS As New DataSet
Dim mCount, Index As Integer
tempDS.Clear()
Try
tempDS = AccessToDatabase.GetDataFromDB(sqlstr)
mCount = tempDS.Tables(0).Rows.Count
If mCount >= 1 Then
For Index = 0 To mCount - 1
ProviderTables.Items.Add(tempDS.Tables(0).Rows(Index)("tablenum") & " - " & tempDS.Tables(0).Rows(Index)("roomname") & " (可容纳 " & tempDS.Tables(0).Rows(Index)("persons") & " 人)")
Next
End If
Catch ex As Exception
Return
End Try
End If
End Sub
Private Function GetOrderDetails(ByVal MenuItems As ArrayList) As SortedList
Dim Index, Count As Integer
Count = MenuItems.Count
If Count <= 0 Then
Throw New ArgumentNullException
Return Nothing
End If
Dim AddMenus As New SortedList
AddMenus.Clear()
For Index = 0 To Count - 1
Dim sMenu As New MenuInformation
Dim Menus As New MenuInformation
sMenu = CType(MenuItems.Item(Index), MenuInformation)
Menus.menuID = sMenu.menuID
Menus.menuPrice = sMenu.menuPrice
Menus.menuQuantity = sMenu.menuQuantity
If AddMenus.ContainsKey(CType(Menus.menuID, Guid)) Then
Dim i, j As Integer
Dim m_Menu As New MenuInformation
i = AddMenus.IndexOfKey(CType(Menus.menuID, Guid))
m_Menu = AddMenus.Item(CType(Menus.menuID, Guid))
Menus.menuQuantity = m_Menu.menuQuantity + 1
AddMenus.SetByIndex(i, Menus)
m_Menu = Nothing
Else
AddMenus.Add(CType(sMenu.menuID, Guid), Menus)
End If
Next
Return AddMenus
End Function
Private Sub btnOk_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOk.Click
Me.Close()
End Sub
Private Sub cmbRooms_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbRooms.SelectedIndexChanged
If cmbRooms.SelectedIndex <= 0 Then cmbRooms.SelectedIndex = 0
Me.DataBindTableInfo(cmbRooms.SelectedItem)
End Sub
Private Sub btnAddBill_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAddBill.Click
If cmbTables.Text.Trim = String.Empty Then
MsgBox("服务桌号不能为空,请选择服务桌号。", MsgBoxStyle.OKOnly + MsgBoxStyle.Exclamation, "请选择服务桌号")
Return
End If
Dim MenuItems As New SortedList
MenuItems.Clear()
Dim sOrder As OrderInfo = New OrderInfo(0, Now.Today, Now.Today, Now.Today, String.Empty, CInt(Val(cmbTables.Text.Trim)), cmbRooms.Text.Trim, False)
Dim sOrderID As Guid = InsertOrderInfo(sOrder, "sp_OrderInfo_INS")
Dim Table As Integer = CInt(Val(cmbTables.Text.Trim))
Dim Room As String = cmbRooms.Text.Trim
MenuItems = Me.GetOrderDetails(MenuInfoList)
Me.InsertOrderItems(MenuItems, sOrderID, Table, Room)
End Sub
Private Function InsertOrderInfo(ByVal sOrder As OrderInfo, ByVal spName As String) As Guid
If sOrder Is Nothing Or sOrder.Style = -1 Then
Throw New ArgumentNullException
Return Guid.Empty
End If
'// 判断是否对数据库的连接已经初始化
If AccessToDatabase.objSqlConnection Is Nothing Then
Throw New ApplicationException("没有初始化数据库连接")
Return Guid.Empty
End If
Try
Dim sOrderID As Guid
Dim sqlOrderInfoCommand As SqlCommand = New SqlCommand(spName)
sqlOrderInfoCommand.CommandType = CommandType.StoredProcedure
With sqlOrderInfoCommand.Parameters
.Add("@OrderID", SqlDbType.UniqueIdentifier, 16)
.Add("@Style", SqlDbType.SmallInt, 2)
.Add("@OrderDate", SqlDbType.DateTime, 8)
.Add("@ExcuteDate", SqlDbType.DateTime, 8)
.Add("@ShippedDate", SqlDbType.DateTime, 8)
.Add("@Address", SqlDbType.NVarChar, 255)
.Add("@TableNum", SqlDbType.Int, 4)
.Add("@RoomName", SqlDbType.VarChar, 50)
.Add("@IsChecked", SqlDbType.Bit, 1)
.Item("@OrderID").Value = New Guid
.Item("@Style").Value = sOrder.Style
.Item("@OrderDate").Value = sOrder.OrderDate
.Item("@ExcuteDate").Value = sOrder.ExcuteDate
.Item("@ShippedDate").Value = sOrder.ShippedDate
.Item("@Address").Value = sOrder.Address.Trim
.Item("@TableNum").Value = sOrder.TableNum
.Item("@RoomName").Value = sOrder.RoomName.Trim
.Item("@IsChecked").Value = CInt(sOrder.IsChecked)
.Item("@OrderID").Direction = ParameterDirection.InputOutput
End With
sqlOrderInfoCommand.Connection = AccessToDatabase.objSqlConnection
If AccessToDatabase.objSqlConnection.State <> ConnectionState.Open Then
AccessToDatabase.objSqlConnection.Open()
End If
sqlOrderInfoCommand.ExecuteNonQuery()
AccessToDatabase.DisConnectToDataBase()
If sqlOrderInfoCommand.Parameters("@OrderID").Value.ToString <> String.Empty Then
sOrderID = CType(sqlOrderInfoCommand.Parameters("@OrderID").Value, Guid)
Else
sOrderID = Guid.Empty
End If
Return sOrderID
Catch ex As Exception
MsgBox(ex.Message)
AccessToDatabase.DisConnectToDataBase()
Return Guid.Empty
End Try
End Function
Private Function InsertOrderItems(ByVal sMenuInfo As SortedList, ByVal sOrderID As Guid, ByVal Table As Integer, ByVal Room As String) As Boolean
If sMenuInfo Is Nothing Or sMenuInfo.Count <= 0 Then
Throw New ArgumentNullException
Return False
End If
If sOrderID.Equals(Guid.Empty) Then
Throw New ArgumentNullException
Return False
End If
'// 判断是否对数据库的连接已经初始化
If AccessToDatabase.objSqlConnection Is Nothing Then
Throw New ApplicationException("没有初始化数据库连接")
Return False
End If
Try
Dim Index, Count As Integer
Count = sMenuInfo.Count
For Index = 0 To Count - 1
'// 使用 GetByIndex 方法获取在该索引值下的数据对象
Dim sMenu As New MenuInformation
sMenu = CType(sMenuInfo.GetByIndex(Index), MenuInformation)
Dim sqlOrderItemCommand As SqlCommand = New SqlCommand("sp_OrderItems_INS")
sqlOrderItemCommand.CommandType = CommandType.StoredProcedure
With sqlOrderItemCommand.Parameters
.Add("@OrderID", SqlDbType.UniqueIdentifier, 16)
.Add("@MenuID", SqlDbType.Char, 38)
.Add("@CustomerID", SqlDbType.Char, 38)
.Add("@TableNum", SqlDbType.Int, 4)
.Add("@RoomName", SqlDbType.VarChar, 50)
.Add("@OrderDate", SqlDbType.DateTime, 8)
.Add("@Quantity", SqlDbType.Int, 4)
.Add("@UnitPrice", SqlDbType.Money, 8)
.Item("@OrderID").Value = sOrderID
.Item("@MenuID").Value = sMenu.menuID.ToString
.Item("@CustomerID").Value = Guid.Empty.ToString
.Item("@TableNum").Value = Table
.Item("@RoomName").Value = Room
.Item("@OrderDate").Value = Now.Today
.Item("@Quantity").Value = sMenu.menuQuantity
.Item("@UnitPrice").Value = sMenu.menuPrice
End With
sqlOrderItemCommand.Connection = AccessToDatabase.objSqlConnection
If AccessToDatabase.objSqlConnection.State <> ConnectionState.Open Then
AccessToDatabase.objSqlConnection.Open()
End If
sqlOrderItemCommand.ExecuteNonQuery()
Next
Return True
Catch ex As Exception
'// 如果失败则通知用户,并告知用户的错误原因
MsgBox(ex.Message)
'// 删除已经加入的帐单详细记录和帐单记录,
Dim sqlstr As String = "DELETE OrderItems WHERE OrderID='" & sOrderID.ToString.Trim & "'"
AccessToDatabase.UpdateData(sqlstr)
sqlstr = "DELETE OrderInfo WHERE OrderID='" & sOrderID.ToString.Trim & "'"
AccessToDatabase.UpdateData(sqlstr)
AccessToDatabase.DisConnectToDataBase()
Return False
End Try
End Function
'// 帐单查询
Public Sub btnStartQuery_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStartQuery.Click
Dim OrderDate As Date = Me.ConsumeDateTime.Value.ToShortDateString
Dim Table As Integer = CInt(Val(Me.txtTableNumber.Text.Trim))
Dim Room As String = Me.txtRoomName.Text.Trim
If Table <= 0 Then
Throw New ArgumentOutOfRangeException
End If
Try
Dim tempDs As New DataSet
tempDs.Clear()
sqlstr = "SELECT OrderItems.CustomerID AS '会员编码'," & _
"MenuInfo.Menu_name AS '菜谱名称'," & _
"OrderItems.TableNum AS '服务桌号'," & _
"OrderItems.RoomName AS '所在房间'," & _
"OrderItems.OrderDate AS '订单日期'," & _
"OrderItems.Quantity AS '数 量'," & _
"OrderItems.UnitPrice AS '单 价' " & _
"FROM OrderItems, MenuInfo WHERE TableNum='" & Table & _
"' AND RoomName= '" & Room & "' AND OrderDate='" & OrderDate & _
"' AND MenuInfo.Menu_id=OrderItems.MenuID"
tempDs = AccessToDatabase.GetDataFromDB(sqlstr)
If Not tempDs Is Nothing Then
QueryDataGrid.DataSource = tempDs.Tables(0).DefaultView
End If
Catch ex As Exception
MsgBox(ex.Message)
Finally
AccessToDatabase.DisConnectToDataBase()
End Try
End Sub
Friend Class OrderInfo
Friend Style As Integer = -1
Friend OrderDate As Date
Friend ExcuteDate As Date
Friend ShippedDate As
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -