Merge PR #990 into 16.0

Signed-off-by pedrobaeza
This commit is contained in:
OCA-git-bot
2023-06-03 15:15:49 +00:00
40 changed files with 8749 additions and 0 deletions

View File

@@ -0,0 +1,142 @@
====================================
Account Banking SEPA Credit Transfer
====================================
.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fbank--payment-lightgray.png?logo=github
:target: https://github.com/OCA/bank-payment/tree/16.0/account_banking_sepa_credit_transfer
:alt: OCA/bank-payment
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/bank-payment-16-0/bank-payment-16-0-account_banking_sepa_credit_transfer
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/webui/builds.html?repo=OCA/bank-payment&target_branch=16.0
:alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5|
Module to export payment orders in SEPA XML file format.
SEPA PAIN (PAyment INitiation) is the new european standard for
Customer-to-Bank payment instructions. This module implements SEPA Credit
Transfer (SCT), more specifically PAIN versions 001.001.02, 001.001.03,
001.001.04 and 001.001.05. It is part of the ISO 20022 standard, available on
https://www.iso20022.org.
The Implementation Guidelines for SEPA Credit Transfer published by the
European Payments Council (https://www.europeanpaymentscouncil.eu) use
PAIN version 001.001.03, so it's probably the version of PAIN that you should
try first.
It also includes pain.001.003.03 which is used in Germany instead of 001.001.03.
You can read more about this here (only in german language):
http://www.ebics.de/startseite/
**Table of contents**
.. contents::
:local:
Installation
============
This module depends on :
* account_banking_pain_base
This module is part of the OCA/bank-payment suite.
Configuration
=============
* Create a Payment Mode dedicated to SEPA Credit Transfer.
* Select the Payment Method *SEPA Credit Transfer to suppliers* (which is
automatically created upon module installation).
* Check that this payment method uses the proper version of PAIN.
Usage
=====
In the menu *Invoicing/Accounting > Vendors > Payment Orders*, create a new
payment order and select the Payment Mode dedicated to SEPA Credit
Transfer that you created during the configuration step.
Bug Tracker
===========
Bugs are tracked on `GitHub Issues <https://github.com/OCA/bank-payment/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
`feedback <https://github.com/OCA/bank-payment/issues/new?body=module:%20account_banking_sepa_credit_transfer%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Do not contact contributors directly about support or help with technical issues.
Credits
=======
Authors
~~~~~~~
* Akretion
* Tecnativa
Contributors
~~~~~~~~~~~~
* Alexis de Lattre <alexis.delattre@akretion.com>
* Stéphane Bidoul <stephane.bidoul@acsone.eu>
* Stefan Rijnhart
* Julien Laloux
* Alexandre Fayolle
* Raphaël Valyi
* Erwin van der Ploeg
* Sandy Carter
* `Tecnativa <https://www.tecnativa.com>`__:
* Antonio Espinosa
* Pedro M. Baeza
* Carlos Roca
* `DynApps NV <https://www.dynapps.be>`_:
* Axel Priem <axel.priem@dynapps.be>
* `Sygel Technology <https://www.sygel.es>`_:
* Valentin Vinagre <valentin.vinagre@sygel.es>
* Manuel Regidor <manuel.regidor@sygel.es>
* `Trobz <https://trobz.com>`_:
* Dung Tran <dungtd@trobz.com>
Other credits
~~~~~~~~~~~~~
The migration of this module from 15.0 to 16.0 was financially supported by Camptocamp
Maintainers
~~~~~~~~~~~
This module is maintained by the OCA.
.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
This module is part of the `OCA/bank-payment <https://github.com/OCA/bank-payment/tree/16.0/account_banking_sepa_credit_transfer>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View File

@@ -0,0 +1 @@
from . import models

View File

@@ -0,0 +1,19 @@
# Copyright 2010-2020 Akretion (www.akretion.com)
# Copyright 2016 Tecnativa - Antonio Espinosa
# Copyright 2016-2022 Tecnativa - Pedro M. Baeza
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html)
{
"name": "Account Banking SEPA Credit Transfer",
"summary": "Create SEPA XML files for Credit Transfers",
"version": "16.0.1.0.0",
"license": "AGPL-3",
"author": "Akretion, Tecnativa, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/bank-payment",
"category": "Banking addons",
"conflicts": ["account_sepa"],
"depends": ["account_banking_pain_base"],
"data": ["data/account_payment_method.xml"],
"demo": ["demo/sepa_credit_transfer_demo.xml"],
"installable": True,
}

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1">
<record id="sepa_credit_transfer" model="account.payment.method">
<field name="name">SEPA Credit Transfer to suppliers</field>
<field name="code">sepa_credit_transfer</field>
<field name="payment_type">outbound</field>
<field name="bank_account_required" eval="True" />
<field name="pain_version">pain.001.001.03</field>
</record>
</odoo>

View File

@@ -0,0 +1,919 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--Generated by SWIFTStandards Workstation (build:R5.1.0.4) on 2006 Sep 08 11:58:39-->
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.02"
elementFormDefault="qualified"
targetNamespace="urn:iso:std:iso:20022:tech:xsd:pain.001.001.02"
>
<xs:element name="Document" type="Document" />
<xs:complexType name="AccountIdentification3Choice">
<xs:sequence>
<xs:choice>
<xs:element name="IBAN" type="IBANIdentifier" />
<xs:element name="BBAN" type="BBANIdentifier" />
<xs:element name="UPIC" type="UPICIdentifier" />
<xs:element name="PrtryAcct" type="SimpleIdentificationInformation2" />
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="AddressType2Code">
<xs:restriction base="xs:string">
<xs:enumeration value="ADDR" />
<xs:enumeration value="PBOX" />
<xs:enumeration value="HOME" />
<xs:enumeration value="BIZZ" />
<xs:enumeration value="MLTO" />
<xs:enumeration value="DLVY" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="AmountType2Choice">
<xs:sequence>
<xs:choice>
<xs:element name="InstdAmt" type="CurrencyAndAmount" />
<xs:element name="EqvtAmt" type="EquivalentAmount" />
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="BBANIdentifier">
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z0-9]{1,30}" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="BEIIdentifier">
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="BICIdentifier">
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="BaseOneRate">
<xs:restriction base="xs:decimal">
<xs:fractionDigits value="10" />
<xs:totalDigits value="11" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="BatchBookingIndicator">
<xs:restriction base="xs:boolean" />
</xs:simpleType>
<xs:complexType name="BranchAndFinancialInstitutionIdentification3">
<xs:sequence>
<xs:element name="FinInstnId" type="FinancialInstitutionIdentification5Choice" />
<xs:element name="BrnchId" type="BranchData" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="BranchData">
<xs:sequence>
<xs:element name="Id" type="Max35Text" minOccurs="0" maxOccurs="1" />
<xs:element name="Nm" type="Max35Text" minOccurs="0" maxOccurs="1" />
<xs:element name="PstlAdr" type="PostalAddress1" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="CHIPSUniversalIdentifier">
<xs:restriction base="xs:string">
<xs:pattern value="CH[0-9]{6,6}" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="CashAccount7">
<xs:sequence>
<xs:element name="Id" type="AccountIdentification3Choice" />
<xs:element name="Tp" type="CashAccountType2" minOccurs="0" maxOccurs="1" />
<xs:element name="Ccy" type="CurrencyCode" minOccurs="0" maxOccurs="1" />
<xs:element name="Nm" type="Max70Text" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="CashAccountType2">
<xs:sequence>
<xs:choice>
<xs:element name="Cd" type="CashAccountType4Code" />
<xs:element name="Prtry" type="Max35Text" />
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="CashAccountType4Code">
<xs:restriction base="xs:string">
<xs:enumeration value="CASH" />
<xs:enumeration value="CHAR" />
<xs:enumeration value="COMM" />
<xs:enumeration value="TAXE" />
<xs:enumeration value="CISH" />
<xs:enumeration value="TRAS" />
<xs:enumeration value="SACC" />
<xs:enumeration value="CACC" />
<xs:enumeration value="SVGS" />
<xs:enumeration value="ONDP" />
<xs:enumeration value="MGLD" />
<xs:enumeration value="NREX" />
<xs:enumeration value="MOMA" />
<xs:enumeration value="LOAN" />
<xs:enumeration value="SLRY" />
<xs:enumeration value="ODFT" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ChargeBearerType1Code">
<xs:restriction base="xs:string">
<xs:enumeration value="DEBT" />
<xs:enumeration value="CRED" />
<xs:enumeration value="SHAR" />
<xs:enumeration value="SLEV" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="Cheque5">
<xs:sequence>
<xs:element name="ChqTp" type="ChequeType2Code" minOccurs="0" maxOccurs="1" />
<xs:element name="ChqNb" type="Max35Text" minOccurs="0" maxOccurs="1" />
<xs:element name="ChqFr" type="NameAndAddress3" minOccurs="0" maxOccurs="1" />
<xs:element
name="DlvryMtd"
type="ChequeDeliveryMethod1Choice"
minOccurs="0"
maxOccurs="1"
/>
<xs:element name="DlvrTo" type="NameAndAddress3" minOccurs="0" maxOccurs="1" />
<xs:element name="InstrPrty" type="Priority2Code" minOccurs="0" maxOccurs="1" />
<xs:element name="ChqMtrtyDt" type="ISODate" minOccurs="0" maxOccurs="1" />
<xs:element name="FrmsCd" type="Max35Text" minOccurs="0" maxOccurs="1" />
<xs:element name="MemoFld" type="Max35Text" minOccurs="0" maxOccurs="1" />
<xs:element name="RgnlClrZone" type="Max35Text" minOccurs="0" maxOccurs="1" />
<xs:element name="PrtLctn" type="Max35Text" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="ChequeDelivery1Code">
<xs:restriction base="xs:string">
<xs:enumeration value="MLDB" />
<xs:enumeration value="MLCD" />
<xs:enumeration value="MLFA" />
<xs:enumeration value="CRDB" />
<xs:enumeration value="CRCD" />
<xs:enumeration value="CRFA" />
<xs:enumeration value="PUDB" />
<xs:enumeration value="PUCD" />
<xs:enumeration value="PUFA" />
<xs:enumeration value="RGDB" />
<xs:enumeration value="RGCD" />
<xs:enumeration value="RGFA" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="ChequeDeliveryMethod1Choice">
<xs:sequence>
<xs:choice>
<xs:element name="Cd" type="ChequeDelivery1Code" />
<xs:element name="Prtry" type="Max35Text" />
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="ChequeType2Code">
<xs:restriction base="xs:string">
<xs:enumeration value="CCHQ" />
<xs:enumeration value="CCCH" />
<xs:enumeration value="BCHQ" />
<xs:enumeration value="DRFT" />
<xs:enumeration value="ELDR" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ClearingChannel2Code">
<xs:restriction base="xs:string">
<xs:enumeration value="RTGS" />
<xs:enumeration value="RTNS" />
<xs:enumeration value="MPNS" />
<xs:enumeration value="BOOK" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="ClearingSystemMemberIdentification3Choice">
<xs:sequence>
<xs:choice>
<xs:element name="Id" type="ExternalClearingSystemMemberCode" />
<xs:element name="Prtry" type="Max35Text" />
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="CountryCode">
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]{2,2}" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="CreditTransferTransactionInformation1">
<xs:sequence>
<xs:element name="PmtId" type="PaymentIdentification1" />
<xs:element
name="PmtTpInf"
type="PaymentTypeInformation1"
minOccurs="0"
maxOccurs="1"
/>
<xs:element name="Amt" type="AmountType2Choice" />
<xs:element
name="XchgRateInf"
type="ExchangeRateInformation1"
minOccurs="0"
maxOccurs="1"
/>
<xs:element name="ChrgBr" type="ChargeBearerType1Code" minOccurs="0" maxOccurs="1" />
<xs:element name="ChqInstr" type="Cheque5" minOccurs="0" maxOccurs="1" />
<xs:element name="UltmtDbtr" type="PartyIdentification8" minOccurs="0" maxOccurs="1" />
<xs:element
name="IntrmyAgt1"
type="BranchAndFinancialInstitutionIdentification3"
minOccurs="0"
maxOccurs="1"
/>
<xs:element name="IntrmyAgt1Acct" type="CashAccount7" minOccurs="0" maxOccurs="1" />
<xs:element
name="IntrmyAgt2"
type="BranchAndFinancialInstitutionIdentification3"
minOccurs="0"
maxOccurs="1"
/>
<xs:element name="IntrmyAgt2Acct" type="CashAccount7" minOccurs="0" maxOccurs="1" />
<xs:element
name="IntrmyAgt3"
type="BranchAndFinancialInstitutionIdentification3"
minOccurs="0"
maxOccurs="1"
/>
<xs:element name="IntrmyAgt3Acct" type="CashAccount7" minOccurs="0" maxOccurs="1" />
<xs:element
name="CdtrAgt"
type="BranchAndFinancialInstitutionIdentification3"
minOccurs="0"
maxOccurs="1"
/>
<xs:element name="CdtrAgtAcct" type="CashAccount7" minOccurs="0" maxOccurs="1" />
<xs:element name="Cdtr" type="PartyIdentification8" minOccurs="0" maxOccurs="1" />
<xs:element name="CdtrAcct" type="CashAccount7" minOccurs="0" maxOccurs="1" />
<xs:element name="UltmtCdtr" type="PartyIdentification8" minOccurs="0" maxOccurs="1" />
<xs:element
name="InstrForCdtrAgt"
type="InstructionForCreditorAgent1"
minOccurs="0"
maxOccurs="unbounded"
/>
<xs:element name="InstrForDbtrAgt" type="Max140Text" minOccurs="0" maxOccurs="1" />
<xs:element name="Purp" type="Purpose1Choice" minOccurs="0" maxOccurs="1" />
<xs:element
name="RgltryRptg"
type="RegulatoryReporting2"
minOccurs="0"
maxOccurs="10"
/>
<xs:element name="Tax" type="TaxInformation2" minOccurs="0" maxOccurs="1" />
<xs:element name="RltdRmtInf" type="RemittanceLocation1" minOccurs="0" maxOccurs="10" />
<xs:element name="RmtInf" type="RemittanceInformation1" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="CreditorReferenceInformation1">
<xs:sequence>
<xs:element
name="CdtrRefTp"
type="CreditorReferenceType1"
minOccurs="0"
maxOccurs="1"
/>
<xs:element name="CdtrRef" type="Max35Text" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="CreditorReferenceType1">
<xs:sequence>
<xs:choice>
<xs:element name="Cd" type="DocumentType3Code" />
<xs:element name="Prtry" type="Max35Text" />
</xs:choice>
<xs:element name="Issr" type="Max35Text" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="CurrencyAndAmount_SimpleType">
<xs:restriction base="xs:decimal">
<xs:minInclusive value="0" />
<xs:fractionDigits value="5" />
<xs:totalDigits value="18" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="CurrencyAndAmount">
<xs:simpleContent>
<xs:extension base="CurrencyAndAmount_SimpleType">
<xs:attribute name="Ccy" type="CurrencyCode" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="CurrencyCode">
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]{3,3}" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="DateAndPlaceOfBirth">
<xs:sequence>
<xs:element name="BirthDt" type="ISODate" />
<xs:element name="PrvcOfBirth" type="Max35Text" minOccurs="0" maxOccurs="1" />
<xs:element name="CityOfBirth" type="Max35Text" />
<xs:element name="CtryOfBirth" type="CountryCode" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="DecimalNumber">
<xs:restriction base="xs:decimal">
<xs:fractionDigits value="17" />
<xs:totalDigits value="18" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="Document">
<xs:sequence>
<xs:element name="pain.001.001.02" type="pain.001.001.02" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="DocumentType2Code">
<xs:restriction base="xs:string">
<xs:enumeration value="MSIN" />
<xs:enumeration value="CNFA" />
<xs:enumeration value="DNFA" />
<xs:enumeration value="CINV" />
<xs:enumeration value="CREN" />
<xs:enumeration value="DEBN" />
<xs:enumeration value="HIRI" />
<xs:enumeration value="SBIN" />
<xs:enumeration value="CMCN" />
<xs:enumeration value="SOAC" />
<xs:enumeration value="DISP" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="DocumentType3Code">
<xs:restriction base="xs:string">
<xs:enumeration value="RADM" />
<xs:enumeration value="RPIN" />
<xs:enumeration value="FXDR" />
<xs:enumeration value="DISP" />
<xs:enumeration value="PUOR" />
<xs:enumeration value="SCOR" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="DunsIdentifier">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{9,9}" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="EANGLNIdentifier">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{13,13}" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="EquivalentAmount">
<xs:sequence>
<xs:element name="Amt" type="CurrencyAndAmount" />
<xs:element name="CcyOfTrf" type="CurrencyCode" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="ExchangeRateInformation1">
<xs:sequence>
<xs:element name="XchgRate" type="BaseOneRate" minOccurs="0" maxOccurs="1" />
<xs:element name="RateTp" type="ExchangeRateType1Code" minOccurs="0" maxOccurs="1" />
<xs:element name="CtrctId" type="Max35Text" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="ExchangeRateType1Code">
<xs:restriction base="xs:string">
<xs:enumeration value="SPOT" />
<xs:enumeration value="SALE" />
<xs:enumeration value="AGRD" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ExternalClearingSystemMemberCode">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="35" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ExternalLocalInstrumentCode">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="35" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ExternalPurposeCode">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="35" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="FinancialInstitutionIdentification3">
<xs:sequence>
<xs:element name="BIC" type="BICIdentifier" minOccurs="0" maxOccurs="1" />
<xs:element
name="ClrSysMmbId"
type="ClearingSystemMemberIdentification3Choice"
minOccurs="0"
maxOccurs="1"
/>
<xs:element name="Nm" type="Max70Text" minOccurs="0" maxOccurs="1" />
<xs:element name="PstlAdr" type="PostalAddress1" minOccurs="0" maxOccurs="1" />
<xs:element name="PrtryId" type="GenericIdentification3" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="FinancialInstitutionIdentification5Choice">
<xs:sequence>
<xs:choice>
<xs:element name="BIC" type="BICIdentifier" />
<xs:element name="ClrSysMmbId" type="ClearingSystemMemberIdentification3Choice" />
<xs:element name="NmAndAdr" type="NameAndAddress7" />
<xs:element name="PrtryId" type="GenericIdentification3" />
<xs:element name="CmbndId" type="FinancialInstitutionIdentification3" />
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="GenericIdentification3">
<xs:sequence>
<xs:element name="Id" type="Max35Text" />
<xs:element name="Issr" type="Max35Text" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="GenericIdentification4">
<xs:sequence>
<xs:element name="Id" type="Max35Text" />
<xs:element name="IdTp" type="Max35Text" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="GroupHeader1">
<xs:sequence>
<xs:element name="MsgId" type="Max35Text" />
<xs:element name="CreDtTm" type="ISODateTime" />
<xs:element name="Authstn" type="Max128Text" minOccurs="0" maxOccurs="2" />
<xs:element name="BtchBookg" type="BatchBookingIndicator" minOccurs="0" maxOccurs="1" />
<xs:element name="NbOfTxs" type="Max15NumericText" />
<xs:element name="CtrlSum" type="DecimalNumber" minOccurs="0" maxOccurs="1" />
<xs:element name="Grpg" type="Grouping1Code" />
<xs:element name="InitgPty" type="PartyIdentification8" />
<xs:element
name="FwdgAgt"
type="BranchAndFinancialInstitutionIdentification3"
minOccurs="0"
maxOccurs="1"
/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="Grouping1Code">
<xs:restriction base="xs:string">
<xs:enumeration value="SNGL" />
<xs:enumeration value="GRPD" />
<xs:enumeration value="MIXD" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IBANIdentifier">
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IBEIIdentifier">
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]{2,2}[B-DF-HJ-NP-TV-XZ0-9]{7,7}[0-9]{1,1}" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ISODate">
<xs:restriction base="xs:date" />
</xs:simpleType>
<xs:simpleType name="ISODateTime">
<xs:restriction base="xs:dateTime" />
</xs:simpleType>
<xs:simpleType name="Instruction3Code">
<xs:restriction base="xs:string">
<xs:enumeration value="CHQB" />
<xs:enumeration value="HOLD" />
<xs:enumeration value="PHOB" />
<xs:enumeration value="TELB" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="InstructionForCreditorAgent1">
<xs:sequence>
<xs:element name="Cd" type="Instruction3Code" minOccurs="0" maxOccurs="1" />
<xs:element name="InstrInf" type="Max140Text" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="LocalInstrument1Choice">
<xs:sequence>
<xs:choice>
<xs:element name="Cd" type="ExternalLocalInstrumentCode" />
<xs:element name="Prtry" type="Max35Text" />
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="Max128Text">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="128" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Max140Text">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="140" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Max15NumericText">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{1,15}" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Max16Text">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="16" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Max256Text">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="256" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Max34Text">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="34" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Max35Text">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="35" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Max3Text">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="3" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Max70Text">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="70" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="NameAndAddress3">
<xs:sequence>
<xs:element name="Nm" type="Max70Text" />
<xs:element name="Adr" type="PostalAddress1" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="NameAndAddress7">
<xs:sequence>
<xs:element name="Nm" type="Max70Text" />
<xs:element name="PstlAdr" type="PostalAddress1" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="OrganisationIdentification2">
<xs:sequence>
<xs:element name="BIC" type="BICIdentifier" minOccurs="0" maxOccurs="1" />
<xs:element name="IBEI" type="IBEIIdentifier" minOccurs="0" maxOccurs="1" />
<xs:element name="BEI" type="BEIIdentifier" minOccurs="0" maxOccurs="1" />
<xs:element name="EANGLN" type="EANGLNIdentifier" minOccurs="0" maxOccurs="1" />
<xs:element name="USCHU" type="CHIPSUniversalIdentifier" minOccurs="0" maxOccurs="1" />
<xs:element name="DUNS" type="DunsIdentifier" minOccurs="0" maxOccurs="1" />
<xs:element name="BkPtyId" type="Max35Text" minOccurs="0" maxOccurs="1" />
<xs:element name="TaxIdNb" type="Max35Text" minOccurs="0" maxOccurs="1" />
<xs:element name="PrtryId" type="GenericIdentification3" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="Party2Choice">
<xs:sequence>
<xs:choice>
<xs:element name="OrgId" type="OrganisationIdentification2" />
<xs:element name="PrvtId" type="PersonIdentification3" minOccurs="1" maxOccurs="4" />
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PartyIdentification8">
<xs:sequence>
<xs:element name="Nm" type="Max70Text" minOccurs="0" maxOccurs="1" />
<xs:element name="PstlAdr" type="PostalAddress1" minOccurs="0" maxOccurs="1" />
<xs:element name="Id" type="Party2Choice" minOccurs="0" maxOccurs="1" />
<xs:element name="CtryOfRes" type="CountryCode" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="PaymentCategoryPurpose1Code">
<xs:restriction base="xs:string">
<xs:enumeration value="CORT" />
<xs:enumeration value="SALA" />
<xs:enumeration value="TREA" />
<xs:enumeration value="CASH" />
<xs:enumeration value="DIVI" />
<xs:enumeration value="GOVT" />
<xs:enumeration value="INTE" />
<xs:enumeration value="LOAN" />
<xs:enumeration value="PENS" />
<xs:enumeration value="SECU" />
<xs:enumeration value="SSBE" />
<xs:enumeration value="SUPP" />
<xs:enumeration value="TAXS" />
<xs:enumeration value="TRAD" />
<xs:enumeration value="VATX" />
<xs:enumeration value="HEDG" />
<xs:enumeration value="INTC" />
<xs:enumeration value="WHLD" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="PaymentIdentification1">
<xs:sequence>
<xs:element name="InstrId" type="Max35Text" minOccurs="0" maxOccurs="1" />
<xs:element name="EndToEndId" type="Max35Text" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="PaymentInstructionInformation1">
<xs:sequence>
<xs:element name="PmtInfId" type="Max35Text" minOccurs="0" maxOccurs="1" />
<xs:element name="PmtMtd" type="PaymentMethod3Code" />
<xs:element
name="PmtTpInf"
type="PaymentTypeInformation1"
minOccurs="0"
maxOccurs="1"
/>
<xs:element name="ReqdExctnDt" type="ISODate" />
<xs:element name="PoolgAdjstmntDt" type="ISODate" minOccurs="0" maxOccurs="1" />
<xs:element name="Dbtr" type="PartyIdentification8" />
<xs:element name="DbtrAcct" type="CashAccount7" />
<xs:element name="DbtrAgt" type="BranchAndFinancialInstitutionIdentification3" />
<xs:element name="DbtrAgtAcct" type="CashAccount7" minOccurs="0" maxOccurs="1" />
<xs:element name="UltmtDbtr" type="PartyIdentification8" minOccurs="0" maxOccurs="1" />
<xs:element name="ChrgBr" type="ChargeBearerType1Code" minOccurs="0" maxOccurs="1" />
<xs:element name="ChrgsAcct" type="CashAccount7" minOccurs="0" maxOccurs="1" />
<xs:element
name="ChrgsAcctAgt"
type="BranchAndFinancialInstitutionIdentification3"
minOccurs="0"
maxOccurs="1"
/>
<xs:element
name="CdtTrfTxInf"
type="CreditTransferTransactionInformation1"
minOccurs="1"
maxOccurs="unbounded"
/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="PaymentMethod3Code">
<xs:restriction base="xs:string">
<xs:enumeration value="CHK" />
<xs:enumeration value="TRF" />
<xs:enumeration value="TRA" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="PaymentTypeInformation1">
<xs:sequence>
<xs:element name="InstrPrty" type="Priority2Code" minOccurs="0" maxOccurs="1" />
<xs:choice>
<xs:element name="SvcLvl" type="ServiceLevel2Choice" minOccurs="0" maxOccurs="1" />
<xs:element name="ClrChanl" type="ClearingChannel2Code" minOccurs="0" maxOccurs="1" />
</xs:choice>
<xs:element
name="LclInstrm"
type="LocalInstrument1Choice"
minOccurs="0"
maxOccurs="1"
/>
<xs:element
name="CtgyPurp"
type="PaymentCategoryPurpose1Code"
minOccurs="0"
maxOccurs="1"
/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="PercentageRate">
<xs:restriction base="xs:decimal">
<xs:fractionDigits value="10" />
<xs:totalDigits value="11" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="PersonIdentification3">
<xs:sequence>
<xs:choice>
<xs:element name="DrvrsLicNb" type="Max35Text" />
<xs:element name="CstmrNb" type="Max35Text" />
<xs:element name="SclSctyNb" type="Max35Text" />
<xs:element name="AlnRegnNb" type="Max35Text" />
<xs:element name="PsptNb" type="Max35Text" />
<xs:element name="TaxIdNb" type="Max35Text" />
<xs:element name="IdntyCardNb" type="Max35Text" />
<xs:element name="MplyrIdNb" type="Max35Text" />
<xs:element name="DtAndPlcOfBirth" type="DateAndPlaceOfBirth" />
<xs:element name="OthrId" type="GenericIdentification4" />
</xs:choice>
<xs:element name="Issr" type="Max35Text" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="PostalAddress1">
<xs:sequence>
<xs:element name="AdrTp" type="AddressType2Code" minOccurs="0" maxOccurs="1" />
<xs:element name="AdrLine" type="Max70Text" minOccurs="0" maxOccurs="5" />
<xs:element name="StrtNm" type="Max70Text" minOccurs="0" maxOccurs="1" />
<xs:element name="BldgNb" type="Max16Text" minOccurs="0" maxOccurs="1" />
<xs:element name="PstCd" type="Max16Text" minOccurs="0" maxOccurs="1" />
<xs:element name="TwnNm" type="Max35Text" minOccurs="0" maxOccurs="1" />
<xs:element name="CtrySubDvsn" type="Max35Text" minOccurs="0" maxOccurs="1" />
<xs:element name="Ctry" type="CountryCode" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="Priority2Code">
<xs:restriction base="xs:string">
<xs:enumeration value="HIGH" />
<xs:enumeration value="NORM" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="Purpose1Choice">
<xs:sequence>
<xs:choice>
<xs:element name="Cd" type="ExternalPurposeCode" />
<xs:element name="Prtry" type="Max35Text" />
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ReferredDocumentAmount1Choice">
<xs:sequence>
<xs:choice>
<xs:element name="DuePyblAmt" type="CurrencyAndAmount" />
<xs:element name="DscntApldAmt" type="CurrencyAndAmount" />
<xs:element name="RmtdAmt" type="CurrencyAndAmount" />
<xs:element name="CdtNoteAmt" type="CurrencyAndAmount" />
<xs:element name="TaxAmt" type="CurrencyAndAmount" />
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ReferredDocumentInformation1">
<xs:sequence>
<xs:element name="RfrdDocTp" type="ReferredDocumentType1" minOccurs="0" maxOccurs="1" />
<xs:element name="RfrdDocNb" type="Max35Text" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="ReferredDocumentType1">
<xs:sequence>
<xs:choice>
<xs:element name="Cd" type="DocumentType2Code" />
<xs:element name="Prtry" type="Max35Text" />
</xs:choice>
<xs:element name="Issr" type="Max35Text" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="RegulatoryAuthority">
<xs:sequence>
<xs:element name="AuthrtyNm" type="Max70Text" minOccurs="0" maxOccurs="1" />
<xs:element name="AuthrtyCtry" type="CountryCode" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="RegulatoryReporting2">
<xs:sequence>
<xs:element
name="DbtCdtRptgInd"
type="RegulatoryReportingType1Code"
minOccurs="0"
maxOccurs="1"
/>
<xs:element name="Authrty" type="RegulatoryAuthority" minOccurs="0" maxOccurs="1" />
<xs:element
name="RgltryDtls"
type="StructuredRegulatoryReporting2"
minOccurs="0"
maxOccurs="1"
/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="RegulatoryReportingType1Code">
<xs:restriction base="xs:string">
<xs:enumeration value="CRED" />
<xs:enumeration value="DEBT" />
<xs:enumeration value="BOTH" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="RemittanceInformation1">
<xs:sequence>
<xs:element name="Ustrd" type="Max140Text" minOccurs="0" maxOccurs="unbounded" />
<xs:element
name="Strd"
type="StructuredRemittanceInformation6"
minOccurs="0"
maxOccurs="unbounded"
/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RemittanceLocation1">
<xs:sequence>
<xs:element name="RmtId" type="Max35Text" minOccurs="0" maxOccurs="1" />
<xs:element
name="RmtLctnMtd"
type="RemittanceLocationMethod1Code"
minOccurs="0"
maxOccurs="1"
/>
<xs:element name="RmtLctnElctrncAdr" type="Max256Text" minOccurs="0" maxOccurs="1" />
<xs:element name="RmtLctnPstlAdr" type="NameAndAddress3" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="RemittanceLocationMethod1Code">
<xs:restriction base="xs:string">
<xs:enumeration value="FAXI" />
<xs:enumeration value="EDIC" />
<xs:enumeration value="URID" />
<xs:enumeration value="EMAL" />
<xs:enumeration value="POST" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ServiceLevel1Code">
<xs:restriction base="xs:string">
<xs:enumeration value="SEPA" />
<xs:enumeration value="SDVA" />
<xs:enumeration value="PRPT" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="ServiceLevel2Choice">
<xs:sequence>
<xs:choice>
<xs:element name="Cd" type="ServiceLevel1Code" />
<xs:element name="Prtry" type="Max35Text" />
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="SimpleIdentificationInformation2">
<xs:sequence>
<xs:element name="Id" type="Max34Text" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="StructuredRegulatoryReporting2">
<xs:sequence>
<xs:element name="Cd" type="Max3Text" minOccurs="0" maxOccurs="1" />
<xs:element name="Amt" type="CurrencyAndAmount" minOccurs="0" maxOccurs="1" />
<xs:element name="Inf" type="Max35Text" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="StructuredRemittanceInformation6">
<xs:sequence>
<xs:element
name="RfrdDocInf"
type="ReferredDocumentInformation1"
minOccurs="0"
maxOccurs="1"
/>
<xs:element name="RfrdDocRltdDt" type="ISODate" minOccurs="0" maxOccurs="1" />
<xs:element
name="RfrdDocAmt"
type="ReferredDocumentAmount1Choice"
minOccurs="0"
maxOccurs="unbounded"
/>
<xs:element
name="CdtrRefInf"
type="CreditorReferenceInformation1"
minOccurs="0"
maxOccurs="1"
/>
<xs:element name="Invcr" type="PartyIdentification8" minOccurs="0" maxOccurs="1" />
<xs:element name="Invcee" type="PartyIdentification8" minOccurs="0" maxOccurs="1" />
<xs:element name="AddtlRmtInf" type="Max140Text" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="TaxDetails">
<xs:sequence>
<xs:element name="CertId" type="Max35Text" minOccurs="0" maxOccurs="1" />
<xs:element name="TaxTp" type="TaxType" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="TaxInformation2">
<xs:sequence>
<xs:element name="CdtrTaxId" type="Max35Text" minOccurs="0" maxOccurs="1" />
<xs:element name="CdtrTaxTp" type="Max35Text" minOccurs="0" maxOccurs="1" />
<xs:element name="DbtrTaxId" type="Max35Text" minOccurs="0" maxOccurs="1" />
<xs:element name="TaxRefNb" type="Max140Text" minOccurs="0" maxOccurs="1" />
<xs:element
name="TtlTaxblBaseAmt"
type="CurrencyAndAmount"
minOccurs="0"
maxOccurs="1"
/>
<xs:element name="TtlTaxAmt" type="CurrencyAndAmount" minOccurs="0" maxOccurs="1" />
<xs:element name="TaxDt" type="ISODate" minOccurs="0" maxOccurs="1" />
<xs:element name="TaxTpInf" type="TaxDetails" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="TaxType">
<xs:sequence>
<xs:element name="CtgyDesc" type="Max35Text" minOccurs="0" maxOccurs="1" />
<xs:element name="Rate" type="PercentageRate" minOccurs="0" maxOccurs="1" />
<xs:element name="TaxblBaseAmt" type="CurrencyAndAmount" minOccurs="0" maxOccurs="1" />
<xs:element name="Amt" type="CurrencyAndAmount" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="UPICIdentifier">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{8,17}" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="pain.001.001.02">
<xs:sequence>
<xs:element name="GrpHdr" type="GroupHeader1" />
<xs:element
name="PmtInf"
type="PaymentInstructionInformation1"
minOccurs="1"
maxOccurs="unbounded"
/>
</xs:sequence>
</xs:complexType>
</xs:schema>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,509 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<!-- Version gemäß DFÜ-Abkommen Anlage 3, Version 2.7, gültig ab November 2013 mit Umsetzung von IBAN Only gemäß EPC SCT 7.0, zudem Erweiterung Service Level auf Externe Codeliste-->
<!-- Mit XMLSpy v2008 am 29.11.2012 von der SIZ GmbH bearbeitet -->
<xs:schema
xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.003.03"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="urn:iso:std:iso:20022:tech:xsd:pain.001.003.03"
elementFormDefault="qualified"
>
<xs:element name="Document" type="Document" />
<xs:complexType name="AccountIdentificationSEPA">
<xs:sequence>
<xs:element name="IBAN" type="IBAN2007Identifier" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="ActiveOrHistoricCurrencyAndAmount_SimpleTypeSEPA">
<xs:restriction base="xs:decimal">
<xs:minInclusive value="0.01" />
<xs:maxInclusive value="999999999.99" />
<xs:fractionDigits value="2" />
<xs:totalDigits value="11" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ActiveOrHistoricCurrencyCode">
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]{3,3}" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="ActiveOrHistoricCurrencyAndAmountSEPA">
<xs:simpleContent>
<xs:extension base="ActiveOrHistoricCurrencyAndAmount_SimpleTypeSEPA">
<xs:attribute name="Ccy" type="ActiveOrHistoricCurrencyCodeEUR" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="ActiveOrHistoricCurrencyCodeEUR">
<xs:restriction base="xs:string">
<xs:enumeration value="EUR" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="AmountTypeSEPA">
<xs:sequence>
<xs:element name="InstdAmt" type="ActiveOrHistoricCurrencyAndAmountSEPA" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="AnyBICIdentifier">
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="BICIdentifier">
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="BatchBookingIndicator">
<xs:restriction base="xs:boolean" />
</xs:simpleType>
<xs:complexType name="BranchAndFinancialInstitutionIdentificationSEPA1">
<xs:sequence>
<xs:element name="FinInstnId" type="FinancialInstitutionIdentificationSEPA1" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="BranchAndFinancialInstitutionIdentificationSEPA3">
<xs:sequence>
<xs:element name="FinInstnId" type="FinancialInstitutionIdentificationSEPA3" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="CashAccountSEPA1">
<xs:sequence>
<xs:element name="Id" type="AccountIdentificationSEPA" />
<xs:element name="Ccy" type="ActiveOrHistoricCurrencyCode" minOccurs="0" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="CashAccountSEPA2">
<xs:sequence>
<xs:element name="Id" type="AccountIdentificationSEPA" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="CategoryPurposeSEPA">
<xs:sequence>
<xs:element name="Cd" type="ExternalCategoryPurpose1Code" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="ChargeBearerTypeSEPACode">
<xs:restriction base="xs:string">
<xs:enumeration value="SLEV" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="CountryCode">
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]{2,2}" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="CreditTransferTransactionInformationSCT">
<xs:sequence>
<xs:element name="PmtId" type="PaymentIdentificationSEPA" />
<xs:element name="PmtTpInf" type="PaymentTypeInformationSCT2" minOccurs="0">
<xs:annotation>
<xs:documentation
>If used, it is recommended to be used at Payment Information level and not at Credit Transfer Transaction Information level.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Amt" type="AmountTypeSEPA" />
<xs:element name="ChrgBr" type="ChargeBearerTypeSEPACode" minOccurs="0">
<xs:annotation>
<xs:documentation
>It is recommended that this element be specified at Payment Information level.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="UltmtDbtr" type="PartyIdentificationSEPA1" minOccurs="0">
<xs:annotation>
<xs:documentation
>This data element may be present either at Payment Information or at Credit Transfer Transaction Information level.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element
name="CdtrAgt"
type="BranchAndFinancialInstitutionIdentificationSEPA1"
minOccurs="0"
/>
<xs:element name="Cdtr" type="PartyIdentificationSEPA2" />
<xs:element name="CdtrAcct" type="CashAccountSEPA2" />
<xs:element name="UltmtCdtr" type="PartyIdentificationSEPA1" minOccurs="0" />
<xs:element name="Purp" type="PurposeSEPA" minOccurs="0" />
<xs:element name="RmtInf" type="RemittanceInformationSEPA1Choice" minOccurs="0" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="CreditorReferenceInformationSEPA1">
<xs:sequence>
<xs:element name="Tp" type="CreditorReferenceTypeSEPA" />
<xs:element name="Ref" type="Max35Text">
<xs:annotation>
<xs:documentation
>If a Creditor Reference contains a check digit, the receiving bank is not required to validate this.
If the receiving bank validates the check digit and if this validation fails, the bank may continue its processing and send the transaction to the next party in the chain.
RF Creditor Reference may be used (ISO 11649).</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="CreditorReferenceTypeSEPA">
<xs:sequence>
<xs:element name="CdOrPrtry" type="CreditorReferenceTypeCodeSEPA" />
<xs:element name="Issr" type="Max35Text" minOccurs="0" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="CreditorReferenceTypeCodeSEPA">
<xs:sequence>
<xs:element name="Cd" type="DocumentType3CodeSEPA" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="CustomerCreditTransferInitiationV03">
<xs:sequence>
<xs:element name="GrpHdr" type="GroupHeaderSCT" />
<xs:element
name="PmtInf"
type="PaymentInstructionInformationSCT"
maxOccurs="unbounded"
/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DateAndPlaceOfBirth">
<xs:sequence>
<xs:element name="BirthDt" type="ISODate" />
<xs:element name="PrvcOfBirth" type="Max35Text" minOccurs="0" />
<xs:element name="CityOfBirth" type="Max35Text" />
<xs:element name="CtryOfBirth" type="CountryCode" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="DecimalNumber">
<xs:restriction base="xs:decimal">
<xs:fractionDigits value="17" />
<xs:totalDigits value="18" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="Document">
<xs:sequence>
<xs:element name="CstmrCdtTrfInitn" type="CustomerCreditTransferInitiationV03" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="DocumentType3CodeSEPA">
<xs:restriction base="xs:string">
<xs:enumeration value="SCOR" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ExternalCategoryPurpose1Code">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="4" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ExternalOrganisationIdentification1Code">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="4" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ExternalPersonIdentification1Code">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="4" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ExternalPurpose1Code">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="4" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ExternalServiceLevel1Code">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="4" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="FinancialInstitutionIdentificationSEPA1">
<xs:sequence>
<xs:element name="BIC" type="BICIdentifier" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="FinancialInstitutionIdentificationSEPA3">
<xs:sequence>
<xs:choice>
<xs:element name="BIC" type="BICIdentifier" />
<xs:element name="Othr" type="OthrIdentification" />
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="OthrIdentification">
<xs:sequence>
<xs:element name="Id" type="OthrIdentificationCode" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="OthrIdentificationCode">
<xs:restriction base="xs:string">
<xs:enumeration value="NOTPROVIDED" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="GenericOrganisationIdentification1">
<xs:sequence>
<xs:element name="Id" type="Max35Text" />
<xs:element
name="SchmeNm"
type="OrganisationIdentificationSchemeName1Choice"
minOccurs="0"
/>
<xs:element name="Issr" type="Max35Text" minOccurs="0" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="GenericPersonIdentification1">
<xs:sequence>
<xs:element name="Id" type="Max35Text" />
<xs:element name="SchmeNm" type="PersonIdentificationSchemeName1Choice" minOccurs="0" />
<xs:element name="Issr" type="Max35Text" minOccurs="0" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="GroupHeaderSCT">
<xs:sequence>
<xs:element name="MsgId" type="RestrictedIdentificationSEPA1" />
<xs:element name="CreDtTm" type="ISODateTime" />
<xs:element name="NbOfTxs" type="Max15NumericText" />
<xs:element name="CtrlSum" type="DecimalNumber" minOccurs="0" />
<xs:element name="InitgPty" type="PartyIdentificationSEPA1" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="IBAN2007Identifier">
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ISODate">
<xs:restriction base="xs:date" />
</xs:simpleType>
<xs:simpleType name="ISODateTime">
<xs:restriction base="xs:dateTime" />
</xs:simpleType>
<xs:simpleType name="Max140Text">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="140" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Max15NumericText">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{1,15}" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Max35Text">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="35" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Max70Text">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="70" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="OrganisationIdentificationSEPAChoice">
<xs:sequence>
<xs:choice>
<xs:element name="BICOrBEI" type="AnyBICIdentifier" />
<xs:element name="Othr" type="GenericOrganisationIdentification1" />
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="OrganisationIdentificationSchemeName1Choice">
<xs:sequence>
<xs:choice>
<xs:element name="Cd" type="ExternalOrganisationIdentification1Code" />
<xs:element name="Prtry" type="Max35Text" />
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PartySEPAChoice">
<xs:sequence>
<xs:choice>
<xs:element name="OrgId" type="OrganisationIdentificationSEPAChoice">
<xs:annotation>
<xs:documentation>Either BIC or BEI or one
occurrence of Other is allowed.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PrvtId" type="PersonIdentificationSEPA1Choice">
<xs:annotation>
<xs:documentation
>Either Date and Place of Birth or one occurrence of Other is allowed.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PartyIdentificationSEPA1">
<xs:sequence>
<xs:element name="Nm" type="Max70Text" minOccurs="0">
<xs:annotation>
<xs:documentation>Name is limited to 70 characters
in length.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Id" type="PartySEPAChoice" minOccurs="0" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="PartyIdentificationSEPA2">
<xs:sequence>
<xs:element name="Nm" type="Max70Text">
<xs:annotation>
<xs:documentation>Name is limited to 70 characters
in length.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PstlAdr" type="PostalAddressSEPA" minOccurs="0" />
<xs:element name="Id" type="PartySEPAChoice" minOccurs="0" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="PaymentIdentificationSEPA">
<xs:sequence>
<xs:element name="InstrId" type="RestrictedIdentificationSEPA1" minOccurs="0" />
<xs:element name="EndToEndId" type="RestrictedIdentificationSEPA1" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="PaymentInstructionInformationSCT">
<xs:sequence>
<xs:element name="PmtInfId" type="RestrictedIdentificationSEPA1" />
<xs:element name="PmtMtd" type="PaymentMethodSCTCode">
<xs:annotation>
<xs:documentation>Only TRF is allowed.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="BtchBookg" type="BatchBookingIndicator" minOccurs="0">
<xs:annotation>
<xs:documentation
>If present and contains true, batch booking is requested. If present and contains false, booking per transaction is requested. If element is not present, pre-agreed customer-to-bank conditions apply.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="NbOfTxs" type="Max15NumericText" minOccurs="0" />
<xs:element name="CtrlSum" type="DecimalNumber" minOccurs="0" />
<xs:element name="PmtTpInf" type="PaymentTypeInformationSCT1" minOccurs="0">
<xs:annotation>
<xs:documentation
>If used, it is recommended to be used only at Payment Information level and not at Credit Transfer Transaction Information level.
When Instruction Priority is to be used, Payment Type Information must be present at Payment Information level. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ReqdExctnDt" type="ISODate" />
<xs:element name="Dbtr" type="PartyIdentificationSEPA2" />
<xs:element name="DbtrAcct" type="CashAccountSEPA1" />
<xs:element name="DbtrAgt" type="BranchAndFinancialInstitutionIdentificationSEPA3" />
<xs:element name="UltmtDbtr" type="PartyIdentificationSEPA1" minOccurs="0">
<xs:annotation>
<xs:documentation
>This data element may be present either at Payment Information or at Credit Transfer Transaction Information level.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ChrgBr" type="ChargeBearerTypeSEPACode" minOccurs="0">
<xs:annotation>
<xs:documentation
>It is recommended that this element be specified at Payment Information level.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element
name="CdtTrfTxInf"
type="CreditTransferTransactionInformationSCT"
maxOccurs="unbounded"
/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="PaymentMethodSCTCode">
<xs:restriction base="xs:string">
<xs:enumeration value="TRF" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="PaymentTypeInformationSCT1">
<xs:sequence>
<xs:element name="InstrPrty" type="Priority2Code" minOccurs="0">
<xs:annotation>
<xs:documentation
>If present, pre-agreed customer-to-bank conditions apply.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="SvcLvl" type="ServiceLevelSEPA" />
<xs:element name="CtgyPurp" type="CategoryPurposeSEPA" minOccurs="0">
<xs:annotation>
<xs:documentation
>Depending on the agreement between the Originator and the Originator Bank, Category Purpose may be forwarded to the Beneficiary Bank.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PaymentTypeInformationSCT2">
<xs:sequence>
<xs:element name="SvcLvl" type="ServiceLevelSEPA" />
<xs:element name="CtgyPurp" type="CategoryPurposeSEPA" minOccurs="0">
<xs:annotation>
<xs:documentation
>Depending on the agreement between the Originator and the Originator Bank, Category Purpose may be forwarded to the Beneficiary Bank.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PersonIdentificationSEPA1Choice">
<xs:sequence>
<xs:choice>
<xs:element name="DtAndPlcOfBirth" type="DateAndPlaceOfBirth" />
<xs:element name="Othr" type="GenericPersonIdentification1" />
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PersonIdentificationSchemeName1Choice">
<xs:sequence>
<xs:choice>
<xs:element name="Cd" type="ExternalPersonIdentification1Code" />
<xs:element name="Prtry" type="Max35Text" />
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PostalAddressSEPA">
<xs:sequence>
<xs:element name="Ctry" type="CountryCode" minOccurs="0" />
<xs:element name="AdrLine" type="Max70Text" minOccurs="0" maxOccurs="2" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="Priority2Code">
<xs:restriction base="xs:string">
<xs:enumeration value="HIGH" />
<xs:enumeration value="NORM" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="PurposeSEPA">
<xs:sequence>
<xs:element name="Cd" type="ExternalPurpose1Code">
<xs:annotation>
<xs:documentation
>Only codes from the ISO 20022 ExternalPurposeCode list are allowed.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RemittanceInformationSEPA1Choice">
<xs:sequence>
<xs:choice>
<xs:element name="Ustrd" type="Max140Text" />
<xs:element name="Strd" type="StructuredRemittanceInformationSEPA1" />
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ServiceLevelSEPA">
<xs:sequence>
<xs:element name="Cd" type="ExternalServiceLevel1Code" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="StructuredRemittanceInformationSEPA1">
<xs:sequence>
<xs:element name="CdtrRefInf" type="CreditorReferenceInformationSEPA1" minOccurs="0">
<xs:annotation>
<xs:documentation
>When present, the receiving bank is not obliged to validate the the reference information. </xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="RestrictedIdentificationSEPA1">
<xs:restriction base="xs:string">
<xs:pattern value="([A-Za-z0-9]|[\+|\?|/|\-|:|\(|\)|\.|,|'| ]){1,35}" />
</xs:restriction>
</xs:simpleType>
</xs:schema>

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1">
<record id="payment_mode_outbound_sepa_ct1" model="account.payment.mode">
<field name="name">SEPA Credit Transfer to suppliers</field>
<field name="company_id" ref="base.main_company" />
<field name="bank_account_link">variable</field>
<field name="payment_method_id" ref="sepa_credit_transfer" />
<field name="default_journal_ids" search="[('type', '=', 'purchase')]" />
</record>
<!-- Azure Interior -->
<record id="base.res_partner_12" model="res.partner">
<field name="supplier_payment_mode_id" ref="payment_mode_outbound_sepa_ct1" />
</record>
<!-- Wood Corner -->
<record id="base.res_partner_1" model="res.partner">
<field name="supplier_payment_mode_id" ref="payment_mode_outbound_sepa_ct1" />
</record>
</odoo>

View File

@@ -0,0 +1,90 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_banking_sepa_credit_transfer
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: account_banking_sepa_credit_transfer
#: code:addons/account_banking_sepa_credit_transfer/models/account_payment_order.py:0
#, python-format
msgid ""
"Bank account is missing on the bank payment line of partner '{partner}' "
"(reference '{reference}')."
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_line__local_instrument__inst
msgid "Instant Transfer"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields,field_description:account_banking_sepa_credit_transfer.field_account_payment_line__local_instrument
msgid "Local Instrument"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields,field_description:account_banking_sepa_credit_transfer.field_account_payment_method__pain_version
msgid "PAIN Version"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: code:addons/account_banking_sepa_credit_transfer/models/account_payment_order.py:0
#: code:addons/account_banking_sepa_credit_transfer/models/account_payment_order.py:0
#, python-format
msgid "PAIN version '%s' is not supported."
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_line
msgid "Payment Lines"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_method
msgid "Payment Methods"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_order
msgid "Payment Order"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:account.payment.method,name:account_banking_sepa_credit_transfer.sepa_credit_transfer
#: model:account.payment.mode,name:account_banking_sepa_credit_transfer.payment_mode_outbound_sepa_ct1
msgid "SEPA Credit Transfer to suppliers"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_02
msgid "pain.001.001.02"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_03
msgid "pain.001.001.03 (recommended for credit transfer)"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_04
msgid "pain.001.001.04"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_05
msgid "pain.001.001.05"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_003_03
msgid "pain.001.003.03"
msgstr ""

View File

@@ -0,0 +1,97 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_banking_sepa_credit_transfer
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2022-05-30 18:05+0000\n"
"Last-Translator: jabelchi <jabelchi@gmail.com>\n"
"Language-Team: none\n"
"Language: ca\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.3.2\n"
#. module: account_banking_sepa_credit_transfer
#: code:addons/account_banking_sepa_credit_transfer/models/account_payment_order.py:0
#, python-format
msgid ""
"Bank account is missing on the bank payment line of partner "
"'{partner}' (reference '{reference}')."
msgstr ""
"Falta el compte bancari a la línia del partner '{partner}' (referència "
"'{reference}')."
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_line__local_instrument__inst
msgid "Instant Transfer"
msgstr "Transferència immediata"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields,field_description:account_banking_sepa_credit_transfer.field_account_payment_line__local_instrument
msgid "Local Instrument"
msgstr "Instrument local"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields,field_description:account_banking_sepa_credit_transfer.field_account_payment_method__pain_version
msgid "PAIN Version"
msgstr "Versió PAIN"
#. module: account_banking_sepa_credit_transfer
#: code:addons/account_banking_sepa_credit_transfer/models/account_payment_order.py:0
#, python-format
msgid "PAIN version '%s' is not supported."
msgstr "La versió PAIN '%s' no està suportada."
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_line
msgid "Payment Lines"
msgstr "Línies de pagament"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_method
msgid "Payment Methods"
msgstr "Mètodes de pagament"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_order
msgid "Payment Order"
msgstr "Ordre de pagament"
#. module: account_banking_sepa_credit_transfer
#: model:account.payment.method,name:account_banking_sepa_credit_transfer.sepa_credit_transfer
#: model:account.payment.mode,name:account_banking_sepa_credit_transfer.payment_mode_outbound_sepa_ct1
msgid "SEPA Credit Transfer to suppliers"
msgstr "Transferència de crèdit SEPA a proveïdors"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_02
msgid "pain.001.001.02"
msgstr "pain.001.001.02"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_03
msgid "pain.001.001.03 (recommended for credit transfer)"
msgstr "pain.001.001.03 (recomanat per a transferències de crèdit)"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_04
msgid "pain.001.001.04"
msgstr "pain.001.001.04"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_05
msgid "pain.001.001.05"
msgstr "pain.001.001.05"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_003_03
msgid "pain.001.003.03"
msgstr ""
#~ msgid "pain.001.003.03 (credit transfer in Germany)"
#~ msgstr "pain.001.003.03 (transferències de crèdit a Alemanya)"

View File

@@ -0,0 +1,103 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_banking_sepa_credit_transfer
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-12-11 09:51+0000\n"
"PO-Revision-Date: 2018-11-23 20:11+0000\n"
"Last-Translator: chrispi-ch <chris@okc.ch>\n"
"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.2.2\n"
#. module: account_banking_sepa_credit_transfer
#: code:addons/account_banking_sepa_credit_transfer/models/account_payment_order.py:0
#, python-format
msgid ""
"Bank account is missing on the bank payment line of partner "
"'{partner}' (reference '{reference}')."
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_line__local_instrument__inst
msgid "Instant Transfer"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields,field_description:account_banking_sepa_credit_transfer.field_account_payment_line__local_instrument
msgid "Local Instrument"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields,field_description:account_banking_sepa_credit_transfer.field_account_payment_method__pain_version
msgid "PAIN Version"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: code:addons/account_banking_sepa_credit_transfer/models/account_payment_order.py:0
#, python-format
msgid "PAIN version '%s' is not supported."
msgstr "PAIN Version '%s' wird nicht unterstützt."
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_line
msgid "Payment Lines"
msgstr "Zahlungszeilen"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_method
msgid "Payment Methods"
msgstr "Zahlungsmethoden"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_order
msgid "Payment Order"
msgstr "Zahlungsauftrag"
#. module: account_banking_sepa_credit_transfer
#: model:account.payment.method,name:account_banking_sepa_credit_transfer.sepa_credit_transfer
#: model:account.payment.mode,name:account_banking_sepa_credit_transfer.payment_mode_outbound_sepa_ct1
msgid "SEPA Credit Transfer to suppliers"
msgstr "SEPA-Überweisung an Lieferanten"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_02
msgid "pain.001.001.02"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_03
msgid "pain.001.001.03 (recommended for credit transfer)"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_04
msgid "pain.001.001.04"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_05
msgid "pain.001.001.05"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_003_03
msgid "pain.001.003.03"
msgstr ""
#, python-format
#~ msgid ""
#~ "Bank account is missing on the bank payment line of partner "
#~ "'%s' (reference '%s')."
#~ msgstr ""
#~ "Das Bankkonto fehlt auf der Zahlungszeile des Partners '%s' (Referenz "
#~ "'%s')."

View File

@@ -0,0 +1,102 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_banking_sepa_credit_transfer
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-11-23 03:38+0000\n"
"PO-Revision-Date: 2017-11-23 03:38+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_banking_sepa_credit_transfer
#: code:addons/account_banking_sepa_credit_transfer/models/account_payment_order.py:0
#, python-format
msgid ""
"Bank account is missing on the bank payment line of partner "
"'{partner}' (reference '{reference}')."
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_line__local_instrument__inst
msgid "Instant Transfer"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields,field_description:account_banking_sepa_credit_transfer.field_account_payment_line__local_instrument
msgid "Local Instrument"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields,field_description:account_banking_sepa_credit_transfer.field_account_payment_method__pain_version
msgid "PAIN Version"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: code:addons/account_banking_sepa_credit_transfer/models/account_payment_order.py:0
#, python-format
msgid "PAIN version '%s' is not supported."
msgstr "La versión PAIN '%s' no está soportada."
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_line
msgid "Payment Lines"
msgstr "Líneas de pago"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_method
msgid "Payment Methods"
msgstr "Métodos de pago"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_order
msgid "Payment Order"
msgstr "Orden de pago"
#. module: account_banking_sepa_credit_transfer
#: model:account.payment.method,name:account_banking_sepa_credit_transfer.sepa_credit_transfer
#: model:account.payment.mode,name:account_banking_sepa_credit_transfer.payment_mode_outbound_sepa_ct1
msgid "SEPA Credit Transfer to suppliers"
msgstr "Transferencia de crédito SEPA para proveedores"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_02
msgid "pain.001.001.02"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_03
msgid "pain.001.001.03 (recommended for credit transfer)"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_04
msgid "pain.001.001.04"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_05
msgid "pain.001.001.05"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_003_03
msgid "pain.001.003.03"
msgstr ""
#, python-format
#~ msgid ""
#~ "Bank account is missing on the bank payment line of partner "
#~ "'%s' (reference '%s')."
#~ msgstr ""
#~ "Falta la cuenta bancaria en la línea de pago de la empresa "
#~ "'%s' (referencia '%s')."

View File

@@ -0,0 +1,103 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_banking_sepa_credit_transfer
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2020-08-08 05:59+0000\n"
"Last-Translator: Ignacio Buioli <ibuioli@gmail.com>\n"
"Language-Team: none\n"
"Language: es_AR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.10\n"
#. module: account_banking_sepa_credit_transfer
#: code:addons/account_banking_sepa_credit_transfer/models/account_payment_order.py:0
#, python-format
msgid ""
"Bank account is missing on the bank payment line of partner "
"'{partner}' (reference '{reference}')."
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_line__local_instrument__inst
msgid "Instant Transfer"
msgstr "Transferencia Instantánea"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields,field_description:account_banking_sepa_credit_transfer.field_account_payment_line__local_instrument
msgid "Local Instrument"
msgstr "Instrumento Local"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields,field_description:account_banking_sepa_credit_transfer.field_account_payment_method__pain_version
msgid "PAIN Version"
msgstr "Versión PAIN"
#. module: account_banking_sepa_credit_transfer
#: code:addons/account_banking_sepa_credit_transfer/models/account_payment_order.py:0
#, python-format
msgid "PAIN version '%s' is not supported."
msgstr "Versión PAIN '%s' no está soportada."
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_line
msgid "Payment Lines"
msgstr "Líneas de Pago"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_method
msgid "Payment Methods"
msgstr "Métodos de Pago"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_order
msgid "Payment Order"
msgstr "Orden de Pago"
#. module: account_banking_sepa_credit_transfer
#: model:account.payment.method,name:account_banking_sepa_credit_transfer.sepa_credit_transfer
#: model:account.payment.mode,name:account_banking_sepa_credit_transfer.payment_mode_outbound_sepa_ct1
msgid "SEPA Credit Transfer to suppliers"
msgstr "Crédito SEPA para Transferir a proveedores"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_02
msgid "pain.001.001.02"
msgstr "pain.001.001.02"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_03
msgid "pain.001.001.03 (recommended for credit transfer)"
msgstr "pain.001.001.03 (recomendada para transferencia de crédito)"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_04
msgid "pain.001.001.04"
msgstr "pain.001.001.04"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_05
msgid "pain.001.001.05"
msgstr "pain.001.001.05"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_003_03
msgid "pain.001.003.03"
msgstr ""
#, python-format
#~ msgid ""
#~ "Bank account is missing on the bank payment line of partner "
#~ "'%s' (reference '%s')."
#~ msgstr ""
#~ "Falta la cuenta bancaria en la línea de pago bancaria del socio "
#~ "'%s' (referencia '%s')."
#~ msgid "pain.001.003.03 (credit transfer in Germany)"
#~ msgstr "pain.001.003.03 (transferencia de crédito en Alemania)"

View File

@@ -0,0 +1,108 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_banking_sepa_credit_transfer
#
# Translators:
# Nicolas JEUDY <njeudy@panda-chi.io>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-02-10 02:10+0000\n"
"PO-Revision-Date: 2021-04-10 14:55+0000\n"
"Last-Translator: Yves Le Doeuff <yld@alliasys.fr>\n"
"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.3.2\n"
#. module: account_banking_sepa_credit_transfer
#: code:addons/account_banking_sepa_credit_transfer/models/account_payment_order.py:0
#, python-format
msgid ""
"Bank account is missing on the bank payment line of partner "
"'{partner}' (reference '{reference}')."
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_line__local_instrument__inst
msgid "Instant Transfer"
msgstr "Transfert immédiat"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields,field_description:account_banking_sepa_credit_transfer.field_account_payment_line__local_instrument
msgid "Local Instrument"
msgstr "Instrument local"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields,field_description:account_banking_sepa_credit_transfer.field_account_payment_method__pain_version
msgid "PAIN Version"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: code:addons/account_banking_sepa_credit_transfer/models/account_payment_order.py:0
#, python-format
msgid "PAIN version '%s' is not supported."
msgstr "PAIN version '%s' n'est pas supporté."
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_line
msgid "Payment Lines"
msgstr "Lignes de règlement"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_method
msgid "Payment Methods"
msgstr "Methodes de règlement"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_order
msgid "Payment Order"
msgstr "Ordre de paiement"
#. module: account_banking_sepa_credit_transfer
#: model:account.payment.method,name:account_banking_sepa_credit_transfer.sepa_credit_transfer
#: model:account.payment.mode,name:account_banking_sepa_credit_transfer.payment_mode_outbound_sepa_ct1
msgid "SEPA Credit Transfer to suppliers"
msgstr "Virement SEPA aux fournisseurs"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_02
msgid "pain.001.001.02"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_03
msgid "pain.001.001.03 (recommended for credit transfer)"
msgstr "pain.001.001.03 (recommandé pour les virements)"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_04
#, fuzzy
msgid "pain.001.001.04"
msgstr "pain.001.001.04"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_05
#, fuzzy
msgid "pain.001.001.05"
msgstr "pain.001.001.05"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_003_03
msgid "pain.001.003.03"
msgstr ""
#, python-format
#~ msgid ""
#~ "Bank account is missing on the bank payment line of partner "
#~ "'%s' (reference '%s')."
#~ msgstr ""
#~ "Le compte bancaire est manquant sur la ligne de paiement bancaire du "
#~ "partenaire '%s' (référence '%s')."
#~ msgid "pain.001.003.03 (credit transfer in Germany)"
#~ msgstr "pain.001.003.03 (Virement en Allemagne)"

View File

@@ -0,0 +1,103 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_banking_sepa_credit_transfer
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2021-04-10 16:46+0000\n"
"Last-Translator: Yves Le Doeuff <yld@alliasys.fr>\n"
"Language-Team: none\n"
"Language: fr_FR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.3.2\n"
#. module: account_banking_sepa_credit_transfer
#: code:addons/account_banking_sepa_credit_transfer/models/account_payment_order.py:0
#, python-format
msgid ""
"Bank account is missing on the bank payment line of partner "
"'{partner}' (reference '{reference}')."
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_line__local_instrument__inst
msgid "Instant Transfer"
msgstr "Transfert immédiat"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields,field_description:account_banking_sepa_credit_transfer.field_account_payment_line__local_instrument
msgid "Local Instrument"
msgstr "Instrument local"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields,field_description:account_banking_sepa_credit_transfer.field_account_payment_method__pain_version
msgid "PAIN Version"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: code:addons/account_banking_sepa_credit_transfer/models/account_payment_order.py:0
#, python-format
msgid "PAIN version '%s' is not supported."
msgstr "PAIN version '%s' n'est pas supporté."
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_line
msgid "Payment Lines"
msgstr "Lignes de règlement"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_method
msgid "Payment Methods"
msgstr "Methodes de règlement"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_order
msgid "Payment Order"
msgstr "Ordre de paiement"
#. module: account_banking_sepa_credit_transfer
#: model:account.payment.method,name:account_banking_sepa_credit_transfer.sepa_credit_transfer
#: model:account.payment.mode,name:account_banking_sepa_credit_transfer.payment_mode_outbound_sepa_ct1
msgid "SEPA Credit Transfer to suppliers"
msgstr "Virement SEPA aux fournisseurs"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_02
msgid "pain.001.001.02"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_03
msgid "pain.001.001.03 (recommended for credit transfer)"
msgstr "pain.001.001.03 (recommandé pour les virements)"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_04
msgid "pain.001.001.04"
msgstr "pain.001.001.04"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_05
msgid "pain.001.001.05"
msgstr "pain.001.001.05"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_003_03
msgid "pain.001.003.03"
msgstr ""
#, python-format
#~ msgid ""
#~ "Bank account is missing on the bank payment line of partner "
#~ "'%s' (reference '%s')."
#~ msgstr ""
#~ "Le compte bancaire est manquant sur la ligne de paiement bancaire du "
#~ "partenaire '%s' (référence '%s')."
#~ msgid "pain.001.003.03 (credit transfer in Germany)"
#~ msgstr "pain.001.003.03 (Virement en Allemagne)"

View File

@@ -0,0 +1,95 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_banking_sepa_credit_transfer
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: bank-payment (10.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-06-03 00:10+0000\n"
"PO-Revision-Date: 2016-10-19 23:45+0000\n"
"Last-Translator: <>\n"
"Language-Team: Croatian (http://www.transifex.com/oca/OCA-bank-payment-10-0/"
"language/hr/)\n"
"Language: hr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
#. module: account_banking_sepa_credit_transfer
#: code:addons/account_banking_sepa_credit_transfer/models/account_payment_order.py:0
#, python-format
msgid ""
"Bank account is missing on the bank payment line of partner "
"'{partner}' (reference '{reference}')."
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_line__local_instrument__inst
msgid "Instant Transfer"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields,field_description:account_banking_sepa_credit_transfer.field_account_payment_line__local_instrument
msgid "Local Instrument"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields,field_description:account_banking_sepa_credit_transfer.field_account_payment_method__pain_version
msgid "PAIN Version"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: code:addons/account_banking_sepa_credit_transfer/models/account_payment_order.py:0
#, python-format
msgid "PAIN version '%s' is not supported."
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_line
msgid "Payment Lines"
msgstr "Stavke plaćanja"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_method
msgid "Payment Methods"
msgstr "Metode plaćanja"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_order
msgid "Payment Order"
msgstr "Nalog za plaćanje"
#. module: account_banking_sepa_credit_transfer
#: model:account.payment.method,name:account_banking_sepa_credit_transfer.sepa_credit_transfer
#: model:account.payment.mode,name:account_banking_sepa_credit_transfer.payment_mode_outbound_sepa_ct1
msgid "SEPA Credit Transfer to suppliers"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_02
msgid "pain.001.001.02"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_03
msgid "pain.001.001.03 (recommended for credit transfer)"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_04
msgid "pain.001.001.04"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_05
msgid "pain.001.001.05"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_003_03
msgid "pain.001.003.03"
msgstr ""

View File

@@ -0,0 +1,96 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_banking_sepa_credit_transfer
#
# Translators:
# Imre Kristoffer Eilertsen <imreeil42@gmail.com>, 2016
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-07-30 07:37+0000\n"
"PO-Revision-Date: 2016-07-30 07:37+0000\n"
"Last-Translator: Imre Kristoffer Eilertsen <imreeil42@gmail.com>, 2016\n"
"Language-Team: Norwegian Bokmål (Norway) (https://www.transifex.com/oca/"
"teams/23907/nb_NO/)\n"
"Language: nb_NO\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_banking_sepa_credit_transfer
#: code:addons/account_banking_sepa_credit_transfer/models/account_payment_order.py:0
#, python-format
msgid ""
"Bank account is missing on the bank payment line of partner "
"'{partner}' (reference '{reference}')."
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_line__local_instrument__inst
msgid "Instant Transfer"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields,field_description:account_banking_sepa_credit_transfer.field_account_payment_line__local_instrument
msgid "Local Instrument"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields,field_description:account_banking_sepa_credit_transfer.field_account_payment_method__pain_version
msgid "PAIN Version"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: code:addons/account_banking_sepa_credit_transfer/models/account_payment_order.py:0
#, python-format
msgid "PAIN version '%s' is not supported."
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_line
#, fuzzy
msgid "Payment Lines"
msgstr "Betalingsordre"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_method
msgid "Payment Methods"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_order
msgid "Payment Order"
msgstr "Betalingsordre"
#. module: account_banking_sepa_credit_transfer
#: model:account.payment.method,name:account_banking_sepa_credit_transfer.sepa_credit_transfer
#: model:account.payment.mode,name:account_banking_sepa_credit_transfer.payment_mode_outbound_sepa_ct1
msgid "SEPA Credit Transfer to suppliers"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_02
msgid "pain.001.001.02"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_03
msgid "pain.001.001.03 (recommended for credit transfer)"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_04
msgid "pain.001.001.04"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_05
msgid "pain.001.001.05"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_003_03
msgid "pain.001.003.03"
msgstr ""

View File

@@ -0,0 +1,118 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_banking_sepa_credit_transfer
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-11-23 03:38+0000\n"
"PO-Revision-Date: 2020-07-21 13:19+0000\n"
"Last-Translator: Yung-Wa <yw.ng@onestein.nl>\n"
"Language-Team: Dutch (https://www.transifex.com/oca/teams/23907/nl/)\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.10\n"
#. module: account_banking_sepa_credit_transfer
#: code:addons/account_banking_sepa_credit_transfer/models/account_payment_order.py:0
#, python-format
msgid ""
"Bank account is missing on the bank payment line of partner "
"'{partner}' (reference '{reference}')."
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_line__local_instrument__inst
msgid "Instant Transfer"
msgstr "Directe Overdracht"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields,field_description:account_banking_sepa_credit_transfer.field_account_payment_line__local_instrument
msgid "Local Instrument"
msgstr "Lokaal Instrument"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields,field_description:account_banking_sepa_credit_transfer.field_account_payment_method__pain_version
msgid "PAIN Version"
msgstr "PAIN Versie"
#. module: account_banking_sepa_credit_transfer
#: code:addons/account_banking_sepa_credit_transfer/models/account_payment_order.py:0
#, python-format
msgid "PAIN version '%s' is not supported."
msgstr "PAIN versie '%s' is niet ondersteund."
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_line
msgid "Payment Lines"
msgstr "Betaalregels"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_method
msgid "Payment Methods"
msgstr "Betaalwijzes"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_order
msgid "Payment Order"
msgstr "Betalingsopdracht"
#. module: account_banking_sepa_credit_transfer
#: model:account.payment.method,name:account_banking_sepa_credit_transfer.sepa_credit_transfer
#: model:account.payment.mode,name:account_banking_sepa_credit_transfer.payment_mode_outbound_sepa_ct1
msgid "SEPA Credit Transfer to suppliers"
msgstr "SEPA overboeking naar leveranciers"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_02
msgid "pain.001.001.02"
msgstr "pain.001.001.02"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_03
msgid "pain.001.001.03 (recommended for credit transfer)"
msgstr "pain.001.001.03 (aanbevolen voor overboeking)"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_04
msgid "pain.001.001.04"
msgstr "pain.001.001.04"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_05
msgid "pain.001.001.05"
msgstr "pain.001.001.05"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_003_03
msgid "pain.001.003.03"
msgstr ""
#, python-format
#~ msgid ""
#~ "Bank account is missing on the bank payment line of partner "
#~ "'%s' (reference '%s')."
#~ msgstr ""
#~ "Bankrekening ontbreekt op de betaalregel van relatie '%s' (reference "
#~ "'%s')."
#~ msgid "pain.001.003.03 (credit transfer in Germany)"
#~ msgstr "pain.001.003.03 (overboeking in Duitsland)"
#~ msgid "pain.008.001.02 (recommended for direct debit)"
#~ msgstr "pain.008.001.02 (aanbevolen voor automatische incasso)"
#~ msgid "pain.008.001.03"
#~ msgstr "pain.008.001.03"
#~ msgid "pain.008.001.04"
#~ msgstr "pain.008.001.04"
#~ msgid "pain.008.003.02 (direct debit in Germany)"
#~ msgstr "pain.008.003.02 (automatische incasso in Duitsland)"

View File

@@ -0,0 +1,103 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_banking_sepa_credit_transfer
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-11-23 03:38+0000\n"
"PO-Revision-Date: 2017-11-23 03:38+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/"
"teams/23907/pt_BR/)\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: account_banking_sepa_credit_transfer
#: code:addons/account_banking_sepa_credit_transfer/models/account_payment_order.py:0
#, python-format
msgid ""
"Bank account is missing on the bank payment line of partner "
"'{partner}' (reference '{reference}')."
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_line__local_instrument__inst
msgid "Instant Transfer"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields,field_description:account_banking_sepa_credit_transfer.field_account_payment_line__local_instrument
msgid "Local Instrument"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields,field_description:account_banking_sepa_credit_transfer.field_account_payment_method__pain_version
msgid "PAIN Version"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: code:addons/account_banking_sepa_credit_transfer/models/account_payment_order.py:0
#, python-format
msgid "PAIN version '%s' is not supported."
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_line
msgid "Payment Lines"
msgstr "Linhas do pagamento"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_method
msgid "Payment Methods"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_order
msgid "Payment Order"
msgstr "Ordem de Pagamento"
#. module: account_banking_sepa_credit_transfer
#: model:account.payment.method,name:account_banking_sepa_credit_transfer.sepa_credit_transfer
#: model:account.payment.mode,name:account_banking_sepa_credit_transfer.payment_mode_outbound_sepa_ct1
msgid "SEPA Credit Transfer to suppliers"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_02
msgid "pain.001.001.02"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_03
msgid "pain.001.001.03 (recommended for credit transfer)"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_04
msgid "pain.001.001.04"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_05
msgid "pain.001.001.05"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_003_03
msgid "pain.001.003.03"
msgstr ""
#, python-format
#~ msgid ""
#~ "Bank account is missing on the bank payment line of partner "
#~ "'%s' (reference '%s')."
#~ msgstr ""
#~ "Conta bancária está faltando na linha de pagamento do parceiro '%s' (ref. "
#~ "'%s')."

View File

@@ -0,0 +1,103 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_banking_sepa_credit_transfer
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-11-23 03:38+0000\n"
"PO-Revision-Date: 2017-11-23 03:38+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n"
"Language: sl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
"%100==4 ? 2 : 3);\n"
#. module: account_banking_sepa_credit_transfer
#: code:addons/account_banking_sepa_credit_transfer/models/account_payment_order.py:0
#, python-format
msgid ""
"Bank account is missing on the bank payment line of partner "
"'{partner}' (reference '{reference}')."
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_line__local_instrument__inst
msgid "Instant Transfer"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields,field_description:account_banking_sepa_credit_transfer.field_account_payment_line__local_instrument
msgid "Local Instrument"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields,field_description:account_banking_sepa_credit_transfer.field_account_payment_method__pain_version
msgid "PAIN Version"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: code:addons/account_banking_sepa_credit_transfer/models/account_payment_order.py:0
#, python-format
msgid "PAIN version '%s' is not supported."
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_line
msgid "Payment Lines"
msgstr "Plačilne postavke"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_method
msgid "Payment Methods"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_order
msgid "Payment Order"
msgstr "Plačilni nalog"
#. module: account_banking_sepa_credit_transfer
#: model:account.payment.method,name:account_banking_sepa_credit_transfer.sepa_credit_transfer
#: model:account.payment.mode,name:account_banking_sepa_credit_transfer.payment_mode_outbound_sepa_ct1
msgid "SEPA Credit Transfer to suppliers"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_02
msgid "pain.001.001.02"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_03
msgid "pain.001.001.03 (recommended for credit transfer)"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_04
msgid "pain.001.001.04"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_05
msgid "pain.001.001.05"
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_003_03
msgid "pain.001.003.03"
msgstr ""
#, python-format
#~ msgid ""
#~ "Bank account is missing on the bank payment line of partner "
#~ "'%s' (reference '%s')."
#~ msgstr ""
#~ "Pri postavki bančnega plačila partnerja '%s' (sklic '%s') manjka bančni "
#~ "račun."

View File

@@ -0,0 +1,112 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_banking_sepa_credit_transfer
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2022-02-10 18:22+0000\n"
"Last-Translator: Simon S <simon.stromberg@vertel.se>\n"
"Language-Team: none\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.3.2\n"
#. module: account_banking_sepa_credit_transfer
#: code:addons/account_banking_sepa_credit_transfer/models/account_payment_order.py:0
#, python-format
msgid ""
"Bank account is missing on the bank payment line of partner "
"'{partner}' (reference '{reference}')."
msgstr ""
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_line__local_instrument__inst
msgid "Instant Transfer"
msgstr "Direktöverföring"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields,field_description:account_banking_sepa_credit_transfer.field_account_payment_line__local_instrument
msgid "Local Instrument"
msgstr "Lokalt instrument"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields,field_description:account_banking_sepa_credit_transfer.field_account_payment_method__pain_version
msgid "PAIN Version"
msgstr "PAIN-version"
#. module: account_banking_sepa_credit_transfer
#: code:addons/account_banking_sepa_credit_transfer/models/account_payment_order.py:0
#, python-format
msgid "PAIN version '%s' is not supported."
msgstr "PAIN-version '%s' stöds ej."
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_line
msgid "Payment Lines"
msgstr "Betalningsrader"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_method
msgid "Payment Methods"
msgstr "Betalningsmetoder"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_account_payment_order
msgid "Payment Order"
msgstr "Betalningsorder"
#. module: account_banking_sepa_credit_transfer
#: model:account.payment.method,name:account_banking_sepa_credit_transfer.sepa_credit_transfer
#: model:account.payment.mode,name:account_banking_sepa_credit_transfer.payment_mode_outbound_sepa_ct1
msgid "SEPA Credit Transfer to suppliers"
msgstr "SEPA-kreditöverföring till leverantörer"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_02
msgid "pain.001.001.02"
msgstr "pain.001.001.02"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_03
msgid "pain.001.001.03 (recommended for credit transfer)"
msgstr "pain.001.001.03 (rekommenderas för kreditöverföring)"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_04
msgid "pain.001.001.04"
msgstr "pain.001.001.04"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_001_05
msgid "pain.001.001.05"
msgstr "pain.001.001.05"
#. module: account_banking_sepa_credit_transfer
#: model:ir.model.fields.selection,name:account_banking_sepa_credit_transfer.selection__account_payment_method__pain_version__pain_001_003_03
msgid "pain.001.003.03"
msgstr ""
#, python-format
#~ msgid ""
#~ "Bank account is missing on the bank payment line of partner "
#~ "'%s' (reference '%s')."
#~ msgstr ""
#~ "Bankkonto saknas på banbetalningsraden för kontakten '%s' (reference "
#~ "'%s')."
#~ msgid "Display Name"
#~ msgstr "Visningsnamn"
#~ msgid "ID"
#~ msgstr "ID"
#~ msgid "Last Modified on"
#~ msgstr "Senast ändrad den"
#~ msgid "pain.001.003.03 (credit transfer in Germany)"
#~ msgstr "pain.001.003.03 (kreditöverföring i Tyskland)"

View File

@@ -0,0 +1,3 @@
from . import account_payment_method
from . import account_payment_order
from . import account_payment_line

View File

@@ -0,0 +1,17 @@
# Copyright 2017-2020 Akretion - Alexis de Lattre <alexis.delattre@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import fields, models
class AccountPaymentLine(models.Model):
_inherit = "account.payment.line"
# Local_instrument 'INST' used for instant credit transfers
# which will begin on November 21st 2017, cf
# https://www.europeanpaymentscouncil.eu/document-library/
# rulebooks/2017-sepa-instant-credit-transfer-rulebook
local_instrument = fields.Selection(
selection_add=[("INST", "Instant Transfer")],
ondelete={"INST": "set null"},
)

View File

@@ -0,0 +1,49 @@
# Copyright 2016-2020 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo import api, fields, models
class AccountPaymentMethod(models.Model):
_inherit = "account.payment.method"
pain_version = fields.Selection(
selection_add=[
("pain.001.001.02", "pain.001.001.02"),
("pain.001.001.03", "pain.001.001.03 (recommended for credit transfer)"),
("pain.001.001.04", "pain.001.001.04"),
("pain.001.001.05", "pain.001.001.05"),
("pain.001.003.03", "pain.001.003.03"),
],
ondelete={
"pain.001.001.02": "set null",
"pain.001.001.03": "set null",
"pain.001.001.04": "set null",
"pain.001.001.05": "set null",
"pain.001.003.03": "set null",
},
)
def get_xsd_file_path(self):
self.ensure_one()
if self.pain_version in [
"pain.001.001.02",
"pain.001.001.03",
"pain.001.001.04",
"pain.001.001.05",
"pain.001.003.03",
]:
path = (
"account_banking_sepa_credit_transfer/data/%s.xsd" % self.pain_version
)
return path
return super().get_xsd_file_path()
@api.model
def _get_payment_method_information(self):
res = super()._get_payment_method_information()
res["sepa_credit_transfer"] = {
"mode": "multi",
"domain": [("type", "=", "bank")],
}
return res

View File

@@ -0,0 +1,210 @@
# Copyright 2010-2020 Akretion (www.akretion.com)
# Copyright 2014-2022 Tecnativa - Pedro M. Baeza
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from lxml import etree
from odoo import _, fields, models
from odoo.exceptions import UserError
class AccountPaymentOrder(models.Model):
_inherit = "account.payment.order"
def generate_payment_file(self): # noqa: C901
"""Creates the SEPA Credit Transfer file. That's the important code!"""
self.ensure_one()
if self.payment_method_id.code != "sepa_credit_transfer":
return super().generate_payment_file()
pain_flavor = self.payment_method_id.pain_version
# We use pain_flavor.startswith('pain.001.001.xx')
# to support country-specific extensions such as
# pain.001.001.03.ch.02 (cf l10n_ch_sepa)
if not pain_flavor:
raise UserError(_("PAIN version '%s' is not supported.") % pain_flavor)
if pain_flavor.startswith("pain.001.001.02"):
bic_xml_tag = "BIC"
name_maxsize = 70
root_xml_tag = "pain.001.001.02"
elif pain_flavor.startswith("pain.001.001.03"):
bic_xml_tag = "BIC"
# size 70 -> 140 for <Nm> with pain.001.001.03
# BUT the European Payment Council, in the document
# "SEPA Credit Transfer Scheme Customer-to-bank
# Implementation guidelines" v6.0 available on
# http://www.europeanpaymentscouncil.eu/knowledge_bank.cfm
# says that 'Nm' should be limited to 70
# so we follow the "European Payment Council"
# and we put 70 and not 140
name_maxsize = 70
root_xml_tag = "CstmrCdtTrfInitn"
elif pain_flavor.startswith("pain.001.001.04"):
bic_xml_tag = "BICFI"
name_maxsize = 140
root_xml_tag = "CstmrCdtTrfInitn"
elif pain_flavor.startswith("pain.001.001.05"):
bic_xml_tag = "BICFI"
name_maxsize = 140
root_xml_tag = "CstmrCdtTrfInitn"
# added pain.001.003.03 for German Banks
# it is not in the offical ISO 20022 documentations, but nearly all
# german banks are working with this instead 001.001.03
elif pain_flavor == "pain.001.003.03":
bic_xml_tag = "BIC"
name_maxsize = 70
root_xml_tag = "CstmrCdtTrfInitn"
else:
raise UserError(_("PAIN version '%s' is not supported.") % pain_flavor)
xsd_file = self.payment_method_id.get_xsd_file_path()
gen_args = {
"bic_xml_tag": bic_xml_tag,
"name_maxsize": name_maxsize,
"convert_to_ascii": self.payment_method_id.convert_to_ascii,
"payment_method": "TRF",
"file_prefix": "sct_",
"pain_flavor": pain_flavor,
"pain_xsd_file": xsd_file,
}
nsmap = self.generate_pain_nsmap()
attrib = self.generate_pain_attrib()
xml_root = etree.Element("Document", nsmap=nsmap, attrib=attrib)
pain_root = etree.SubElement(xml_root, root_xml_tag)
# A. Group header
header = self.generate_group_header_block(pain_root, gen_args)
group_header, nb_of_transactions_a, control_sum_a = header
transactions_count_a = 0
amount_control_sum_a = 0.0
lines_per_group = {}
# key = (requested_date, priority, local_instrument, categ_purpose)
# values = list of lines as object
for line in self.payment_ids:
payment_line = line.payment_line_ids[:1]
priority = payment_line.priority
local_instrument = payment_line.local_instrument
categ_purpose = payment_line.category_purpose
# The field line.date is the requested payment date
# taking into account the 'date_prefered' setting
# cf account_banking_payment_export/models/account_payment.py
# in the inherit of action_open()
key = (line.date, priority, local_instrument, categ_purpose)
if key in lines_per_group:
lines_per_group[key].append(line)
else:
lines_per_group[key] = [line]
for (requested_date, priority, local_instrument, categ_purpose), lines in list(
lines_per_group.items()
):
# B. Payment info
requested_date = fields.Date.to_string(requested_date)
(
payment_info,
nb_of_transactions_b,
control_sum_b,
) = self.generate_start_payment_info_block(
pain_root,
"self.name + '-' "
"+ requested_date.replace('-', '') + '-' + priority + "
"'-' + local_instrument + '-' + category_purpose",
priority,
local_instrument,
categ_purpose,
False,
requested_date,
{
"self": self,
"priority": priority,
"requested_date": requested_date,
"local_instrument": local_instrument or "NOinstr",
"category_purpose": categ_purpose or "NOcateg",
},
gen_args,
)
self.generate_party_block(
payment_info, "Dbtr", "B", self.company_partner_bank_id, gen_args
)
charge_bearer = etree.SubElement(payment_info, "ChrgBr")
if self.sepa:
charge_bearer_text = "SLEV"
else:
charge_bearer_text = self.charge_bearer
charge_bearer.text = charge_bearer_text
transactions_count_b = 0
amount_control_sum_b = 0.0
for line in lines:
transactions_count_a += 1
transactions_count_b += 1
# C. Credit Transfer Transaction Info
credit_transfer_transaction_info = etree.SubElement(
payment_info, "CdtTrfTxInf"
)
payment_identification = etree.SubElement(
credit_transfer_transaction_info, "PmtId"
)
instruction_identification = etree.SubElement(
payment_identification, "InstrId"
)
instruction_identification.text = self._prepare_field(
"Instruction Identification",
"str(line.move_id.id)",
{"line": line},
35,
gen_args=gen_args,
)
end2end_identification = etree.SubElement(
payment_identification, "EndToEndId"
)
end2end_identification.text = self._prepare_field(
"End to End Identification",
"str(line.move_id.id)",
{"line": line},
35,
gen_args=gen_args,
)
currency_name = self._prepare_field(
"Currency Code",
"line.currency_id.name",
{"line": line},
3,
gen_args=gen_args,
)
amount = etree.SubElement(credit_transfer_transaction_info, "Amt")
instructed_amount = etree.SubElement(
amount, "InstdAmt", Ccy=currency_name
)
instructed_amount.text = "%.2f" % line.amount
amount_control_sum_a += line.amount
amount_control_sum_b += line.amount
if not line.partner_bank_id:
raise UserError(
_(
"Bank account is missing on the bank payment line "
"of partner '{partner}' (reference '{reference}')."
).format(partner=line.partner_id.name, reference=line.name)
)
self.generate_party_block(
credit_transfer_transaction_info,
"Cdtr",
"C",
line.partner_bank_id,
gen_args,
line,
)
line_purpose = line.payment_line_ids[:1].purpose
if line_purpose:
purpose = etree.SubElement(credit_transfer_transaction_info, "Purp")
etree.SubElement(purpose, "Cd").text = line_purpose
self.generate_remittance_info_block(
credit_transfer_transaction_info, line, gen_args
)
if not pain_flavor.startswith("pain.001.001.02"):
nb_of_transactions_b.text = str(transactions_count_b)
control_sum_b.text = "%.2f" % amount_control_sum_b
if not pain_flavor.startswith("pain.001.001.02"):
nb_of_transactions_a.text = str(transactions_count_a)
control_sum_a.text = "%.2f" % amount_control_sum_a
else:
nb_of_transactions_a.text = str(transactions_count_a)
control_sum_a.text = "%.2f" % amount_control_sum_a
return self.finalize_sepa_file_creation(xml_root, gen_args)

View File

@@ -0,0 +1,6 @@
* Create a Payment Mode dedicated to SEPA Credit Transfer.
* Select the Payment Method *SEPA Credit Transfer to suppliers* (which is
automatically created upon module installation).
* Check that this payment method uses the proper version of PAIN.

View File

@@ -0,0 +1,24 @@
* Alexis de Lattre <alexis.delattre@akretion.com>
* Stéphane Bidoul <stephane.bidoul@acsone.eu>
* Stefan Rijnhart
* Julien Laloux
* Alexandre Fayolle
* Raphaël Valyi
* Erwin van der Ploeg
* Sandy Carter
* `Tecnativa <https://www.tecnativa.com>`__:
* Antonio Espinosa
* Pedro M. Baeza
* Carlos Roca
* `DynApps NV <https://www.dynapps.be>`_:
* Axel Priem <axel.priem@dynapps.be>
* `Sygel Technology <https://www.sygel.es>`_:
* Valentin Vinagre <valentin.vinagre@sygel.es>
* Manuel Regidor <manuel.regidor@sygel.es>
* `Trobz <https://trobz.com>`_:
* Dung Tran <dungtd@trobz.com>

View File

@@ -0,0 +1 @@
The migration of this module from 15.0 to 16.0 was financially supported by Camptocamp

View File

@@ -0,0 +1,16 @@
Module to export payment orders in SEPA XML file format.
SEPA PAIN (PAyment INitiation) is the new european standard for
Customer-to-Bank payment instructions. This module implements SEPA Credit
Transfer (SCT), more specifically PAIN versions 001.001.02, 001.001.03,
001.001.04 and 001.001.05. It is part of the ISO 20022 standard, available on
https://www.iso20022.org.
The Implementation Guidelines for SEPA Credit Transfer published by the
European Payments Council (https://www.europeanpaymentscouncil.eu) use
PAIN version 001.001.03, so it's probably the version of PAIN that you should
try first.
It also includes pain.001.003.03 which is used in Germany instead of 001.001.03.
You can read more about this here (only in german language):
http://www.ebics.de/startseite/

View File

@@ -0,0 +1,4 @@
This module depends on :
* account_banking_pain_base
This module is part of the OCA/bank-payment suite.

View File

@@ -0,0 +1,3 @@
In the menu *Invoicing/Accounting > Vendors > Payment Orders*, create a new
payment order and select the Payment Mode dedicated to SEPA Credit
Transfer that you created during the configuration step.

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 23 KiB

View File

@@ -0,0 +1,487 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils: http://docutils.sourceforge.net/" />
<title>Account Banking SEPA Credit Transfer</title>
<style type="text/css">
/*
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
customize this style sheet.
*/
/* used to remove borders from tables and images */
.borderless, table.borderless td, table.borderless th {
border: 0 }
table.borderless td, table.borderless th {
/* Override padding for "table.docutils td" with "! important".
The right padding separates the table cells. */
padding: 0 0.5em 0 0 ! important }
.first {
/* Override more specific margin styles with "! important". */
margin-top: 0 ! important }
.last, .with-subtitle {
margin-bottom: 0 ! important }
.hidden {
display: none }
.subscript {
vertical-align: sub;
font-size: smaller }
.superscript {
vertical-align: super;
font-size: smaller }
a.toc-backref {
text-decoration: none ;
color: black }
blockquote.epigraph {
margin: 2em 5em ; }
dl.docutils dd {
margin-bottom: 0.5em }
object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
overflow: hidden;
}
/* Uncomment (and remove this text!) to get bold-faced definition list terms
dl.docutils dt {
font-weight: bold }
*/
div.abstract {
margin: 2em 5em }
div.abstract p.topic-title {
font-weight: bold ;
text-align: center }
div.admonition, div.attention, div.caution, div.danger, div.error,
div.hint, div.important, div.note, div.tip, div.warning {
margin: 2em ;
border: medium outset ;
padding: 1em }
div.admonition p.admonition-title, div.hint p.admonition-title,
div.important p.admonition-title, div.note p.admonition-title,
div.tip p.admonition-title {
font-weight: bold ;
font-family: sans-serif }
div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title, .code .error {
color: red ;
font-weight: bold ;
font-family: sans-serif }
/* Uncomment (and remove this text!) to get reduced vertical space in
compound paragraphs.
div.compound .compound-first, div.compound .compound-middle {
margin-bottom: 0.5em }
div.compound .compound-last, div.compound .compound-middle {
margin-top: 0.5em }
*/
div.dedication {
margin: 2em 5em ;
text-align: center ;
font-style: italic }
div.dedication p.topic-title {
font-weight: bold ;
font-style: normal }
div.figure {
margin-left: 2em ;
margin-right: 2em }
div.footer, div.header {
clear: both;
font-size: smaller }
div.line-block {
display: block ;
margin-top: 1em ;
margin-bottom: 1em }
div.line-block div.line-block {
margin-top: 0 ;
margin-bottom: 0 ;
margin-left: 1.5em }
div.sidebar {
margin: 0 0 0.5em 1em ;
border: medium outset ;
padding: 1em ;
background-color: #ffffee ;
width: 40% ;
float: right ;
clear: right }
div.sidebar p.rubric {
font-family: sans-serif ;
font-size: medium }
div.system-messages {
margin: 5em }
div.system-messages h1 {
color: red }
div.system-message {
border: medium outset ;
padding: 1em }
div.system-message p.system-message-title {
color: red ;
font-weight: bold }
div.topic {
margin: 2em }
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
margin-top: 0.4em }
h1.title {
text-align: center }
h2.subtitle {
text-align: center }
hr.docutils {
width: 75% }
img.align-left, .figure.align-left, object.align-left, table.align-left {
clear: left ;
float: left ;
margin-right: 1em }
img.align-right, .figure.align-right, object.align-right, table.align-right {
clear: right ;
float: right ;
margin-left: 1em }
img.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}
table.align-center {
margin-left: auto;
margin-right: auto;
}
.align-left {
text-align: left }
.align-center {
clear: both ;
text-align: center }
.align-right {
text-align: right }
/* reset inner alignment in figures */
div.align-right {
text-align: inherit }
/* div.align-center * { */
/* text-align: left } */
.align-top {
vertical-align: top }
.align-middle {
vertical-align: middle }
.align-bottom {
vertical-align: bottom }
ol.simple, ul.simple {
margin-bottom: 1em }
ol.arabic {
list-style: decimal }
ol.loweralpha {
list-style: lower-alpha }
ol.upperalpha {
list-style: upper-alpha }
ol.lowerroman {
list-style: lower-roman }
ol.upperroman {
list-style: upper-roman }
p.attribution {
text-align: right ;
margin-left: 50% }
p.caption {
font-style: italic }
p.credits {
font-style: italic ;
font-size: smaller }
p.label {
white-space: nowrap }
p.rubric {
font-weight: bold ;
font-size: larger ;
color: maroon ;
text-align: center }
p.sidebar-title {
font-family: sans-serif ;
font-weight: bold ;
font-size: larger }
p.sidebar-subtitle {
font-family: sans-serif ;
font-weight: bold }
p.topic-title {
font-weight: bold }
pre.address {
margin-bottom: 0 ;
margin-top: 0 ;
font: inherit }
pre.literal-block, pre.doctest-block, pre.math, pre.code {
margin-left: 2em ;
margin-right: 2em }
pre.code .ln { color: grey; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
pre.code .literal.string, code .literal.string { color: #0C5404 }
pre.code .name.builtin, code .name.builtin { color: #352B84 }
pre.code .deleted, code .deleted { background-color: #DEB0A1}
pre.code .inserted, code .inserted { background-color: #A3D289}
span.classifier {
font-family: sans-serif ;
font-style: oblique }
span.classifier-delimiter {
font-family: sans-serif ;
font-weight: bold }
span.interpreted {
font-family: sans-serif }
span.option {
white-space: nowrap }
span.pre {
white-space: pre }
span.problematic {
color: red }
span.section-subtitle {
/* font-size relative to parent (h1..h6 element) */
font-size: 80% }
table.citation {
border-left: solid 1px gray;
margin-left: 1px }
table.docinfo {
margin: 2em 4em }
table.docutils {
margin-top: 0.5em ;
margin-bottom: 0.5em }
table.footnote {
border-left: solid 1px black;
margin-left: 1px }
table.docutils td, table.docutils th,
table.docinfo td, table.docinfo th {
padding-left: 0.5em ;
padding-right: 0.5em ;
vertical-align: top }
table.docutils th.field-name, table.docinfo th.docinfo-name {
font-weight: bold ;
text-align: left ;
white-space: nowrap ;
padding-left: 0 }
/* "booktabs" style (no vertical lines) */
table.docutils.booktabs {
border: 0px;
border-top: 2px solid;
border-bottom: 2px solid;
border-collapse: collapse;
}
table.docutils.booktabs * {
border: 0px;
}
table.docutils.booktabs th {
border-bottom: thin solid;
text-align: left;
}
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
font-size: 100% }
ul.auto-toc {
list-style-type: none }
</style>
</head>
<body>
<div class="document" id="account-banking-sepa-credit-transfer">
<h1 class="title">Account Banking SEPA Credit Transfer</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/bank-payment/tree/16.0/account_banking_sepa_credit_transfer"><img alt="OCA/bank-payment" src="https://img.shields.io/badge/github-OCA%2Fbank--payment-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/bank-payment-16-0/bank-payment-16-0-account_banking_sepa_credit_transfer"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runboat.odoo-community.org/webui/builds.html?repo=OCA/bank-payment&amp;target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p>Module to export payment orders in SEPA XML file format.</p>
<p>SEPA PAIN (PAyment INitiation) is the new european standard for
Customer-to-Bank payment instructions. This module implements SEPA Credit
Transfer (SCT), more specifically PAIN versions 001.001.02, 001.001.03,
001.001.04 and 001.001.05. It is part of the ISO 20022 standard, available on
<a class="reference external" href="https://www.iso20022.org">https://www.iso20022.org</a>.</p>
<p>The Implementation Guidelines for SEPA Credit Transfer published by the
European Payments Council (<a class="reference external" href="https://www.europeanpaymentscouncil.eu">https://www.europeanpaymentscouncil.eu</a>) use
PAIN version 001.001.03, so its probably the version of PAIN that you should
try first.</p>
<p>It also includes pain.001.003.03 which is used in Germany instead of 001.001.03.
You can read more about this here (only in german language):
<a class="reference external" href="http://www.ebics.de/startseite/">http://www.ebics.de/startseite/</a></p>
<p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><a class="reference internal" href="#installation" id="id1">Installation</a></li>
<li><a class="reference internal" href="#configuration" id="id2">Configuration</a></li>
<li><a class="reference internal" href="#usage" id="id3">Usage</a></li>
<li><a class="reference internal" href="#bug-tracker" id="id4">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="id5">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="id6">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="id7">Contributors</a></li>
<li><a class="reference internal" href="#other-credits" id="id8">Other credits</a></li>
<li><a class="reference internal" href="#maintainers" id="id9">Maintainers</a></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="installation">
<h1><a class="toc-backref" href="#id1">Installation</a></h1>
<p>This module depends on :
* account_banking_pain_base</p>
<p>This module is part of the OCA/bank-payment suite.</p>
</div>
<div class="section" id="configuration">
<h1><a class="toc-backref" href="#id2">Configuration</a></h1>
<ul class="simple">
<li>Create a Payment Mode dedicated to SEPA Credit Transfer.</li>
<li>Select the Payment Method <em>SEPA Credit Transfer to suppliers</em> (which is
automatically created upon module installation).</li>
<li>Check that this payment method uses the proper version of PAIN.</li>
</ul>
</div>
<div class="section" id="usage">
<h1><a class="toc-backref" href="#id3">Usage</a></h1>
<p>In the menu <em>Invoicing/Accounting &gt; Vendors &gt; Payment Orders</em>, create a new
payment order and select the Payment Mode dedicated to SEPA Credit
Transfer that you created during the configuration step.</p>
</div>
<div class="section" id="bug-tracker">
<h1><a class="toc-backref" href="#id4">Bug Tracker</a></h1>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/bank-payment/issues">GitHub Issues</a>.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
<a class="reference external" href="https://github.com/OCA/bank-payment/issues/new?body=module:%20account_banking_sepa_credit_transfer%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p>
</div>
<div class="section" id="credits">
<h1><a class="toc-backref" href="#id5">Credits</a></h1>
<div class="section" id="authors">
<h2><a class="toc-backref" href="#id6">Authors</a></h2>
<ul class="simple">
<li>Akretion</li>
<li>Tecnativa</li>
</ul>
</div>
<div class="section" id="contributors">
<h2><a class="toc-backref" href="#id7">Contributors</a></h2>
<ul class="simple">
<li>Alexis de Lattre &lt;<a class="reference external" href="mailto:alexis.delattre&#64;akretion.com">alexis.delattre&#64;akretion.com</a>&gt;</li>
<li>Stéphane Bidoul &lt;<a class="reference external" href="mailto:stephane.bidoul&#64;acsone.eu">stephane.bidoul&#64;acsone.eu</a>&gt;</li>
<li>Stefan Rijnhart</li>
<li>Julien Laloux</li>
<li>Alexandre Fayolle</li>
<li>Raphaël Valyi</li>
<li>Erwin van der Ploeg</li>
<li>Sandy Carter</li>
<li><a class="reference external" href="https://www.tecnativa.com">Tecnativa</a>:<ul>
<li>Antonio Espinosa</li>
<li>Pedro M. Baeza</li>
<li>Carlos Roca</li>
</ul>
</li>
<li><a class="reference external" href="https://www.dynapps.be">DynApps NV</a>:<ul>
<li>Axel Priem &lt;<a class="reference external" href="mailto:axel.priem&#64;dynapps.be">axel.priem&#64;dynapps.be</a>&gt;</li>
</ul>
</li>
<li><a class="reference external" href="https://www.sygel.es">Sygel Technology</a>:<ul>
<li>Valentin Vinagre &lt;<a class="reference external" href="mailto:valentin.vinagre&#64;sygel.es">valentin.vinagre&#64;sygel.es</a>&gt;</li>
<li>Manuel Regidor &lt;<a class="reference external" href="mailto:manuel.regidor&#64;sygel.es">manuel.regidor&#64;sygel.es</a>&gt;</li>
</ul>
</li>
<li><a class="reference external" href="https://trobz.com">Trobz</a>:<ul>
<li>Dung Tran &lt;<a class="reference external" href="mailto:dungtd&#64;trobz.com">dungtd&#64;trobz.com</a>&gt;</li>
</ul>
</li>
</ul>
</div>
<div class="section" id="other-credits">
<h2><a class="toc-backref" href="#id8">Other credits</a></h2>
<p>The migration of this module from 15.0 to 16.0 was financially supported by Camptocamp</p>
</div>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#id9">Maintainers</a></h2>
<p>This module is maintained by the OCA.</p>
<a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a>
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.</p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/bank-payment/tree/16.0/account_banking_sepa_credit_transfer">OCA/bank-payment</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1 @@
from . import test_sct

View File

@@ -0,0 +1,374 @@
# Copyright 2016 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)
# Copyright 2020 Sygel Technology - Valentin Vinagre
# Copyright 2018-2022 Tecnativa - Pedro M. Baeza
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
import base64
import time
from lxml import etree
from odoo.exceptions import UserError
from odoo.tests.common import TransactionCase
class TestSCT(TransactionCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.account_model = cls.env["account.account"]
cls.move_model = cls.env["account.move"]
cls.journal_model = cls.env["account.journal"]
cls.payment_order_model = cls.env["account.payment.order"]
cls.payment_line_model = cls.env["account.payment.line"]
cls.partner_bank_model = cls.env["res.partner.bank"]
cls.attachment_model = cls.env["ir.attachment"]
cls.invoice_model = cls.env["account.move"]
cls.invoice_line_model = cls.env["account.move.line"]
cls.partner_agrolait = cls.env.ref("base.res_partner_2")
cls.partner_asus = cls.env.ref("base.res_partner_1")
cls.partner_c2c = cls.env.ref("base.res_partner_12")
cls.eur_currency = cls.env.ref("base.EUR")
cls.eur_currency.active = True
cls.usd_currency = cls.env.ref("base.USD")
cls.usd_currency.active = True
cls.main_company = cls.env["res.company"].create(
{"name": "Test EUR company", "currency_id": cls.eur_currency.id}
)
cls.partner_agrolait.company_id = cls.main_company.id
cls.partner_asus.company_id = cls.main_company.id
cls.partner_c2c.company_id = cls.main_company.id
cls.env.user.write(
{
"company_ids": [(6, 0, cls.main_company.ids)],
"company_id": cls.main_company.id,
}
)
cls.account_expense = cls.account_model.create(
{
"account_type": "expense",
"company_id": cls.main_company.id,
"name": "Test expense",
"code": "TE.1",
}
)
cls.account_payable = cls.account_model.create(
{
"account_type": "liability_payable",
"company_id": cls.main_company.id,
"name": "Test payable",
"code": "TP.1",
}
)
(cls.partner_asus + cls.partner_c2c + cls.partner_agrolait).with_company(
cls.main_company.id
).write({"property_account_payable_id": cls.account_payable.id})
cls.general_journal = cls.journal_model.create(
{
"name": "General journal",
"type": "general",
"code": "GEN",
"company_id": cls.main_company.id,
}
)
cls.purchase_journal = cls.journal_model.create(
{
"name": "Purchase journal",
"type": "purchase",
"code": "PUR",
"company_id": cls.main_company.id,
}
)
cls.partner_bank = cls.env.ref("account_payment_mode.main_company_iban").copy(
{
"company_id": cls.main_company.id,
"partner_id": cls.main_company.partner_id.id,
"bank_id": (
cls.env.ref("account_payment_mode.bank_la_banque_postale").id
),
}
)
cls.bank_journal = cls.journal_model.create(
{
"name": "Company Bank journal",
"type": "bank",
"code": "BNKFB",
"bank_account_id": cls.partner_bank.id,
"bank_id": cls.partner_bank.bank_id.id,
"company_id": cls.main_company.id,
"outbound_payment_method_line_ids": [
(
0,
0,
{
"payment_method_id": cls.env.ref(
"account_banking_sepa_credit_transfer.sepa_credit_transfer"
).id,
"payment_account_id": cls.account_expense.id,
},
)
],
}
)
# update payment mode
cls.payment_mode = cls.env.ref(
"account_banking_sepa_credit_transfer.payment_mode_outbound_sepa_ct1"
).copy({"company_id": cls.main_company.id})
cls.payment_mode.write(
{"bank_account_link": "fixed", "fixed_journal_id": cls.bank_journal.id}
)
# Trigger the recompute of account type on res.partner.bank
cls.partner_bank_model.search([])._compute_acc_type()
def test_no_pain(self):
self.payment_mode.payment_method_id.pain_version = False
with self.assertRaises(UserError):
self.check_eur_currency_sct()
def test_pain_001_03(self):
self.payment_mode.payment_method_id.pain_version = "pain.001.001.03"
self.check_eur_currency_sct()
def test_pain_001_04(self):
self.payment_mode.payment_method_id.pain_version = "pain.001.001.04"
self.check_eur_currency_sct()
def test_pain_001_05(self):
self.payment_mode.payment_method_id.pain_version = "pain.001.001.05"
self.check_eur_currency_sct()
def test_pain_003_03(self):
self.payment_mode.payment_method_id.pain_version = "pain.001.003.03"
self.check_eur_currency_sct()
def check_eur_currency_sct(self):
invoice1 = self.create_invoice(
self.partner_agrolait.id,
"account_payment_mode.res_partner_2_iban",
self.eur_currency.id,
42.0,
"F1341",
)
invoice2 = self.create_invoice(
self.partner_agrolait.id,
"account_payment_mode.res_partner_2_iban",
self.eur_currency.id,
12.0,
"F1342",
)
invoice3 = self.create_invoice(
self.partner_agrolait.id,
"account_payment_mode.res_partner_2_iban",
self.eur_currency.id,
5.0,
"A1301",
"in_refund",
)
invoice4 = self.create_invoice(
self.partner_c2c.id,
"account_payment_mode.res_partner_12_iban",
self.eur_currency.id,
11.0,
"I1642",
)
invoice5 = self.create_invoice(
self.partner_c2c.id,
"account_payment_mode.res_partner_12_iban",
self.eur_currency.id,
41.0,
"I1643",
)
for inv in [invoice1, invoice2, invoice3, invoice4, invoice5]:
action = inv.create_account_payment_line()
self.assertEqual(action["res_model"], "account.payment.order")
self.payment_order = self.payment_order_model.browse(action["res_id"])
self.assertEqual(self.payment_order.payment_type, "outbound")
self.assertEqual(self.payment_order.payment_mode_id, self.payment_mode)
self.assertEqual(self.payment_order.journal_id, self.bank_journal)
pay_lines = self.payment_line_model.search(
[
("partner_id", "=", self.partner_agrolait.id),
("order_id", "=", self.payment_order.id),
]
)
self.assertEqual(len(pay_lines), 3)
agrolait_pay_line1 = pay_lines[0]
self.assertEqual(agrolait_pay_line1.currency_id, self.eur_currency)
self.assertEqual(agrolait_pay_line1.partner_bank_id, invoice1.partner_bank_id)
self.assertEqual(
agrolait_pay_line1.currency_id.compare_amounts(
agrolait_pay_line1.amount_currency, 42
),
0,
)
self.assertEqual(agrolait_pay_line1.communication_type, "normal")
self.assertEqual(agrolait_pay_line1.communication, "F1341")
self.payment_order.draft2open()
self.assertEqual(self.payment_order.state, "open")
self.assertEqual(self.payment_order.sepa, True)
self.assertTrue(self.payment_order.payment_ids)
agrolait_bank_line = self.payment_order.payment_ids[0]
self.assertEqual(agrolait_bank_line.currency_id, self.eur_currency)
self.assertEqual(
agrolait_bank_line.currency_id.compare_amounts(
agrolait_bank_line.amount, 49.0
),
0,
)
self.assertEqual(agrolait_bank_line.payment_reference, "F1341-F1342-A1301")
self.assertEqual(agrolait_bank_line.partner_bank_id, invoice1.partner_bank_id)
action = self.payment_order.open2generated()
self.assertEqual(self.payment_order.state, "generated")
self.assertEqual(action["res_model"], "ir.attachment")
attachment = self.attachment_model.browse(action["res_id"])
self.assertEqual(attachment.name[-4:], ".xml")
xml_file = base64.b64decode(attachment.datas)
xml_root = etree.fromstring(xml_file)
namespaces = xml_root.nsmap
namespaces["p"] = xml_root.nsmap[None]
namespaces.pop(None)
pay_method_xpath = xml_root.xpath("//p:PmtInf/p:PmtMtd", namespaces=namespaces)
self.assertEqual(pay_method_xpath[0].text, "TRF")
sepa_xpath = xml_root.xpath(
"//p:PmtInf/p:PmtTpInf/p:SvcLvl/p:Cd", namespaces=namespaces
)
self.assertEqual(sepa_xpath[0].text, "SEPA")
debtor_acc_xpath = xml_root.xpath(
"//p:PmtInf/p:DbtrAcct/p:Id/p:IBAN", namespaces=namespaces
)
self.assertEqual(
debtor_acc_xpath[0].text,
self.payment_order.company_partner_bank_id.sanitized_acc_number,
)
self.payment_order.generated2uploaded()
self.assertEqual(self.payment_order.state, "uploaded")
for inv in [invoice1, invoice2, invoice3, invoice4, invoice5]:
self.assertEqual(inv.state, "posted")
self.assertEqual(
inv.currency_id.compare_amounts(inv.amount_residual, 0.0),
0,
)
return
def test_usd_currency_sct(self):
invoice1 = self.create_invoice(
self.partner_asus.id,
"account_payment_mode.res_partner_2_iban",
self.usd_currency.id,
2042.0,
"Inv9032",
)
invoice2 = self.create_invoice(
self.partner_asus.id,
"account_payment_mode.res_partner_2_iban",
self.usd_currency.id,
1012.0,
"Inv9033",
)
for inv in [invoice1, invoice2]:
action = inv.create_account_payment_line()
self.assertEqual(action["res_model"], "account.payment.order")
self.payment_order = self.payment_order_model.browse(action["res_id"])
self.assertEqual(self.payment_order.payment_type, "outbound")
self.assertEqual(self.payment_order.payment_mode_id, self.payment_mode)
self.assertEqual(self.payment_order.journal_id, self.bank_journal)
pay_lines = self.payment_line_model.search(
[
("partner_id", "=", self.partner_asus.id),
("order_id", "=", self.payment_order.id),
]
)
self.assertEqual(len(pay_lines), 2)
asus_pay_line1 = pay_lines[0]
self.assertEqual(asus_pay_line1.currency_id, self.usd_currency)
self.assertEqual(asus_pay_line1.partner_bank_id, invoice1.partner_bank_id)
self.assertEqual(
asus_pay_line1.currency_id.compare_amounts(
asus_pay_line1.amount_currency, 2042
),
0,
)
self.assertEqual(asus_pay_line1.communication_type, "normal")
self.assertEqual(asus_pay_line1.communication, "Inv9032")
self.payment_order.draft2open()
self.assertEqual(self.payment_order.state, "open")
self.assertEqual(self.payment_order.sepa, False)
self.assertEqual(self.payment_order.payment_count, 1)
asus_bank_line = self.payment_order.payment_ids[0]
self.assertEqual(asus_bank_line.currency_id, self.usd_currency)
self.assertEqual(
asus_bank_line.currency_id.compare_amounts(asus_bank_line.amount, 3054.0),
0,
)
self.assertEqual(asus_bank_line.payment_reference, "Inv9032-Inv9033")
self.assertEqual(asus_bank_line.partner_bank_id, invoice1.partner_bank_id)
action = self.payment_order.open2generated()
self.assertEqual(self.payment_order.state, "generated")
self.assertEqual(action["res_model"], "ir.attachment")
attachment = self.attachment_model.browse(action["res_id"])
self.assertEqual(attachment.name[-4:], ".xml")
xml_file = base64.b64decode(attachment.datas)
xml_root = etree.fromstring(xml_file)
namespaces = xml_root.nsmap
namespaces["p"] = xml_root.nsmap[None]
namespaces.pop(None)
pay_method_xpath = xml_root.xpath("//p:PmtInf/p:PmtMtd", namespaces=namespaces)
self.assertEqual(pay_method_xpath[0].text, "TRF")
sepa_xpath = xml_root.xpath(
"//p:PmtInf/p:PmtTpInf/p:SvcLvl/p:Cd", namespaces=namespaces
)
self.assertEqual(len(sepa_xpath), 0)
debtor_acc_xpath = xml_root.xpath(
"//p:PmtInf/p:DbtrAcct/p:Id/p:IBAN", namespaces=namespaces
)
self.assertEqual(
debtor_acc_xpath[0].text,
self.payment_order.company_partner_bank_id.sanitized_acc_number,
)
self.payment_order.generated2uploaded()
self.assertEqual(self.payment_order.state, "uploaded")
for inv in [invoice1, invoice2]:
self.assertEqual(inv.state, "posted")
self.assertEqual(
inv.currency_id.compare_amounts(inv.amount_residual, 0.0),
0,
)
return
@classmethod
def create_invoice(
cls,
partner_id,
partner_bank_xmlid,
currency_id,
price_unit,
reference,
move_type="in_invoice",
):
partner_bank = cls.env.ref(partner_bank_xmlid)
partner_bank.write({"company_id": False})
data = {
"partner_id": partner_id,
"reference_type": "none",
"ref": reference,
"currency_id": currency_id,
"invoice_date": time.strftime("%Y-%m-%d"),
"move_type": move_type,
"payment_mode_id": cls.payment_mode.id,
"partner_bank_id": partner_bank.id,
"company_id": cls.main_company.id,
"invoice_line_ids": [],
}
line_data = {
"name": "Great service",
"account_id": cls.account_expense.id,
"price_unit": price_unit,
"quantity": 1,
}
data["invoice_line_ids"].append((0, 0, line_data))
inv = cls.env["account.move"].create(data)
inv.action_post()
return inv

View File

@@ -0,0 +1 @@
../../../../account_banking_sepa_credit_transfer

View File

@@ -0,0 +1,6 @@
import setuptools
setuptools.setup(
setup_requires=['setuptools-odoo'],
odoo_addon=True,
)