Files
tradon/modules/account_es/company.py
2026-03-14 09:42:12 +00:00

45 lines
1.6 KiB
Python

# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
try:
import phonenumbers
except ImportError:
phonenumbers = None
from trytond.pool import PoolMeta
class Company(metaclass=PoolMeta):
__name__ = 'company.company'
@property
def es_aeat_contact_phone(self):
phone = ''
for contact_mechanism in self.party.contact_mechanisms:
if contact_mechanism.type in {'phone', 'mobile'}:
if phonenumbers:
try:
phonenumber = phonenumbers.parse(
contact_mechanism.value, 'ES')
except phonenumbers.NumberParseException:
continue
if phonenumber and phonenumber.country_code == 34:
phone = phonenumbers.format_number(
phonenumber,
phonenumbers.PhoneNumberFormat.NATIONAL)
break
elif contact_mechanism.value:
phone = contact_mechanism.value
break
phone = phone.replace(' ', '')
return phone[:9].rjust(9, '0')
@property
def es_tax_identifier(self):
valid_types = {'es_cif', 'es_dni', 'es_nie', 'es_vat', 'eu_vat'}
for identifier in self.party.identifiers:
if identifier.type in valid_types:
if (identifier.type == 'eu_vat'
and not identifier.code.startswith('ES')):
continue
return identifier