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

📄 frmhzsite.frm

📁 星级酒店管理系统(附带系统自写控件源码)
💻 FRM
📖 第 1 页 / 共 4 页
字号:

Private Sub MnuDelete_Click()

  '删除消费单
  On Error GoTo DelErr
 
  If lstPro.ListItems.Count = 0 Then
     MsgBox "没有内容可以删除?   ", vbInformation
     Exit Sub
  End If
  
  If lstPro.SelectedItem.Text = "" Then
     MsgBox "没有内容可以删除?   ", vbInformation
     Exit Sub
  End If
 
 Dim bDB As Connection
 Dim sTmp As String
 Dim nID As Long
     nID = CLng(Trim(lstPro.SelectedItem.Text))
     
  If nID = 0 Then Exit Sub
  
  If MsgBox("真要删除[" & nID & "]号消费单吗?(Y/N)  ", vbInformation + vbYesNo) = vbNo Then Exit Sub
 
       Set bDB = CreateObject("ADODB.Connection")
           bDB.Open Constr
           
           Dim FG As Recordset
           Dim lID As Long
           Dim IsGZ As Integer
           Dim curMoney As Currency           '金额
           Dim sMemberID As String            '如果为会员时,必须修改该会员的累计
           Dim sPaymethod As String           '付款方式
           Dim tmpCur As Currency
           
               curMoney = 0: sMemberID = "": IsGZ = 0
           
           Set FG = CreateObject("ADODB.Recordset")
             '打开该坐位的所有记录
              FG.Open "Select * From Site Where ID=" & nID, bDB, adOpenStatic, adLockReadOnly, adCmdText
            '2没有找到该座位的消费记录
             If FG.EOF And FG.BOF Then '没有记录时
                FG.Close
                bDB.Close
                Set FG = Nothing
                Set bDB = Nothing
                MsgBox "对不起,没有找到编号为【" & nID & "】消费单!  " & vbCrLf _
                   & "请确认是不是其他用户已经删除该单,请刷新再试试?   ", vbInformation
                Exit Sub
               Else
                lID = FG.Fields("ID")            '给出该座位的最后一次消费的单号
                curMoney = FG("SFAmo")
                sMemberID = NullValue(FG("MID"))
                IsGZ = FG("IsArrearage")        '挂帐
                sPaymethod = NullValue(FG("tmpStr"))
                tmpCur = FG("tmpCur")
                FG.Close
              End If
              Set FG = Nothing
              
               bDB.BeginTrans
               
              '删除单据明细与座位信息
               sTmp = "Delete From Site Where ID=" & lID
               bDB.Execute sTmp
               sTmp = "Delete From Cust Where SheelID=" & lID
               bDB.Execute sTmp
               
              '如果非挂帐时
               If IsGZ = 0 Then
                 '还原流水帐
                  If tmpCur = curMoney Then        '所有都以卡付时
                    If tmpCur > 0 Then
                       Dim tmpRemain As Currency
                           tmpRemain = GetCount(bDB, sMemberID) + tmpCur
                          '补充卡值
                           InserToCard bDB, 1, "『" & lID & "』号消费单还原" & Time, tmpCur, sMemberID, lID, tmpRemain
                           InserToCash bDB, 0, "消费单还原", tmpCur, Date, sPaymethod
                          '修改今日与总金额
                           InserTodayCash bDB, "会员卡付", -tmpCur, Date
                          '更新最后余额
                           UpdateRemain bDB, sMemberID, tmpRemain
                    End If
                   Else                           '卡与其它合用时
                    If tmpCur > 0 Then
                        InserToCash bDB, 0, "消费单还原", curMoney - tmpCur, Date, sPaymethod
                        InserTodayCash bDB, sPaymethod, -(curMoney - tmpCur), Date
                        InserToCard bDB, 1, "『" & lID & "』号消费单还原" & Time, tmpCur, sMemberID, lID, tmpRemain
                        InserTodayCash bDB, "会员卡付", -tmpCur, Date
                        InserToCash bDB, 0, "消费单还原", tmpCur, Date, "会员卡付"
                      Else
                      '不使用卡时
                        InserToCash bDB, 0, "消费单还原", curMoney, Date, sPaymethod
                        InserTodayCash bDB, sPaymethod, -curMoney, Date
                     End If
                  End If
                 '如果客户不为空时
                  If sMemberID <> "" Then
                     UpdateGuestLJ bDB, sMemberID, -curMoney, 0
                  End If
                Else
                '挂帐时
                 If sMemberID <> "" Then
                    UpdateGuestLJ bDB, sMemberID, 0, -curMoney
                 End If
               '修改挂帐中金额及付款日期
                'sTmp = "Update tbdArrearage Set MSFAmount=" & curMoney & ",MReturn=1,MRDate=#" & Date & "# Where SheelID=" & lID
                '直接删除消费单
                 sTmp = "Delete tbdArrearage Where SheelID=" & lID
                 bDB.Execute sTmp
               End If
               
              bDB.CommitTrans
              bDB.Close
          Set bDB = Nothing
     
        '移去该行
         lstPro.ListItems.Remove lstPro.SelectedItem.Index
          
 Exit Sub
DelErr:
  MsgBox "不能删除该消费单。  " & vbCrLf & vbCrLf & Err.Description, vbCritical
  Exit Sub
    
End Sub

Private Sub MnuExit_Click()

  Call cmdExit_Click
  
End Sub

Private Sub RefreshGrid(sOrder As String)

 On Error GoTo LoadERR

 Dim DB As Connection
 Dim EF As Recordset
 
 Dim curAmount As Currency   '注入1
 Dim curGet As Currency      '支出0
     curAmount = 0: curGet = 0
 Set DB = CreateObject("ADODB.Connection")
 Set EF = CreateObject("ADODB.Recordset")
     DB.Open Constr
     EF.Open "Select * from Site " & sOrder, DB, adOpenForwardOnly, adLockReadOnly, adCmdText
         
     lstPro.Visible = False
     lstPro.ListItems.Clear
     Me.MousePointer = 11
     Dim bLoad As Boolean
     
     If Not (EF.EOF And EF.BOF) Then
        
        Dim ccQuanty As Currency, ccAmount As Currency, ccMoney As Currency
            ccQuanty = 0: ccAmount = 0: ccMoney = 0

        Do While Not EF.EOF
          '合计
           ccMoney = ccMoney + EF.Fields("SFAmo")    '总额
           ccAmount = ccAmount + EF("JEAmo")         '实付
           ccQuanty = ccQuanty + EF("BXF")           '包厢费
           InsertToHz lstPro, EF.Fields("ID"), EF.Fields("Date"), EF("lHour"), EF("lMinute") _
                        , EF("Site"), EF.Fields("BXF") & "元", EF.Fields("JEAmo") & "元", EF.Fields("Discount") & "%", EF("SFAmo") & "元", NullValue(EF("Waiter")), NullValue(EF("CheckOutMan"))
            EF.MoveNext
            DoEvents
         Loop
        '添加合计信息
         InsertToHz lstPro, "", "【 合 计 】", "", "", "", CStr(Round(ccQuanty, 2)) & "元", CStr(Round(ccAmount, 2)) & "元", _
                   "", CStr(ccMoney) & "元", "", ""
     End If
 
     IsAdd = False
     lstPro.Visible = True
     Me.MousePointer = 0
     
 Exit Sub
LoadERR:
  Me.MousePointer = 0
  MsgBox "安装消费记录出错?" & Err.Description, vbExclamation, "www.vb-code.net"""
  Exit Sub
   
End Sub

'添加到流水帐中
Private Sub InsertToHz(tmpView As ListView, sText1 As String, sText2 As String, sText3 As String _
      , sText4 As String, sText5 As String, sText6 As String, sText7 As String, sText8 As String, sText9 As String _
      , sText10 As String, sText11 As String)
      
   On Error Resume Next
   Dim lstTmp As ListItem
   Set lstTmp = tmpView.ListItems.Add
       lstTmp.Text = Trim(sText1)
       lstTmp.SubItems(1) = Trim(sText2)
       lstTmp.SubItems(2) = Trim(sText3)
       lstTmp.SubItems(3) = Trim(sText4)
       lstTmp.SubItems(4) = Trim(sText5)
       lstTmp.SubItems(5) = Trim(sText6)
       lstTmp.SubItems(6) = Trim(sText7)
       lstTmp.SubItems(7) = Trim(sText8)
       lstTmp.SubItems(8) = Trim(sText9)
       lstTmp.SubItems(9) = Trim(sText10)
       lstTmp.SubItems(10) = Trim(sText11)
End Sub

Private Sub mnuPrint_Click()
  
  Call cmdPrint_Click
  
End Sub

Private Sub mnuPrintSheet_Click()
  
 On Error GoTo PrintErr
 
  If lstPro.ListItems.Count = 0 Then
     MsgBox "单据为空,不能查看?  ", vbExclamation
     Exit Sub
  End If
  
  If lstPro.SelectedItem.Text = "" Then
     MsgBox "请选择任一单据后继续?  ", vbExclamation
     Exit Sub
  End If
  
  AfterPrintSheet lstPro.SelectedItem.Text

 Exit Sub
PrintErr:
 MsgBox "对不起,打印单据错误:" & Err.Description, vbCritical
 
End Sub

'结帐后打印帐单
Public Sub AfterPrintSheet(nID As Long)
     
    On Error GoTo PrintErr
     
    If nID = 0 Then
       MsgBox "消费单为空,不能打印?  ", vbInformation
       Exit Sub
    End If
        
   '首先给出当前桌的消费记录
    Dim iDiscount As Integer, iArrearage As Integer
    Dim curSfPay As Currency, curYinPay As Currency, curPackage As Currency, curHJ As Currency
    Dim sSQL As String, sMyGuestName As String, sMyGuestID As String, sMyOperator As String, sMysite As String
    Dim sMypaymethod As String
    Dim dMyDate As Date
    Dim sWaiter As String
   '当前座位,当前菜单中内容,每ID代表一桌消费
    sSQL = "Select Site.Site,Site.Date,Site.IsArrearage,Site.lHour,Site.lMinute,Site.CheckOutman,Site.MID," _
       & "tbdMember.Name,Site.JeAmo,Site.DCJE,Site.tmpStr,Site.SFAmo,Site.Waiter,Site.BXF,Site.Discount " _
       & " From Site Left Join tbdMember On Site.MID=tbdMember.ID  Where Site.ID=" & nID
        
    Dim DB As Connection, EF As Recordset
    Set DB = CreateObject("ADODB.Connection")
    Set EF = CreateObject("ADODB.Recordset")
        DB.Open Constr
        EF.Open sSQL, DB, adOpenStatic, adLockReadOnly, adCmdText
        If Not (EF.EOF And EF.BOF) Then
           sMysite = EF("Site")
           iArrearage = EF("IsArrearage")
           sMypaymethod = EF("tmpStr")
           If Not IsNull(EF("Date")) Then
              dMyDate = EF("Date")
            Else
              dMyDate = Date
           End If
          'ftDate.Text = EF("Date")
          'ftHour.Text = EF("lHour")
          'ftMinute.Text = EF("lMinute")
           sMyOperator = NullValue(EF("checkOutMan"))
           sMyGuestID = NullValue(EF("MID"))
           sMyGuestName = NullValue(EF("Name"))
           curHJ = EF("DCJE")                     '点菜金额
           curPackage = NullValue(EF("BXF"))      '包厢
           curSfPay = EF("SFAmo")                 '实付
           sWaiter = NullValue(EF("Waiter"))
           iDiscount = EF("Discount")
       End If
       EF.Close
       Set EF = Nothing
       DB.Close
       Set DB = Nothing
        
    '打印格式
     Dim bExit As Boolean
     Dim sBB As String
     Set DB = CreateObject("ADODB.Connection")
         DB.Open Constr
         sBB = "Delete From prtCust"                              '清空所有数据
         DB.Execute sBB
     Set EF = CreateObject("ADODB.Recordset")
         EF.Open "SELECT DType AS DType, Name AS Name, Unit AS Unit, Price AS Price, Sum(Quanty) AS Quantys, Sum(JGF) AS JGFs, Sum(Amos) AS Amoss From Cust WHERE SheelID=" & nID & " GROUP BY DType, Name, Unit, Price", DB, adOpenStatic, adLockReadOnly, adCmdText
     Dim lPaperCountS As Integer, lPaperCount As Integer
     Dim lCurrent As Integer
         If EF.BOF And EF.EOF Then  '没有记录时 退出
            EF.Close
            Set EF = Nothing
            DB.Close
            Set DB = Nothing
            MsgBox "没有消费记录,不能打印。   ", vbExclamation
            Exit Sub
          Else
            lPaperCount = 0
           '给出该桌消费的记录数
            Do While Not EF.EOF
               lPaperCount = lPaperCount + 1
               EF.MoveNext
            Loop
            EF.MoveFirst
         End If
         
       '计算总页数
        lPaperCountS = lPaperCount / nPrintLine
        If (lPaperCount Mod nPrintLine) <> 0 And (lPaperCount > nPrintLine) Then '正除时不加0
           lPaperCountS = lPaperCountS + 1
        End If
        If lPaperCountS = 0 Then
           lPaperCountS = lPaperCountS + 1
        End If
          
          Dim x As Integer
          Dim sPN As String
          Dim cDJ As String
          Dim lSL As String
          Dim cJE As String
          Dim cDW As String
          Dim H As Integer
          Dim cJGF As String
          Dim sType As String '类型
          Dim sType1 As String '类型
        '开始打印
         Printer.ScaleMode = 6 'mm
         
   For x = 1 To lPaperCountS
      
         '打印单位名称
          Printer.FontSize = 24
          Printer.FontName = "黑体"
          Printer.FontBold = True
          Printer.CurrentX = ((110 - (Printer.TextWidth(sUnit))) / 2) + 8
          Printer.CurrentY = XTop + 8
         'NoTitle为不打印标题,客户可自行给出
         'NoTitle=1 Or -1
          If NoTitle = False Then
             Printer.Print sUnit
          End If
          Printer.FontSize = 9
          Printer.FontName = "黑体"
          Printer.FontBold = True
          Printer.CurrentX = 8 + XLeft
          Printer.CurrentY = 26 + XTop
          Printer.Print "单号:" & nID
                    
          If iArrearage = 1 Then
            '打印挂帐
             Printer.CurrentX = 42 + XLeft
             Printer.CurrentY = 26 + XTop
             Printer.Print "挂帐"
           Else
             Printer.CurrentX = 42 + XLeft
             Printer.CurrentY = 26 + XTop
             Printer.Print "结帐:" & sMypaymethod
          End If
          Printer.CurrentX = 75 + XLeft
          Printer.CurrentY = 26 + XTop
          Printer.Print "日期:" & Format(dMyDate, "Long Date")
         '桌号
          Printer.CurrentX = 8 + XLeft
          Printer.CurrentY = 32 + XTop
          Printer.Print "桌号:" & sMysite
         '会员信息
          If Trim(sMyGuestID) <> "" And Trim(sMyGuestName) <> "" Then
             Printer.CurrentX = 42 + XLeft
             Printer.CurrentY = 32 + XTop
             Printer.Print "会员:" & sMyGuestID
             Printer.CurrentX = 75 + XLeft
             Printer.CurrentY = 32 + XTop
             Printer.Print "姓名:" & sMyGuestName
          End If
         '打印菜单标题
          Printer.CurrentX = 8 + XLeft
          Printer.CurrentY = 40 + XTop
          Printer.FontBold = False
          Printer.Font = "宋体"
          Printer.Print "菜单类别    "
          Printer.CurrentX = 29 + XLeft
          Printer.CurrentY = 40 + XTop
          Printer.Print "菜  名    "
          Printer.CurrentY = 40 + XTop
          Printer.CurrentX = 65 + XLeft
          Printer.Print "单位"
          Printer.CurrentY = 40 + XTop
          Printer.CurrentX = 75 + XLeft
          Printer.Print "单价"
          Printer.CurrentY = 40 + XTop
          Printer.CurrentX = 83 + XLeft
          Printer.Print "数量"
          Printer.CurrentY = 40 + XTop
          Printer.CurrentX = 89 + XLeft
          Printer.Print "加工"
          Printer.CurrentY = 40 + XTop
          Printer.CurrentX = 98 + XLeft
          Printer.Print "金额"
         '-----------------------------------------
                 H = 1
              If x = 1 Then  '分页
                 EF.MoveFirst
                Else
                 EF.MoveFirst
                 EF.Move ((x - 1) * nPrintLine)
              End If
            '打印所有菜单
             Do While Not EF.EOF

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -