Odoo18-Base/addons/pos_sale/models/product_product.py
2025-01-06 10:57:38 +07:00

34 lines
1.1 KiB
Python

from odoo import models, api
class ProductProduct(models.Model):
_inherit = 'product.product'
@api.model
def _load_pos_data_fields(self, config_id):
params = super()._load_pos_data_fields(config_id)
params += ['invoice_policy', 'optional_product_ids', 'type']
return params
def get_product_info_pos(self, price, quantity, pos_config_id):
res = super().get_product_info_pos(price, quantity, pos_config_id)
# Optional products
res['optional_products'] = [
{'name': p.name, 'price': min(p.product_variant_ids.mapped('lst_price'))}
for p in self.optional_product_ids.filtered_domain(self._optional_product_pos_domain())
]
return res
def has_optional_product_in_pos(self):
self.ensure_one()
return bool(self.optional_product_ids.filtered_domain(self._optional_product_pos_domain()))
def _optional_product_pos_domain(self):
return [
*self.env['product.product']._check_company_domain(self.env.company),
['sale_ok', '=', True],
['available_in_pos', '=', True],
]