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