Files
tryton/template/base.003.xml
T
Cédric Krier 3a1bdb65bf Add initiator id on journal
Each country/bank has its own requirement about the ID to use on the initiator
party so we add an option on the journal to define which identifier to use.

issue8063
review284021004
2019-10-08 18:24:45 +02:00

74 lines
4.0 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/">
<!-- only ASCII -->
<py:def function="PartyIdentification(party, id=None, with_name=True, with_address=True)">
<!-- EPC limits to 70 instead of 140 -->
<Nm py:if="with_name">${normalize('NFKD', party.name).encode('ascii', 'replace')[:70]}</Nm>
<py:if test="with_address">
<py:with vars="address = party.address_get()">
<PstlAdr py:if="address">
${PostalAddress(address)}
</PstlAdr>
</py:with>
</py:if>
<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)">
<Ctry py:if="address.country">${normalize('NFKD', address.country.code).encode('ascii', 'replace')}</Ctry>
<AdrLine py:if="address.street">${normalize('NFKD', ' '.join(address.street.splitlines()[0:1])).encode('ascii', 'replace')[:70]}</AdrLine>
<AdrLine py:if="address.street and len(address.street.splitlines()) > 1">${normalize('NFKD', ' '.join(address.street.splitlines()[1:])).encode('ascii', 'replace')[:70]}</AdrLine>
</py:def>
<py:def function="Account(account_number, with_ccy=True)">
<Id>
<!-- EPC only IBAN is allowed -->
<IBAN>${account_number.compact_iban}</IBAN>
</Id>
<!-- Tp -->
<Ccy py:if="with_ccy and account_number.account.currency">${account_number.account.currency.code}</Ccy>
<!-- Nm -->
</py:def>
<!-- uses BIC instead of BICFI -->
<py:def function="FinancialInstitution(bank, only_bic=False)">
<FinInstnId>
<BIC py:if="bank.bic">${bank.bic}</BIC>
<Othr py:if="not bank.bic">
<Id>NOTPROVIDED</Id>
</Othr>
</FinInstnId>
</py:def>
</py:strip>