[MIG] bemade_search_supplier_code to 18.0

This commit is contained in:
Marc Durepos 2025-09-09 15:27:10 -04:00
parent 8662ad3ffd
commit c19f2e29e6
5 changed files with 65 additions and 0 deletions

View file

@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
from . import models

View file

@ -0,0 +1,21 @@
{
"name": "Bemade Search Supplier Code",
"version": "18.0.1.0.1",
"summary": "Search for products by supplier code",
"sequence": 10,
"description": """
This module adds the ability to search for products by supplier code.
""",
"category": "Inventory/Purchase",
"author": "Bemade",
"website": "https://www.bemade.org",
"depends": ["purchase", "product"],
"data": [
"views/product_product_views.xml",
],
"demo": [],
"installable": True,
"application": False,
"auto_install": False,
"license": "LGPL-3",
}

View file

@ -0,0 +1 @@
from . import product_product

View file

@ -0,0 +1,26 @@
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)]

View file

@ -0,0 +1,12 @@
<odoo>
<record id="view_product_product_search" model="ir.ui.view">
<field name="name">product.product.search.inherit</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_search_form_view"/>
<field name="arch" type="xml">
<field name="name" position="after">
<field name="supplier_codes"/>
</field>
</field>
</record>
</odoo>