Files
tradon/modules/account_payment_sepa/template/base.xml
2026-03-14 09:42:12 +00:00

91 lines
4.5 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<py:strip xmlns:py="http://genshi.edgewall.org/">
<py:def function="PartyIdentification(party, id=None)">
<!-- EPC limits to 70 instead of 140 -->
<Nm>${party.name[:70]}</Nm>
<py:with vars="address = party.address_get()">
<PstlAdr py:if="address">
${PostalAddress(address)}
</PstlAdr>
</py:with>
<Id py:if="id">
<py:with vars="identifier = party.get_sepa_identifier(id)">
<OrgId py:if="identifier['Type'] == 'OrgId'">
<BICOrBEI py:if="identifier.get('BICOrBEI')">${identifier['BICOrBEI']}</BICOrBEI>
<Othr py:if="identifier.get('Id')">
<Id>${identifier['Id']}</Id>
<SchmeNm py:if="identifier.get('SchmeNm')">
<Cd py:if="identifier['SchmeNm'].get('Cd')">${identifier['SchmeNm']['Cd']}</Cd>
<Prtry py:if="identifier['SchmeNm'].get('Prtry')">${identifier['SchmeNm']['Cd']}</Prtry>
</SchmeNm>
<Issr py:if="identifier.get('Issr')">${identifier['Issr']}</Issr>
</Othr>
</OrgId>
<PrvtId py:if="identifier['Type'] == 'PrvtId'">
<DtAndPlcOfBirth py:if="identifier.get('DtAndPlcOfBirth')">
<BirthDt>${identifier['DtAndPlcOfBirth']['BirthDt'].isoformat()}</BirthDt>
<PrvcOfBirth py:if="identifier['DtAndPlcOfBirth'].get('PrvcOfBirth')">${identifier['DtAndPlcOfBirth']['PrvcOfBirth']}</PrvcOfBirth>
<CityOfBirth>${identifier['DtAndPlcOfBirth']['CityOfBirth']}</CityOfBirth>
<CtryOfBirth>${identifier['DtAndPlcOfBirth']['CtryOfBirth']}</CtryOfBirth>
</DtAndPlcOfBirth>
<Othr py:if="identifier.get('Id')">
<Id>${identifier['Id']}</Id>
<SchmeNm py:if="identifier.get('SchmeNm')">
<Cd py:if="identifier['SchmeNm'].get('Cd')">${identifier['SchmeNm']['Cd']}</Cd>
<Prtry py:if="identifier['SchmeNm'].get('Prtry')">${identifier['SchmeNm']['Prtry']}</Prtry>
</SchmeNm>
<Issr py:if="identifier.get('Issr')">${identifier['Issr']}</Issr>
</Othr>
</PrvtId>
</py:with>
</Id>
<!-- CtryOfRes -->
<!-- CtctDtls -->
</py:def>
<py:def function="PostalAddress(address)">
<!-- AdrTp -->
<!-- Dept -->
<!-- SubDept -->
<StrtNm py:if="address.street_name">${address.street_name[:70]}</StrtNm>
<BldgNb py:if="address.building_number">${address.building_number[:16]}</BldgNb>
<PstCd py:if="address.postal_code">${address.postal_code[:16]}</PstCd>
<TwnNm py:if="address.city">${address.city[:35]}</TwnNm>
<CtrySubDvsn py:if="address.subdivision">${address.subdivision.rec_name[:35]}</CtrySubDvsn>
<Ctry py:if="address.country">${address.country.code}</Ctry>
<py:if test="address.street_unstructured">
<py:for each="line in address.street_unstructured.splitlines()[1:8]">
<AdrLine py:if="line">${line[:70]}</AdrLine>
</py:for>
</py:if>
</py:def>
<py:def function="Account(account_number, currency=True)">
<Id>
<!-- EPC only IBAN is allowed -->
<IBAN>${account_number.compact_iban}</IBAN>
</Id>
<!-- Tp -->
<Ccy py:if="currency and account_number.account.currency">${account_number.account.currency.code}</Ccy>
<!-- Nm -->
</py:def>
<py:def function="FinancialInstitution(bank, only_bic=False)">
<FinInstnId>
<BICFI py:if="bank.bic">${bank.bic}</BICFI>
<py:if test="not only_bic">
<!-- ClrSysMmbId -->
<Nm>${bank.party.name[:140]}</Nm>
<py:with vars="address = bank.party.address_get()">
<PstlAdr py:if="address">
${PostalAddress(address)}
</PstlAdr>
</py:with>
</py:if>
<Othr py:if="not bank.bic">
<Id>NOTPROVIDED</Id>
</Othr>
</FinInstnId>
<!-- BrnchId -->
</py:def>
</py:strip>