diff --git a/sf_dlm/models/stock_rule_inherit.py b/sf_dlm/models/stock_rule_inherit.py index 4d715196..0051a42f 100644 --- a/sf_dlm/models/stock_rule_inherit.py +++ b/sf_dlm/models/stock_rule_inherit.py @@ -6,50 +6,50 @@ from odoo import models, fields, api, _ class StockRuleInherit(models.Model): _inherit = 'stock.rule' - @api.model - def _run_buy(self, procurements): - # 判断补货组的采购类型 - procurements_group = {'standard': [], 'outsourcing': []} - for procurement, rule in procurements: - is_outsourcing = False - 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 == '按订单补给外包商': - is_outsourcing = True - - if is_outsourcing: - procurements_group['outsourcing'].append((procurement, rule)) - else: - procurements_group['standard'].append((procurement, rule)) - - for key, value in procurements_group.items(): - super(StockRuleInherit, self)._run_buy(value) - - if key == 'outsourcing': - for procurement, rule in value: - supplier = procurement.values.get('supplier') - if supplier: - domain = rule._make_po_get_domain(procurement.company_id, procurement.values, - supplier.partner_id) - logging.info("domain=============: %s", domain) - po = self.env['purchase.order'].sudo().search([ - ('partner_id', '=', supplier.partner_id.id), - ('company_id', '=', procurement.company_id.id), # 保证公司一致 - ('origin', 'like', procurement.origin), # 根据来源匹配 - ('state', '=', 'draft') # 状态为草稿 - ], limit=1) - logging.info("po=: %s", po) - if po: - po.write({'purchase_type': 'outsourcing'}) + # @api.model + # def _run_buy(self, procurements): + # # 判断补货组的采购类型 + # procurements_group = {'standard': [], 'outsourcing': []} + # for procurement, rule in procurements: + # is_outsourcing = False + # 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 == '按订单补给外包商': + # is_outsourcing = True + # + # if is_outsourcing: + # procurements_group['outsourcing'].append((procurement, rule)) + # else: + # procurements_group['standard'].append((procurement, rule)) + # + # for key, value in procurements_group.items(): + # super(StockRuleInherit, self)._run_buy(value) + # + # if key == 'outsourcing': + # for procurement, rule in value: + # supplier = procurement.values.get('supplier') + # if supplier: + # domain = rule._make_po_get_domain(procurement.company_id, procurement.values, + # supplier.partner_id) + # logging.info("domain=============: %s", domain) + # po = self.env['purchase.order'].sudo().search([ + # ('partner_id', '=', supplier.partner_id.id), + # ('company_id', '=', procurement.company_id.id), # 保证公司一致 + # ('origin', 'like', procurement.origin), # 根据来源匹配 + # ('state', '=', 'draft') # 状态为草稿 + # ], limit=1) + # logging.info("po=: %s", po) + # if po: + # po.write({'purchase_type': 'outsourcing'}) # # 首先调用父类的 _run_buy 方法,以保留原有逻辑 # super(StockRuleInherit, self)._run_buy(procurements)