📄 bomsupplierrelationdao.cls
字号:
'* 功 能 描 述 :根据物料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 + -