【前言】
机房收费系统快要完成了,结账部分是这机房收费系统中相对需要好好理清思路的一部分内容,在结账过程中有每个人都会有不同的见解去计算各种金额,理清楚几个金额之间的关系就非常好做了。
【计算分析】
售卡张数:student_info表中该用户未结账的记录条数
退卡张数:cancelcard_info表中该用户未结账的记录条数
充值金额:recharge_info表中该用户未结账的金额总数
临时收费金额:student_info表中该用户对临时用户的收费金额
退卡金额:cancelcard_info表中该用户当天未结账的金额总数
总售卡数=售卡数-退卡数
应收金额:充值金额+购卡金额-退卡金额
【代码】
Dim CheckDaySQL As String
Dim mrcCheckDay As ADODB.Recordset
Dim LineSQL As String
Dim mrcLine As ADODB.Recordset
Dim RemainCash As String '上期余额
ConsumeCash = 0
If ComboUserID.Text = "" Then
MsgBox "请选择用户!", 0 + 48, "系统提示"
Exit Sub
End If
'更新表
CheckDaySQL = "select * from checkday_info where date='" & Format(Date) & "'"
Set mrcCheckDay = ExecuteSQL(CheckDaySQL, MsgText)
If mrcCheckDay.EOF = True Then
RemainCash = mrcCheckDay.Fields(4)
LineSQL = "select * from line_info where status='正常下机'"
Set mrcLine = ExecuteSQL(LineSQL, MsgText)
If mrcLine.EOF = False Then
Do While mrcLine.EOF = False
ConsumeCash = Val(ConsumeCash) + Val(mrcLine.Fields(11))
mrcLine.MoveNext
Loop
studentSQL = "select * from student_info where userid='" & Trim(ComboUserID.Text) & "'and ischeck='" & "未结账" & "'and date='" & Format(Date, "yyyy-mm-dd") & "'"
Set mrcstudent = ExecuteSQL(studentSQL, MsgText)
Do While Not mrcstudent.EOF
mrcstudent.Fields(11) = "结账"
mrcstudent.Update
mrcstudent.MoveNext
Loop
mrcstudent.Close
ReChargeSQL = "select * from recharge_info where userid='" & Trim(ComboUserID.Text) & "'and status='" & "未结账" & "'and date='" & Format(Date, "yyyy-mm-dd") & "' "
Set mrcReCharge = ExecuteSQL(ReChargeSQL, MsgText)
Do While Not mrcReCharge.EOF
mrcReCharge.Fields(7) = "结账"
mrcReCharge.Update
mrcReCharge.MoveNext
Loop
mrcReCharge.Close
CancelCardSQL = "select * from cancelcard_info where userid='" & Trim(ComboUserID.Text) & "'and status='" & "未结账" & "'and date='" & Format(Date, "yyyy-mm-dd") & "'"
Set mrcCancelCard = ExecuteSQL(CancelCardSQL, MsgText)
Do While Not mrcCancelCard.EOF
mrcCancelCard.Fields(6) = "结账"
mrcCancelCard.Update
mrcCancelCard.MoveNext
Loop
mrcCancelCard.Close
End If
'更新日结表
mrcCheckDay.AddNew
mrcCheckDay.Fields(0) = Trim(RemainCash)
mrcCheckDay.Fields(1) = Val(txtRecharge.Text)
mrcCheckDay.Fields(2) = Val(txtMoney.Text)
mrcCheckDay.Fields(3) = Val(txtBackCash.Text)
mrcCheckDay.Fields(4) = Val(txtTemRecharge.Text) + Val(txtRecharge.Text) - Val(txtBackCash.Text)
mrcCheckDay.Fields(5) = Date
mrcCheckDay.Update
mrcCheckDay.Close
Else
RemainCash = mrcCheckDay.Fields(4)
LineSQL = "select * from line_info where status='正常下机'"
Set mrcLine = ExecuteSQL(LineSQL, MsgText)
If mrcLine.EOF = False Then
Do While mrcLine.EOF = False
ConsumeCash = Val(ConsumeCash) + Val(mrcLine.Fields(11))
mrcLine.MoveNext
Loop
studentSQL = "select * from student_info where userid='" & Trim(ComboUserID.Text) & "'and ischeck='" & "未结账" & "'and date='" & Format(Date, "yyyy-mm-dd") & "'"
Set mrcstudent = ExecuteSQL(studentSQL, MsgText)
Do While Not mrcstudent.EOF
mrcstudent.Fields(11) = "结账"
mrcstudent.Update
mrcstudent.MoveNext
Loop
mrcstudent.Close
ReChargeSQL = "select * from recharge_info where userid='" & Trim(ComboUserID.Text) & "'and status='" & "未结账" & "'and date='" & Format(Date, "yyyy-mm-dd") & "' "
Set mrcReCharge = ExecuteSQL(ReChargeSQL, MsgText)
Do While Not mrcReCharge.EOF
mrcReCharge.Fields(7) = "结账"
mrcReCharge.Update
mrcReCharge.MoveNext
Loop
mrcReCharge.Close
CancelCardSQL = "select * from cancelcard_info where userid='" & Trim(ComboUserID.Text) & "'and status='" & "未结账" & "'and date='" & Format(Date, "yyyy-mm-dd") & "'"
Set mrcCancelCard = ExecuteSQL(CancelCardSQL, MsgText)
Do While Not mrcCancelCard.EOF
mrcCancelCard.Fields(6) = "结账"
mrcCancelCard.Update
mrcCancelCard.MoveNext
Loop
mrcCancelCard.Close
End If
'更新表
mrcCheckDay.Fields(0) = Trim(RemainCash) + mrcCheckDay.Fields(0)
mrcCheckDay.Fields(1) = Val(txtRecharge.Text) + mrcCheckDay.Fields(1)
mrcCheckDay.Fields(2) = Val(txtMoney.Text) + mrcCheckDay.Fields(2)
mrcCheckDay.Fields(3) = Val(txtBackCash.Text) + mrcCheckDay.Fields(3)
mrcCheckDay.Fields(4) = Val(txtTemRecharge.Text) + Val(txtRecharge.Text) - Val(txtBackCash.Text) + mrcCheckDay.Fields(4)
mrcCheckDay.Update
mrcCheckDay.Close
End If