bemade-addons/bemade_search_supplier_code/models/product_product.py
2024-02-21 08:43:07 -05:00

19 lines
No EOL
825 B
Python

class ProductProduct(models.Model):
_inherit = 'product.product'
supplier_codes = fields.Char(compute='_compute_supplier_codes', string='Supplier Codes', store=False, 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)]