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

📄 bos_deductbill.cls

📁 金蝶地磅称重插件
💻 CLS
📖 第 1 页 / 共 2 页
字号:
VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "BOS_DeductBill"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
'扣杂单处理插件:用来处理扣杂单的扣杂数量在审核时,写入捡斤单的扣杂数量字段;在反审核时清除捡斤单中的对应字段
'创建人        :倪树祥
'创建日期      :2005-7-18
'
'最后修改人    :倪树祥
'最后修改日期  :2005-7-18
''''''''''''''''''''''''''''''''''''''''''''''''''

'定义 BillEvent 接口. 必须具有的声明, 以此来获得事件
Private WithEvents m_BillInterface  As BillEvent
Attribute m_BillInterface.VB_VarHelpID = -1
'定义 ListEvents 接口. 必须具有的声明, 以此来获得事件
Private WithEvents m_ListInterface  As ListEvents
Attribute m_ListInterface.VB_VarHelpID = -1
 

Public Sub Show(ByVal oBosInterface As Object)
    'BillEvent 接口实现
    '注意: 此方法必须存在, 请勿修改
    Select Case VBA.TypeName(oBosInterface)
        Case "BillEvent"
            Set m_BillInterface = oBosInterface
        Case "ListEvents"
            Set m_ListInterface = oBosInterface
    
    End Select
End Sub

Private Sub Class_Terminate()
    '释放接口对象
    '注意: 此方法必须存在, 请勿修改
    Set m_BillInterface = Nothing
    Set m_ListInterface = Nothing
     
End Sub

Private Sub m_BillInterface_beforesave(ByRef bCancel As Boolean)
    ''单据保存之前
    ''取服务器日期时间
    Set rs = m_BillInterface.K3Lib.GetData("select getdate()")
    m_BillInterface.SetFieldValue "FDate", rs.Fields(0)   '单据日期
    
    ''判断扣杂数量不能超过检斤数量
    Dim S_Key As String
    Dim L_Index As Long
    If m_BillInterface.Sum(m_BillInterface.GetFieldInfoByKey("FEntryQty", S_Key, L_Index)) > Abs(m_BillInterface.GetFieldValue("FQty")) Then
       MsgBox "扣杂数量不能超过检斤数量!", , "金蝶提示"
       bCancel = True
    End If
End Sub
Private Sub m_BillInterface_AfterSelBill(ByVal lSelBillType As Long)
''选单之后触发
Dim Dict_SelectTemp As KFO.Dictionary
Set Dict_SelectTemp = Vector_SelectBill(1)
If Dict_SelectTemp.GetValue("Fid") <> "" Then
    Set rs = m_BillInterface.K3Lib.GetData(" SELECT te.FinstockWeight,tE.FEntryID, tB.FSupplier, tB.FCarNo, tE.Fmateriel,tE.FGrossBalanceTime, tE.FNetWeight, tC.FNumber " & _
                                           " FROM t_ST_SC_BalanceBill tB INNER JOIN t_ST_SC_BalanceBillEntry tE ON tB.FID = tE.FID INNER JOIN t_ICItem tC ON tE.Fmateriel = tC.FItemID where tB.FID=" & Dict_SelectTemp.GetValue("Fid"))
    If Not rs.EOF Then
       m_BillInterface.SetFieldValue "FBEntryID", rs("FEntryID") & ""         '内码
       m_BillInterface.SetFieldValue "FMItemID", rs("FNumber") & ""       '物料
       m_BillInterface.SetFieldValue "FCarNo", rs("FCarNo") & ""               '车号
       m_BillInterface.SetFieldValue "FQty", rs("FinstockWeight") '数量
       m_BillInterface.SetFieldValue "FInTime", Format(rs("FGrossBalanceTime") & "", "yyyy-MM-dd hh:mm:ss") '进厂时间
    End If
End If
End Sub

Private Sub m_BillInterface_AfterMultiCheck(ByVal lCheckMode As Long, ByVal lCheckMaxLevel As Long, ByVal lBusinessLevel As Long, ByVal lCheckLevel As Long, ByVal lCheckStatus As Long, ByVal Success As Boolean)
'    ''多级审核发生后,扣减物理检验单的检斤数量
'    If lCheckMode = 0 And lBusinessLevel = lCheckMaxLevel And lCheckLevel = lCheckMaxLevel And lCheckStatus = GetCheckLevel(lCheckMaxLevel) Then
'       Set rs = m_BillInterface.K3Lib.GetData("select sum(Fentryqty) from t_ST_SC_DeductBillentry where Fid=" & m_BillInterface.CurBillID)
'       If Not rs.EOF Then
'          m_BillInterface.K3Lib.UpdateData "update t4 set t4.FQuantity=t4.FQuantity-" & IIf(IsNull(rs.Fields(0)), 0, rs.Fields(0)) & " from t_ST_SC_DeductBill t1 inner join t_ST_SC_DeductBillentry t2 on t1.FId=t2.Fid and t1.Fid=" & m_BillInterface.CurBillID & " left join t_ST_SC_BalanceBill t3 on t1.FBillNo=t3.FBillno left join t_boszjwld t4 on t3.FStatus_Wl=t4.FInterid"
'          m_BillInterface.K3Lib.UpdateData "update t5 set t5.Ftempqu=t5.Ftempqu-" & IIf(IsNull(rs.Fields(0)), 0, rs.Fields(0)) & "     from t_ST_SC_DeductBill t1 inner join t_ST_SC_DeductBillentry t2 on t1.FId=t2.Fid and t1.Fid=" & m_BillInterface.CurBillID & " left join t_ST_SC_BalanceBill t3 on t1.FBillNo=t3.FBillno left join t_boszjwld t4 on t3.FStatus_Wl=t4.FInterid left join t_boszjwldentry  t5 on t4.FInterid=t5.FInterId and t5.Ftempqu>0"
'
'          '回写扣杂数量
'          m_BillInterface.K3Lib.GetData "update t_ST_SC_BalanceBillEntry set FDeductWeight= " & IIf(IsNull(rs.Fields(0)), 0, rs.Fields(0)) & ",FInstockWeight = FInstockWeight - " & IIf(IsNull(rs.Fields(0)), 0, rs.Fields(0)) & " where fEntryID=" & m_BillInterface.GetFieldValue("FBEntryID")
'
'        ''如果是外购生铁,则调整质检单的数量
'        If m_BillInterface.GetFieldValue("FMItemID", , Enu_ValueType_FDSP) = "外购生铁" Then
'           m_BillInterface.K3Lib.UpdateData "exec BjSp_UpdateQmFeQty 'KZD1',0,0," & m_BillInterface.CurBillID
'        End If
'       End If
'    End If
End Sub

Private Sub m_BillInterface_MenuBarInitialize(ByVal oMenuBar As K3ClassEvents.MenuBar)
    On Error GoTo Errhandle
    
    Dim oTool   As K3ClassEvents.BOSTool
    Dim oBand   As K3ClassEvents.BOSBand

    ''隐藏“保存后新增”选项
    '-------------------------------------------------
    Set oBand = oMenuBar.BOSBands("mnuOption")
    Set oTool = oBand.BOSTools("mnuOptionAfterSaveNew")
    With oTool
        .Visible = False
        .Enabled = False
    End With
    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)
    ''多级审核发生时
Dim iCurrRow As Long
Dim dblDeductWeight As Double

dblDeductWeight = 0#

If lCheckMode = 0 And lBusinessLevel = lCheckMaxLevel And lCheckLevel = lCheckMaxLevel And lCheckStatus = GetCheckLevel(lCheckMaxLevel - 1) Then
   Set rs = m_BillInterface.K3Lib.GetData("select FDeductWeight from t_ST_SC_BalanceBillEntry where fEntryID=" & m_BillInterface.GetFieldValue("FBEntryID"))
   If rs.RecordCount > 0 Then
      If rs("FDeductWeight") > 0 Then
         MsgBox "对应捡斤单已经扣杂,不允许审核!", , "金蝶提示"
         Cancel = True
      Else
        For iCurrRow = 1 To m_BillInterface.BillEntrys.Count
            dblDeductWeight = dblDeductWeight + m_BillInterface.GetFieldValue("FEntryQty", iCurrRow)
        Next
      End If
    End If
End If
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)
    ''驳回审核时触发

⌨️ 快捷键说明

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