{% macro administrative_center(centre_code, role_type_code, person_type, addrs) %} {{ centre_code }} {{ role_type_code }} {% if person_type == 'J' %}{{ addrs.party.name and addrs.party.name[:40] }}{% else %}{{ addrs.party.name and addrs.party.name.split(' ', 2)[0][:40] or addrs.party.code[:40] }}{% endif %} {% if person_type == 'F' %} {{ addrs.party.name and addrs.party.name.split(' ', 2)[1][:40] }} {% endif %} {% if person_type == 'F' and addrs.party.name.split(' ') | length > 2 %} {{ addrs.party.name and addrs.party.name.split(' ', 2)[2][:40] }} {% endif %} {% if addrs %}{{ address(addrs) }}{% endif %} {% if addrs.party.contact_mechanisms %}{{ contact(addrs.party) }}{% endif %} {{ addrs.party.name and addrs.party.name.split(' ', 2)[0][:40] or addrs.party.code[:40] }} {% endmacro %} {% macro address(address) %} {% if address.country and address.country.code == 'ES' %}
{{ address.street[:80] }}
{{ address.postal_code[:5] }} {{ address.city[:50] }} {{ address.subdivision.name[:20] }} {{ address.country.code3 }}
{% else %}
{{ address.street[:80] }}
{{ (', '.join([address.postal_code, address.city]))[:50] }} {{ address.subdivision.name[:20] }} {{ address.country.code3 }}
{% endif %} {% endmacro %} {% macro contact(party) %} {% if party.phone or party.mobile %} {{ (party.phone or party.mobile)[:15] }} {% endif %} {% if party.fax %} {{ party.fax[:15] }} {% endif %} {% if party.website %} {{ party.website[:60] }} {% endif %} {% if party.email %} {{ party.email[:60] }} {% endif %} {# Optional: not supported #} {% endmacro %} {% macro registration_data(company) %} {% if company.registration_data_location %} {{ company.registration_data_book and company.registration_data_book[:20] or '0' }} {{ company.registration_data_location[:20] }} {{ company.registration_data_sheet[:20] }} {{ company.registration_data_folio[:20] }}
{{ company.registration_data_section[:20] }}
{{ company.registration_data_volume[:20] }} {{ company.registration_data_additional[:20] }}
{% endif %} {% endmacro %}