📄 frmcheckbill.vb
字号:
Me.txtTableNumber.Name = "txtTableNumber"
Me.txtTableNumber.Size = New System.Drawing.Size(216, 21)
Me.txtTableNumber.TabIndex = 3
Me.txtTableNumber.Text = ""
Me.txtTableNumber.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'lbTableNumber
'
Me.lbTableNumber.ForeColor = System.Drawing.Color.Blue
Me.lbTableNumber.Location = New System.Drawing.Point(208, 16)
Me.lbTableNumber.Name = "lbTableNumber"
Me.lbTableNumber.Size = New System.Drawing.Size(72, 21)
Me.lbTableNumber.TabIndex = 0
Me.lbTableNumber.Text = "服务桌号:"
Me.lbTableNumber.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
'
'btnCheckBill
'
Me.btnCheckBill.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnCheckBill.ForeColor = System.Drawing.Color.Navy
Me.btnCheckBill.Location = New System.Drawing.Point(448, 416)
Me.btnCheckBill.Name = "btnCheckBill"
Me.btnCheckBill.Size = New System.Drawing.Size(72, 24)
Me.btnCheckBill.TabIndex = 1
Me.btnCheckBill.Text = "结 账"
'
'btnBillQuery
'
Me.btnBillQuery.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnBillQuery.ForeColor = System.Drawing.Color.Navy
Me.btnBillQuery.Location = New System.Drawing.Point(368, 416)
Me.btnBillQuery.Name = "btnBillQuery"
Me.btnBillQuery.Size = New System.Drawing.Size(72, 24)
Me.btnBillQuery.TabIndex = 2
Me.btnBillQuery.Text = "帐单查询"
'
'btnBillDetail
'
Me.btnBillDetail.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnBillDetail.ForeColor = System.Drawing.Color.Navy
Me.btnBillDetail.Location = New System.Drawing.Point(288, 416)
Me.btnBillDetail.Name = "btnBillDetail"
Me.btnBillDetail.Size = New System.Drawing.Size(72, 24)
Me.btnBillDetail.TabIndex = 3
Me.btnBillDetail.Text = "帐单细节"
'
'frmCheckBill
'
Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
Me.ClientSize = New System.Drawing.Size(530, 448)
Me.Controls.Add(Me.btnBillDetail)
Me.Controls.Add(Me.btnBillQuery)
Me.Controls.Add(Me.btnCheckBill)
Me.Controls.Add(Me.gpCheckInfo)
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
Me.KeyPreview = True
Me.MaximizeBox = False
Me.Name = "frmCheckBill"
Me.Text = "结账台"
Me.gpCheckInfo.ResumeLayout(False)
Me.gpVIP.ResumeLayout(False)
Me.gpCheck.ResumeLayout(False)
Me.ResumeLayout(False)
End Sub
#End Region
Private CustomerID As Guid
Private Sub rdtCash_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rdtCash.CheckedChanged
gpCheck.Enabled = Not rdtCash.Checked
End Sub
Private Sub chkVIP_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkVIP.CheckedChanged
gpVIP.Enabled = chkVIP.Checked
End Sub
Private Sub btnCheckBill_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCheckBill.Click
If Me.txtToPayBill.Text.Trim = String.Empty Then
Return
End If
Dim Payed As Decimal = CDec(Val(Me.txtPayMoney.Text.Trim))
Dim HadPayed As Decimal = CDec(Val(Me.txtToPayBill.Text.Substring(1).Trim))
Dim DisCount As Decimal = CDec(Val(Me.txtDisCount.Text.Trim))
Me.txtReturnMoney.Text = (Payed - HadPayed * (1 - DisCount)).ToString("C")
Me.CheckBill()
End Sub
Private Sub btnBillQuery_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBillQuery.Click
Dim Table As Integer = CInt(Val(Me.txtTableNumber.Text.Trim))
Dim Room As String = Me.txtRoomName.Text.Trim
Dim OrderDate As Date = Me.dtOrderDate.Value.ToShortDateString
Dim SubTotal As Decimal = 0D
If Table = 0 Or Room = String.Empty Then
Throw New ArgumentNullException
End If
If AccessToDatabase.objSqlConnection Is Nothing Then
Throw New ApplicationException("没有初始化数据库连接")
End If
Try
Dim SqlSelectCommand As New SqlCommand
SqlSelectCommand.CommandType = CommandType.StoredProcedure
SqlSelectCommand.CommandText = "sp_OrderItems_SEL"
With SqlSelectCommand.Parameters
.Add("@TableNum", SqlDbType.Int, 4)
.Add("@RoomName", SqlDbType.VarChar, 50)
.Add("@OrderDate", SqlDbType.DateTime, 8)
.Add("@SubTotal", SqlDbType.Money, 8)
.Item("@TableNum").Value = Table
.Item("@RoomName").Value = Room
.Item("@OrderDate").Value = OrderDate
.Item("@SubTotal").Direction = ParameterDirection.Output
End With
SqlSelectCommand.Connection = AccessToDatabase.objSqlConnection
If AccessToDatabase.objSqlConnection.State <> ConnectionState.Open Then
AccessToDatabase.objSqlConnection.Open()
End If
SqlSelectCommand.ExecuteNonQuery()
If SqlSelectCommand.Parameters("@Subtotal").Value.ToString <> String.Empty Then
SubTotal = CDec(CType(SqlSelectCommand.Parameters("@Subtotal").Value, Double))
End If
Me.txtToPayBill.Text = SubTotal.ToString("C")
Catch ex As Exception
MsgBox(ex.Message)
Finally
AccessToDatabase.DisConnectToDataBase()
End Try
End Sub
Private Sub txtIDNumber_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtIDNumber.KeyDown
If e.KeyCode = Keys.Enter Then
Dim myID As String = Me.txtIDNumber.Text.Trim
Dim SqlStr As String = "SELECT DisCountRatio,CustomerID FROM CustomerInfo WHERE Identy='" & myID & "'"
Dim DisCount As Decimal
Dim TempDS As New DataSet
TempDS.Clear()
TempDS = AccessToDatabase.GetDataFromDB(SqlStr)
If Not TempDS Is Nothing Then
If TempDS.Tables(0).Rows.Count >= 1 Then
CustomerID = CType(TempDS.Tables(0).Rows(0)("CustomerID"), Guid)
DisCount = CDec(TempDS.Tables(0).Rows(0)("DisCountRatio"))
End If
End If
If Not CustomerID.Equals(Guid.Empty) Then
Me.txtVIPNumber.Text = CustomerID.ToString.ToUpper
Me.txtDisCount.Text = Format(1 - DisCount, "0.00")
End If
End If
End Sub
Private Sub btnBillDetail_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBillDetail.Click
Dim frmorders As New frmOrdersManager
frmorders.txtTableNumber.Text = Me.txtTableNumber.Text
frmorders.txtRoomName.Text = Me.txtRoomName.Text
frmorders.ConsumeDateTime.Value = Me.dtOrderDate.Value
frmorders.btnStartQuery_Click(Nothing, Nothing)
frmorders.BillsPage.Enabled = False
frmorders.OrdersPage.Enabled = False
frmorders.OrdersQueryPage.Enabled = False
frmorders.QueryPages.SelectedIndex = 1
frmorders.ShowDialog()
End Sub
Private Sub CheckBill()
Dim Table As Integer = CInt(Val(Me.txtTableNumber.Text.Trim))
Dim Room As String = Me.txtRoomName.Text.Trim
Dim OrderDate As Date = Me.dtOrderDate.Value.ToShortDateString
Dim SubTotal As Decimal = CDec(Val(Me.txtToPayBill.Text.Trim))
If Table = 0 Or Room = String.Empty Then
Throw New ArgumentNullException
End If
If AccessToDatabase.objSqlConnection Is Nothing Then
Throw New ApplicationException("没有初始化数据库连接")
End If
Try
Dim SqlUpdateCommand As New SqlCommand
SqlUpdateCommand.CommandType = CommandType.StoredProcedure
SqlUpdateCommand.CommandText = "sp_CheckBill"
With SqlUpdateCommand.Parameters
.Add("@TableNum", SqlDbType.Int, 4)
.Add("@RoomName", SqlDbType.VarChar, 50)
.Add("@OrderDate", SqlDbType.DateTime, 8)
.Add("@CustomerID", SqlDbType.Char, 38)
.Item("@TableNum").Value = Table
.Item("@RoomName").Value = Room
.Item("@OrderDate").Value = OrderDate
.Item("@CustomerID").Value = CustomerID.ToString
End With
SqlUpdateCommand.Connection = AccessToDatabase.objSqlConnection
If AccessToDatabase.objSqlConnection.State <> ConnectionState.Open Then
AccessToDatabase.objSqlConnection.Open()
End If
SqlUpdateCommand.ExecuteNonQuery()
'// 如果会员卡号不是空值则更新该会员卡号的信息
If Not CustomerID.Equals(Guid.Empty) Then
Dim SqlCommands As New SqlCommand
SqlCommands.CommandType = CommandType.StoredProcedure
SqlCommands.CommandText = "sp_CustomerInfo_UPD_BY_CustomerID"
With SqlCommands.Parameters
.Add("@CustomerID", SqlDbType.Char, 38)
.Add("@Summary", SqlDbType.Money, 8)
.Item("@CustomerID").Value = CustomerID.ToString
.Item("@Summary").Value = SubTotal
End With
SqlCommands.Connection = AccessToDatabase.objSqlConnection
If AccessToDatabase.objSqlConnection.State <> ConnectionState.Open Then
AccessToDatabase.objSqlConnection.Open()
End If
SqlCommands.ExecuteNonQuery()
End If
Catch ex As Exception
MsgBox(ex.Message)
Finally
AccessToDatabase.DisConnectToDataBase()
End Try
End Sub
End Class
End Namespace
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -