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

📄 bomsupplierrelationdao.cls

📁 即时通讯
💻 CLS
📖 第 1 页 / 共 2 页
字号:
'*    功 能 描 述 :根据物料ID及供应商的ID返回此供应商供应此种物料的价格
'*    输 入 参 数 :materialId    -  物料的Id
'*                 supplierId    -  供应商ID
'*    输 出 能 数 :返回物料价格
'*                 -1         返回错误价格
'**************************************
Public Function GetMaterialPriceFromSupplier(materialId As String, _
                                             supplierId As String) As Double
    Dim cmdProc As ADODB.Command          ' 执行存储过程的命令
    Dim recSet As ADODB.Recordset          ' 被管理的BOM的资料
    
    Set cmdProc = New ADODB.Command
    Set recSet = New ADODB.Recordset
    Set cmdProc.ActiveConnection = MainForm.g_application.m_databaseCon.m_adoConnection
    
    ' 执行存储过程的命令的设置
    cmdProc.CommandText = "bomSupplierRelation_findByMSid"    ' 指定存储过程的名子
    cmdProc.CommandType = adCmdStoredProc
    cmdProc.Parameters.Refresh
    cmdProc.Parameters(1) = materialId            ' 参数
    cmdProc.Parameters(2) = supplierId            ' 参数
    
    On Error GoTo Cwcl
    
    ' 执行命令 把查询到的结果放在recSet中
    With recSet
        .CursorLocation = adUseClient
        .CursorType = adOpenDynamic
        .LockType = adLockOptimistic
        .Open cmdProc
    End With
    
    With recSet
        If Not .EOF Then
            GetMaterialPriceFromSupplier = CDbl(recSet.Fields("quote"))
        Else
            GetMaterialPriceFromSupplier = -1
        End If
    End With
    
    Exit Function
    
Cwcl:
    GetMaterialPriceFromSupplier = -1
    Exit Function
End Function
'**************************************
'*    功 能 描 述 :根据物料ID及供应商的ID设置此供应商供应此种物料的价格
'*    输 入 参 数 :materialId    -  物料的Id
'*                 supplierId    -  供应商ID
'*    输 出 能 数 :true        -   成功
'*                 false       -   失败
'**************************************
Public Function SetMaterialSupplierPrice(materialId As String, _
                                             supplierId As String, _
                                             quote As Double) As Boolean
    Dim cmdProc As ADODB.Command          ' 执行存储过程的命令
    Dim recSet As ADODB.Recordset          ' 被管理的BOM的资料
    
    Set cmdProc = New ADODB.Command
    Set recSet = New ADODB.Recordset
    Set cmdProc.ActiveConnection = MainForm.g_application.m_databaseCon.m_adoConnection
    
    ' 执行存储过程的命令的设置
    cmdProc.CommandText = "bomSupplierRelation_findByMSid"    ' 指定存储过程的名子
    cmdProc.CommandType = adCmdStoredProc
    cmdProc.Parameters.Refresh
    cmdProc.Parameters(1) = materialId            ' 参数
    cmdProc.Parameters(2) = supplierId            ' 参数
    
    On Error GoTo Cwcl
    
    ' 执行命令 把查询到的结果放在recSet中
    With recSet
        .CursorLocation = adUseClient
        .CursorType = adOpenDynamic
        .LockType = adLockOptimistic
        .Open cmdProc
    End With
    
    With recSet
        If Not .EOF Then
            ' 修改价格           GetMaterialPriceFromSupplier = CDbl(recSet.Fields("quote"))
            ModifyBomSupplierRelation recSet, _
                                      Trim(recSet.Fields("bomId")), _
                                      Trim(recSet.Fields("supplierId")), _
                                      quote, _
                                      CInt(recSet.Fields("firstSelect")), _
                                      Trim(recSet.Fields("bomSupplierId")), _
                                      CDbl(recSet.Fields("CreditBrow")), _
                                      Trim(recSet.Fields("memo") & " ")
            
            SetMaterialSupplierPrice = True
        Else
            SetMaterialSupplierPrice = False
        End If
    End With
    
    Exit Function
    
Cwcl:
    SetMaterialSupplierPrice = False
    Exit Function
End Function
'**************************************
'*    功 能 描 述 :根据物料ID找到此物料的默认供应商资料 存放在recSet中
'*                 如果有优先供应商返回,如果没有则返回评分最商供应商
'*    输 入 参 数 :materialId    -  物料的Id
'*    输 出 能 数 :true        -   成功
'*                 false       -   失败
'**************************************
Public Function GetMaterialFirstSupplier(recSet As ADODB.Recordset, _
                                         materialId As String) As Boolean
    Dim bomSupplierList As ADODB.Recordset        ' 此物料的所有物料供应列表
    Dim theHighScoreSupplierId As String          ' 综合评分最高的供应商的ID
    Dim theFirstSupplierId     As String          ' 优先供应商的ID
    Dim ret As Boolean
    Dim highestScore As Double                    ' 最高的综合评分
    
    Set bomSupplierList = New ADODB.Recordset
    theHighScoreSupplierId = ""
    theFirstSupplierId = ""
    highestScore = 0
    
    ret = FindBomSupplierByMaterialId(bomSupplierList, materialId) ' 找到物料的物料供应列表
    If ret Then               ' 找到分数最高和优先供应的供供应商ID
        With bomSupplierList
            Do While Not .EOF
                
                '[>>
                If highestScore < CDbl(Trim(.Fields("CreditBrow"))) Then
                    highestScore = CDbl(Trim(.Fields("CreditBrow")))
                    theHighScoreSupplierId = Trim(.Fields("supplierId"))
                End If
                
                If Trim(.Fields("firstSelect")) = "1" Then
                    theFirstSupplierId = Trim(.Fields("supplierId"))
                End If
                '<<]

                .MoveNext
            Loop
        End With
        
        ' 查找默认供应商资料
        If Trim(theFirstSupplierId) <> "" Then       ' 有优先供应商则返回优先供应商
            GetMaterialFirstSupplier = GetMaterialSupplier(recSet, materialId, theFirstSupplierId)
        Else                                         ' 没有优先供应商则返回综合分最高的供应商
            GetMaterialFirstSupplier = GetMaterialSupplier(recSet, materialId, theHighScoreSupplierId)
        End If
    Else           ' 查找失败
        GetMaterialFirstSupplier = False
    End If
    bomSupplierList.Close                         ' 关必数据集
    Set bomSupplierList = Nothing                 ' 把对象设成空
End Function
'**************************************
'*    功 能 描 述 :根据物料ID找到此物料的所有物料供应关系列表
'*    输 入 参 数 :recSet         -  查询到的结果集
'*                 materialId     -  物料的ID
'*    输 出 能 数 :True           -  成功
'*                 False          -  失败
'**************************************
Public Function FindBomSupplierByMaterialId(recSet As ADODB.Recordset, _
                                            materialId As String) As Boolean
    Dim cmdProc As ADODB.Command          ' 执行存储过程的命令
    
    FindBomSupplierByMaterialId = False
    Set cmdProc = New ADODB.Command
    Set cmdProc.ActiveConnection = MainForm.g_application.m_databaseCon.m_adoConnection
    
    ' 执行存储过程的命令的设置
    cmdProc.CommandText = "bomSupplierRelation_findByMaterialId"    ' 指定存储过程的名子
    cmdProc.CommandType = adCmdStoredProc
    cmdProc.Parameters.Refresh
    cmdProc.Parameters(1) = materialId            ' 参数
    
    On Error GoTo Cwcl
    
    ' 执行命令 把查询到的结果放在recSet中
    With recSet
        .CursorLocation = adUseClient
        .CursorType = adOpenDynamic
        .LockType = adLockOptimistic
        .Open cmdProc
    End With
    
    With recSet
        If Not .EOF Then
            FindBomSupplierByMaterialId = True
        Else
            FindBomSupplierByMaterialId = False
        End If
    End With
    
    Exit Function
    
Cwcl:
    FindBomSupplierByMaterialId = False
    Exit Function
End Function
'**************************************
'*    功 能 描 述 :根据物料ID及供应商的ID返回此供应商资料
'*    输 入 参 数 :materialId    -  物料的Id
'*                 supplierId    -  供应商ID
'*    输 出 能 数 :true          -  成功
'*                 false         -  失败
'**************************************
Public Function GetMaterialSupplier(recSet As ADODB.Recordset, _
                                             materialId As String, _
                                             supplierId As String) As Boolean
    Dim cmdProc As ADODB.Command          ' 执行存储过程的命令
    
    GetMaterialSupplier = False
    Set cmdProc = New ADODB.Command
    Set cmdProc.ActiveConnection = MainForm.g_application.m_databaseCon.m_adoConnection
    
    ' 执行存储过程的命令的设置
    cmdProc.CommandText = "bomSupplierRelation_findByMSid"    ' 指定存储过程的名子
    cmdProc.CommandType = adCmdStoredProc
    cmdProc.Parameters.Refresh
    cmdProc.Parameters(1) = materialId            ' 参数
    cmdProc.Parameters(2) = supplierId            ' 参数
    
    On Error GoTo Cwcl
    
    ' 执行命令 把查询到的结果放在recSet中
    With recSet
        .CursorLocation = adUseClient
        .CursorType = adOpenDynamic
        .LockType = adLockOptimistic
        .Open cmdProc
    End With
    
    With recSet
        If Not .EOF Then
            GetMaterialSupplier = True
        Else
            GetMaterialSupplier = False
        End If
    End With
    
    Exit Function
Cwcl:
    GetMaterialSupplier = False

End Function

⌨️ 快捷键说明

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