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

📄 frmgzxz.frm

📁 朋友给的
💻 FRM
📖 第 1 页 / 共 2 页
字号:
                        SFWC = 1
                        BF = 0
                    Else
                        
                        If SFWC1 = 0 And SFWC2 = 0 Then
                           JBGZ = YGJBGZ * 0.5 * 0.5 * 0.5
                        ElseIf SFWC1 = 0 And SFWC2 = 1 Then
                            JBGZ = YGJBGZ * 0.5
                        ElseIf SFWC1 = 1 And SFWC2 = 0 Then
                            JBGZ = YGJBGZ * 0.5 * 0.5
                        End If
                        BF = 0
                    
                    End If
                    
                    
                    
                    
                    
                End If
            End If
            
            
            
            
                If rs2.State = 1 Then rs2.Close
                rs2.Open "select sum(kk) as kk from ygkq where year(rq)='" & Year(DTPicker1) & "' and month(rq)='" & Month(DTPicker1) & "' and gh='" & rs1(0) & "'", gCnn, adOpenStatic, adLockReadOnly
                
                gCnn.Execute "insert into T_工资表(工号,姓名,部门,月份,基本工资,佣金,考勤扣款,是否完成,完成情况) values('" & rs1(0) & "','" & rs1(1) & "','" & rs1(2) & "','" & Format(DTPicker1, "yyyy-mm") & "','" & JBGZ & "','" & YGYJ & "','" & rs2(0) & "','" & SFWC & "','" & KHYJZS & "')"
                rs1.MoveNext
            Next
        End If
    Else
        If rs1.State = 1 Then rs1.Close
        rs1.Open "select 工号,姓名,部门,业务职级 from VIEWYGXX where 员工状态='0' order by 工号", gCnn, adOpenStatic, adLockReadOnly
        If rs1.RecordCount > 0 Then
            rs1.MoveFirst
            For i = 0 To rs1.RecordCount - 1
                If rs2.State = 1 Then rs2.Close
                rs2.Open "select sum(kk) as kk from ygkq where year(rq)='" & Year(DTPicker1) & "' and month(rq)='" & Month(DTPicker1) & "' and gh='" & rs1(0) & "'", gCnn, adOpenStatic, adLockReadOnly
                If rs3.State = 1 Then rs3.Close
                rs3.Open "select 工号 from T_工资表 where 月份='" & Format(DTPicker1, "yyyy-mm") & "' and 工号='" & rs1("工号") & "'", gCnn, adOpenStatic, adLockReadOnly
                If rs3.EOF Then
                
  '//开始
                
                    If rs2.State = 1 Then rs2.Close
                    rs2.Open "select sum(保险费*业务员佣金*0.01) as yj  from viewbxyw  where 业务员工号='" & Trim(rs1("工号")) & "' and year(投保日期)='" & Year(DTPicker1) & "' and month(投保日期)='" & Month(DTPicker1) & "'", gCnn, adOpenStatic, adLockReadOnly
                    YGYJ = IIf(IsNull(rs2(0)), 0, rs2(0))
                    '二计算基本工资,一年4个季度,每个季度3个月,分别为:1,4,7,10月开始
                    '先算出佣金折算比例
                    If rs2.State = 1 Then rs2.Close
                    rs2.Open "select sum(保险费*业务员佣金*考核佣金折算比例*0.01*0.01) as khyjzs  from viewbxyw  where 业务员工号='" & Trim(rs1("工号")) & "' and year(投保日期)='" & Year(DTPicker1) & "' and month(投保日期)='" & Month(DTPicker1) & "'", gCnn, adOpenStatic, adLockReadOnly
                    KHYJZS = IIf(IsNull(rs2(0)), 0, rs2(0))
                    '分3个月来对比,第一个月的时候
                    '第一个月的时候,如果完成指标,基本工资为100%,没完成为50%
                    If Month(DTPicker1) = 1 Or Month(DTPicker1) = 4 Or Month(DTPicker1) = 7 Or Month(DTPicker1) = 10 Then
                        If rs2.State = 1 Then rs2.Close
                        rs2.Open "select * from khsz where ywzj='" & Trim(rs1("业务职级")) & "'", gCnn, adOpenStatic, adLockReadOnly
                        If Not rs2.EOF Then
                            YGJBGZ = rs2("jbgz")
                            YGKHBZ = rs2("ykhbz")
                        End If
                        If Val(KHYJZS) > Val(YGKHBZ) Or Val(KHYJZS) = Val(YGKHBZ) Then
                            JBGZ = YGJBGZ
                            SFWC = 1
                        Else
                            JBGZ = Val(YGJBGZ) * 0.5
                        End If
                    '第二个月,如果完成,基本工资为100%,还有看是否超额,如果2个月的加起来,超过标准的2倍,那么补发上一个月扣除的,也就是50%,如果未完成,在前一个月的基础上*50%,也就是25%,
                    ElseIf Month(DTPicker1) = 2 Or Month(DTPicker1) = 5 Or Month(DTPicker1) = 8 Or Month(DTPicker1) = 11 Then
                    '算第一个月的情况
                        yf = Format(Year(DTPicker1) & "-" & (Month(DTPicker1) - 1), "yyyy-mm")
                        If rs2.State = 1 Then rs2.Close
                        rs2.Open "select 是否完成,完成情况,基本工资 from T_工资表 where 月份='" & yf & "' and 工号='" & rs1("工号") & "'", gCnn, adOpenStatic, adLockReadOnly
                        If Not rs2.EOF Then
                            SFWC1 = IIf(IsNull(rs2(0)), 0, rs2(0))
                            WCQK1 = IIf(IsNull(rs2(1)), 0, rs2(1))
                            JBGZ1 = IIf(IsNull(rs2(2)), 0, rs2(2))
                        End If
                        If rs2.State = 1 Then rs2.Close
                        rs2.Open "select * from khsz where ywzj='" & Trim(rs1("业务职级")) & "'", gCnn, adOpenStatic, adLockReadOnly
                        If Not rs2.EOF Then
                            YGJBGZ = rs2("jbgz")
                            YGKHBZ = rs2("ykhbz")
                        End If
                    '如果本月完成了,如果本月完成,上个月也完成,补发为0,如果本月完成,上个月未完成,和上个月的完成情况相加,看是否总数大于2倍基本考核,如果大于或等于,补发上个月扣的也就是50%的基本工资
                        If Val(KHYJZS) > Val(YGKHBZ) Or Val(KHYJZS) = Val(YGKHBZ) Then
                            JBGZ = YGJBGZ
                            SFWC = 1
                            If SFWC1 = 0 Then
                                If (KHYJZS + WCQK1) > 2 * YGKHBZ Or (KHYJZS + WCQK1) = 2 * YGKHBZ Then
                                    BF = YGKHBZ * 0.5
                                    
                                Else
                                    BF = 0
                                End If
                            End If
                            
                        Else
                            If (KHYJZS + WCQK1) > 2 * YGKHBZ Then
                                JBGZ = YGKHBZ
                                BF = 0
                                SFWC = 1
                            Else
                                JBGZ = Val(JBGZ1) * 0.5
                                BF = 0
                                SFWC = 0
                            End If
                        End If
                    ElseIf Month(DTPicker1) = 3 Or Month(DTPicker1) = 6 Or Month(DTPicker1) = 9 Or Month(DTPicker1) = 12 Then
                        If rs2.State = 1 Then rs2.Close
                    '算第一个月的情况
                        yf = Format(Year(DTPicker1) & "-" & (Month(DTPicker1) - 2), "yyyy-mm")
                        If rs2.State = 1 Then rs2.Close
                        rs2.Open "select 是否完成,完成情况,基本工资 from T_工资表 where 月份='" & yf & "' and 工号='" & rs1("工号") & "'", gCnn, adOpenStatic, adLockReadOnly
                        If Not rs2.EOF Then
                            SFWC1 = IIf(IsNull(rs2(0)), 0, rs2(0))
                            WCQK1 = IIf(IsNull(rs2(1)), 0, rs2(1))
                            JBGZ1 = IIf(IsNull(rs2(2)), 0, rs2(2))
                        End If
                    '算第二个月的情况
                        If rs2.State = 1 Then rs2.Close
                        yf = Format(Year(DTPicker1) & "-" & (Month(DTPicker1) - 1), "yyyy-mm")
                        rs2.Open "select 是否完成,完成情况,基本工资 from T_工资表 where 月份='" & yf & "' and 工号='" & rs1("工号") & "'", gCnn, adOpenStatic, adLockReadOnly
                        If Not rs2.EOF Then
                            SFWC2 = IIf(IsNull(rs2(0)), 0, rs2(0))
                            WCQK2 = IIf(IsNull(rs2(1)), 0, rs2(1))
                            JBGZ2 = IIf(IsNull(rs2(2)), 0, rs2(2))
                        End If
                    '算出标准工资和标准考核
                        If rs2.State = 1 Then rs2.Close
                        rs2.Open "select * from khsz where ywzj='" & Trim(rs1("业务职级")) & "'", gCnn, adOpenStatic, adLockReadOnly
                        If Not rs2.EOF Then
                            YGJBGZ = rs2("jbgz")
                            YGKHBZ = rs2("ykhbz")
                        End If
                    '第3个月如果完成了,基本工资为100%,然后3个月的完成情况相加,如果是基本考核标准的3倍或大于,则看头2个月的完成情况,如果未完成,第一个月补发50%,第二个月未完成,补发75%,第3个月如未完成,则看3个月的完成情况相加,达到标准的3倍或大于则发100%
                        If KHYJZS > YGKHBZ Or KHYJZS = YGKHBZ Then
                            JBGZ = YGJBGZ
                            SFWC = 1
                            If (KHYJZS + WCQK1 + WCQK2) > 3 * YGKHBZ Or (KHYJZS + WCQK1 + WCQK2) = 3 * YGKHBZ Then
                                If SFWC1 = 0 And SFWC2 = 0 Then
                                    BF = YGJBGZ * 0.5 + YGJBGZ * 0.75
                                ElseIf SFWC1 = 0 And SFWC2 = 1 Then
                                    BF = YGJBGZ * 0.5
                                ElseIf SFWC1 = 1 And SFWC2 = 0 Then
                                    BF = YGJBGZ * 0.5
                                Else
                                    BF = 0
                                End If
                            Else
                                BF = 0
                            
                            End If
                            
                            
                        Else
                            If (KHYJZS + WCQK1 + WCQK2) > 3 * YGKHBZ Or (KHYJZS + WCQK1 + WCQK2) = 3 * YGKHBZ Then
                                JBGZ = YGJBGZ
                                SFWC = 1
                                BF = 0
                            Else
                                
                                If SFWC1 = 0 And SFWC2 = 0 Then
                                   JBGZ = YGJBGZ * 0.5 * 0.5 * 0.5
                                ElseIf SFWC1 = 0 And SFWC2 = 1 Then
                                    JBGZ = YGJBGZ * 0.5
                                ElseIf SFWC1 = 1 And SFWC2 = 0 Then
                                    JBGZ = YGJBGZ * 0.5 * 0.5
                                End If
                                BF = 0
                            
                            End If
                        
                        
                        
                        
                        
                        End If
                    End If
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
   '///结束
                
                    gCnn.Execute "insert into T_工资表(工号,姓名,部门,月份,考勤扣款) values('" & rs1(0) & "','" & rs1(1) & "','" & rs1(2) & "','" & Format(DTPicker1, "yyyy-mm") & "','" & rs2(0) & "')"
                End If
                rs1.MoveNext
            Next
        End If
    
    
    
    
    End If
    
    If rs.State = 1 Then rs.Close
    If rs1.State = 1 Then rs1.Close
    gGzyf = Format(DTPicker1, "yyyy-mm")
    frmGongzi.Show vbModal
    Unload Me
End Sub

Private Sub Command2_Click()
    Unload Me
End Sub

Private Sub DTPicker1_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = 13 Then SendKeys "{tab}"
End Sub

Private Sub Form_Load()
'    strGzfs = ""
    If Me.WindowState = 0 Then Me.Move 0, 0
    
    gSQL = ""
    DTPicker1 = Date
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -