first commit
This commit is contained in:
44
modules/account_es/company.py
Normal file
44
modules/account_es/company.py
Normal file
@@ -0,0 +1,44 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user