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

📄 bos_qmchybill.cls

📁 金蝶地磅称重插件
💻 CLS
📖 第 1 页 / 共 5 页
字号:
                End If
            End If
       End If
    End If
    Exit Sub
Errhandle:
    MsgBox err.Description, vbCritical, "金蝶提示"
End Sub

Private Sub m_BillInterface_MultiCheck(ByVal lCheckMode As Long, ByVal lCheckMaxLevel As Long, ByVal lBusinessLevel As Long, ByVal lCheckLevel As Long, ByVal lCheckStatus As Long, bSendCheckMessage As Boolean, bSendAcceptMessage As Boolean, sMessageTitle As String, sMessage As String, Cancel As Boolean)
    ''多级审核发生时触发该事件
    On Error GoTo Errhandle
    ''一级审核发生时
    If lCheckMode = 0 And lBusinessLevel = lCheckMaxLevel And lCheckLevel = lCheckMaxLevel And lCheckStatus = GetCheckLevel(lCheckMaxLevel - 1) Then
       Dim Wl_Index As Long     '循环计数器
        
        '结果判定变量
        Dim Result_t As Boolean             '判断是否合格的最终结果变量
        Dim Result_temp As String           '判断是否合格的中间结果变量
       
       ''如果为收料检验(2),委外入库(4),运输协议(7),其他检验(9),委外出库(8)
       If m_BillInterface.GetFieldValue("FBillNO_Yd") <> "" And (m_BillInterface.GetFieldValue("FQmStyle") = "2" Or m_BillInterface.GetFieldValue("FQmStyle") = "4" Or m_BillInterface.GetFieldValue("FQmStyle") = "7" Or m_BillInterface.GetFieldValue("FQmStyle") = "8" Or m_BillInterface.GetFieldValue("FQmStyle") = "9") Then
            Set rs = m_BillInterface.K3Lib.GetData("select t1.FResult,t1.Fstatus,t2.FBillNo_yd from t_ST_QM_Hxd t1 left join t_ST_QM_Bmd t2 on t1.FBillNo_yd=t2.FInterId where t1.fInterId=" & m_BillInterface.CurBillID)
            If rs.RecordCount > 0 Then
                If rs!Fstatus = 0 Then
                    ''更新检验单FBillNo_Hx字段
                    m_BillInterface.K3Lib.UpdateData "update t_ST_QM_WLD set FBillNo_Hx=" & m_BillInterface.CurBillID & " where finterid=" & rs!Fbillno_yd
                    
                    ''将化学检验结果添加到物理检验单中
                    Set Rs1 = m_BillInterface.K3Lib.GetData("select max(FIndex) as maxid from t_ST_QM_WLDEntry  where fInterId=" & rs!Fbillno_yd)
                    Wl_Index = IIf(IsNull(Rs1!maxid), 0, Rs1!maxid)
                    Set Rs1 = m_BillInterface.K3Lib.GetData("select * from t_ST_QM_HxdEntry  where fInterId=" & m_BillInterface.CurBillID)
                                        
                    '开始循环
                    While Not Rs1.EOF
                        '-------------------------------------------------------------------------------------------------------------
                        ''如果上限值+下限值<>0,且检验检验值在上下限范围之内,则为合格
                        If (Val(Rs1!FValue_hx + Val(Rs1!FValue_sx))) <> 0 And Val(Rs1!FValue_hx) >= Val(Rs1!FValue_Xx) And Val(Rs1!FValue_hx) <= Val(Rs1!FValue_sx) Then
                           Result_temp = "合格"
                        ''如果上限值+下限值<>0,且检验检验值在上下限范围之外,则为不合格
                        ElseIf (Val(Rs1!FValue_Xx) + Val(Rs1!FValue_sx)) <> 0 And (Val(Rs1!FValue_hx) < Val(Rs1!FValue_Xx) Or Val(Rs1!FValue_hx) > Val(Rs1!FValue_sx)) Then
                           Result_temp = "不合格"
                        ''如果上限值+下限值=0则不用判断,结果为合格
                        ElseIf (Val(Rs1!FValue_Xx) + Val(Rs1!FValue_sx)) = 0 Then
                           Result_temp = "合格"
                        End If
                        
                        ''如果有一项为“不合格”,结果为不合格
                        If Result_temp = "不合格" Then
                           Result_t = True
                        End If
                        '-------------------------------------------------------------------------------------------------------------
                        
                        ''当原物理检验单中存在当前检验项目时更新操作
                        m_BillInterface.K3Lib.UpdateData "if exists(select fid from t_ST_QM_WLDentry where finterid=" & _
                            rs!Fbillno_yd & " and fid=" & Rs1!FID & ") update t_ST_QM_WLDEntry set FValue_Wl=" & Rs1!FValue_hx & _
                            ",FNote='" & Result_temp & "',FInterId_Hx=" & m_BillInterface.CurBillID & " where finterid=" & _
                            rs!Fbillno_yd & " and fid=" & Rs1!FID
                        
                        ''当原物理检验单中不存在当前检验项目时插入操作
                        m_BillInterface.K3Lib.UpdateData "if not exists(select fid from t_ST_QM_WLDentry where finterid=" & _
                            rs!Fbillno_yd & " and fid=" & Rs1!FID & ") INSERT INTO t_ST_QM_WLDEntry(FIndex,FInterId,FId,FValue_Xx," & _
                            "FValue_Sx,FValue_Wl,FNote,FInterId_Hx) Values(" & Wl_Index & "," & rs!Fbillno_yd & _
                            "," & Rs1!FID & "," & Rs1!FValue_Xx & "," & Rs1!FValue_sx & "," & Rs1!FValue_hx & ",'" & Result_temp & "'," & m_BillInterface.CurBillID & ")"
                        Rs1.MoveNext
                        Wl_Index = Wl_Index + 1
                    Wend
                    
                    ''如果化学检验单不合格则对应物理检验单也应为不合格,否则为合格
                    If Result_t = True Then
                       Set Rs1 = m_BillInterface.K3Lib.GetData("select FResult from t_ST_QM_WLD where finterid=" & rs!Fbillno_yd)
                       If Rs1.RecordCount > 0 And Rs1!fresult = "合格" Then
                          m_BillInterface.K3Lib.UpdateData "update t_ST_QM_WLD set fresult='不合格' where finterid=" & rs!Fbillno_yd
                       End If
                    Else
                       Set Rs1 = m_BillInterface.K3Lib.GetData("select Fnote from t_ST_QM_WLDentry where fnote='不合格' and finterid=" & rs!Fbillno_yd & " and finterid_hx=0")
                       If Rs1.EOF Then
                          m_BillInterface.K3Lib.UpdateData "update t_ST_QM_WLD set fresult='合格' where finterid=" & rs!Fbillno_yd
                       End If
                    End If
                End If
            End If
       End If
       
       ''----------------------------------------------------------------------------------------------------------
       ''如果为调拔检斤(3),工艺检斤(5),成品入库检斤(6)
       If m_BillInterface.GetFieldValue("FBillNO_Yd") <> "" And (m_BillInterface.GetFieldValue("FQmStyle") = "3" Or m_BillInterface.GetFieldValue("FQmStyle") = "5" Or m_BillInterface.GetFieldValue("FQmStyle") = "6") Then
            Set rs = m_BillInterface.K3Lib.GetData("select t1.FResult,t1.Fstatus,t1.FBillNo_yd from t_ST_QM_Hxd t1 where t1.fInterId=" & m_BillInterface.CurBillID)
            If rs.RecordCount > 0 Then
                If rs!Fstatus = 0 Then
                    ''更新检验单FBillNo_Hx字段
                    m_BillInterface.K3Lib.UpdateData "update t_ST_QM_WLD set FBillNo_Hx=" & m_BillInterface.CurBillID & " where finterid=" & rs!Fbillno_yd
                    
                    ''将化学检验结果添加到物理检验单中
                    Set Rs1 = m_BillInterface.K3Lib.GetData("select max(FIndex) as maxid from t_ST_QM_WLDEntry  where fInterId=" & rs!Fbillno_yd)
                    Wl_Index = IIf(IsNull(Rs1!maxid), 0, Rs1!maxid)
                    Set Rs1 = m_BillInterface.K3Lib.GetData("select * from t_ST_QM_HxdEntry  where fInterId=" & m_BillInterface.CurBillID)
                                        
                    '开始循环
                    While Not Rs1.EOF
                        '-------------------------------------------------------------------------------------------------------------
                        ''如果上限值+下限值<>0,且检验检验值在上下限范围之内,则为合格
                        If (Val(Rs1!FValue_hx + Val(Rs1!FValue_sx))) <> 0 And Val(Rs1!FValue_hx) >= Val(Rs1!FValue_Xx) And Val(Rs1!FValue_hx) <= Val(Rs1!FValue_sx) Then
                           Result_temp = "合格"
                        ''如果上限值+下限值<>0,且检验检验值在上下限范围之外,则为不合格
                        ElseIf (Val(Rs1!FValue_Xx) + Val(Rs1!FValue_sx)) <> 0 And (Val(Rs1!FValue_hx) < Val(Rs1!FValue_Xx) Or Val(Rs1!FValue_hx) > Val(Rs1!FValue_sx)) Then
                           Result_temp = "不合格"
                        ''如果上限值+下限值=0则不用判断,结果为合格
                        ElseIf (Val(Rs1!FValue_Xx) + Val(Rs1!FValue_sx)) = 0 Then
                           Result_temp = "合格"
                        End If
                        
                        ''如果有一项为“不合格”,结果为不合格
                        If Result_temp = "不合格" Then
                           Result_t = True
                        End If
                        '-------------------------------------------------------------------------------------------------------------
                        
                        ''当原物理检验单中存在当前检验项目时更新操作
                        m_BillInterface.K3Lib.UpdateData "if exists(select fid from t_ST_QM_WLDentry where finterid=" & _
                            rs!Fbillno_yd & " and fid=" & Rs1!FID & ") update t_ST_QM_WLDEntry set FValue_Wl=" & Rs1!FValue_hx & _
                            ",FNote='" & Result_temp & "',FInterId_Hx=" & m_BillInterface.CurBillID & " where finterid=" & _
                            rs!Fbillno_yd & " and fid=" & Rs1!FID
                        
                        ''当原物理检验单中不存在当前检验项目时插入操作
                        m_BillInterface.K3Lib.UpdateData "if not exists(select fid from t_ST_QM_WLDentry where finterid=" & _
                            rs!Fbillno_yd & " and fid=" & Rs1!FID & ") INSERT INTO t_ST_QM_WLDEntry(FIndex,FInterId,FId,FValue_Xx," & _
                            "FValue_Sx,FValue_Wl,FNote,FInterId_Hx) Values(" & Wl_Index & "," & rs!Fbillno_yd & _
                            "," & Rs1!FID & "," & Rs1!FValue_Xx & "," & Rs1!FValue_sx & "," & Rs1!FValue_hx & ",'" & Result_temp & "'," & m_BillInterface.CurBillID & ")"
                        Rs1.MoveNext
                        Wl_Index = Wl_Index + 1
                    Wend
                    
                    ''如果化学检验单不合格则对应物理检验单也应为不合格,否则为合格
                    If Result_t = True Then
                       Set Rs1 = m_BillInterface.K3Lib.GetData("select FResult from t_ST_QM_WLD where finterid=" & rs!Fbillno_yd)
                       If Rs1.RecordCount > 0 And Rs1!fresult = "合格" Then
                          m_BillInterface.K3Lib.UpdateData "update t_ST_QM_WLD set fresult='不合格' where finterid=" & rs!Fbillno_yd
                       End If
                    Else
                       Set Rs1 = m_BillInterface.K3Lib.GetData("select Fnote from t_ST_QM_WLDentry where fnote='不合格' and finterid=" & rs!Fbillno_yd & " and finterid_hx=0")
                       If Rs1.EOF Then
                          m_BillInterface.K3Lib.UpdateData "update t_ST_QM_WLD set fresult='合格' where finterid=" & rs!Fbillno_yd
                       End If
                    End If
                End If
            End If
       End If
    End If
    Exit Sub
Errhandle:
    MsgBox err.Description, vbCritical, "金蝶提示"
End Sub

Private Sub m_BillInterface_UnMultiCheck(ByVal lCheckMode As Long, ByVal lCheckMaxLevel As Long, ByVal lBusinessLevel As Long, ByVal lCheckStatus As Long, ByVal lLastCheckFrom As Long, ByVal lLastCheckTo As Long, bSendMessage As Boolean, Cancel As Boolean)
    ''驳回审核时触发
    On Error GoTo Errhandle
    ''一级审核驳回时
    If lCheckMode = 0 And lBusinessLevel = lCheckMaxLevel And lCheckStatus = GetCheckLevel(lCheckMaxLevel) Then
    
       ''如果为收料检验(2),委外入库(4),运输协议(7),其他检验(9),委外出库(8)
       If m_BillInterface.GetFieldValue("FBillNO_Yd") <> "" And (m_BillInterface.GetFieldValue("FQmStyle") = "2" Or m_BillInterface.GetFieldValue("FQmStyle") = "4" Or m_BillInterface.GetFieldValue("FQmStyle") = "7" Or m_BillInterface.GetFieldValue("FQmStyle") = "8" Or m_BillInterface.GetFieldValue("FQmStyle") = "9") Then
            Set rs = m_BillInterface.K3Lib.GetData("select t1.fStatus,t2.FBillNo_yd from t_ST_QM_Hxd t1 left join t_ST_QM_Bmd t2 on t1.FBillNo_yd=t2.FInterId where t1.fInterId=" & m_BillInterface.CurBillID)
            If rs.RecordCount > 0 Then
               If rs!Fstatus = 0 Then
                  ''更新检验单FBillNo_Hx字段
                  m_BillInterface.K3Lib.UpdateData "update t_ST_QM_WLD set FBillNo_Hx=0,FChBillerid=0,FChcheckid=0  where finterid=" & rs!Fbillno_yd
                  
                  ''删除对应物理检验单的化学检验结果
                  m_BillInterface.K3Lib.UpdateData "update t_ST_QM_WLDEntry set fvalue_wl=0,FInterId_hx=0 where finterid=" & rs!Fbillno_yd & " and FInterId_hx=" & m_BillInterface.CurBillID
               End If
               If rs!Fstatus = 1 Then
                  MsgBox "该单据已经作废,不允许驳回审核!", , "金蝶提示"
                  Cancel = True
                  Exit Sub
               End If
               If rs!Fstatus = 2 Then
                  MsgBox "该单据已经引用,不允许驳回审核!", , "金蝶提示"
                  Cancel = True
                  Exit Sub
               End If
            End If
        End If
        
       ''----------------------------------------------------------------------------------------------------------
       '如果为调拔检斤(3),工艺检斤(5),成品入库检斤(6)
       If m_BillInterface.GetFieldValue("FBillNO_Yd") <> "" And (m_BillInterface.GetFieldValue("FQmStyle") = "3" Or m_BillInterface.GetFieldValue("FQmStyle") = "5" Or m_BillInterface.GetFieldValue("FQmStyle") = "6") Then
            Set rs = m_BillInterface.K3Lib.GetData("select t1.fStatus,t1.FBillNo_yd from t_ST_QM_Hxd t1 where t1.fInterId=" & m_BillInterface.CurBillID)
            If rs.RecordCount > 0 Then
               If rs!Fstatus = 0 Then
                  ''更新检验单FBillNo_Hx字段
                  m_BillInterface.K3Lib.UpdateData "update t_ST_QM_WLD set FBillNo_Hx=0,FChBillerid=0,FChcheckid=0  where finterid=" & rs!Fbillno_yd
                  
                  ''删除对应物理检验单的化学检验结果
                  m_BillInterface.K3Lib.UpdateData "update t_ST_QM_WLDEntry set fvalue_wl=0,FInterId_hx=0 where finterid=" & rs!Fbillno_yd & " and FInterId_hx=" & m_BillInterface.CurBillID
               End If
               If rs!Fstatus = 1 Then
                  MsgBox "该单据已经作废,不允许驳回审核!", , "金蝶提示"
                  Cancel = True

⌨️ 快捷键说明

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