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

📄 frmmonthpayment.frm

📁 传销工资管理 请验证一下哈
💻 FRM
📖 第 1 页 / 共 3 页
字号:
        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 + -