bemade-addons/bemade_search_supplier_code/models/product_product.py
2025-05-29 21:35:47 -04:00

26 lines
No EOL
896 B
Python

from odoo import models, fields, api
class ProductProduct(models.Model):
_inherit = 'product.product'
supplier_codes = fields.Char(
compute='_compute_supplier_codes',
string='Supplier Codes',
store=True,
search='_search_supplier_codes')
@api.depends('variant_seller_ids', 'variant_seller_ids.product_code')
def _compute_supplier_codes(self):
for product in self:
codes = filter(lambda x: isinstance(x, str), product.variant_seller_ids.mapped('product_code'))
product.supplier_codes = ', '.join(codes)
def _search_supplier_codes(self, operator, value):
if not value:
return []
supplierinfo_ids = self.env['product.supplierinfo'].search([('product_code', operator, value)])
product_ids = supplierinfo_ids.mapped('product_id.id')
return [('id', 'in', product_ids)]