From 2275f7a384528beda6374497bd33bf125be1d3ff Mon Sep 17 00:00:00 2001 From: yuxianghui <3437689193@qq.com> Date: Tue, 25 Mar 2025 13:28:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=B6=E9=80=A0=E8=AE=A2=E5=8D=95=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E9=A1=B5=E6=B7=BB=E5=8A=A0=E5=AF=B9=E5=BA=94=E9=87=87?= =?UTF-8?q?=E8=B4=AD=E7=94=B3=E8=AF=B7=E8=B7=B3=E8=BD=AC=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jikimo_purchase_request/__manifest__.py | 1 + jikimo_purchase_request/models/__init__.py | 1 + .../models/mrp_production.py | 39 +++++++++++++++++++ .../views/mrp_production.xml | 21 ++++++++++ 4 files changed, 62 insertions(+) create mode 100644 jikimo_purchase_request/models/mrp_production.py create mode 100644 jikimo_purchase_request/views/mrp_production.xml 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