diff --git a/jikimo_purchase_request/__manifest__.py b/jikimo_purchase_request/__manifest__.py index d919b25d..dad34ddc 100644 --- a/jikimo_purchase_request/__manifest__.py +++ b/jikimo_purchase_request/__manifest__.py @@ -9,6 +9,7 @@ 'depends': ['sf_manufacturing', 'purchase_request'], 'data': [ 'views/sale_order_view.xml', + 'views/mrp_production.xml', 'views/purchase_request_view.xml', 'wizard/purchase_request_line_make_purchase_order_view.xml', ], diff --git a/jikimo_purchase_request/models/__init__.py b/jikimo_purchase_request/models/__init__.py index d27a3cd0..433b063d 100644 --- a/jikimo_purchase_request/models/__init__.py +++ b/jikimo_purchase_request/models/__init__.py @@ -2,5 +2,6 @@ from . import product_template from . import purchase_request from . import sale_order +from . import mrp_production from . import purchase_order from . import stock_rule diff --git a/jikimo_purchase_request/models/mrp_production.py b/jikimo_purchase_request/models/mrp_production.py new file mode 100644 index 00000000..c1c0feb9 --- /dev/null +++ b/jikimo_purchase_request/models/mrp_production.py @@ -0,0 +1,39 @@ +from odoo import fields, models, api, _ + + +class MrpProduction(models.Model): + _inherit = 'mrp.production' + + pr_mp_count = fields.Integer('采购申请单数量', compute='_compute_pr_mp_count', store=True) + + @api.depends('state') + def _compute_pr_mp_count(self): + for item in self: + pr_ids = self.env['purchase.request'].sudo().search([('origin', 'like', item.name)]) + if pr_ids: + item.pr_mp_count = len(pr_ids) + else: + item.pr_mp_count = 0 + + def action_view_pr_mp(self): + """ + 采购请求 + """ + self.ensure_one() + pr_ids = self.env['purchase.request'].sudo().search([('origin', 'like', self.name)]) + action = { + 'res_model': 'purchase.request', + 'type': 'ir.actions.act_window', + } + if len(pr_ids) == 1: + action.update({ + 'view_mode': 'form', + 'res_id': pr_ids[0].id, + }) + else: + action.update({ + 'name': _("从 %s生成采购请求单", self.name), + 'domain': [('id', 'in', pr_ids)], + 'view_mode': 'tree,form', + }) + return action diff --git a/jikimo_purchase_request/views/mrp_production.xml b/jikimo_purchase_request/views/mrp_production.xml new file mode 100644 index 00000000..6b0e3c2b --- /dev/null +++ b/jikimo_purchase_request/views/mrp_production.xml @@ -0,0 +1,21 @@ + + + + mrp.production.inherited.form.purchase.request + mrp.production + + + + + + + + \ No newline at end of file