mirror of
https://gitlab.com/hibou-io/hibou-odoo/suite.git
synced 2025-01-20 12:37:31 +02:00
62 lines
2.9 KiB
Python
62 lines
2.9 KiB
Python
# Part of Hibou Suite Professional. See LICENSE_PROFESSIONAL file for full copyright and licensing details.
|
|
|
|
from odoo import api, fields, models
|
|
|
|
|
|
class ProductTemplate(models.Model):
|
|
_inherit = 'product.template'
|
|
|
|
core_ok = fields.Boolean(string='Core')
|
|
product_core_service_id = fields.Many2one('product.product', string='Product Core Deposit',
|
|
compute='_compute_product_core_service',
|
|
inverse='_set_product_core_service')
|
|
product_core_id = fields.Many2one('product.product', string='Product Core',
|
|
compute='_compute_product_core',
|
|
inverse='_set_product_core')
|
|
product_core_validity = fields.Integer(string='Product Core Return Validity',
|
|
help='How long after a sale the core is eligible for return. (in days)')
|
|
|
|
@api.depends('product_variant_ids', 'product_variant_ids.product_core_service_id')
|
|
def _compute_product_core_service(self):
|
|
unique_variants = self.filtered(lambda template: len(template.product_variant_ids) == 1)
|
|
for template in unique_variants:
|
|
template.product_core_service_id = template.product_variant_ids.product_core_service_id
|
|
for template in (self - unique_variants):
|
|
template.product_core_service_id = False
|
|
|
|
@api.depends('product_variant_ids', 'product_variant_ids.product_core_id')
|
|
def _compute_product_core(self):
|
|
unique_variants = self.filtered(lambda template: len(template.product_variant_ids) == 1)
|
|
for template in unique_variants:
|
|
template.product_core_id = template.product_variant_ids.product_core_id
|
|
for template in (self - unique_variants):
|
|
template.product_core_id = False
|
|
|
|
def _set_product_core_service(self):
|
|
if len(self.product_variant_ids) == 1:
|
|
self.product_variant_ids.product_core_service_id = self.product_core_service_id
|
|
|
|
def _set_product_core(self):
|
|
if len(self.product_variant_ids) == 1:
|
|
self.product_variant_ids.product_core_id = self.product_core_id
|
|
|
|
|
|
class ProductProduct(models.Model):
|
|
_inherit = 'product.product'
|
|
|
|
product_core_service_id = fields.Many2one('product.product', string='Product Core Deposit')
|
|
product_core_id = fields.Many2one('product.product', string='Product Core')
|
|
|
|
def get_purchase_core_service(self, vendor):
|
|
seller_line = self.seller_ids.filtered(lambda l: l.name == vendor and l.product_core_service_id)
|
|
# only want to return the first one
|
|
for l in seller_line:
|
|
return l.product_core_service_id
|
|
return seller_line
|
|
|
|
|
|
class ProductSupplierinfo(models.Model):
|
|
_inherit = 'product.supplierinfo'
|
|
|
|
product_core_service_id = fields.Many2one('product.product', string='Product Core Deposit')
|