From 7575424760e980abc814eac016f1b95f558b8360 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E5=B0=A7?= Date: Thu, 8 May 2025 20:12:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A7=94=E5=A4=96=E5=8A=A0=E5=B7=A5=E7=9A=84?= =?UTF-8?q?=E5=85=A5=E5=BA=93=E5=8D=95=E5=A2=9E=E5=8A=A0=E9=87=87=E8=B4=AD?= =?UTF-8?q?=E7=94=B3=E8=AF=B7=E6=8C=89=E9=92=AE?= 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/stock_picking.py | 35 +++++++++++++++++++ .../views/stock_picking_views.xml | 21 +++++++++++ 4 files changed, 58 insertions(+) create mode 100644 jikimo_purchase_request/models/stock_picking.py create mode 100644 jikimo_purchase_request/views/stock_picking_views.xml diff --git a/jikimo_purchase_request/__manifest__.py b/jikimo_purchase_request/__manifest__.py index 3221a54e..2c8bb641 100644 --- a/jikimo_purchase_request/__manifest__.py +++ b/jikimo_purchase_request/__manifest__.py @@ -13,6 +13,7 @@ 'views/purchase_request_view.xml', 'wizard/purchase_request_line_make_purchase_order_view.xml', 'views/purchase_request_line_view.xml', + 'views/stock_picking_views.xml', ], 'assets': { 'web.assets_backend': [ diff --git a/jikimo_purchase_request/models/__init__.py b/jikimo_purchase_request/models/__init__.py index 433b063d..4d5c92da 100644 --- a/jikimo_purchase_request/models/__init__.py +++ b/jikimo_purchase_request/models/__init__.py @@ -5,3 +5,4 @@ from . import sale_order from . import mrp_production from . import purchase_order from . import stock_rule +from . import stock_picking diff --git a/jikimo_purchase_request/models/stock_picking.py b/jikimo_purchase_request/models/stock_picking.py new file mode 100644 index 00000000..d8f15f6b --- /dev/null +++ b/jikimo_purchase_request/models/stock_picking.py @@ -0,0 +1,35 @@ +from odoo import fields, api, models, _ + + +class StockPicking(models.Model): + _inherit = "stock.picking" + + purchase_request_count = fields.Integer('采购订单数量', compute='_compute_purchase_request') + + @api.depends('name') + def _compute_purchase_request(self): + for record in self: + purchase_request_ids = self.env['purchase.request'].search([('origin', '=', record.name)]) + record.purchase_request_count = len(purchase_request_ids) + + def action_view_purchase_request(self): + self.ensure_one() + + purchase_request_ids = self.env['purchase.request'].search([('origin', '=', self.name)]) + + action = { + 'res_model': 'purchase.request', + 'type': 'ir.actions.act_window', + } + if len(purchase_request_ids) == 1: + action.update({ + 'view_mode': 'form', + 'res_id': purchase_request_ids[0].id, + }) + else: + action.update({ + 'name': _("从 %s生成采购请求单", self.name), + 'domain': [('id', 'in', purchase_request_ids.ids)], + 'view_mode': 'tree,form', + }) + return action diff --git a/jikimo_purchase_request/views/stock_picking_views.xml b/jikimo_purchase_request/views/stock_picking_views.xml new file mode 100644 index 00000000..25c11a1b --- /dev/null +++ b/jikimo_purchase_request/views/stock_picking_views.xml @@ -0,0 +1,21 @@ + + + + stock.pikcing.inherited.form.jikimo.purchase.request + stock.picking + + + + + + + + \ No newline at end of file