forked from Mapan/odoo17e
51 lines
1.8 KiB
Python
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},
|
|
}
|