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

📄 frmgzxz.frm

📁 朋友给的
💻 FRM
📖 第 1 页 / 共 2 页
字号:
VERSION 5.00
Object = "{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCT2.OCX"
Begin VB.Form frmGzxz 
   BorderStyle     =   3  'Fixed Dialog
   Caption         =   "选择工资月份"
   ClientHeight    =   2115
   ClientLeft      =   45
   ClientTop       =   330
   ClientWidth     =   3795
   ControlBox      =   0   'False
   LinkTopic       =   "Form1"
   LockControls    =   -1  'True
   MaxButton       =   0   'False
   MDIChild        =   -1  'True
   MinButton       =   0   'False
   ScaleHeight     =   2115
   ScaleWidth      =   3795
   ShowInTaskbar   =   0   'False
   Begin VB.Frame Frame2 
      Appearance      =   0  'Flat
      ForeColor       =   &H80000008&
      Height          =   1020
      Left            =   45
      TabIndex        =   3
      Top             =   30
      Width           =   3675
      Begin MSComCtl2.DTPicker DTPicker1 
         Height          =   345
         Left            =   1575
         TabIndex        =   0
         Top             =   390
         Width           =   1380
         _ExtentX        =   2434
         _ExtentY        =   609
         _Version        =   393216
         BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
            Name            =   "宋体"
            Size            =   10.5
            Charset         =   134
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Format          =   61210624
         CurrentDate     =   38535
      End
      Begin VB.Label Label1 
         BackStyle       =   0  'Transparent
         Caption         =   "选择月份:"
         Height          =   300
         Left            =   645
         TabIndex        =   4
         Top             =   465
         Width           =   1275
      End
   End
   Begin VB.Frame Frame3 
      Appearance      =   0  'Flat
      ForeColor       =   &H80000008&
      Height          =   1035
      Left            =   45
      TabIndex        =   5
      Top             =   960
      Width           =   3675
      Begin VB.CommandButton Command1 
         BackColor       =   &H00C0E0FF&
         Caption         =   "确 定(&Q)"
         Height          =   420
         Left            =   450
         MaskColor       =   &H00C0E0FF&
         TabIndex        =   1
         Top             =   330
         Width           =   1260
      End
      Begin VB.CommandButton Command2 
         Caption         =   "退 出(&E)"
         Height          =   420
         Left            =   1965
         TabIndex        =   2
         Top             =   330
         Width           =   1260
      End
   End
End
Attribute VB_Name = "frmGzxz"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Command1_Click()
    Dim rs As New ADODB.Recordset
    Dim rs1 As New ADODB.Recordset
    Dim rs2 As New ADODB.Recordset
    Dim rs3 As New ADODB.Recordset
    Dim KHYJZS As Single
    Dim YGYJ As Single  '佣金
    Dim WCQK As Single  '当月完成情况
    Dim WCQK1 As Single  '当月完成情况
    Dim WCQK2 As Single  '当月完成情况
    Dim YGJBGZ As Single '员工的考核基本工资
    Dim YGKHBZ As Single  '员工的月考核标准
    Dim JBGZ1 As Single '第一个月基本工资
    Dim JBGZ2 As Single '第二个月基本工资
    Dim JBGZ As Single   '所得基本工资
    Dim BF As Single     '补发
    Dim SFWC As String   '本月是否完成
    Dim SFWC1 As Single   '第一个月是否完成
    Dim SFWC2 As Single   '第二个月是否完成
    Dim yf As String
    Dim i As Long
    
    If rs.State = 1 Then rs.Close
    rs.Open "select 工号 from T_工资表 where 月份='" & Format(DTPicker1, "yyyy-mm") & "'", gCnn, adOpenStatic, adLockReadOnly
    If rs.RecordCount = 0 Then
        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(保险费*业务员佣金*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)) Or rs2(0) = "", 0, rs2(0))
                    WCQK1 = IIf(IsNull(rs2(1)) Or rs2(1) = "", 0, rs2(1))
                    JBGZ1 = IIf(IsNull(rs2(2)) Or 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)) Or rs2(0) = "", 0, rs2(0))
                    WCQK1 = IIf(IsNull(rs2(1)) Or rs2(1) = "", 0, rs2(1))
                    JBGZ1 = IIf(IsNull(rs2(2)) Or 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)) Or rs2(0) = "", 0, rs2(0))
                    WCQK2 = IIf(IsNull(rs2(1)) Or rs2(1) = "", 0, rs2(1))
                    JBGZ2 = IIf(IsNull(rs2(2)) Or 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

⌨️ 快捷键说明

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