📄 frmmonthpayment.frm
字号:
rs产品统计("工号") = rs员工资料("工号")
rs产品统计("姓名") = rs员工资料("姓名")
rs产品统计("公司代号") = Left(rs公司代号("公司代号"), 2)
rs产品统计("提成") = 0
rs产品统计("个人绩效奖") = 0
rs产品统计("网络绩效奖") = 0
rs产品统计("绩效奖金") = 0
rs产品统计("伙食津贴") = 0
rs产品统计("差旅津贴") = 0
rs产品统计("税金") = 0
rs产品统计("结算日期") = EndPaymentDay
rs产品统计.Update
rs产品统计.Close
rs公司代号.MoveNext
Loop
rs员工资料.MoveNext
Loop
If rs产品统计.State = adStateOpen Then
rs产品统计.Close
End If
If rs公司代号.State = adStateOpen Then
rs公司代号.Close
End If
If rs员工资料.State = adStateOpen Then
rs员工资料.Close
End If
' ***************************************************************************************** '
' '
' 计算积分、提成、个人绩效奖 '
' '
' ***************************************************************************************** '
rs购货清单.MoveFirst
Do While Not rs购货清单.EOF
ProgressBar1.Value = rs购货清单.AbsolutePosition
EmployeeInfoSQL = "select * from 员工资料 where 工号= '" & rs购货清单("业务员工号") & "' "
rs员工资料.Open EmployeeInfoSQL, Conn员工资料, adOpenKeyset, adLockPessimistic
EmployeeInfoSQL = "select * from 产品统计 where 工号= '" & rs员工资料("工号") & _
"' and 公司代号= '" & Left(rs购货清单("订单号码"), 2) & "'"
rs产品统计.Open EmployeeInfoSQL, Conn员工资料, adOpenKeyset, adLockPessimistic
Total = rs购货清单("总计积分") 'Total=购货清单 表中指定记录的 总计积分
Blevel = 0
ALevel = 0
ASubtree = 0
With rs员工资料
DirectSale = True
Line20:
If !等级 = "D" Then
!当月积分 = !当月积分 + Total
!累计积分 = !累计积分 + Total
!历史积分 = !历史积分 + Total
If DirectSale = True Then '是否直接销售
!提成 = !提成 + Total * 2
rs产品统计("提成") = !提成
End If
Else
!当月积分 = !当月积分 + Total
!累计积分 = !累计积分 + Total
!历史积分 = !历史积分 + Total
'!提成 = !提成 + Total * 2
Select Case !等级
Case "C"
If DirectSale = True Then
!提成 = !提成 + Total * 2
!个人绩效奖 = !个人绩效奖 + Total * 1
rs产品统计("提成") = rs产品统计("提成") + Total * 2
rs产品统计("个人绩效奖") = rs产品统计("个人绩效奖") + Total * 1
Else
!个人绩效奖 = !个人绩效奖
rs产品统计("个人绩效奖") = rs产品统计("个人绩效奖")
End If
Case "B"
If DirectSale = True Then
!提成 = !提成 + Total * 2
!个人绩效奖 = !个人绩效奖 + Total * 2
rs产品统计("提成") = rs产品统计("提成") + Total * 2
rs产品统计("个人绩效奖") = rs产品统计("个人绩效奖") + Total * 2
Else
!个人绩效奖 = !个人绩效奖
rs产品统计("个人绩效奖") = rs产品统计("个人绩效奖")
End If
Case "A"
If DirectSale = True Then
!提成 = !提成 + Total * 2
!个人绩效奖 = !个人绩效奖 + Total * 3
rs产品统计("提成") = rs产品统计("提成") + Total * 2
rs产品统计("个人绩效奖") = rs产品统计("个人绩效奖") + Total * 3
Else
!个人绩效奖 = !个人绩效奖
rs产品统计("个人绩效奖") = rs产品统计("个人绩效奖")
End If
End Select
End If
rs员工资料.Update
rs产品统计.Update
If !担保人工号 <> "" Then
RecognizorNo = !担保人工号
If rs员工资料.State = adStateOpen Then
rs员工资料.Close
End If
If rs产品统计.State = adStateOpen Then
rs产品统计.Close
End If
EmployeeInfoSQL = "select * from 员工资料 where 工号= '" & RecognizorNo & "'"
rs员工资料.Open EmployeeInfoSQL, , adOpenKeyset, adLockPessimistic
EmployeeInfoSQL = "select * from 产品统计 where 工号= '" & rs员工资料("工号") & _
"' and 公司代号= '" & Left(rs购货清单("订单号码"), 2) & "'"
rs产品统计.Open EmployeeInfoSQL, Conn员工资料, adOpenKeyset, adLockPessimistic
'RecognizorNo = !担保人工号
DirectSale = False
GoTo Line20
End If
End With
If rs员工资料.State = adStateOpen Then
rs员工资料.Close
End If
If rs产品统计.State = adStateOpen Then
rs产品统计.Close
End If
' ***************************************************************************************** '
' '
' 计算网络绩效奖及伙食津贴 '
' '
' ***************************************************************************************** '
ALevel = 0
Blevel = 0
Bjintie = 0
EmployeeInfoSQL = "select * from 员工资料 where 工号= '" & rs购货清单("业务员工号") & "'"
rs员工资料.Open EmployeeInfoSQL, Conn员工资料, adOpenKeyset, adLockPessimistic
EmployeeInfoSQL = "select * from 产品统计 where 工号= '" & rs员工资料("工号") & _
"' and 公司代号= '" & Left(rs购货清单("订单号码"), 2) & "'"
rs产品统计.Open EmployeeInfoSQL, Conn员工资料, adOpenKeyset, adLockPessimistic
If rs员工资料("等级") = "B" Then
Blevel = 1
End If
' 直接销售
With rs员工资料
Line30:
If !担保人工号 <> "" Then ' 搜索一级担保人
RecognizorNo = !担保人工号 ' 赋值担保人工号
EmployeeJXJxishu = !绩效奖系数
If rs员工资料.State = adStateOpen Then
rs员工资料.Close
End If
If rs产品统计.State = adStateOpen Then
rs产品统计.Close
End If
' 打开担保人记录
EmployeeInfoSQL = "select * from 员工资料 where 工号= '" & RecognizorNo & "'"
rs员工资料.Open EmployeeInfoSQL, Conn员工资料, adOpenKeyset, adLockPessimistic
EmployeeInfoSQL = "select * from 产品统计 where 工号= '" & rs员工资料("工号") & _
"' and 公司代号= '" & Left(rs购货清单("订单号码"), 2) & "'"
rs产品统计.Open EmployeeInfoSQL, Conn员工资料, adOpenKeyset, adLockPessimistic
RecognizorJXJxishu = !绩效奖系数
If !等级 = "B" Then
Blevel = Blevel + 1
End If
If !等级 = "A" Then
ALevel = ALevel + 1
End If
If !等级 = "B" Then
If Blevel = 2 Then
Bjintie = -Total * 0.3
!伙食津贴 = !伙食津贴 - Bjintie
rs产品统计("伙食津贴") = rs产品统计("伙食津贴") - Bjintie
End If
If Blevel = 3 Then
Bjintie = -Total * 0.2
!伙食津贴 = !伙食津贴 - Bjintie
rs产品统计("伙食津贴") = rs产品统计("伙食津贴") - Bjintie
End If
If Blevel > 3 Then
Bjintie = 0
!伙食津贴 = !伙食津贴
rs产品统计("伙食津贴") = rs产品统计("伙食津贴")
End If
End If
If Blevel < 2 Then
!网络绩效奖 = !网络绩效奖 + Total * (RecognizorJXJxishu - EmployeeJXJxishu)
rs产品统计("网络绩效奖") = rs产品统计("网络绩效奖") + Total * (RecognizorJXJxishu - EmployeeJXJxishu)
Else
If !等级 = "B" Then
!网络绩效奖 = 0
rs产品统计("网络绩效奖") = 0
Else
If ALevel > 1 Then
!网络绩效奖 = 0
rs产品统计("网络绩效奖") = 0
Else
!网络绩效奖 = !网络绩效奖 + Total * (RecognizorJXJxishu - EmployeeJXJxishu) + Bjintie
rs产品统计("网络绩效奖") = rs产品统计("网络绩效奖") + Total * (RecognizorJXJxishu - EmployeeJXJxishu) + Bjintie
End If
End If
End If
rs员工资料.Update
rs产品统计.Update
GoTo Line30
End If
If rs员工资料.State = adStateOpen Then
rs员工资料.Close
End If
If rs产品统计.State = adStateOpen Then
rs产品统计.Close
End If
End With
' ****************************************************************************************** '
' '
' 计 算 差 旅 津 贴 '
' '
' ****************************************************************************************** '
EmployeeInfoSQL = "select * from 员工资料 where 工号= '" & rs购货清单("业务员工号") & "'"
rs员工资料.Open EmployeeInfoSQL, Conn员工资料, adOpenKeyset, adLockPessimistic
EmployeeInfoSQL = "select * from 产品统计 where 工号= '" & rs员工资料("工号") & _
"' and 公司代号= '" & Left(rs购货清单("订单号码"), 2) & "'"
rs产品统计.Open EmployeeInfoSQL, Conn员工资料, adOpenKeyset, adLockPessimistic
With rs员工资料
ALevel = 0
Line40:
If !等级 = "A" Then
EmployeeNo = !工号 '业务员工号
ALevel = ALevel + 1 '计算A级别层次
If rs员工资料.State = adStateOpen Then
rs员工资料.Close
End If
If rs产品统计.State = adStateOpen Then
rs产品统计.Close
End If
'查找下级员工记录
EmployeeInfoSQL = "select * from 员工资料 where 担保人工号= '" & EmployeeNo & "' and 等级= 'A'"
rs员工资料.Open EmployeeInfoSQL, Conn员工资料, adOpenKeyset, adLockPessimistic
ASubtree = rs员工资料.RecordCount '计算几线A 用于计算差旅津贴
rs员工资料.Close
EmployeeInfoSQL = "select * from 员工资料 where 工号= '" & EmployeeNo & "'"
rs员工资料.Open EmployeeInfoSQL, Conn员工资料, adOpenKeyset, adLockPessimistic
EmployeeInfoSQL = "select * from 产品统计 where 工号= '" & rs员工资料("工号") & _
"' and 公司代号= '" & Left(rs购货清单("订单号码"), 2) & "'"
rs产品统计.Open EmployeeInfoSQL, Conn员工资料, adOpenKeyset, adLockPessimistic
!差旅津贴 = !差旅津贴 + Round(countCLJT(ALevel, ASubtree, Total), 2)
rs产品统计("差旅津贴") = rs产品统计("差旅津贴") + Round(countCLJT(ALevel, ASubtree, Total), 2)
rs员工资料.Update
rs产品统计.Update
If !担保人工号 <> "" Then
RecognizorNo = !担保人工号
If rs员工资料.State = adStateOpen Then
rs员工资料.Close
End If
If rs产品统计.State = adStateOpen Then
rs产品统计.Close
End If
EmployeeInfoSQL = "select * from 员工资料 where 工号= '" & RecognizorNo & "'"
rs员工资料.Open EmployeeInfoSQL, Conn员工资料, adOpenKeyset, adLockPessimistic
EmployeeInfoSQL = "select * from 产品统计 where 工号= '" & rs员工资料("工号") & _
"' and 公司代号= '" & Left(rs购货清单("订单号码"), 2) & "'"
rs产品统计.Open EmployeeInfoSQL, Conn员工资料, adOpenKeyset, adLockPessimistic
RecognizorNo = !担保人工号
GoTo Line40
End If
Else
If !担保人工号 <> "" Then
RecognizorNo = !担保人工号
If rs员工资料.State = adStateOpen Then
rs员工资料.Close
End If
If rs产品统计.State = adStateOpen Then
rs产品统计.Close
End If
EmployeeInfoSQL = "select * from 员工资料 where 工号= '" & RecognizorNo & "'"
rs员工资料.Open EmployeeInfoSQL, Conn员工资料, adOpenKeyset, adLockPessimistic
EmployeeInfoSQL = "select * from 产品统计 where 工号= '" & rs员工资料("工号") & _
"' and 公司代号= '" & Left(rs购货清单("订单号码"), 2) & "'"
rs产品统计.Open EmployeeInfoSQL, Conn员工资料, adOpenKeyset, adLockPessimistic
GoTo Line40
End If
End If
If rs员工资料.State = adStateOpen Then
rs员工资料.Close
End If
If rs产品统计.State = adStateOpen Then
rs产品统计.Close
End If
End With
If rs员工资料.State = adStateOpen Then
rs员工资料.Close
End If
If rs产品统计.State = adStateOpen Then
rs产品统计.Close
End If
EmployeeInfoSQL = "select * from 员工资料 where 工号= '" & rs购货清单("业务员工号") & "' "
rs员工资料.Open EmployeeInfoSQL, Conn员工资料, adOpenKeyset, adLockPessimistic
With rs员工资料
If !等级 = "D" And !累计积分 >= 3500 Then
!累计积分 = !累计积分 - 3500
!等级 = "C"
!绩效奖系数 = 1
!晋升日期 = rs购货清单("购货时间")
' 更改所有担保人工号等于该员工工号的记录,即更改下级员工的担保人等级
RecognizorNo = !工号
.Update
End If
End With
If rs员工资料.State = adStateOpen Then
rs员工资料.Close
End If
EmployeeInfoSQL = "select * from 员工资料 where 担保人工号= '" & RecognizorNo & "' "
rs员工资料.Open EmployeeInfoSQL, Conn员工资料, adOpenKeyset, adLockPessimistic
With rs员工资料
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -