处理 由采购订单-委外加工类型生成的同一个补货组的坯料采购申请单据没有合并 问题
This commit is contained in:
@@ -16,6 +16,7 @@ class PurchaseRequest(models.Model):
|
||||
)
|
||||
|
||||
rule_new_add = fields.Boolean('采购请求为规则创建', default=False, compute='_compute_state', store=True)
|
||||
rule_purchase_to_request = fields.Boolean('采购单根据规则创建坯料采购申请', default=False)
|
||||
|
||||
@api.depends('state')
|
||||
def _compute_state(self):
|
||||
|
||||
@@ -45,3 +45,14 @@ class StockPicking(models.Model):
|
||||
(4, x.id) for x in backorder_ids.move_ids if x.product_id.id in purchase_request_lines.mapped('product_id.id')
|
||||
]
|
||||
return res
|
||||
|
||||
def _subcontracted_produce(self, subcontract_details):
|
||||
super()._subcontracted_produce(subcontract_details)
|
||||
|
||||
# 判断是否根据规则生成新的采购申请单据,如果生成则修改状态为 approved
|
||||
if self:
|
||||
pr_ids = self.env["purchase.request"].sudo().search(
|
||||
[('origin', 'like', self.name), ('rule_purchase_to_request', '=', True), ('state', '=', 'draft')])
|
||||
if pr_ids:
|
||||
pr_ids.write({'need_validation': False})
|
||||
pr_ids.write({"state": "approved", 'need_validation': True, 'rule_new_add': False})
|
||||
|
||||
@@ -26,7 +26,7 @@ class StockRule(models.Model):
|
||||
request_data = rule._prepare_purchase_request(
|
||||
procurement.origin, procurement.values
|
||||
)
|
||||
request_data.update({'rule_new_add': True})
|
||||
request_data = self._update_request_data(procurement, request_data)
|
||||
pr = purchase_request_model.create(request_data)
|
||||
cache[domain] = pr
|
||||
elif (
|
||||
@@ -44,6 +44,18 @@ class StockRule(models.Model):
|
||||
request_line_data.update({'origin': procurement.origin})
|
||||
purchase_request_line_model.create(request_line_data)
|
||||
|
||||
def _update_request_data(self, procurement, request_data):
|
||||
sp = self.env['stock.picking'].sudo().search([('name', '=', procurement.origin)])
|
||||
if len(sp) == 1:
|
||||
po = self.env['purchase.order'].sudo().search(
|
||||
[('name', '=', sp.origin), ('purchase_type', '=', 'outsourcing')])
|
||||
if po:
|
||||
request_data.update({'rule_purchase_to_request': True})
|
||||
else:
|
||||
request_data.update({'rule_new_add': True})
|
||||
return request_data
|
||||
|
||||
|
||||
def _run_buy(self, procurements):
|
||||
# 如果补货组相同,并且产品相同,则合并
|
||||
procurements_dict = defaultdict()
|
||||
|
||||
Reference in New Issue
Block a user