第一次机房收费系统——结账

前言

初识结账,我天,我是蒙圈的,当时脑袋里一堆问题,结账结的是什么?是否涉及到了上下机的内容?为何还要选择操作员?结账内容与操作员有什么关系?整体结完账之后表示的又是什么?

好吧,还是通过站在巨人的肩膀上,才似懂非懂的了解了个大概(我啥时候也能成为这个巨人呢?)。对于结账,我也有我的个人理解,在刚开始用户登录的时候,就涉及到了用户权限的问题,当时并没有考虑到这三个用户之间到底是个什么关系,到了结账,你就不得不考虑了。

拿网吧的级别来说,我觉得一般用户就是相当于一个网管,通过这个网管对学生的需求进行服务,基本服务就是查询查看功能,当然也可以更改自身的密码;操作员比一般用户的级别更大一些,当然也能够行驶一般用户的权利,操作员基本服务就是注册、查询和更改功能,每天的进账出账都在操作员这里运行;管理员是管理整个网吧的人员,总管每天的收入情况,并对收入进行汇总,但是他并不能行驶操作员的权利(因为涉及到结账,如果管理员也能注册的话,结账的时候就不是结一天的收入情况了)

对于结账了理解:结账就是对操作员这一天的工作状况进行一个总结,通过对每个管理员这一天的收支情况进行总结,来查看整个网吧今天的收入为多少。

一、窗体理解

其他的选项不想多说,单说说汇总选项吧。
这里写图片描述

我的思路:
总售卡数=管理员今天一天卖出去的卡数
售卡张数=总售卡数 - 退卡张数
退卡张数=今天一天退出去的卡数
充值金额=售卡时充入的金额 + 充值的金额
退卡金额=退卡应退给的总金额
应收金额=充值金额 - 退卡金额
临时收费金额=临时用户充值的总金额

二、部分代码

'判断是否选择用户名
        If CmdUserId.Text = "" Then
            MsgBox "请选择用户名", 0 + 48, "提示"
        Exit Sub
        End If

 '更新学生表
        txtsql = "select * from student_info where userid='" & Trim(CmdUserId.Text) & "' and ischeck='未结账' and date ='" & Date & "'"
        Set mrc1 = ExecuteSQL(txtsql, msgtext)

 '更新学生表
        Do While Not mrc1.EOF
            mrc1!ischeck = "结账"
            mrc1.Update
            mrc1.MoveNext
        Loop
        mrc1.Close

 '更新充值信息表
        txtsql = "select * from recharge_info where userid='" & Trim(CmdUserId.Text) & "' and status='未结账' and date='" & Date & "'"
        Set mrc2 = ExecuteSQL(txtsql, msgtext)
        Do While Not mrc2.EOF
            mrc2!Status = "结账"
            mrc2.Update
            mrc2.MoveNext
        Loop
        mrc2.Close

 '更新退卡表
        txtsql = "select * from cancelcard_info where userid='" & Trim(CmdUserId.Text) & "' and status='未结账' and date ='" & Date & "'"
        Set mrc3 = ExecuteSQL(txtsql, msgtext)
        Do While Not mrc3.EOF
            mrc3!Status = "结账"
            mrc3.Update
            mrc3.MoveNext
        Loop
        mrc3.Close

  '更新日结账单表

  '查询上期余额
            txtsql = "select allcash from checkday_info where date ='" & Format(Date - 1, "yyyy-mm-dd") & "'"
            Set mrc4 = ExecuteSQL(txtsql, msgtext)

            If mrc4.EOF Then
                remaincash = "0"
            Else
                remaincash = mrc4!allcash
            End If

   '计算当天充值金额
            txtsql = "select sum(addmoney) as sum1 from recharge_info where status='结账' and date='" & Format(Date, "yyyy-mm-dd") & "'"
            Set mrc5 = ExecuteSQL(txtsql, msgtext)

            If IsNull(mrc5.Fields(0)) Then
                rechargecash = "0"
            Else
                rechargecash = mrc5.Fields(0)
            End If
            mrc5.Close

   '计算当日消费金额
            txtsql = "select sum(consume) as sum2 from line_info where offdate='" & Format(Date, "yyyy-mm-dd") & "'"
            Set mrc6 = ExecuteSQL(txtsql, msgtext)

            If IsNull(mrc6.Fields(0)) Then
                consumecash = "0"
            Else
                consumecash = mrc6.Fields(0)
            End If
            mrc6.Close

    '计算当日退款金额
            txtsql = "select sum(cancelcash) as sum3 from cancelcard_info where date='" & Format(Date, "yyyy-mm-dd") & "' and status='结账'"
            Set mrc7 = ExecuteSQL(txtsql, msgtext)

            If IsNull(mrc7.Fields(0)) Then
                cancelcash = "0"
            Else
                cancelcash = mrc7.Fields(0)
            End If
            mrc7.Close

    '更新日结账单表

            txtsql = "select * from checkday_info "
            Set mrc8 = ExecuteSQL(txtsql, msgtext)

            txtsql = "select * from checkday_info where date='" & Date & "'"
            Set mrc9 = ExecuteSQL(txtsql, msgtext)

    '当天已经结过账则更新操作
                If mrc9.EOF = False Then

                    mrc8.Fields(0) = Val(remaincash)
                    mrc8.Fields(1) = Val(rechargecash)
                    mrc8.Fields(2) = Val(consumecash)
                    mrc8.Fields(3) = Val(cancelcash)
                    mrc8.Fields(4) = Val(remaincash) + Val(rechargecash) - Val(consumecash) - Val(cancelcash)
                    mrc8.Fields(5) = Date
                    mrc8.Update

                Else
    '当天未结过账的添加记录
                    mrc8.AddNew
                    mrc8.Fields(0) = Val(remaincash)
                    mrc8.Fields(1) = Val(rechargecash)
                    mrc8.Fields(2) = Val(consumecash)
                    mrc8.Fields(3) = Val(cancelcash)
                    mrc8.Fields(4) = Val(remaincash) + Val(rechargecash) - Val(consumecash) - Val(cancelcash)
                    mrc8.Fields(5) = Date
                    mrc8.Update
                End If

                mrc8.Close
                mrc9.Close

   '更新周结账单(删除周结账单里的内容,将日结账单的内容插入进去)

            txtsql = "delete checkweek_info"
            Set mrc = ExecuteSQL(txtsql, msgtext)

            txtsql = "insert into checkweek_info select * from checkday_info"
            Set mrcc = ExecuteSQL(txtsql, msgtext)

        MsgBox "结账成功!", 0 + 48, "提示"
        txtsellcardall.Text = ""
        txtcancelcard.Text = ""
        txtcancelcash.Text = ""
        txtcash.Text = ""
        txtrecharge.Text = ""
        txtsellcard.Text = ""
        txttemreceivemoney.Text = ""

猜你喜欢

转载自blog.csdn.net/molihuakai_118/article/details/79502820