1
0
forked from Mapan/odoo17e
odoo17e-kedaikipas58/addons/account_avatax/models/res_partner.py
2024-12-10 09:04:09 +07:00

51 lines
1.8 KiB
Python

# -*- coding: utf-8 -*-
from odoo import fields, models, api, _
import logging
_logger = logging.getLogger(__name__)
ADDRESS_FIELDS = ('street', 'street2', 'city', 'state_id', 'zip', 'country_id')
class ResPartner(models.Model):
_name = 'res.partner'
_inherit = ['res.partner', 'account.avatax.unique.code']
avalara_partner_code = fields.Char(
string='Avalara Partner Code',
help="Customer Code set in Avalara for this partner.",
)
avalara_exemption_id = fields.Many2one(
comodel_name='avatax.exemption',
company_dependent=True,
domain="['|', ('valid_country_ids', 'in', country_id), ('valid_country_ids', '=', False)]",
)
# field used to hide the address validation button when the partner is not in the US or Canada
avalara_show_address_validation = fields.Boolean(
compute='_compute_avalara_show_address_validation',
store=False,
string='Avalara Show Address Validation',
)
@api.depends('country_id')
def _compute_avalara_show_address_validation(self):
for partner in self:
company = partner.company_id or self.env.company
partner.avalara_show_address_validation = company.avalara_address_validation and partner.street and (not partner.country_id or partner.fiscal_country_codes in ('US', 'CA'))
def _get_avatax_description(self):
return 'Contact'
def action_open_validation_wizard(self):
self.ensure_one()
return {
'name': _('Validate address of %s', self.display_name),
'type': 'ir.actions.act_window',
'view_mode': 'form',
'res_model': 'avatax.validate.address',
'target': 'new',
'context': {'default_partner_id': self.id},
}