forked from Mapan/odoo17e
58 lines
1.6 KiB
Python
58 lines
1.6 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
from odoo import api, fields, models, _
|
|
|
|
|
|
class ProductAvataxCategory(models.Model):
|
|
_name = 'product.avatax.category'
|
|
_description = "Avatax Product Category"
|
|
_rec_name = 'code'
|
|
_rec_names_search = ['description', 'code']
|
|
|
|
code = fields.Char(required=True)
|
|
description = fields.Char(required=True)
|
|
|
|
@api.depends('code', 'description')
|
|
def _compute_display_name(self):
|
|
for category in self:
|
|
category.display_name = _('[%s] %s', category.code, (category.description or '')[:50])
|
|
|
|
|
|
class ProductCategory(models.Model):
|
|
_inherit = 'product.category'
|
|
|
|
avatax_category_id = fields.Many2one(
|
|
'product.avatax.category',
|
|
help="https://taxcode.avatax.avalara.com/",
|
|
)
|
|
|
|
def _get_avatax_category_id(self):
|
|
categ = self
|
|
while categ and not categ.avatax_category_id:
|
|
categ = categ.parent_id
|
|
return categ.avatax_category_id
|
|
|
|
|
|
class ProductTemplate(models.Model):
|
|
_inherit = 'product.template'
|
|
|
|
avatax_category_id = fields.Many2one(
|
|
'product.avatax.category',
|
|
help="https://taxcode.avatax.avalara.com/",
|
|
)
|
|
|
|
def _get_avatax_category_id(self):
|
|
return self.avatax_category_id or self.categ_id._get_avatax_category_id()
|
|
|
|
|
|
class ProductProduct(models.Model):
|
|
_inherit = 'product.product'
|
|
|
|
avatax_category_id = fields.Many2one(
|
|
'product.avatax.category',
|
|
help="https://taxcode.avatax.avalara.com/",
|
|
)
|
|
|
|
def _get_avatax_category_id(self):
|
|
return self.avatax_category_id or self.product_tmpl_id._get_avatax_category_id()
|