前言
初识结账,我天,我是蒙圈的,当时脑袋里一堆问题,结账结的是什么?是否涉及到了上下机的内容?为何还要选择操作员?结账内容与操作员有什么关系?整体结完账之后表示的又是什么?
好吧,还是通过站在巨人的肩膀上,才似懂非懂的了解了个大概(我啥时候也能成为这个巨人呢?)。对于结账,我也有我的个人理解,在刚开始用户登录的时候,就涉及到了用户权限的问题,当时并没有考虑到这三个用户之间到底是个什么关系,到了结账,你就不得不考虑了。
拿网吧的级别来说,我觉得一般用户就是相当于一个网管,通过这个网管对学生的需求进行服务,基本服务就是查询查看功能,当然也可以更改自身的密码;操作员比一般用户的级别更大一些,当然也能够行驶一般用户的权利,操作员基本服务就是注册、查询和更改功能,每天的进账出账都在操作员这里运行;管理员是管理整个网吧的人员,总管每天的收入情况,并对收入进行汇总,但是他并不能行驶操作员的权利(因为涉及到结账,如果管理员也能注册的话,结账的时候就不是结一天的收入情况了)
对于结账了理解:结账就是对操作员这一天的工作状况进行一个总结,通过对每个管理员这一天的收支情况进行总结,来查看整个网吧今天的收入为多少。
一、窗体理解
其他的选项不想多说,单说说汇总选项吧。
我的思路:
总售卡数=管理员今天一天卖出去的卡数
售卡张数=总售卡数 - 退卡张数
退卡张数=今天一天退出去的卡数
充值金额=售卡时充入的金额 + 充值的金额
退卡金额=退卡应退给的总金额
应收金额=充值金额 - 退卡金额
临时收费金额=临时用户充值的总金额
二、部分代码
'判断是否选择用户名
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 = ""