📄 seatfoodform.vb
字号:
Dim NewProdcutId As String = lvwSeatFoodList.Items(i - 1).SubItems(4).Text
Dim Nums As Integer = NewNums
FoodMsg = FoodMsg + "[" + NewFood + "][" + NewPrice + "][" + NewNums + "][" + NewTotals + "]" + vbCrLf
Totals = Totals + NewTotals
Dim LVI As ListViewItem = New ListViewItem(NewFood)
LVI.SubItems.Add(NewPrice)
LVI.SubItems.Add(NewNums)
LVI.SubItems.Add(NewTotals)
LVI.SubItems.Add(NewProdcutId)
lvwSeatFoodListResult.Items.Add(LVI)
Next
txtTableId.Text = Me.cbxTableId.Text
txtOrderId.Text = RunID("OR")
TabControl1.SelectedIndex = 3 '自動切換到[點餐結果]標籤
ProductMoneys = Totals '取得產品消費總金額
lblTotalCash.Text = ProductMoneys.ToString()
Msg = Msg + "訂單編號:" + txtOrderId.Text + vbCrLf
Msg = Msg + "桌號:" + cbxTableId.Text + vbCrLf
Msg = Msg + "產品資訊:" + vbCrLf + FoodMsg + vbCrLf
Msg = Msg + "產品消費總金額:" + ProductMoneys.ToString() + vbCrLf
Dim Result As Integer = MsgShow(Msg, "顧客點餐清單資訊", MsgBoxIcon.Asterisk)
If (Result = 1) Then
If (InsertDataToConsumeRecord() And InsertDataToOrderDB()) Then
MessageBox.Show("訂單資料新增完成!!", "訂單新增動作")
End If
Else 'Result = 2
MessageBox.Show("取消新增訂單動作!!")
End If
End If
End Sub
#Region "產生流水編號"
''' <summary>
''' 產生流水編號
''' 例如:095 12 20 12 53 20
''' </summary>
''' <param name="HeadStr">流水號開頭字串</param>
'''<returns>回傳日期時間字串</returns>
Public Shared Function RunID(ByVal HeadStr As String) As String
Dim IDStr As String '存放回傳字串變數
Dim NowStr As String '存放目前日期時間變數
Dim YearStr As String '存放年字串
Dim MonthStr As String '存放月字串
Dim DayStr As String '存放日字串
Dim HourStr As String '存放小時字串
Dim MinuteStr As String '存放分鐘字串
Dim SecondStr As String '存放秒數字串
NowStr = DateTime.Now.ToString()
YearStr = String.Format("{0:D3}", CInt(DateTime.Now.Year) - 1911) 'D3表是不足三位數前面會補0
MonthStr = String.Format("{0:D2}", CInt(DateTime.Now.Month))
DayStr = String.Format("{0:D2}", CInt(DateTime.Now.Day))
HourStr = String.Format("{0:D2}", CInt(DateTime.Now.Hour))
MinuteStr = String.Format("{0:D2}", CInt(DateTime.Now.Minute))
SecondStr = String.Format("{0:D2}", CInt(DateTime.Now.Second))
IDStr = HeadStr + YearStr + MonthStr + DayStr + HourStr + MinuteStr + SecondStr
Return IDStr
End Function 'RunID
#End Region
#Region "訊息盒顯示實作"
''' <summary>
''' 訊息圖示列舉
''' </summary>
Public Enum MsgBoxIcon
None
Asterisk
IsError
Exclamation
Hand
Information
Question
IsStop
Warning
End Enum
''' <summary>
''' 訊息盒顯示
''' </summary>
Public Function MsgShow(ByVal text As String, ByVal caption As String, ByVal Icon As MsgBoxIcon) As Integer
Dim MBF As MessageBoxForm = New MessageBoxForm()
MBF.MsgContent = text
MBF.Caption = caption
Select Case Icon
Case MsgBoxIcon.None
MBF.Icons = "None"
Case MsgBoxIcon.Asterisk
MBF.Icons = "Asterisk"
Case MsgBoxIcon.IsError
MBF.Icons = "Error"
Case MsgBoxIcon.Exclamation
MBF.Icons = "Exclamation"
Case MsgBoxIcon.Hand
MBF.Icons = "Hand"
Case MsgBoxIcon.Information
MBF.Icons = "Information"
Case MsgBoxIcon.Question
MBF.Icons = "Question"
Case MsgBoxIcon.IsStop
MBF.Icons = "Stop"
Case MsgBoxIcon.Warning
MBF.Icons = "Warning"
End Select
'強制顯示訊息,需回應之後才會執行下一步
MBF.ShowDialog()
Return MBF.Result
End Function
#End Region
#Region "將資料寫入資料庫中"
''' <summary>
''' 將資料寫入資料庫中-寫入顧客消費記錄
''' </summary>
Private Function InsertDataToConsumeRecord() As Boolean
Dim arrList As ArrayList = New ArrayList()
Dim crOrderId As String = "" '訂單編號
Dim crConsumeDate As String = "" '消費日期
Dim crMoneys As Integer = 0 '消費金額
Dim crPay As Integer = 0 '是否結帳
Dim crTableId As String = "" '桌號
crOrderId = txtOrderId.Text
crConsumeDate = DateTime.Now.ToString("yyyy年MM月dd日 HH:mm:ss")
crMoneys = ProductMoneys
If (crMoneys = 0) Then '若應付款金額為0表示已經結帳
crPay = 1
Else '否則要至前端櫃台機進行結帳
crPay = 0
End If
crTableId = txtTableId.Text
arrList.Clear()
arrList.Insert(0, crOrderId)
arrList.Insert(1, crConsumeDate)
arrList.Insert(2, CStr(crMoneys))
arrList.Insert(3, CStr(crPay))
arrList.Insert(4, crTableId)
If (AuthPK(crOrderId, "OrderId", "ConsumeRecord") = False) Then
If (DbCRInsertData(arrList)) Then
Return True
Else
MessageBox.Show("新增訂單資料失敗", "新增訂單資料", MessageBoxButtons.OK, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1)
Return False
End If
Else
MessageBox.Show("對不起,資料庫已存在[ " + crOrderId + " ]訂單資料!!(資料重複)", "資料新增")
Return False
End If
End Function
''' <summary>
''' 將資料寫入資料庫中-寫入顧客點餐記錄
''' </summary>
Private Function InsertDataToOrderDB() As Boolean
Dim arrList As ArrayList = New ArrayList()
Dim OrderId As String = "" '訂單編號
Dim UserId As String = "" '使用者編號
Dim ProductId As String = "" '食品編號
Dim ProductName As String = "" '食品名稱
Dim ProductCost As Integer = 0 '食品價格
Dim ProductNums As Integer = 0 '食品數量
Dim ConsumeDate As String = "" '消費日期
Dim SystemMachineId As String = "" '系統機器編號 Client , Server , Pocket PC
OrderId = txtOrderId.Text
UserId = WinEvents.LoginUserID
ConsumeDate = DateTime.Now.ToString("yyyy年MM月dd日 HH:mm:ss")
SystemMachineId = "Pocket PC"
If (lvwSeatFoodList.Items.Count > 0) Then
For i As Integer = 1 To lvwSeatFoodList.Items.Count
ProductId = lvwSeatFoodList.Items(i - 1).SubItems(4).Text
ProductName = lvwSeatFoodList.Items(i - 1).SubItems(0).Text
ProductCost = lvwSeatFoodList.Items(i - 1).SubItems(1).Text
ProductNums = lvwSeatFoodList.Items(i - 1).SubItems(2).Text
arrList.Clear()
arrList.Insert(0, OrderId)
arrList.Insert(1, UserId)
arrList.Insert(2, ProductId)
arrList.Insert(3, ProductName)
arrList.Insert(4, CStr(ProductCost))
arrList.Insert(5, CStr(ProductNums))
arrList.Insert(6, ConsumeDate)
arrList.Insert(7, SystemMachineId)
If (AuthPK(OrderId, "OrderId", ProductId, "ProductId", "OrderDB") = False) Then
If (DbODBInsertData(arrList)) Then
Return True
Else
MessageBox.Show("新增訂單資料失敗", "新增訂單資料", MessageBoxButtons.OK, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1)
Return False
End If
Else
MessageBox.Show("對不起,資料庫已存在[ " + OrderId + " ]訂單資料!!(資料重複)", "資料新增")
Return False
End If
Next
Else
MessageBox.Show("新增[" + OrderId + "-" + ProductName + "]訂單資料失敗", "新增訂單資料", MessageBoxButtons.OK, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1)
Return False
End If
End Function
#End Region
#Region "驗證主鍵值是否存在"
''' <summary>
''' 驗證主鍵值是否存在
''' </summary>
Public Function AuthPK(ByVal PKval As String, ByVal PKname As String, ByVal TableName As String) As Boolean
Dim selectCmd As String
Dim errorMsg As String 'errorMsg變數用來存放錯誤訊息
Try
selectCmd = "SELECT * FROM " + TableName + " WHERE " + PKname + " ='" + PKval + "'"
conn = New SqlConnection(ConnString)
conn.Open()
cmd = New SqlCommand(selectCmd, conn)
dr = cmd.ExecuteReader()
If (dr.Read()) Then '若能讀取下一個資料錄表示有找到資料
conn.Close()
cmd.Dispose()
dr.Close()
Return True
Else
conn.Close()
cmd.Dispose()
dr.Close()
Return False
End If
Catch ex As Exception
errorMsg = ex.Message
conn.Close()
cmd.Dispose()
dr.Close()
Return False
End Try
End Function
#End Region
#Region "驗證雙主鍵值"
''' <summary>
''' 驗證雙主鍵值
''' </summary>
Public Function AuthPK(ByVal PKval1 As String, ByVal PKname1 As String, ByVal PKval2 As String, ByVal PKname2 As String, ByVal TableName As String) As Boolean
Dim selectCmd As String
Dim errorMsg As String 'errorMsg變數用來存放錯誤訊息
Try
selectCmd = "SELECT * FROM " + TableName + " WHERE " + PKname1 + " ='" + PKval1 + "' And " + PKname2 + "='" + PKval2 + "'"
conn = New SqlConnection(ConnString)
conn.Open()
cmd = New SqlCommand(selectCmd, conn)
dr = cmd.ExecuteReader()
If (dr.Read()) Then '若能讀取下一個資料錄表示有找到資料
conn.Close()
cmd.Dispose()
dr.Close()
Return True
Else
conn.Close()
cmd.Dispose()
dr.Close()
Return False
End If
Catch ex As Exception
errorMsg = ex.Message
conn.Close()
cmd.Dispose()
dr.Close()
Return False
End Try
End Function
#End Region
#Region "新增一筆資料-寫入顧客消費記錄"
''' <summary>
''' 新增一筆資料-寫入顧客消費記錄
''' </summary>
Public Function DbCRInsertData(ByVal ArrField As ArrayList) As Boolean
InitDB()
Dim insertCmd As String
Dim TableName As String = "ConsumeRecord"
insertCmd = "Insert Into " + TableName + " (OrderId,ConsumeDate,Moneys,Pay,TableId"
insertCmd = insertCmd + ") Values("
insertCmd = insertCmd + "'" + ArrField(0) + "'," '訂單編號
insertCmd = insertCmd + "'" + ArrField(1) + "'," '消費日期
insertCmd = insertCmd + "'" + ArrField(2) + "'," '消費金額
insertCmd = insertCmd + "'" + ArrField(3) + "'," '是否結帳
insertCmd = insertCmd + "'" + ArrField(4) + "'" '桌號
insertCmd = insertCmd + ")"
Try
cmd = New SqlCommand(insertCmd, conn)
cmd.ExecuteNonQuery()
conn.Close()
Return True
Catch ex As Exception
errorMsg = ex.Message
conn.Close()
Return False
End Try
End Function
#End Region
#Region "新增一筆資料-寫入顧客點餐記錄"
''' <summary>
''' 新增一筆資料-寫入顧客點餐記錄
''' </summary>
Public Function DbODBInsertData(ByVal ArrField As ArrayList) As Boolean
InitDB()
Dim insertCmd As String
Dim TableName As String = "OrderDB"
insertCmd = "Insert Into " + TableName + " (OrderId,UserId,ProductId,ProductName,ProductCost,ProductNums,ConsumeDate,SystemMachineId"
insertCmd = insertCmd + ") Values("
insertCmd = insertCmd + "'" + ArrField(0) + "'," '訂單編號
insertCmd = insertCmd + "'" + ArrField(1) + "'," '使用者編號
insertCmd = insertCmd + "'" + ArrField(2) + "'," '食品編號
insertCmd = insertCmd + "'" + ArrField(3) + "'," '食品名稱
insertCmd = insertCmd + "'" + ArrField(4) + "'," '食品價格
insertCmd = insertCmd + "'" + ArrField(5) + "'," '食品數量
insertCmd = insertCmd + "'" + ArrField(6) + "'," '消費日期
insertCmd = insertCmd + "'" + ArrField(7) + "'" '系統機器編號
insertCmd = insertCmd + ")"
Try
cmd = New SqlCommand(insertCmd, conn)
cmd.ExecuteNonQuery()
conn.Close()
Return True
Catch ex As Exception
errorMsg = ex.Message
conn.Close()
Return False
End Try
End Function
#End Region
'---------------------------點菜清單 End-------------------------------
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -