efms-purchase_request模块新增修改代码搬迁到sf-jikimo_purchase_request模块
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
from odoo import models, fields
|
||||
from odoo import models, fields, api
|
||||
|
||||
|
||||
class PurchaseRequest(models.Model):
|
||||
@@ -11,7 +11,48 @@ class PurchaseRequest(models.Model):
|
||||
ondelete={'cancel': 'set default'} # 添加 ondelete 策略
|
||||
)
|
||||
|
||||
rule_new_add = fields.Boolean('采购请求为规则创建', default=False, compute='_compute_state', store=True)
|
||||
|
||||
@api.depends('state')
|
||||
def _compute_state(self):
|
||||
for pr in self:
|
||||
if pr.state != 'draft' and pr.rule_new_add:
|
||||
pr.rule_new_add = False
|
||||
|
||||
|
||||
class PurchaseRequestLine(models.Model):
|
||||
_inherit = 'purchase.request.line'
|
||||
_description = '采购申请明细'
|
||||
|
||||
origin = fields.Char(string="Source Document")
|
||||
supply_method = fields.Selection([
|
||||
('automation', "自动化产线加工"),
|
||||
('manual', "人工线下加工"),
|
||||
('purchase', "外购"),
|
||||
('outsourcing', "委外加工"),
|
||||
], string='供货方式', compute='_compute_supply_method', store=True)
|
||||
|
||||
@api.depends('origin')
|
||||
def _compute_supply_method(self):
|
||||
for prl in self:
|
||||
order_ids = []
|
||||
if not prl.origin:
|
||||
continue
|
||||
origin = [origin.replace(' ', '') for origin in prl.origin.split(',')]
|
||||
if 'S' in prl.origin:
|
||||
# 原单据是销售订单
|
||||
order_ids = self.env['sale.order'].sudo().search([('name', 'in', origin)]).ids
|
||||
elif 'MO' in prl.origin:
|
||||
# 原单据是制造订单
|
||||
mp_ids = self.env['mrp.production'].sudo().search([('name', 'in', origin)])
|
||||
order_ids = [mp_id.sale_order_id.id for mp_id in mp_ids] if mp_ids else []
|
||||
elif 'WH' in prl.origin:
|
||||
# 原单据是调拨单
|
||||
sp_ids = self.env['stock.picking'].sudo().search([('name', 'in', origin)])
|
||||
order_ids = [sp_id.sale_order_id.id for sp_id in sp_ids] if sp_ids else []
|
||||
order_line = self.env['sale.order.line'].sudo().search(
|
||||
[('product_id', '=', prl.product_id.id), ('order_id', 'in', order_ids)])
|
||||
if order_line:
|
||||
prl.supply_method = order_line[0].supply_method
|
||||
else:
|
||||
prl.supply_method = None
|
||||
|
||||
Reference in New Issue
Block a user