from odoo import api, models class ProductProduct(models.Model): _inherit = 'product.product' @api.model_create_multi def create(self, vals_list): for vals in vals_list: if not vals.get('default_code'): sku = self.env['ir.sequence'].next_by_code('SKU') if sku: vals['default_code'] = sku return super().create(vals_list) def set_sku(self): for rec in self: rec.default_code = self.env['ir.sequence'].next_by_code('SKU') def get_fob_price(self): """Цена FOB из спецификации (BoM), иначе прайсовая цена. Спецификации доступны только при установленном ``mrp``; без него возвращаем прайсовую цену. """ self.ensure_one() bom_ids = self['bom_ids'] if 'bom_ids' in self._fields else False if bom_ids: fob = bom_ids[0].bom_line_ids.filtered( lambda ln: ln.product_id.name and 'FOB' in ln.product_id.name ) return fob[0].product_id.lst_price if fob else self.lst_price return self.lst_price