From 6a687a878f7243f6e4045d9f88c2194e236e1306 Mon Sep 17 00:00:00 2001 From: santiky Date: Thu, 2 Sep 2021 16:50:06 +0200 Subject: [PATCH] [wip] Restringe los productos en purchase.order.line a los productos del proveedor configurado en purchase.order --- .../__init__.py | 1 + .../__manifest__.py | 14 +++++++++++ .../models/__init__.py | 1 + .../models/purchase_order_line.py | 25 +++++++++++++++++++ 4 files changed, 41 insertions(+) create mode 100644 purchase_product_restrict_supplier/__init__.py create mode 100644 purchase_product_restrict_supplier/__manifest__.py create mode 100644 purchase_product_restrict_supplier/models/__init__.py create mode 100644 purchase_product_restrict_supplier/models/purchase_order_line.py diff --git a/purchase_product_restrict_supplier/__init__.py b/purchase_product_restrict_supplier/__init__.py new file mode 100644 index 0000000..0650744 --- /dev/null +++ b/purchase_product_restrict_supplier/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/purchase_product_restrict_supplier/__manifest__.py b/purchase_product_restrict_supplier/__manifest__.py new file mode 100644 index 0000000..e01e36f --- /dev/null +++ b/purchase_product_restrict_supplier/__manifest__.py @@ -0,0 +1,14 @@ +# Copyright 2021 Criptomart +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +{ + 'name': 'Purchase Product Restrict Supplier', + 'summary': 'It restricts products in purchase order line belonging to the partner set in purchase order.', + 'version': '12.0.1.0.1', + 'author': 'Criptomart', + 'depends': [ + 'purchase', + ], + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/purchase_product_restrict_supplier/models/__init__.py b/purchase_product_restrict_supplier/models/__init__.py new file mode 100644 index 0000000..fa6c0e4 --- /dev/null +++ b/purchase_product_restrict_supplier/models/__init__.py @@ -0,0 +1 @@ +from . import purchase_order_line diff --git a/purchase_product_restrict_supplier/models/purchase_order_line.py b/purchase_product_restrict_supplier/models/purchase_order_line.py new file mode 100644 index 0000000..f7526ed --- /dev/null +++ b/purchase_product_restrict_supplier/models/purchase_order_line.py @@ -0,0 +1,25 @@ +# Copyright (C) 2021: Criptomart () +# @author: Criptomart () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +import logging + +from odoo import models, fields, api + +_logger = logging.getLogger(__name__) + +class PurchaseOrderLine(models.Model): + _inherit = 'purchase.order.line' + + @api.multi + def onchange_product_id(self): + _logger.warning("begin onchange_product_id") + result = super(PurchaseOrderLine, self).onchange_product_id() + supplier_infos = self.env['product.supplierinfo'].search([('name', '=', self.partner_id.comercial)]) + product_ids = self.env['product.product'] + for supplier_info in supplier_infos: + product_ids += supplier_info.product_tmpl_id.product_variant_ids + + result.update({'domain': {'product_id': [('id', 'in', product_ids.ids)]}}) + + return result