询价单区分类型

This commit is contained in:
mgw
2024-11-07 14:26:33 +08:00
parent 1699f61d3f
commit 4d7b1f557b
2 changed files with 37 additions and 0 deletions

View File

@@ -1 +1,3 @@
from . import product_supplierinfo
from . import stock_rule_inherit

View File

@@ -0,0 +1,35 @@
from odoo import models, fields, api, _
class StockRuleInherit(models.Model):
_inherit = 'stock.rule'
@api.model
def _run_buy(self, procurements):
# 首先调用父类的 _run_buy 方法,以保留原有逻辑
super(StockRuleInherit, self)._run_buy(procurements)
# 然后在这里添加自定义的逻辑
for procurement, rule in procurements:
product = procurement.product_id
# 获取主 BOM
bom = self.env['mrp.bom'].search([('product_tmpl_id', '=', product.product_tmpl_id.id)], limit=1)
if bom:
# 遍历 BOM 中的组件(即坯料等)
for line in bom.bom_line_ids:
raw_material = line.product_id
# 检查路线
for route in raw_material.route_ids:
# print('route.name:', route.name)
if route.name == '按订单补给外包商': # 或者用 route.id 检查精确的路线
print("按订单补给外包商============是")
# 使用 procurement.values['supplier'] 获取供应商
supplier = procurement.values.get('supplier')
if supplier:
domain = rule._make_po_get_domain(procurement.company_id, procurement.values,
supplier.partner_id)
po = self.env['purchase.order'].sudo().search([dom for dom in domain], limit=1)
if po:
po.write({'purchase_type': 'consignment'})
break