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

📄 frmcheckbill.vb

📁 单机版餐饮服务系统,结合了SqlServer数据库
💻 VB
📖 第 1 页 / 共 3 页
字号:
            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 + -