Merge pull request #270 from akretion/9-sorrento-code-sprint

[9.0][2nd revolution] port to v9 with several improvements (sorrento code sprint)
This commit is contained in:
Stéphane Bidoul (ACSONE)
2016-06-27 10:41:35 +02:00
committed by GitHub
359 changed files with 16540 additions and 12446 deletions

View File

@@ -1,6 +1,7 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:alt: License: AGPL-3
=======================
Account Banking Mandate
=======================
@@ -31,22 +32,22 @@ Usage
To use this module, see menu "Accounting > payment > SEPA direct debit mandates"
For further information, please visit:
* https://www.odoo.com/forum/help-1
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/173/9.0
Known issues / Roadmap
======================
* no known issues
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
`here <https://github.com/OCA/bank-payment/issues/new?body=module:%20account_banking_mandate%0Aversion:%208.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
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.
Credits
=======
@@ -54,11 +55,11 @@ Credits
Contributors
------------
* Alexis de Lattre
* Alexis de Lattre <alexis.delattre@akretion.com>
* Pedro M. Baeza
* Alexandre Fayolle
* Stéphane Bidoul <stephane.bidoul@acsone.eu>
* Sergio Teruel (Incaser) <sergio@incaser.es>
* Stéphane Bidoul <stephane.bidoul@acsone.eu>
* Sergio Teruel (Incaser) <sergio@incaser.es>
Maintainer
----------

View File

@@ -1,22 +1,3 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# Mandate module for openERP
# Copyright (C) 2014 Compassion CH (http://www.compassion.ch)
# @author: Cyril Sester <csester@compassion.ch>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from . import models
# -*- coding: utf-8 -*-
from . import models

View File

@@ -1,29 +1,13 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# Mandate module for openERP
# Copyright (C) 2014 Compassion CH (http://www.compassion.ch)
# @author: Cyril Sester <csester@compassion.ch>,
# Alexis de Lattre <alexis.delattre@akretion.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
# -*- coding: utf-8 -*-
# © 2014 Compassion CH - Cyril Sester <csester@compassion.ch>
# © 2014 Serv. Tecnol. Avanzados - Pedro M. Baeza
# © 2015-2016 Akretion - Alexis de Lattre <alexis.delattre@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
{
'name': 'Account Banking Mandate',
'summary': 'Banking mandates',
'version': '8.0.0.1.0',
'version': '9.0.1.0.0',
'license': 'AGPL-3',
'author': "Compassion CH, "
"Serv. Tecnol. Avanzados - Pedro M. Baeza, "
@@ -32,21 +16,21 @@
'website': 'https://github.com/OCA/bank-payment',
'category': 'Banking addons',
'depends': [
'account_payment',
'account_payment_order',
],
'data': [
'views/account_banking_mandate_view.xml',
'views/account_payment_method.xml',
'views/account_invoice_view.xml',
'views/account_payment_view.xml',
'views/account_payment_line.xml',
'views/res_partner_bank_view.xml',
'views/res_partner.xml',
'views/bank_payment_line_view.xml',
'views/account_move_line.xml',
'data/mandate_reference_sequence.xml',
'data/report_paperformat.xml',
'security/mandate_security.xml',
'security/ir.model.access.csv',
'reports/account_banking_mandate_view.xml',
'reports/account_banking_mandate.xml',
],
'demo': [],
'test': ['test/banking_mandate.yml'],
'installable': False,
'installable': True,
}

View File

@@ -3,11 +3,6 @@
<data noupdate="1">
<record id="dd_mandate_seq_type" model="ir.sequence.type">
<field name="name">DD Mandate Reference</field>
<field name="code">account.banking.mandate</field>
</record>
<record id="dd_mandate_seq" model="ir.sequence">
<field name="name">DD Mandate Reference</field>
<field name="code">account.banking.mandate</field>

View File

@@ -0,0 +1,411 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_banking_mandate
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: bank-payment (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-04-08 00:46+0000\n"
"PO-Revision-Date: 2016-04-07 16:04+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>\n"
"Language-Team: English (http://www.transifex.com/oca/OCA-bank-payment-8-0/language/en/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: en\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_banking_mandate
#: model:ir.actions.act_window,help:account_banking_mandate.mandate_action
msgid ""
"<p class=\"oe_view_nocontent_create\">\n"
" Click to create a new Banking Mandate.\n"
" </p><p>\n"
" A Banking Mandate is a document signed by your customer that gives you the autorization to do one or several operations on his bank account.\n"
" </p>\n"
" "
msgstr "<p class=\"oe_view_nocontent_create\">\n Click to create a new Banking Mandate.\n </p><p>\n A Banking Mandate is a document signed by your customer that gives you the autorization to do one or several operations on his bank account.\n </p>\n "
#. module: account_banking_mandate
#: sql_constraint:account.banking.mandate:0
msgid "A Mandate with the same reference already exists for this company !"
msgstr "A Mandate with the same reference already exists for this company !"
#. module: account_banking_mandate
#: model:ir.model,name:account_banking_mandate.model_account_banking_mandate
msgid "A generic banking mandate"
msgstr "A generic banking mandate"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
msgid "Back to Draft"
msgstr "Back to Draft"
#. module: account_banking_mandate
#: field:account.banking.mandate,partner_bank_id:0
msgid "Bank Account"
msgstr "Bank Account"
#. module: account_banking_mandate
#: model:ir.model,name:account_banking_mandate.model_res_partner_bank
msgid "Bank Accounts"
msgstr "Bank Accounts"
#. module: account_banking_mandate
#: model:ir.model,name:account_banking_mandate.model_bank_payment_line
msgid "Bank Payment Lines"
msgstr "Bank Payment Lines"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
#: view:account.banking.mandate:account_banking_mandate.view_mandate_tree
msgid "Banking Mandate"
msgstr "Banking Mandate"
#. module: account_banking_mandate
#: model:mail.message.subtype,description:account_banking_mandate.mandate_cancel
msgid "Banking Mandate Cancelled"
msgstr "Banking Mandate Cancelled"
#. module: account_banking_mandate
#: model:mail.message.subtype,description:account_banking_mandate.mandate_valid
msgid "Banking Mandate Validated"
msgstr "Banking Mandate Validated"
#. module: account_banking_mandate
#: model:mail.message.subtype,description:account_banking_mandate.mandate_expired
msgid "Banking Mandate has Expired"
msgstr "Banking Mandate has Expired"
#. module: account_banking_mandate
#: model:ir.actions.act_window,name:account_banking_mandate.mandate_action
msgid "Banking Mandates"
msgstr "Banking Mandates"
#. module: account_banking_mandate
#: help:res.partner.bank,mandate_ids:0
msgid ""
"Banking mandates represents an authorization that the bank account owner "
"gives to a company for a specific operation"
msgstr "Banking mandates represents an authorization that the bank account owner gives to a company for a specific operation"
#. module: account_banking_mandate
#: selection:account.banking.mandate,format:0
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:39
#, python-format
msgid "Basic Mandate"
msgstr "Basic Mandate"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
msgid "Cancel"
msgstr "Cancel"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
msgid "Cancelled"
msgstr "Cancelled"
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:104
#, python-format
msgid ""
"Cannot validate the mandate '%s' because it is not attached to a bank "
"account."
msgstr "Cannot validate the mandate '%s' because it is not attached to a bank account."
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:100
#, python-format
msgid "Cannot validate the mandate '%s' without a date of signature."
msgstr "Cannot validate the mandate '%s' without a date of signature."
#. module: account_banking_mandate
#: field:account.banking.mandate,company_id:0
msgid "Company"
msgstr "Company"
#. module: account_banking_mandate
#: field:account.banking.mandate,create_uid:0
msgid "Created by"
msgstr "Created by"
#. module: account_banking_mandate
#: field:account.banking.mandate,create_date:0
msgid "Created on"
msgstr "Created on"
#. module: account_banking_mandate
#: view:res.partner:account_banking_mandate.mandate_partner_form
#: view:res.partner.bank:account_banking_mandate.mandate_partner_bank_tree
msgid "DD Mandates"
msgstr "DD Mandates"
#. module: account_banking_mandate
#: field:account.banking.mandate,signature_date:0
msgid "Date of Signature of the Mandate"
msgstr "Date of Signature of the Mandate"
#. module: account_banking_mandate
#: field:account.banking.mandate,last_debit_date:0
msgid "Date of the Last Debit"
msgstr "Date of the Last Debit"
#. module: account_banking_mandate
#: help:account.banking.mandate,message_last_post:0
msgid "Date of the last message posted on the record."
msgstr "Date of the last message posted on the record."
#. module: account_banking_mandate
#: field:account.invoice,mandate_id:0 field:payment.line,mandate_id:0
msgid "Direct Debit Mandate"
msgstr "Direct Debit Mandate"
#. module: account_banking_mandate
#: view:res.partner.bank:account_banking_mandate.mandate_partner_bank_form
#: field:res.partner.bank,mandate_ids:0
msgid "Direct Debit Mandates"
msgstr "Direct Debit Mandates"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
msgid "Draft"
msgstr "Draft"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
msgid "Expired"
msgstr "Expired"
#. module: account_banking_mandate
#: field:account.banking.mandate,message_follower_ids:0
msgid "Followers"
msgstr "Followers"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
#: view:account.banking.mandate:account_banking_mandate.view_mandate_tree
msgid "Format"
msgstr "Format"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
msgid "Group By"
msgstr "Group By"
#. module: account_banking_mandate
#: help:account.banking.mandate,message_summary:0
msgid ""
"Holds the Chatter summary (number of messages, ...). This summary is "
"directly in html format in order to be inserted in kanban views."
msgstr "Holds the Chatter summary (number of messages, ...). This summary is directly in html format in order to be inserted in kanban views."
#. module: account_banking_mandate
#: field:account.banking.mandate,id:0
msgid "ID"
msgstr "ID"
#. module: account_banking_mandate
#: help:account.banking.mandate,message_unread:0
msgid "If checked new messages require your attention."
msgstr "If checked new messages require your attention."
#. module: account_banking_mandate
#: model:ir.model,name:account_banking_mandate.model_account_invoice
msgid "Invoice"
msgstr "Invoice"
#. module: account_banking_mandate
#: field:account.banking.mandate,message_is_follower:0
msgid "Is a Follower"
msgstr "Is a Follower"
#. module: account_banking_mandate
#: field:account.banking.mandate,message_last_post:0
msgid "Last Message Date"
msgstr "Last Message Date"
#. module: account_banking_mandate
#: field:account.banking.mandate,write_uid:0
msgid "Last Updated by"
msgstr "Last Updated by"
#. module: account_banking_mandate
#: field:account.banking.mandate,write_date:0
msgid "Last Updated on"
msgstr "Last Updated on"
#. module: account_banking_mandate
#: view:bank.payment.line:account_banking_mandate.bank_payment_line_tree
#: view:payment.order:account_banking_mandate.view_mandate_payment_order_form
msgid "Mandate"
msgstr "Mandate"
#. module: account_banking_mandate
#: model:mail.message.subtype,name:account_banking_mandate.mandate_cancel
msgid "Mandate Cancelled"
msgstr "Mandate Cancelled"
#. module: account_banking_mandate
#: model:mail.message.subtype,name:account_banking_mandate.mandate_expired
msgid "Mandate Expired"
msgstr "Mandate Expired"
#. module: account_banking_mandate
#: field:account.banking.mandate,format:0
msgid "Mandate Format"
msgstr "Mandate Format"
#. module: account_banking_mandate
#: model:mail.message.subtype,name:account_banking_mandate.mandate_valid
msgid "Mandate Validated"
msgstr "Mandate Validated"
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:147
#, python-format
msgid "Mandate should be in cancel state"
msgstr "Mandate should be in cancel state"
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:135
#, python-format
msgid "Mandate should be in draft or valid state"
msgstr "Mandate should be in draft or valid state"
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:126
#, python-format
msgid "Mandate should be in draft state"
msgstr "Mandate should be in draft state"
#. module: account_banking_mandate
#: field:account.banking.mandate,message_ids:0
msgid "Messages"
msgstr "Messages"
#. module: account_banking_mandate
#: help:account.banking.mandate,message_ids:0
msgid "Messages and communication history"
msgstr "Messages and communication history"
#. module: account_banking_mandate
#: help:account.banking.mandate,state:0
msgid ""
"Only valid mandates can be used in a payment line. A cancelled mandate is a "
"mandate that has been cancelled by the customer."
msgstr "Only valid mandates can be used in a payment line. A cancelled mandate is a mandate that has been cancelled by the customer."
#. module: account_banking_mandate
#: field:account.banking.mandate,partner_id:0
msgid "Partner"
msgstr "Partner"
#. module: account_banking_mandate
#: model:ir.model,name:account_banking_mandate.model_payment_line
msgid "Payment Line"
msgstr "Payment Line"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_tree
msgid "Reference"
msgstr "Reference"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
msgid "Reference or Partner"
msgstr "Reference or Partner"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
#: field:account.banking.mandate,payment_line_ids:0
msgid "Related Payment Lines"
msgstr "Related Payment Lines"
#. module: account_banking_mandate
#: model:ir.ui.menu,name:account_banking_mandate.mandate_menu
msgid "SEPA Direct Debit Mandates"
msgstr "SEPA Direct Debit Mandates"
#. module: account_banking_mandate
#: field:account.banking.mandate,scan:0
msgid "Scan of the Mandate"
msgstr "Scan of the Mandate"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
msgid "Search Banking Mandates"
msgstr "Search Banking Mandates"
#. module: account_banking_mandate
#: selection:account.banking.mandate,format:0
msgid "Sepa Mandate"
msgstr "Sepa Mandate"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
#: view:account.banking.mandate:account_banking_mandate.view_mandate_tree
msgid "Signature Date"
msgstr "Signature Date"
#. module: account_banking_mandate
#: field:account.banking.mandate,state:0
msgid "Status"
msgstr "Status"
#. module: account_banking_mandate
#: field:account.banking.mandate,message_summary:0
msgid "Summary"
msgstr "Summary"
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:83
#, python-format
msgid "The date of signature of mandate '%s' is in the future !"
msgstr "The date of signature of mandate '%s' is in the future !"
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:89
#, python-format
msgid ""
"The mandate '%s' can't have a date of last debit before the date of "
"signature."
msgstr "The mandate '%s' can't have a date of last debit before the date of signature."
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/payment_line.py:51
#, python-format
msgid ""
"The payment line with reference '%s' has the bank account '%s' which is not "
"attached to the mandate '%s' (this mandate is attached to the bank account "
"'%s')."
msgstr "The payment line with reference '%s' has the bank account '%s' which is not attached to the mandate '%s' (this mandate is attached to the bank account '%s')."
#. module: account_banking_mandate
#: field:account.banking.mandate,unique_mandate_reference:0
msgid "Unique Mandate Reference"
msgstr "Unique Mandate Reference"
#. module: account_banking_mandate
#: field:account.banking.mandate,message_unread:0
msgid "Unread Messages"
msgstr "Unread Messages"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
msgid "Valid"
msgstr "Valid"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
msgid "Validate"
msgstr "Validate"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
msgid ""
"You should set a mandate back to draft only if you cancelled it by mistake. "
"Do you want to continue?"
msgstr "You should set a mandate back to draft only if you cancelled it by mistake. Do you want to continue?"

View File

@@ -1,40 +1,32 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_banking_mandate
#
# * account_banking_mandate
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Project-Id-Version: bank-payment (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-06-18 08:15+0000\n"
"PO-Revision-Date: 2015-06-18 11:36+0100\n"
"Last-Translator: Sergio Teruel <sergio@incaser.es>\n"
"Language-Team: \n"
"POT-Creation-Date: 2016-04-08 00:46+0000\n"
"PO-Revision-Date: 2016-04-07 16:04+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>\n"
"Language-Team: Spanish (http://www.transifex.com/oca/OCA-bank-payment-8-0/language/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.5.4\n"
"Content-Transfer-Encoding: \n"
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_banking_mandate
#: model:ir.actions.act_window,help:account_banking_mandate.mandate_action
#, fuzzy
msgid ""
"<p class=\"oe_view_nocontent_create\">\n"
" Click to create a new Banking Mandate.\n"
" </p><p>\n"
" A Banking Mandate is a document signed by your customer that gives "
"you the autorization to do one or several operations on his bank account.\n"
" </p>\n"
" "
msgstr ""
"<p class=\"oe_view_nocontent_create\">\n"
" Click to create a new Banking Mandate.\n"
" </p><p>\n"
" A Banking Mandate is a document signed by your customer that gives "
"you the autorization to do one or several operations on his bank account.\n"
" A Banking Mandate is a document signed by your customer that gives you the autorization to do one or several operations on his bank account.\n"
" </p>\n"
" "
msgstr "<p class=\"oe_view_nocontent_create\">\n Pulse para crear un nuevo mandato bancario.\n </p><p>\n Un mandato bancario es un documento firmado por su cliente que le da la autorización para hacer una o varias operaciones en su cuenta bancaria.\n </p>\n "
#. module: account_banking_mandate
#: sql_constraint:account.banking.mandate:0
@@ -46,24 +38,6 @@ msgstr "Ya existe un mandato con la misma referencia para esta compañía"
msgid "A generic banking mandate"
msgstr "Un mandato bancario genérico"
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid ""
"As part of your rights, you are entitled to a refund from your bank under "
"the terms and conditions of your agreement with your bank.\n"
" A refund must be claimed within 8 weeks starting "
"from the date on which your account was debited."
msgstr ""
"Como parte de sus derechos, el deudor está legitimado al reembolso por su "
"entidad en los términos y condiciones del contrato suscrito con la misma. "
"La solicitud de reembolso deberá efectuarse dentro de las ocho semanas que "
"siguen a la fecha de adeudo en cuenta."
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "BIC:"
msgstr "BIC:"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
msgid "Back to Draft"
@@ -77,12 +51,12 @@ msgstr "Cuenta bancaria"
#. module: account_banking_mandate
#: model:ir.model,name:account_banking_mandate.model_res_partner_bank
msgid "Bank Accounts"
msgstr "Cuentas bancarias"
msgstr "Cuentas de banco"
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "Bank name:"
msgstr "Banco:"
#: model:ir.model,name:account_banking_mandate.model_bank_payment_line
msgid "Bank Payment Lines"
msgstr "Líneas de pago bancario"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
@@ -115,15 +89,14 @@ msgstr "Mandatos bancarios"
msgid ""
"Banking mandates represents an authorization that the bank account owner "
"gives to a company for a specific operation"
msgstr ""
"Los mandatos bancarios representan una autorización que el propietario de la "
"cuenta bancaria da a la compañía para un operación específica"
msgstr "Los mandatos bancarios representan una autorización que el propietario de la cuenta bancaria da a la compañía para un operación específica"
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "By signing this mandate form, you authorise (A)"
msgstr ""
"Mediante la firma de esta orden de domiciliación, el deudor autoriza a (A) "
#: selection:account.banking.mandate,format:0
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:39
#, python-format
msgid "Basic Mandate"
msgstr "Mandato básico"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
@@ -136,17 +109,15 @@ msgid "Cancelled"
msgstr "Cancelado"
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:110
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:104
#, python-format
msgid ""
"Cannot validate the mandate '%s' because it is not attached to a bank "
"account."
msgstr ""
"No se puede validar el mandato '%s' porque no tiene ninguna cuenta bancaria "
"asociada."
msgstr "No se puede validar el mandato '%s' porque no tiene ninguna cuenta bancaria asociada."
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:106
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:100
#, python-format
msgid "Cannot validate the mandate '%s' without a date of signature."
msgstr "No se puede validar el mandato '%s' sin una fecha de firma."
@@ -166,11 +137,6 @@ msgstr "Creado por"
msgid "Created on"
msgstr "Creado en"
#. module: account_banking_mandate
#: view:payment.order:account_banking_mandate.view_mandate_payment_order_form
msgid "DD Mandate"
msgstr "Mandato bancario"
#. module: account_banking_mandate
#: view:res.partner:account_banking_mandate.mandate_partner_form
#: view:res.partner.bank:account_banking_mandate.mandate_partner_bank_tree
@@ -192,25 +158,6 @@ msgstr "Fecha del último cobro"
msgid "Date of the last message posted on the record."
msgstr "Fecha del último mensaje publicado en el registro."
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "Debtor identification code:"
msgstr "Código del deudor:"
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "Description of contract."
msgstr "Descripción del contrato."
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid ""
"Details regarding the underlying relationship between the Creditor and the "
"Debtor - for information purposes only."
msgstr ""
"Información sobre la relación subyacente entre el acreedor y el deudor - a "
"título meramente informativo."
#. module: account_banking_mandate
#: field:account.invoice,mandate_id:0 field:payment.line,mandate_id:0
msgid "Direct Debit Mandate"
@@ -238,13 +185,10 @@ msgid "Followers"
msgstr "Seguidores"
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid ""
"For business users: write any code number here which you wish to have quoted "
"by your bank."
msgstr ""
"Para usuarios empresas: Indique en este espacio cualquier número de código "
"con el que desea que su entidad financiera le identifique."
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
#: view:account.banking.mandate:account_banking_mandate.view_mandate_tree
msgid "Format"
msgstr "Formato"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
@@ -256,52 +200,18 @@ msgstr "Agrupar por"
msgid ""
"Holds the Chatter summary (number of messages, ...). This summary is "
"directly in html format in order to be inserted in kanban views."
msgstr ""
"Contiene el resumen del chatter (nº de mensajes, ...). Este resumen está "
"directamente en formato html para ser insertado en vistas kanban."
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "IBAN:"
msgstr "IBAN:"
msgstr "Contiene el resumen del chatter (nº de mensajes, ...). Este resumen está directamente en formato html para ser insertado en vistas kanban."
#. module: account_banking_mandate
#: field:account.banking.mandate,id:0
msgid "ID"
msgstr "ID"
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "Identification code of the Creditor Reference Party."
msgstr "Código de identificación de la parte de referencia del acreedor"
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "Identification code of the Debtor Reference Party."
msgstr "Código de identificación de la parte de referencia del deudor"
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "Identification number of the underlying contract."
msgstr "Número de identificación del contrato subyacente"
#. module: account_banking_mandate
#: help:account.banking.mandate,message_unread:0
msgid "If checked new messages require your attention."
msgstr "Si está marcado, hay nuevos mensajes que requieren su atención"
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "If you are paying on your own behalf, leave blank."
msgstr ""
"Si realiza el pago en su propio nombre e interés, deje este espacio en "
"blanco."
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "In respect of the contract:"
msgstr "Respecto al contrato:"
#. module: account_banking_mandate
#: model:ir.model,name:account_banking_mandate.model_account_invoice
msgid "Invoice"
@@ -328,15 +238,8 @@ msgid "Last Updated on"
msgstr "Última actualización en"
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid ""
"Location and sign: _______________________, at ______ from ____________ from"
msgstr ""
"Lugar y fecha de la firma: _______________________, a ______ de ____________ "
"de"
#. module: account_banking_mandate
#: model:ir.actions.report.xml,name:account_banking_mandate.report_account_banking_mandate
#: view:bank.payment.line:account_banking_mandate.bank_payment_line_tree
#: view:payment.order:account_banking_mandate.view_mandate_payment_order_form
msgid "Mandate"
msgstr "Mandato SEPA"
@@ -350,25 +253,30 @@ msgstr "Mandato cancelado"
msgid "Mandate Expired"
msgstr "Mandato expirado"
#. module: account_banking_mandate
#: field:account.banking.mandate,format:0
msgid "Mandate Format"
msgstr "Formato del mandato"
#. module: account_banking_mandate
#: model:mail.message.subtype,name:account_banking_mandate.mandate_valid
msgid "Mandate Validated"
msgstr "Mandato validado"
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:152
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:147
#, python-format
msgid "Mandate should be in cancel state"
msgstr "El mandato debe estar en estado cancelado"
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:140
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:135
#, python-format
msgid "Mandate should be in draft or valid state"
msgstr "El mandato debe estar en estado borrador o validado"
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:131
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:126
#, python-format
msgid "Mandate should be in draft state"
msgstr "El mandato debe estar en estado borrador"
@@ -383,63 +291,23 @@ msgstr "Mensajes"
msgid "Messages and communication history"
msgstr "Mensajes e historial de comunicación"
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid ""
"Name of the Creditor Reference Party: Creditor must complete this section if "
"collecting payment on behalf of another party."
msgstr ""
"Nombre de la parte de referencia del acreedor: el acreedor debe rellenar "
"esta sección si realiza el cobro a favor de un tercero."
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid ""
"Name of the Debtor Reference Party: If you are making a payment in respect "
"of an arrangement between"
msgstr ""
"Nombre de la parte de referencia del deudor: Si realiza un pago como "
"consecuencia de un acuerdo entre"
#. module: account_banking_mandate
#: help:account.banking.mandate,state:0
msgid ""
"Only valid mandates can be used in a payment line. A cancelled mandate is a "
"mandate that has been cancelled by the customer."
msgstr ""
"Sólo se pueden usar mandatos validados en una línea de pago. Un mandato "
"cancelado en un mandato que ha sido invalidado por el cliente."
msgstr "Sólo se pueden usar mandatos validados en una línea de pago. Un mandato cancelado en un mandato que ha sido invalidado por el cliente."
#. module: account_banking_mandate
#: field:account.banking.mandate,partner_id:0
msgid "Partner"
msgstr "Empresa"
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "Party on whose behalf the creditor collects the payment:"
msgstr "Parte en cuyo favor el acreedor realiza el cobro:"
#. module: account_banking_mandate
#: model:ir.model,name:account_banking_mandate.model_payment_line
msgid "Payment Line"
msgstr "Línea de pago"
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "Payment type:"
msgstr "Tipo de pago"
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "Person on whose behalf payment is made:"
msgstr "Persona en cuyo nombre se realiza el pago:"
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "Policyholder Service / Debtor:"
msgstr "Tomador del servicio / Deudor:"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_tree
msgid "Reference"
@@ -450,27 +318,12 @@ msgstr "Referencia"
msgid "Reference or Partner"
msgstr "Referencia o cliente"
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "Reference:"
msgstr "Referencia:"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
#: field:account.banking.mandate,payment_line_ids:0
msgid "Related Payment Lines"
msgstr "Líneas de pago relacionadas"
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "SEPA BUSINESS-TO-BUSINESS DIRECT DEBIT MANDATE"
msgstr "Orden de domiciliación de adeudo directo SEPA B2B"
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "SEPA DIRECT DEBIT MANDATE"
msgstr "Orden de domiciliación de adeudo directo SEPA"
#. module: account_banking_mandate
#: model:ir.ui.menu,name:account_banking_mandate.mandate_menu
msgid "SEPA Direct Debit Mandates"
@@ -487,9 +340,9 @@ msgid "Search Banking Mandates"
msgstr "Buscar mandatos bancarios"
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "Service Provider / Creditor:"
msgstr "Entidad prestadora del servicio / Acreedor:"
#: selection:account.banking.mandate,format:0
msgid "Sepa Mandate"
msgstr "Mandato SEPA"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
@@ -508,49 +361,27 @@ msgid "Summary"
msgstr "Resumen"
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:92
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:83
#, python-format
msgid "The date of signature of mandate '%s' is in the future !"
msgstr "La fecha de firma del mandato '%s' no puede ser superior a la actual"
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:97
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:89
#, python-format
msgid ""
"The mandate '%s' can't have a date of last debit before the date of "
"signature."
msgstr ""
"El mandato '%s' no puede tener una fecha de último cobro antes de la fecha "
"de firma."
msgstr "El mandato '%s' no puede tener una fecha de último cobro antes de la fecha de firma."
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/payment_line.py:68
#: code:addons/account_banking_mandate/models/payment_line.py:51
#, python-format
msgid ""
"The payment line with reference '%s' has the bank account '%s' which is not "
"attached to the mandate '%s' (this mandate is attached to the bank account "
"'%s')."
msgstr ""
"La línea de pago con referencia '%s' tiene la cuenta bancaria '%s', que no "
"está puesta en el mandato '%s' (este mandato tiene como cuenta bancaria "
"'%s')."
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid ""
"This mandate is only intended for business-to-business transactions. You are "
"not entitled to a refund from your bank after your account has been debited, "
"but you are entitled to request your bank not to debit your account up until "
"the day on which the payment is due.\n"
" Please complete all the fields marked *."
msgstr ""
"Esta orden de domiciliación está prevista para operaciones exclusivamente "
"entre empresas y/o autónomos. El deudor no tiene derecho a que su entidad le "
"reembolse una vez que se haya realizado el cargo en cuenta, pero puede "
"solicitar a su entidad que no efectúe el adeudo en la cuenta hasta la fecha "
"debida. Podrá obtener información detallada del procedimiento en su entidad "
"financiera.\n"
"Por favor rellene todos los campos marcados con un *."
msgstr "La línea de pago con referencia '%s' tiene la cuenta bancaria '%s', que no está puesta en el mandato '%s' (este mandato tiene como cuenta bancaria '%s')."
#. module: account_banking_mandate
#: field:account.banking.mandate,unique_mandate_reference:0
@@ -562,11 +393,6 @@ msgstr "Referencia única del mandato"
msgid "Unread Messages"
msgstr "Mensajes sin leer"
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "VAT:"
msgstr "NIF:"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
msgid "Valid"
@@ -577,46 +403,9 @@ msgstr "Válido"
msgid "Validate"
msgstr "Validar"
#. module: account_banking_mandate
#: field:account.banking.mandate,website_message_ids:0
msgid "Website Messages"
msgstr "Mensajes del sitio web"
#. module: account_banking_mandate
#: help:account.banking.mandate,website_message_ids:0
msgid "Website communication history"
msgstr "Historial de comunicación del sitio web"
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "Write any code number here which you wish to have quoted by your bank."
msgstr ""
"Indique en este espacio cualquier número de código con el que desea que su "
"entidad financiera le identifique."
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
msgid ""
"You should set a mandate back to draft only if you cancelled it by mistake. "
"Do you want to continue?"
msgstr ""
"Debe establecer un mandato de vuelta a borrador sólo si lo cancelo por "
"error. ¿Desea continuar?"
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid ""
"and another person (e.g. where you are paying the other person's bill) "
"please write the other person's name here."
msgstr ""
"y otra persona (por ejemplo, el pago de la factura de otra persona) indique "
"el nombre de dicha persona en este espacio."
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid ""
"to send instructions to your bank to debit your account and (B) your bank to "
"debit your account in accordance with the instructions from"
msgstr ""
"a enviar órdenes a la entidad del deudor para adeudar su cuenta y (B) a la "
"entidad para efectuar los adeudos en su cuenta siguiendo las instrucciones de"
msgstr "Debe establecer un mandato de vuelta a borrador sólo si lo cancelo por error. ¿Desea continuar?"

View File

@@ -1,20 +1,21 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_banking_mandate
#
# * account_banking_mandate
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Project-Id-Version: bank-payment (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-06-18 08:15+0000\n"
"PO-Revision-Date: 2015-06-18 10:18+0100\n"
"Last-Translator: Sergio Teruel <sergio@incaser.es>\n"
"Language-Team: \n"
"POT-Creation-Date: 2016-04-08 00:46+0000\n"
"PO-Revision-Date: 2016-04-07 16:04+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>\n"
"Language-Team: French (http://www.transifex.com/oca/OCA-bank-payment-8-0/language/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: \n"
"X-Generator: Poedit 1.5.4\n"
"Content-Transfer-Encoding: \n"
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: account_banking_mandate
#: model:ir.actions.act_window,help:account_banking_mandate.mandate_action
@@ -22,8 +23,7 @@ msgid ""
"<p class=\"oe_view_nocontent_create\">\n"
" Click to create a new Banking Mandate.\n"
" </p><p>\n"
" A Banking Mandate is a document signed by your customer that gives "
"you the autorization to do one or several operations on his bank account.\n"
" A Banking Mandate is a document signed by your customer that gives you the autorization to do one or several operations on his bank account.\n"
" </p>\n"
" "
msgstr ""
@@ -38,20 +38,6 @@ msgstr ""
msgid "A generic banking mandate"
msgstr ""
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid ""
"As part of your rights, you are entitled to a refund from your bank under "
"the terms and conditions of your agreement with your bank.\n"
" A refund must be claimed within 8 weeks starting "
"from the date on which your account was debited."
msgstr ""
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "BIC:"
msgstr ""
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
msgid "Back to Draft"
@@ -68,8 +54,8 @@ msgid "Bank Accounts"
msgstr ""
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "Bank name:"
#: model:ir.model,name:account_banking_mandate.model_bank_payment_line
msgid "Bank Payment Lines"
msgstr ""
#. module: account_banking_mandate
@@ -106,14 +92,16 @@ msgid ""
msgstr ""
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "By signing this mandate form, you authorise (A)"
#: selection:account.banking.mandate,format:0
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:39
#, python-format
msgid "Basic Mandate"
msgstr ""
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
msgid "Cancel"
msgstr ""
msgstr "Annuler"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
@@ -121,7 +109,7 @@ msgid "Cancelled"
msgstr ""
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:110
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:104
#, python-format
msgid ""
"Cannot validate the mandate '%s' because it is not attached to a bank "
@@ -129,7 +117,7 @@ msgid ""
msgstr ""
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:106
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:100
#, python-format
msgid "Cannot validate the mandate '%s' without a date of signature."
msgstr ""
@@ -149,11 +137,6 @@ msgstr ""
msgid "Created on"
msgstr ""
#. module: account_banking_mandate
#: view:payment.order:account_banking_mandate.view_mandate_payment_order_form
msgid "DD Mandate"
msgstr ""
#. module: account_banking_mandate
#: view:res.partner:account_banking_mandate.mandate_partner_form
#: view:res.partner.bank:account_banking_mandate.mandate_partner_bank_tree
@@ -175,23 +158,6 @@ msgstr ""
msgid "Date of the last message posted on the record."
msgstr ""
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "Debtor identification code:"
msgstr ""
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "Description of contract."
msgstr ""
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid ""
"Details regarding the underlying relationship between the Creditor and the "
"Debtor - for information purposes only."
msgstr ""
#. module: account_banking_mandate
#: field:account.invoice,mandate_id:0 field:payment.line,mandate_id:0
msgid "Direct Debit Mandate"
@@ -219,10 +185,9 @@ msgid "Followers"
msgstr ""
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid ""
"For business users: write any code number here which you wish to have quoted "
"by your bank."
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
#: view:account.banking.mandate:account_banking_mandate.view_mandate_tree
msgid "Format"
msgstr ""
#. module: account_banking_mandate
@@ -237,46 +202,16 @@ msgid ""
"directly in html format in order to be inserted in kanban views."
msgstr ""
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "IBAN:"
msgstr ""
#. module: account_banking_mandate
#: field:account.banking.mandate,id:0
msgid "ID"
msgstr ""
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "Identification code of the Creditor Reference Party."
msgstr ""
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "Identification code of the Debtor Reference Party."
msgstr ""
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "Identification number of the underlying contract."
msgstr ""
#. module: account_banking_mandate
#: help:account.banking.mandate,message_unread:0
msgid "If checked new messages require your attention."
msgstr ""
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "If you are paying on your own behalf, leave blank."
msgstr ""
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "In respect of the contract:"
msgstr ""
#. module: account_banking_mandate
#: model:ir.model,name:account_banking_mandate.model_account_invoice
msgid "Invoice"
@@ -303,13 +238,8 @@ msgid "Last Updated on"
msgstr ""
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid ""
"Location and sign: _______________________, at ______ from ____________ from"
msgstr ""
#. module: account_banking_mandate
#: model:ir.actions.report.xml,name:account_banking_mandate.report_account_banking_mandate
#: view:bank.payment.line:account_banking_mandate.bank_payment_line_tree
#: view:payment.order:account_banking_mandate.view_mandate_payment_order_form
msgid "Mandate"
msgstr ""
@@ -323,25 +253,30 @@ msgstr ""
msgid "Mandate Expired"
msgstr ""
#. module: account_banking_mandate
#: field:account.banking.mandate,format:0
msgid "Mandate Format"
msgstr ""
#. module: account_banking_mandate
#: model:mail.message.subtype,name:account_banking_mandate.mandate_valid
msgid "Mandate Validated"
msgstr ""
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:152
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:147
#, python-format
msgid "Mandate should be in cancel state"
msgstr ""
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:140
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:135
#, python-format
msgid "Mandate should be in draft or valid state"
msgstr ""
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:131
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:126
#, python-format
msgid "Mandate should be in draft state"
msgstr ""
@@ -356,20 +291,6 @@ msgstr ""
msgid "Messages and communication history"
msgstr ""
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid ""
"Name of the Creditor Reference Party: Creditor must complete this section if "
"collecting payment on behalf of another party."
msgstr ""
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid ""
"Name of the Debtor Reference Party: If you are making a payment in respect "
"of an arrangement between"
msgstr ""
#. module: account_banking_mandate
#: help:account.banking.mandate,state:0
msgid ""
@@ -382,30 +303,10 @@ msgstr ""
msgid "Partner"
msgstr ""
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "Party on whose behalf the creditor collects the payment:"
msgstr ""
#. module: account_banking_mandate
#: model:ir.model,name:account_banking_mandate.model_payment_line
msgid "Payment Line"
msgstr ""
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "Payment type:"
msgstr ""
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "Person on whose behalf payment is made:"
msgstr ""
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "Policyholder Service / Debtor:"
msgstr ""
msgstr "Ligne de paiement"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_tree
@@ -417,31 +318,16 @@ msgstr ""
msgid "Reference or Partner"
msgstr ""
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "Reference:"
msgstr ""
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
#: field:account.banking.mandate,payment_line_ids:0
msgid "Related Payment Lines"
msgstr ""
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "SEPA BUSINESS-TO-BUSINESS DIRECT DEBIT MANDATE"
msgstr ""
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "SEPA DIRECT DEBIT MANDATE"
msgstr ""
#. module: account_banking_mandate
#: model:ir.ui.menu,name:account_banking_mandate.mandate_menu
msgid "SEPA Direct Debit Mandates"
msgstr ""
msgstr "Mandats de prélèvement SEPA"
#. module: account_banking_mandate
#: field:account.banking.mandate,scan:0
@@ -454,8 +340,8 @@ msgid "Search Banking Mandates"
msgstr ""
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "Service Provider / Creditor:"
#: selection:account.banking.mandate,format:0
msgid "Sepa Mandate"
msgstr ""
#. module: account_banking_mandate
@@ -475,13 +361,13 @@ msgid "Summary"
msgstr ""
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:92
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:83
#, python-format
msgid "The date of signature of mandate '%s' is in the future !"
msgstr ""
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:97
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:89
#, python-format
msgid ""
"The mandate '%s' can't have a date of last debit before the date of "
@@ -489,7 +375,7 @@ msgid ""
msgstr ""
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/payment_line.py:68
#: code:addons/account_banking_mandate/models/payment_line.py:51
#, python-format
msgid ""
"The payment line with reference '%s' has the bank account '%s' which is not "
@@ -497,16 +383,6 @@ msgid ""
"'%s')."
msgstr ""
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid ""
"This mandate is only intended for business-to-business transactions. You are "
"not entitled to a refund from your bank after your account has been debited, "
"but you are entitled to request your bank not to debit your account up until "
"the day on which the payment is due.\n"
" Please complete all the fields marked *."
msgstr ""
#. module: account_banking_mandate
#: field:account.banking.mandate,unique_mandate_reference:0
msgid "Unique Mandate Reference"
@@ -517,11 +393,6 @@ msgstr ""
msgid "Unread Messages"
msgstr ""
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "VAT:"
msgstr ""
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
msgid "Valid"
@@ -530,22 +401,7 @@ msgstr ""
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
msgid "Validate"
msgstr ""
#. module: account_banking_mandate
#: field:account.banking.mandate,website_message_ids:0
msgid "Website Messages"
msgstr ""
#. module: account_banking_mandate
#: help:account.banking.mandate,website_message_ids:0
msgid "Website communication history"
msgstr ""
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid "Write any code number here which you wish to have quoted by your bank."
msgstr ""
msgstr "Valider"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
@@ -553,17 +409,3 @@ msgid ""
"You should set a mandate back to draft only if you cancelled it by mistake. "
"Do you want to continue?"
msgstr ""
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid ""
"and another person (e.g. where you are paying the other person's bill) "
"please write the other person's name here."
msgstr ""
#. module: account_banking_mandate
#: view:website:account_banking_mandate.account_banking_mandate_document
msgid ""
"to send instructions to your bank to debit your account and (B) your bank to "
"debit your account in accordance with the instructions from"
msgstr ""

View File

@@ -0,0 +1,411 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_banking_mandate
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: bank-payment (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-04-08 00:46+0000\n"
"PO-Revision-Date: 2016-04-07 16:04+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>\n"
"Language-Team: Dutch (http://www.transifex.com/oca/OCA-bank-payment-8-0/language/nl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: nl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_banking_mandate
#: model:ir.actions.act_window,help:account_banking_mandate.mandate_action
msgid ""
"<p class=\"oe_view_nocontent_create\">\n"
" Click to create a new Banking Mandate.\n"
" </p><p>\n"
" A Banking Mandate is a document signed by your customer that gives you the autorization to do one or several operations on his bank account.\n"
" </p>\n"
" "
msgstr ""
#. module: account_banking_mandate
#: sql_constraint:account.banking.mandate:0
msgid "A Mandate with the same reference already exists for this company !"
msgstr ""
#. module: account_banking_mandate
#: model:ir.model,name:account_banking_mandate.model_account_banking_mandate
msgid "A generic banking mandate"
msgstr ""
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
msgid "Back to Draft"
msgstr ""
#. module: account_banking_mandate
#: field:account.banking.mandate,partner_bank_id:0
msgid "Bank Account"
msgstr ""
#. module: account_banking_mandate
#: model:ir.model,name:account_banking_mandate.model_res_partner_bank
msgid "Bank Accounts"
msgstr ""
#. module: account_banking_mandate
#: model:ir.model,name:account_banking_mandate.model_bank_payment_line
msgid "Bank Payment Lines"
msgstr ""
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
#: view:account.banking.mandate:account_banking_mandate.view_mandate_tree
msgid "Banking Mandate"
msgstr ""
#. module: account_banking_mandate
#: model:mail.message.subtype,description:account_banking_mandate.mandate_cancel
msgid "Banking Mandate Cancelled"
msgstr ""
#. module: account_banking_mandate
#: model:mail.message.subtype,description:account_banking_mandate.mandate_valid
msgid "Banking Mandate Validated"
msgstr ""
#. module: account_banking_mandate
#: model:mail.message.subtype,description:account_banking_mandate.mandate_expired
msgid "Banking Mandate has Expired"
msgstr ""
#. module: account_banking_mandate
#: model:ir.actions.act_window,name:account_banking_mandate.mandate_action
msgid "Banking Mandates"
msgstr ""
#. module: account_banking_mandate
#: help:res.partner.bank,mandate_ids:0
msgid ""
"Banking mandates represents an authorization that the bank account owner "
"gives to a company for a specific operation"
msgstr ""
#. module: account_banking_mandate
#: selection:account.banking.mandate,format:0
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:39
#, python-format
msgid "Basic Mandate"
msgstr ""
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
msgid "Cancel"
msgstr "Annuleren"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
msgid "Cancelled"
msgstr ""
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:104
#, python-format
msgid ""
"Cannot validate the mandate '%s' because it is not attached to a bank "
"account."
msgstr ""
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:100
#, python-format
msgid "Cannot validate the mandate '%s' without a date of signature."
msgstr ""
#. module: account_banking_mandate
#: field:account.banking.mandate,company_id:0
msgid "Company"
msgstr ""
#. module: account_banking_mandate
#: field:account.banking.mandate,create_uid:0
msgid "Created by"
msgstr ""
#. module: account_banking_mandate
#: field:account.banking.mandate,create_date:0
msgid "Created on"
msgstr ""
#. module: account_banking_mandate
#: view:res.partner:account_banking_mandate.mandate_partner_form
#: view:res.partner.bank:account_banking_mandate.mandate_partner_bank_tree
msgid "DD Mandates"
msgstr ""
#. module: account_banking_mandate
#: field:account.banking.mandate,signature_date:0
msgid "Date of Signature of the Mandate"
msgstr ""
#. module: account_banking_mandate
#: field:account.banking.mandate,last_debit_date:0
msgid "Date of the Last Debit"
msgstr ""
#. module: account_banking_mandate
#: help:account.banking.mandate,message_last_post:0
msgid "Date of the last message posted on the record."
msgstr ""
#. module: account_banking_mandate
#: field:account.invoice,mandate_id:0 field:payment.line,mandate_id:0
msgid "Direct Debit Mandate"
msgstr ""
#. module: account_banking_mandate
#: view:res.partner.bank:account_banking_mandate.mandate_partner_bank_form
#: field:res.partner.bank,mandate_ids:0
msgid "Direct Debit Mandates"
msgstr ""
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
msgid "Draft"
msgstr ""
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
msgid "Expired"
msgstr ""
#. module: account_banking_mandate
#: field:account.banking.mandate,message_follower_ids:0
msgid "Followers"
msgstr ""
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
#: view:account.banking.mandate:account_banking_mandate.view_mandate_tree
msgid "Format"
msgstr ""
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
msgid "Group By"
msgstr ""
#. module: account_banking_mandate
#: help:account.banking.mandate,message_summary:0
msgid ""
"Holds the Chatter summary (number of messages, ...). This summary is "
"directly in html format in order to be inserted in kanban views."
msgstr ""
#. module: account_banking_mandate
#: field:account.banking.mandate,id:0
msgid "ID"
msgstr ""
#. module: account_banking_mandate
#: help:account.banking.mandate,message_unread:0
msgid "If checked new messages require your attention."
msgstr ""
#. module: account_banking_mandate
#: model:ir.model,name:account_banking_mandate.model_account_invoice
msgid "Invoice"
msgstr "Factuur"
#. module: account_banking_mandate
#: field:account.banking.mandate,message_is_follower:0
msgid "Is a Follower"
msgstr ""
#. module: account_banking_mandate
#: field:account.banking.mandate,message_last_post:0
msgid "Last Message Date"
msgstr ""
#. module: account_banking_mandate
#: field:account.banking.mandate,write_uid:0
msgid "Last Updated by"
msgstr ""
#. module: account_banking_mandate
#: field:account.banking.mandate,write_date:0
msgid "Last Updated on"
msgstr ""
#. module: account_banking_mandate
#: view:bank.payment.line:account_banking_mandate.bank_payment_line_tree
#: view:payment.order:account_banking_mandate.view_mandate_payment_order_form
msgid "Mandate"
msgstr ""
#. module: account_banking_mandate
#: model:mail.message.subtype,name:account_banking_mandate.mandate_cancel
msgid "Mandate Cancelled"
msgstr ""
#. module: account_banking_mandate
#: model:mail.message.subtype,name:account_banking_mandate.mandate_expired
msgid "Mandate Expired"
msgstr ""
#. module: account_banking_mandate
#: field:account.banking.mandate,format:0
msgid "Mandate Format"
msgstr ""
#. module: account_banking_mandate
#: model:mail.message.subtype,name:account_banking_mandate.mandate_valid
msgid "Mandate Validated"
msgstr ""
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:147
#, python-format
msgid "Mandate should be in cancel state"
msgstr ""
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:135
#, python-format
msgid "Mandate should be in draft or valid state"
msgstr ""
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:126
#, python-format
msgid "Mandate should be in draft state"
msgstr ""
#. module: account_banking_mandate
#: field:account.banking.mandate,message_ids:0
msgid "Messages"
msgstr ""
#. module: account_banking_mandate
#: help:account.banking.mandate,message_ids:0
msgid "Messages and communication history"
msgstr ""
#. module: account_banking_mandate
#: help:account.banking.mandate,state:0
msgid ""
"Only valid mandates can be used in a payment line. A cancelled mandate is a "
"mandate that has been cancelled by the customer."
msgstr ""
#. module: account_banking_mandate
#: field:account.banking.mandate,partner_id:0
msgid "Partner"
msgstr "Relatie"
#. module: account_banking_mandate
#: model:ir.model,name:account_banking_mandate.model_payment_line
msgid "Payment Line"
msgstr "Betaalregel"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_tree
msgid "Reference"
msgstr ""
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
msgid "Reference or Partner"
msgstr ""
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
#: field:account.banking.mandate,payment_line_ids:0
msgid "Related Payment Lines"
msgstr ""
#. module: account_banking_mandate
#: model:ir.ui.menu,name:account_banking_mandate.mandate_menu
msgid "SEPA Direct Debit Mandates"
msgstr "SEPA incasso machtegingen"
#. module: account_banking_mandate
#: field:account.banking.mandate,scan:0
msgid "Scan of the Mandate"
msgstr ""
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
msgid "Search Banking Mandates"
msgstr ""
#. module: account_banking_mandate
#: selection:account.banking.mandate,format:0
msgid "Sepa Mandate"
msgstr ""
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
#: view:account.banking.mandate:account_banking_mandate.view_mandate_tree
msgid "Signature Date"
msgstr ""
#. module: account_banking_mandate
#: field:account.banking.mandate,state:0
msgid "Status"
msgstr ""
#. module: account_banking_mandate
#: field:account.banking.mandate,message_summary:0
msgid "Summary"
msgstr ""
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:83
#, python-format
msgid "The date of signature of mandate '%s' is in the future !"
msgstr ""
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:89
#, python-format
msgid ""
"The mandate '%s' can't have a date of last debit before the date of "
"signature."
msgstr ""
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/payment_line.py:51
#, python-format
msgid ""
"The payment line with reference '%s' has the bank account '%s' which is not "
"attached to the mandate '%s' (this mandate is attached to the bank account "
"'%s')."
msgstr ""
#. module: account_banking_mandate
#: field:account.banking.mandate,unique_mandate_reference:0
msgid "Unique Mandate Reference"
msgstr ""
#. module: account_banking_mandate
#: field:account.banking.mandate,message_unread:0
msgid "Unread Messages"
msgstr ""
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
msgid "Valid"
msgstr ""
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
msgid "Validate"
msgstr "Bevestig"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
msgid ""
"You should set a mandate back to draft only if you cancelled it by mistake. "
"Do you want to continue?"
msgstr ""

View File

@@ -0,0 +1,412 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_banking_mandate
#
# Translators:
# danimaribeiro <danimaribeiro@gmail.com>, 2016
msgid ""
msgstr ""
"Project-Id-Version: bank-payment (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-04-08 00:46+0000\n"
"PO-Revision-Date: 2016-04-07 16:04+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/OCA-bank-payment-8-0/language/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: account_banking_mandate
#: model:ir.actions.act_window,help:account_banking_mandate.mandate_action
msgid ""
"<p class=\"oe_view_nocontent_create\">\n"
" Click to create a new Banking Mandate.\n"
" </p><p>\n"
" A Banking Mandate is a document signed by your customer that gives you the autorization to do one or several operations on his bank account.\n"
" </p>\n"
" "
msgstr "<p class=\"oe_view_nocontent_create\">\n Clique aqui para criar uma nova Ordem Bancária\n </p><p>\n Uma ordem bancária é um documento assinado por seu cliente que lhe dá autorização\npara fazer uma ou mais operações em sua conta bancária.\n </p>\n "
#. module: account_banking_mandate
#: sql_constraint:account.banking.mandate:0
msgid "A Mandate with the same reference already exists for this company !"
msgstr "Uma ordem com a mesma referência já existe para esta empresa!"
#. module: account_banking_mandate
#: model:ir.model,name:account_banking_mandate.model_account_banking_mandate
msgid "A generic banking mandate"
msgstr "Uma ordem bancária genérica"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
msgid "Back to Draft"
msgstr "Voltar para provisório"
#. module: account_banking_mandate
#: field:account.banking.mandate,partner_bank_id:0
msgid "Bank Account"
msgstr "Conta bancária"
#. module: account_banking_mandate
#: model:ir.model,name:account_banking_mandate.model_res_partner_bank
msgid "Bank Accounts"
msgstr "Contas bancárias"
#. module: account_banking_mandate
#: model:ir.model,name:account_banking_mandate.model_bank_payment_line
msgid "Bank Payment Lines"
msgstr "Linhas de pagamento bancária"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
#: view:account.banking.mandate:account_banking_mandate.view_mandate_tree
msgid "Banking Mandate"
msgstr "Ordem Bancária"
#. module: account_banking_mandate
#: model:mail.message.subtype,description:account_banking_mandate.mandate_cancel
msgid "Banking Mandate Cancelled"
msgstr "Ordem bancária cancelada"
#. module: account_banking_mandate
#: model:mail.message.subtype,description:account_banking_mandate.mandate_valid
msgid "Banking Mandate Validated"
msgstr ""
#. module: account_banking_mandate
#: model:mail.message.subtype,description:account_banking_mandate.mandate_expired
msgid "Banking Mandate has Expired"
msgstr "Ordem bancária expirou"
#. module: account_banking_mandate
#: model:ir.actions.act_window,name:account_banking_mandate.mandate_action
msgid "Banking Mandates"
msgstr "Ordens bancárias"
#. module: account_banking_mandate
#: help:res.partner.bank,mandate_ids:0
msgid ""
"Banking mandates represents an authorization that the bank account owner "
"gives to a company for a specific operation"
msgstr "Ordem bancária representa uma autorização que o dono da conta lhe dá para uma operação específica"
#. module: account_banking_mandate
#: selection:account.banking.mandate,format:0
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:39
#, python-format
msgid "Basic Mandate"
msgstr ""
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
msgid "Cancel"
msgstr "Cancelar"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
msgid "Cancelled"
msgstr "Cancelado"
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:104
#, python-format
msgid ""
"Cannot validate the mandate '%s' because it is not attached to a bank "
"account."
msgstr "Não pode validar a ordem '%s' porque não está anexada a conta bancária."
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:100
#, python-format
msgid "Cannot validate the mandate '%s' without a date of signature."
msgstr "Não pode validar a ordem '%s' sem uma data de assinatura."
#. module: account_banking_mandate
#: field:account.banking.mandate,company_id:0
msgid "Company"
msgstr "Empresa"
#. module: account_banking_mandate
#: field:account.banking.mandate,create_uid:0
msgid "Created by"
msgstr "Criado por"
#. module: account_banking_mandate
#: field:account.banking.mandate,create_date:0
msgid "Created on"
msgstr "Criado em"
#. module: account_banking_mandate
#: view:res.partner:account_banking_mandate.mandate_partner_form
#: view:res.partner.bank:account_banking_mandate.mandate_partner_bank_tree
msgid "DD Mandates"
msgstr ""
#. module: account_banking_mandate
#: field:account.banking.mandate,signature_date:0
msgid "Date of Signature of the Mandate"
msgstr "Data de assinatura da ordem"
#. module: account_banking_mandate
#: field:account.banking.mandate,last_debit_date:0
msgid "Date of the Last Debit"
msgstr "Data do último débito"
#. module: account_banking_mandate
#: help:account.banking.mandate,message_last_post:0
msgid "Date of the last message posted on the record."
msgstr "Data da última mensagem postada no registro"
#. module: account_banking_mandate
#: field:account.invoice,mandate_id:0 field:payment.line,mandate_id:0
msgid "Direct Debit Mandate"
msgstr ""
#. module: account_banking_mandate
#: view:res.partner.bank:account_banking_mandate.mandate_partner_bank_form
#: field:res.partner.bank,mandate_ids:0
msgid "Direct Debit Mandates"
msgstr ""
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
msgid "Draft"
msgstr "Provisório"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
msgid "Expired"
msgstr "Expirado"
#. module: account_banking_mandate
#: field:account.banking.mandate,message_follower_ids:0
msgid "Followers"
msgstr "Seguidores"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
#: view:account.banking.mandate:account_banking_mandate.view_mandate_tree
msgid "Format"
msgstr ""
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
msgid "Group By"
msgstr "Agrupar por"
#. module: account_banking_mandate
#: help:account.banking.mandate,message_summary:0
msgid ""
"Holds the Chatter summary (number of messages, ...). This summary is "
"directly in html format in order to be inserted in kanban views."
msgstr ""
#. module: account_banking_mandate
#: field:account.banking.mandate,id:0
msgid "ID"
msgstr "ID"
#. module: account_banking_mandate
#: help:account.banking.mandate,message_unread:0
msgid "If checked new messages require your attention."
msgstr "Se marcado novas mensagens requerem sua atenção."
#. module: account_banking_mandate
#: model:ir.model,name:account_banking_mandate.model_account_invoice
msgid "Invoice"
msgstr "Fatura"
#. module: account_banking_mandate
#: field:account.banking.mandate,message_is_follower:0
msgid "Is a Follower"
msgstr "É um seguidor"
#. module: account_banking_mandate
#: field:account.banking.mandate,message_last_post:0
msgid "Last Message Date"
msgstr "Data da última mensagem"
#. module: account_banking_mandate
#: field:account.banking.mandate,write_uid:0
msgid "Last Updated by"
msgstr "Última Atualização por"
#. module: account_banking_mandate
#: field:account.banking.mandate,write_date:0
msgid "Last Updated on"
msgstr "Última Atualização em"
#. module: account_banking_mandate
#: view:bank.payment.line:account_banking_mandate.bank_payment_line_tree
#: view:payment.order:account_banking_mandate.view_mandate_payment_order_form
msgid "Mandate"
msgstr ""
#. module: account_banking_mandate
#: model:mail.message.subtype,name:account_banking_mandate.mandate_cancel
msgid "Mandate Cancelled"
msgstr "Ordem cancelada"
#. module: account_banking_mandate
#: model:mail.message.subtype,name:account_banking_mandate.mandate_expired
msgid "Mandate Expired"
msgstr ""
#. module: account_banking_mandate
#: field:account.banking.mandate,format:0
msgid "Mandate Format"
msgstr ""
#. module: account_banking_mandate
#: model:mail.message.subtype,name:account_banking_mandate.mandate_valid
msgid "Mandate Validated"
msgstr ""
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:147
#, python-format
msgid "Mandate should be in cancel state"
msgstr ""
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:135
#, python-format
msgid "Mandate should be in draft or valid state"
msgstr ""
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:126
#, python-format
msgid "Mandate should be in draft state"
msgstr ""
#. module: account_banking_mandate
#: field:account.banking.mandate,message_ids:0
msgid "Messages"
msgstr ""
#. module: account_banking_mandate
#: help:account.banking.mandate,message_ids:0
msgid "Messages and communication history"
msgstr ""
#. module: account_banking_mandate
#: help:account.banking.mandate,state:0
msgid ""
"Only valid mandates can be used in a payment line. A cancelled mandate is a "
"mandate that has been cancelled by the customer."
msgstr ""
#. module: account_banking_mandate
#: field:account.banking.mandate,partner_id:0
msgid "Partner"
msgstr "Parceiro"
#. module: account_banking_mandate
#: model:ir.model,name:account_banking_mandate.model_payment_line
msgid "Payment Line"
msgstr "Linha de Pagamento"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_tree
msgid "Reference"
msgstr ""
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
msgid "Reference or Partner"
msgstr ""
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
#: field:account.banking.mandate,payment_line_ids:0
msgid "Related Payment Lines"
msgstr "Linhas relacionadas do pagamento"
#. module: account_banking_mandate
#: model:ir.ui.menu,name:account_banking_mandate.mandate_menu
msgid "SEPA Direct Debit Mandates"
msgstr ""
#. module: account_banking_mandate
#: field:account.banking.mandate,scan:0
msgid "Scan of the Mandate"
msgstr ""
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
msgid "Search Banking Mandates"
msgstr ""
#. module: account_banking_mandate
#: selection:account.banking.mandate,format:0
msgid "Sepa Mandate"
msgstr ""
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
#: view:account.banking.mandate:account_banking_mandate.view_mandate_tree
msgid "Signature Date"
msgstr ""
#. module: account_banking_mandate
#: field:account.banking.mandate,state:0
msgid "Status"
msgstr "Status"
#. module: account_banking_mandate
#: field:account.banking.mandate,message_summary:0
msgid "Summary"
msgstr ""
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:83
#, python-format
msgid "The date of signature of mandate '%s' is in the future !"
msgstr ""
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:89
#, python-format
msgid ""
"The mandate '%s' can't have a date of last debit before the date of "
"signature."
msgstr ""
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/payment_line.py:51
#, python-format
msgid ""
"The payment line with reference '%s' has the bank account '%s' which is not "
"attached to the mandate '%s' (this mandate is attached to the bank account "
"'%s')."
msgstr ""
#. module: account_banking_mandate
#: field:account.banking.mandate,unique_mandate_reference:0
msgid "Unique Mandate Reference"
msgstr ""
#. module: account_banking_mandate
#: field:account.banking.mandate,message_unread:0
msgid "Unread Messages"
msgstr ""
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
msgid "Valid"
msgstr ""
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
msgid "Validate"
msgstr "Validar"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
msgid ""
"You should set a mandate back to draft only if you cancelled it by mistake. "
"Do you want to continue?"
msgstr ""

View File

@@ -0,0 +1,412 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_banking_mandate
#
# Translators:
# Matjaž Mozetič <m.mozetic@matmoz.si>, 2016
msgid ""
msgstr ""
"Project-Id-Version: bank-payment (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-04-08 00:46+0000\n"
"PO-Revision-Date: 2016-04-08 05:56+0000\n"
"Last-Translator: Matjaž Mozetič <m.mozetic@matmoz.si>\n"
"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-bank-payment-8-0/language/sl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: sl\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_mandate
#: model:ir.actions.act_window,help:account_banking_mandate.mandate_action
msgid ""
"<p class=\"oe_view_nocontent_create\">\n"
" Click to create a new Banking Mandate.\n"
" </p><p>\n"
" A Banking Mandate is a document signed by your customer that gives you the autorization to do one or several operations on his bank account.\n"
" </p>\n"
" "
msgstr "<p class=\"oe_view_nocontent_create\">\n Ustvari nov bančni mandat.\n </p><p>\n Bančni mandat je s strani kupca podpisan dokument, ki vas pooblašča za izvajanje ene ali več operacij na njegovem bančnem računu.\n </p>\n "
#. module: account_banking_mandate
#: sql_constraint:account.banking.mandate:0
msgid "A Mandate with the same reference already exists for this company !"
msgstr "Za to družbo že obstaja mandat z istim sklicem!"
#. module: account_banking_mandate
#: model:ir.model,name:account_banking_mandate.model_account_banking_mandate
msgid "A generic banking mandate"
msgstr "Generični bančni mandat"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
msgid "Back to Draft"
msgstr "Vrni v osnutek"
#. module: account_banking_mandate
#: field:account.banking.mandate,partner_bank_id:0
msgid "Bank Account"
msgstr "Bančni račun"
#. module: account_banking_mandate
#: model:ir.model,name:account_banking_mandate.model_res_partner_bank
msgid "Bank Accounts"
msgstr "Bančni računi"
#. module: account_banking_mandate
#: model:ir.model,name:account_banking_mandate.model_bank_payment_line
msgid "Bank Payment Lines"
msgstr "Postavke bančnih plačil"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
#: view:account.banking.mandate:account_banking_mandate.view_mandate_tree
msgid "Banking Mandate"
msgstr "Bančni mandat"
#. module: account_banking_mandate
#: model:mail.message.subtype,description:account_banking_mandate.mandate_cancel
msgid "Banking Mandate Cancelled"
msgstr "Bančni mandat preklican"
#. module: account_banking_mandate
#: model:mail.message.subtype,description:account_banking_mandate.mandate_valid
msgid "Banking Mandate Validated"
msgstr "Bančni mandat potrjen"
#. module: account_banking_mandate
#: model:mail.message.subtype,description:account_banking_mandate.mandate_expired
msgid "Banking Mandate has Expired"
msgstr "Bančni mandat pretečen"
#. module: account_banking_mandate
#: model:ir.actions.act_window,name:account_banking_mandate.mandate_action
msgid "Banking Mandates"
msgstr "Bančni mandati"
#. module: account_banking_mandate
#: help:res.partner.bank,mandate_ids:0
msgid ""
"Banking mandates represents an authorization that the bank account owner "
"gives to a company for a specific operation"
msgstr "Bančni mandat predstavlja pooblastilo, ki ga imetnik bančnega računa daje družbi za specifične operacije"
#. module: account_banking_mandate
#: selection:account.banking.mandate,format:0
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:39
#, python-format
msgid "Basic Mandate"
msgstr "Osnovni mandat"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
msgid "Cancel"
msgstr "Preklic"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
msgid "Cancelled"
msgstr "Preklicano"
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:104
#, python-format
msgid ""
"Cannot validate the mandate '%s' because it is not attached to a bank "
"account."
msgstr "Mandata '%s' ni mogoče overiti, ker ni pripet bančnemu računu."
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:100
#, python-format
msgid "Cannot validate the mandate '%s' without a date of signature."
msgstr "Mandata '%s' ni mogoče overiti brez datuma podpisa."
#. module: account_banking_mandate
#: field:account.banking.mandate,company_id:0
msgid "Company"
msgstr "Družba"
#. module: account_banking_mandate
#: field:account.banking.mandate,create_uid:0
msgid "Created by"
msgstr "Ustvaril"
#. module: account_banking_mandate
#: field:account.banking.mandate,create_date:0
msgid "Created on"
msgstr "Ustvarjeno"
#. module: account_banking_mandate
#: view:res.partner:account_banking_mandate.mandate_partner_form
#: view:res.partner.bank:account_banking_mandate.mandate_partner_bank_tree
msgid "DD Mandates"
msgstr "Mandati za direktne obremenitve"
#. module: account_banking_mandate
#: field:account.banking.mandate,signature_date:0
msgid "Date of Signature of the Mandate"
msgstr "Datum podpisa mandata"
#. module: account_banking_mandate
#: field:account.banking.mandate,last_debit_date:0
msgid "Date of the Last Debit"
msgstr "Datum zadnje obremenitve"
#. module: account_banking_mandate
#: help:account.banking.mandate,message_last_post:0
msgid "Date of the last message posted on the record."
msgstr "Datum objave zadnjega sporočila na zapisu."
#. module: account_banking_mandate
#: field:account.invoice,mandate_id:0 field:payment.line,mandate_id:0
msgid "Direct Debit Mandate"
msgstr "Mandat za direktne obremenitve"
#. module: account_banking_mandate
#: view:res.partner.bank:account_banking_mandate.mandate_partner_bank_form
#: field:res.partner.bank,mandate_ids:0
msgid "Direct Debit Mandates"
msgstr "Mandati za direktne obremenitve"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
msgid "Draft"
msgstr "Osnutek"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
msgid "Expired"
msgstr "Pretečeni"
#. module: account_banking_mandate
#: field:account.banking.mandate,message_follower_ids:0
msgid "Followers"
msgstr "Sledilci"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
#: view:account.banking.mandate:account_banking_mandate.view_mandate_tree
msgid "Format"
msgstr "Format"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
msgid "Group By"
msgstr "Zfruži po"
#. module: account_banking_mandate
#: help:account.banking.mandate,message_summary:0
msgid ""
"Holds the Chatter summary (number of messages, ...). This summary is "
"directly in html format in order to be inserted in kanban views."
msgstr "Vsebuje povzetek sporočanja (število sporočil, ...) neposredno v html formatu, da se lahko vstavlja v 'kanban' prikaze."
#. module: account_banking_mandate
#: field:account.banking.mandate,id:0
msgid "ID"
msgstr "ID"
#. module: account_banking_mandate
#: help:account.banking.mandate,message_unread:0
msgid "If checked new messages require your attention."
msgstr "Ko je označeno, zahtevajo vašo pozornost nova sporočila."
#. module: account_banking_mandate
#: model:ir.model,name:account_banking_mandate.model_account_invoice
msgid "Invoice"
msgstr "Račun"
#. module: account_banking_mandate
#: field:account.banking.mandate,message_is_follower:0
msgid "Is a Follower"
msgstr "Je sledilec"
#. module: account_banking_mandate
#: field:account.banking.mandate,message_last_post:0
msgid "Last Message Date"
msgstr "Datum zadnjega sporočila"
#. module: account_banking_mandate
#: field:account.banking.mandate,write_uid:0
msgid "Last Updated by"
msgstr "Zadnji posodobil"
#. module: account_banking_mandate
#: field:account.banking.mandate,write_date:0
msgid "Last Updated on"
msgstr "Zadnjič posodobljeno"
#. module: account_banking_mandate
#: view:bank.payment.line:account_banking_mandate.bank_payment_line_tree
#: view:payment.order:account_banking_mandate.view_mandate_payment_order_form
msgid "Mandate"
msgstr "Mandat"
#. module: account_banking_mandate
#: model:mail.message.subtype,name:account_banking_mandate.mandate_cancel
msgid "Mandate Cancelled"
msgstr "Mandat preklican"
#. module: account_banking_mandate
#: model:mail.message.subtype,name:account_banking_mandate.mandate_expired
msgid "Mandate Expired"
msgstr "Mandat pretečen"
#. module: account_banking_mandate
#: field:account.banking.mandate,format:0
msgid "Mandate Format"
msgstr "Format mandata"
#. module: account_banking_mandate
#: model:mail.message.subtype,name:account_banking_mandate.mandate_valid
msgid "Mandate Validated"
msgstr "Mandat potrjen"
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:147
#, python-format
msgid "Mandate should be in cancel state"
msgstr "Mandat bi moral biti v preklicanem stanju"
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:135
#, python-format
msgid "Mandate should be in draft or valid state"
msgstr "Mandat bi moral biti v stanjih osnutek ali potrjeno"
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:126
#, python-format
msgid "Mandate should be in draft state"
msgstr "Mandat bi moral biti v stanju osnutek"
#. module: account_banking_mandate
#: field:account.banking.mandate,message_ids:0
msgid "Messages"
msgstr "Sporočila"
#. module: account_banking_mandate
#: help:account.banking.mandate,message_ids:0
msgid "Messages and communication history"
msgstr "Sporočila in kronologija komunikacij"
#. module: account_banking_mandate
#: help:account.banking.mandate,state:0
msgid ""
"Only valid mandates can be used in a payment line. A cancelled mandate is a "
"mandate that has been cancelled by the customer."
msgstr "V postavki plačila se lahko uporabijo le veljavni mandati. Preklican mandat je mandat, ki ga je kupec preklical."
#. module: account_banking_mandate
#: field:account.banking.mandate,partner_id:0
msgid "Partner"
msgstr "Partner"
#. module: account_banking_mandate
#: model:ir.model,name:account_banking_mandate.model_payment_line
msgid "Payment Line"
msgstr "Plačilna postavka"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_tree
msgid "Reference"
msgstr "Sklic"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
msgid "Reference or Partner"
msgstr "Sklic ali partner"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
#: field:account.banking.mandate,payment_line_ids:0
msgid "Related Payment Lines"
msgstr "Povezane plačilne postavke"
#. module: account_banking_mandate
#: model:ir.ui.menu,name:account_banking_mandate.mandate_menu
msgid "SEPA Direct Debit Mandates"
msgstr "SEPA mandat za direktno obremenitev"
#. module: account_banking_mandate
#: field:account.banking.mandate,scan:0
msgid "Scan of the Mandate"
msgstr "Sken mandata"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
msgid "Search Banking Mandates"
msgstr "Iskanje bančnih mandatov"
#. module: account_banking_mandate
#: selection:account.banking.mandate,format:0
msgid "Sepa Mandate"
msgstr "SEPA mandat"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
#: view:account.banking.mandate:account_banking_mandate.view_mandate_tree
msgid "Signature Date"
msgstr "Datum podpisa"
#. module: account_banking_mandate
#: field:account.banking.mandate,state:0
msgid "Status"
msgstr "Status"
#. module: account_banking_mandate
#: field:account.banking.mandate,message_summary:0
msgid "Summary"
msgstr "Povzetek"
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:83
#, python-format
msgid "The date of signature of mandate '%s' is in the future !"
msgstr "Datum podpisa mandata '%s' je v prihodnosti!"
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/account_banking_mandate.py:89
#, python-format
msgid ""
"The mandate '%s' can't have a date of last debit before the date of "
"signature."
msgstr "Mandat '%s' ne sme imeti datuma zadnje obremenitve pred datumom podpisa."
#. module: account_banking_mandate
#: code:addons/account_banking_mandate/models/payment_line.py:51
#, python-format
msgid ""
"The payment line with reference '%s' has the bank account '%s' which is not "
"attached to the mandate '%s' (this mandate is attached to the bank account "
"'%s')."
msgstr "Plačilna postavka s sklicem '%s' vsebuje bančni račun '%s', ki ni pripet mandatu '%s' (ta mandat je pripet bančnemu računu '%s')."
#. module: account_banking_mandate
#: field:account.banking.mandate,unique_mandate_reference:0
msgid "Unique Mandate Reference"
msgstr "Unikatni sklic mandata"
#. module: account_banking_mandate
#: field:account.banking.mandate,message_unread:0
msgid "Unread Messages"
msgstr "Neprebrana sporočila"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_search
msgid "Valid"
msgstr "Veljaven"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
msgid "Validate"
msgstr "Potrdi"
#. module: account_banking_mandate
#: view:account.banking.mandate:account_banking_mandate.view_mandate_form
msgid ""
"You should set a mandate back to draft only if you cancelled it by mistake. "
"Do you want to continue?"
msgstr "Mandat ponastavite v osnutek le, če ste ga pomotoma preklicali. Želite nadaljevati?"

View File

@@ -1,26 +1,10 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# Mandate module for openERP
# Copyright (C) 2014 Compassion CH (http://www.compassion.ch)
# @author: Cyril Sester <csester@compassion.ch>,
# Alexis de Lattre <alexis.delattre@akretion.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from . import account_banking_mandate
from . import account_invoice
from . import res_partner_bank
from . import payment_line
# -*- coding: utf-8 -*-
from . import account_banking_mandate
from . import account_payment_method
from . import account_invoice
from . import res_partner_bank
from . import res_partner
from . import account_payment_line
from . import bank_payment_line
from . import account_move_line

View File

@@ -1,154 +1,134 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# Mandate module for openERP
# Copyright (C) 2014 Compassion CH (http://www.compassion.ch)
# @author: Cyril Sester <csester@compassion.ch>,
# Alexis de Lattre <alexis.delattre@akretion.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp import models, fields, exceptions, api, _
class AccountBankingMandate(models.Model):
''' The banking mandate is attached to a bank account and represents an
authorization that the bank account owner gives to a company for a
specific operation (such as direct debit)
'''
_name = 'account.banking.mandate'
_description = "A generic banking mandate"
_rec_name = 'unique_mandate_reference'
_inherit = ['mail.thread']
_order = 'signature_date desc'
_track = {
'state': {
'account_banking_mandate.mandate_valid': (
lambda self, cr, uid, obj, ctx=None: obj['state'] == 'valid'),
'account_banking_mandate.mandate_expired': (
lambda self, cr, uid, obj, ctx=None:
obj['state'] == 'expired'),
'account_banking_mandate.mandate_cancel': (
lambda self, cr, uid, obj, ctx=None: obj['state'] == 'cancel'),
},
}
def _get_states(self):
return [('draft', 'Draft'),
('valid', 'Valid'),
('expired', 'Expired'),
('cancel', 'Cancelled')]
partner_bank_id = fields.Many2one(
comodel_name='res.partner.bank', string='Bank Account',
track_visibility='onchange')
partner_id = fields.Many2one(
comodel_name='res.partner', related='partner_bank_id.partner_id',
string='Partner', store=True)
company_id = fields.Many2one(
comodel_name='res.company', string='Company', required=True,
default=lambda self: self.env['res.company']._company_default_get(
'account.banking.mandate'))
unique_mandate_reference = fields.Char(
string='Unique Mandate Reference', track_visibility='always',
default='/')
signature_date = fields.Date(string='Date of Signature of the Mandate',
track_visibility='onchange')
scan = fields.Binary(string='Scan of the Mandate')
last_debit_date = fields.Date(string='Date of the Last Debit',
readonly=True)
state = fields.Selection(
_get_states, string='Status', default='draft',
help="Only valid mandates can be used in a payment line. A cancelled "
"mandate is a mandate that has been cancelled by the customer.")
payment_line_ids = fields.One2many(
comodel_name='payment.line', inverse_name='mandate_id',
string="Related Payment Lines")
_sql_constraints = [(
'mandate_ref_company_uniq',
'unique(unique_mandate_reference, company_id)',
'A Mandate with the same reference already exists for this company !')]
@api.one
@api.constrains('signature_date', 'last_debit_date')
def _check_dates(self):
if (self.signature_date and
self.signature_date > fields.Date.context_today(self)):
raise exceptions.Warning(
_("The date of signature of mandate '%s' is in the future !")
% self.unique_mandate_reference)
if (self.signature_date and self.last_debit_date and
self.signature_date > self.last_debit_date):
raise exceptions.Warning(
_("The mandate '%s' can't have a date of last debit before "
"the date of signature.") % self.unique_mandate_reference)
@api.one
@api.constrains('state', 'partner_bank_id')
def _check_valid_state(self):
if self.state == 'valid':
if not self.signature_date:
raise exceptions.Warning(
_("Cannot validate the mandate '%s' without a date of "
"signature.") % self.unique_mandate_reference)
if not self.partner_bank_id:
raise exceptions.Warning(
_("Cannot validate the mandate '%s' because it is not "
"attached to a bank account.") %
self.unique_mandate_reference)
@api.model
def create(self, vals=None):
if vals.get('unique_mandate_reference', '/') == '/':
vals['unique_mandate_reference'] = \
self.env['ir.sequence'].next_by_code('account.banking.mandate')
return super(AccountBankingMandate, self).create(vals)
@api.one
@api.onchange('partner_bank_id')
def mandate_partner_bank_change(self):
self.partner_id = self.partner_bank_id.partner_id
@api.multi
def validate(self):
for mandate in self:
if mandate.state != 'draft':
raise exceptions.Warning(
_('Mandate should be in draft state'))
self.write({'state': 'valid'})
return True
@api.multi
def cancel(self):
for mandate in self:
if mandate.state not in ('draft', 'valid'):
raise exceptions.Warning(
_('Mandate should be in draft or valid state'))
self.write({'state': 'cancel'})
return True
@api.multi
def back2draft(self):
"""Allows to set the mandate back to the draft state.
This is for mandates cancelled by mistake.
"""
for mandate in self:
if mandate.state != 'cancel':
raise exceptions.Warning(
_('Mandate should be in cancel state'))
self.write({'state': 'draft'})
return True
# -*- coding: utf-8 -*-
# © 2014 Compassion CH - Cyril Sester <csester@compassion.ch>
# © 2014 Serv. Tecnol. Avanzados - Pedro M. Baeza
# © 2015-2016 Akretion - Alexis de Lattre <alexis.delattre@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import models, fields, api, _
from openerp.exceptions import UserError, ValidationError
class AccountBankingMandate(models.Model):
"""The banking mandate is attached to a bank account and represents an
authorization that the bank account owner gives to a company for a
specific operation (such as direct debit)
"""
_name = 'account.banking.mandate'
_description = "A generic banking mandate"
_rec_name = 'unique_mandate_reference'
_inherit = ['mail.thread']
_order = 'signature_date desc'
format = fields.Selection(
[('basic', 'Basic Mandate')], default='basic', required=True,
string='Mandate Format', track_visibility='onchange')
partner_bank_id = fields.Many2one(
comodel_name='res.partner.bank', string='Bank Account',
track_visibility='onchange')
partner_id = fields.Many2one(
comodel_name='res.partner', related='partner_bank_id.partner_id',
string='Partner', store=True)
company_id = fields.Many2one(
comodel_name='res.company', string='Company', required=True,
default=lambda self: self.env['res.company']._company_default_get(
'account.banking.mandate'))
unique_mandate_reference = fields.Char(
string='Unique Mandate Reference', track_visibility='onchange')
signature_date = fields.Date(string='Date of Signature of the Mandate',
track_visibility='onchange')
scan = fields.Binary(string='Scan of the Mandate')
last_debit_date = fields.Date(string='Date of the Last Debit',
readonly=True)
state = fields.Selection([
('draft', 'Draft'),
('valid', 'Valid'),
('expired', 'Expired'),
('cancel', 'Cancelled'),
], string='Status', default='draft', track_visibility='onchange',
help="Only valid mandates can be used in a payment line. A cancelled "
"mandate is a mandate that has been cancelled by the customer.")
payment_line_ids = fields.One2many(
comodel_name='account.payment.line', inverse_name='mandate_id',
string="Related Payment Lines")
_sql_constraints = [(
'mandate_ref_company_uniq',
'unique(unique_mandate_reference, company_id)',
'A Mandate with the same reference already exists for this company!')]
@api.multi
@api.constrains('signature_date', 'last_debit_date')
def _check_dates(self):
for mandate in self:
if (mandate.signature_date and
mandate.signature_date > fields.Date.context_today(
mandate)):
raise ValidationError(
_("The date of signature of mandate '%s' "
"is in the future!")
% mandate.unique_mandate_reference)
if (mandate.signature_date and mandate.last_debit_date and
mandate.signature_date > mandate.last_debit_date):
raise ValidationError(
_("The mandate '%s' can't have a date of last debit "
"before the date of signature."
) % mandate.unique_mandate_reference)
@api.multi
@api.constrains('state', 'partner_bank_id')
def _check_valid_state(self):
for mandate in self:
if mandate.state == 'valid':
if not mandate.signature_date:
raise ValidationError(
_("Cannot validate the mandate '%s' without a date of "
"signature.") % mandate.unique_mandate_reference)
if not mandate.partner_bank_id:
raise ValidationError(
_("Cannot validate the mandate '%s' because it is not "
"attached to a bank account.") %
mandate.unique_mandate_reference)
@api.model
def create(self, vals=None):
if vals.get('unique_mandate_reference', 'New') == 'New':
vals['unique_mandate_reference'] = \
self.env['ir.sequence'].next_by_code(
'account.banking.mandate') or 'New'
return super(AccountBankingMandate, self).create(vals)
@api.multi
@api.onchange('partner_bank_id')
def mandate_partner_bank_change(self):
for mandate in self:
mandate.partner_id = mandate.partner_bank_id.partner_id
@api.multi
def validate(self):
for mandate in self:
if mandate.state != 'draft':
raise UserError(
_('Mandate should be in draft state.'))
self.write({'state': 'valid'})
return True
@api.multi
def cancel(self):
for mandate in self:
if mandate.state not in ('draft', 'valid'):
raise UserError(
_('Mandate should be in draft or valid state.'))
self.write({'state': 'cancel'})
return True
@api.multi
def back2draft(self):
"""Allows to set the mandate back to the draft state.
This is for mandates cancelled by mistake.
"""
for mandate in self:
if mandate.state != 'cancel':
raise UserError(
_('Mandate should be in cancel state.'))
self.write({'state': 'draft'})
return True

View File

@@ -1,33 +1,75 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# Mandate module for openERP
# Copyright (C) 2014 Compassion CH (http://www.compassion.ch)
# @author: Cyril Sester <csester@compassion.ch>,
# Alexis de Lattre <alexis.delattre@akretion.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp import models, fields
class AccountInvoice(models.Model):
_inherit = 'account.invoice'
mandate_id = fields.Many2one(
'account.banking.mandate', string='Direct Debit Mandate',
domain=[('state', '=', 'valid')], readonly=True,
states={'draft': [('readonly', False)]})
# -*- coding: utf-8 -*-
# © 2014 Compassion CH - Cyril Sester <csester@compassion.ch>
# © 2014 Serv. Tecnol. Avanzados - Pedro M. Baeza
# © 2016 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import models, fields, api
class AccountInvoice(models.Model):
_inherit = 'account.invoice'
mandate_id = fields.Many2one(
'account.banking.mandate', string='Direct Debit Mandate',
ondelete='restrict',
readonly=True, states={'draft': [('readonly', False)]})
mandate_required = fields.Boolean(
related='payment_mode_id.payment_method_id.mandate_required',
readonly=True)
@api.model
def line_get_convert(self, line, part):
"""Copy mandate from invoice to account move line"""
res = super(AccountInvoice, self).line_get_convert(line, part)
if line.get('type') == 'dest' and line.get('invoice_id'):
invoice = self.browse(line['invoice_id'])
if invoice.type in ('out_invoice', 'out_refund'):
res['mandate_id'] = invoice.mandate_id.id or False
return res
# If a customer pays via direct debit, it's refunds should
# be deducted form the next debit by default. The module
# account_payment_partner copies payment_mode_id from invoice
# to refund, and we also need to copy mandate from invoice to refund
@api.model
def _prepare_refund(
self, invoice, date_invoice=None, date=None, description=None,
journal_id=None):
vals = super(AccountInvoice, self)._prepare_refund(
invoice, date_invoice=date_invoice, date=date,
description=description, journal_id=journal_id)
if invoice.type == 'out_invoice':
vals['mandate_id'] = invoice.mandate_id.id
return vals
@api.onchange('partner_id', 'company_id')
def _onchange_partner_id(self):
"""Select by default the first valid mandate of the partner"""
super(AccountInvoice, self)._onchange_partner_id()
if (
self.type == 'out_invoice' and
self.partner_id.customer_payment_mode_id.
payment_type == 'inbound' and
self.partner_id.customer_payment_mode_id.payment_method_id.
mandate_required and
self.commercial_partner_id):
mandates = self.env['account.banking.mandate'].search([
('state', '=', 'valid'),
('partner_id', '=', self.commercial_partner_id.id),
])
self.mandate_id = mandates[0]
else:
self.mandate_id = False
@api.onchange('payment_mode_id')
def payment_mode_id_change(self):
super(AccountInvoice, self).payment_mode_id_change()
if (
self.payment_mode_id and
self.payment_mode_id.payment_type == 'inbound' and
not self.payment_mode_id.payment_method_id.mandate_required):
self.mandate_id = False
elif not self.payment_mode_id:
self.mandate_id = False

View File

@@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
# © 2016 Akretion (http://www.akretion.com/)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import models, fields, api
class AccountMoveLine(models.Model):
_inherit = 'account.move.line'
mandate_id = fields.Many2one(
'account.banking.mandate', string='Direct Debit Mandate',
ondelete='restrict')
@api.multi
def _prepare_payment_line_vals(self, payment_order):
vals = super(AccountMoveLine, self)._prepare_payment_line_vals(
payment_order)
if payment_order.payment_type == 'inbound' and self.mandate_id:
vals['mandate_id'] = self.mandate_id.id
vals['partner_bank_id'] = self.mandate_id.partner_bank_id.id
return vals

View File

@@ -0,0 +1,42 @@
# -*- coding: utf-8 -*-
# © 2014 Compassion CH - Cyril Sester <csester@compassion.ch>
# © 2014 Serv. Tecnol. Avanzados - Pedro M. Baeza
# © 2015-2016 Akretion - Alexis de Lattre <alexis.delattre@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import models, fields, api, _
from openerp.exceptions import ValidationError, UserError
class AccountPaymentLine(models.Model):
_inherit = 'account.payment.line'
mandate_id = fields.Many2one(
comodel_name='account.banking.mandate', string='Direct Debit Mandate',
domain=[('state', '=', 'valid')])
mandate_required = fields.Boolean(
related='order_id.payment_method_id.mandate_required', readonly=True)
@api.multi
@api.constrains('mandate_id', 'partner_bank_id')
def _check_mandate_bank_link(self):
for pline in self:
if (pline.mandate_id and pline.partner_bank_id and
pline.mandate_id.partner_bank_id !=
pline.partner_bank_id):
raise ValidationError(_(
"The payment line number %s has the bank account "
"'%s' which is not attached to the mandate '%s' (this "
"mandate is attached to the bank account '%s').") %
(pline.name,
pline.partner_bank_id.acc_number,
pline.mandate_id.unique_mandate_reference,
pline.mandate_id.partner_bank_id.acc_number))
@api.multi
def draft2open_payment_line_check(self):
res = super(AccountPaymentLine, self).draft2open_payment_line_check()
if self.mandate_required and not self.mandate_id:
raise UserError(_(
'Missing Mandate on payment line %s') % self.name)
return res

View File

@@ -0,0 +1,14 @@
# -*- coding: utf-8 -*-
# © 2016 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import models, fields
class AccountPaymentMethod(models.Model):
_inherit = "account.payment.method"
mandate_required = fields.Boolean(
string='Mandate Required',
help="Activate this option if this payment method requires your "
"customer to sign a direct debit mandate with your company.")

View File

@@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
# © 2014 Compassion CH - Cyril Sester <csester@compassion.ch>
# © 2014 Serv. Tecnol. Avanzados - Pedro M. Baeza
# © 2015-2016 Akretion - Alexis de Lattre <alexis.delattre@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import models, fields, api
class BankPaymentLine(models.Model):
_inherit = 'bank.payment.line'
mandate_id = fields.Many2one(
comodel_name='account.banking.mandate', string='Direct Debit Mandate',
related='payment_line_ids.mandate_id')
@api.model
def same_fields_payment_line_and_bank_payment_line(self):
res = super(BankPaymentLine, self).\
same_fields_payment_line_and_bank_payment_line()
res.append('mandate_id')
return res

View File

@@ -1,76 +0,0 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# Mandate module for openERP
# Copyright (C) 2014 Compassion CH (http://www.compassion.ch)
# @author: Cyril Sester <csester@compassion.ch>,
# Alexis de Lattre <alexis.delattre@akretion.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp import models, fields, api, exceptions, _
class PaymentLine(models.Model):
_inherit = 'payment.line'
mandate_id = fields.Many2one(
comodel_name='account.banking.mandate', string='Direct Debit Mandate',
domain=[('state', '=', 'valid')])
@api.model
def create(self, vals=None):
"""If the customer invoice has a mandate, take it
otherwise, take the first valid mandate of the bank account
"""
if vals is None:
vals = {}
partner_bank_id = vals.get('bank_id')
move_line_id = vals.get('move_line_id')
if (self.env.context.get('search_payment_order_type') == 'debit' and
'mandate_id' not in vals):
if move_line_id:
line = self.env['account.move.line'].browse(move_line_id)
if (line.invoice and line.invoice.type == 'out_invoice' and
line.invoice.mandate_id):
vals.update({
'mandate_id': line.invoice.mandate_id.id,
'bank_id': line.invoice.mandate_id.partner_bank_id.id,
})
if partner_bank_id and 'mandate_id' not in vals:
mandates = self.env['account.banking.mandate'].search(
[('partner_bank_id', '=', partner_bank_id),
('state', '=', 'valid')])
if mandates:
vals['mandate_id'] = mandates[0].id
return super(PaymentLine, self).create(vals)
@api.one
@api.constrains('mandate_id', 'bank_id')
def _check_mandate_bank_link(self):
if (self.mandate_id and self.bank_id and
self.mandate_id.partner_bank_id.id !=
self.bank_id.id):
raise exceptions.Warning(
_("The payment line with reference '%s' has the bank account "
"'%s' which is not attached to the mandate '%s' (this "
"mandate is attached to the bank account '%s').") %
(self.name,
self.env['res.partner.bank'].name_get(
[self.bank_id.id])[0][1],
self.mandate_id.unique_mandate_reference,
self.env['res.partner.bank'].name_get(
[self.mandate_id.partner_bank_id.id])[0][1]))

View File

@@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
# © 2016 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import models, fields, api
class ResPartner(models.Model):
_inherit = 'res.partner'
mandate_count = fields.Integer(
compute='_compute_mandate_count', string="Number of Mandates",
readonly=True)
@api.multi
def _compute_mandate_count(self):
mandate_data = self.env['account.banking.mandate'].read_group(
[('partner_id', 'in', self.ids)], ['partner_id'], ['partner_id'])
mapped_data = dict([
(mandate['partner_id'][0], mandate['partner_id_count'])
for mandate in mandate_data])
for partner in self:
partner.mandate_count = mapped_data.get(partner.id, 0)

View File

@@ -1,34 +1,16 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# Mandate module for openERP
# Copyright (C) 2014 Compassion CH (http://www.compassion.ch)
# @author: Cyril Sester <csester@compassion.ch>,
# Alexis de Lattre <alexis.delattre@akretion.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp import models, fields
class ResPartnerBank(models.Model):
_inherit = 'res.partner.bank'
mandate_ids = fields.One2many(
comodel_name='account.banking.mandate', inverse_name='partner_bank_id',
string='Direct Debit Mandates',
help='Banking mandates represents an authorization that the bank '
'account owner gives to a company for a specific operation')
# -*- coding: utf-8 -*-
# © 2014 Compassion CH - Cyril Sester <csester@compassion.ch>
# © 2014 Serv. Tecnol. Avanzados - Pedro M. Baeza
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import models, fields
class ResPartnerBank(models.Model):
_inherit = 'res.partner.bank'
mandate_ids = fields.One2many(
comodel_name='account.banking.mandate', inverse_name='partner_bank_id',
string='Direct Debit Mandates',
help='Banking mandates represent an authorization that the bank '
'account owner gives to a company for a specific operation.')

View File

@@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!-- QWeb Report -->
<report
id="report_account_banking_mandate"
model="account.banking.mandate"
string="Mandate"
report_type="qweb-pdf"
name="account_banking_mandate.account_banking_mandate"
file="account_banking_mandate.account_banking_mandate"
/>
<record id="report_account_banking_mandate" model="ir.actions.report.xml">
<field name="paperformat_id" ref="account_banking_mandate.paperformat_euro_sepa_lowmargin"/>
</record>
</data>
</openerp>

View File

@@ -1,146 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<template id="account_banking_mandate_document">
<div class="page">
<div class="row mt0 mb16">
<div class="col-xs-3">
<img t-if="o.company_id.logo" t-att-src="'data:image/png;base64,%s' % o.company_id.logo" style="max-height: 45px;"/>
</div>
<div class="col-xs-9 text-right">
<h4 t-if="o.scheme != 'B2B'"><strong>SEPA DIRECT DEBIT MANDATE</strong></h4>
<h4 t-if="o.scheme == 'B2B'"><strong>SEPA BUSINESS-TO-BUSINESS DIRECT DEBIT MANDATE</strong></h4>
<h5>Reference: <span t-field="o.unique_mandate_reference"/></h5>
</div>
</div>
<div class="row mt8">
<div class="col-xs-6">
<div class="panel panel-default">
<div class="panel-heading">
Service Provider / Creditor:
</div>
<div class="panel-body mb8">
<strong t-field="o.company_id.partner_id and o.company_id.partner_id.name"/><br/>
<span t-if="o.company_id.partner_id.vat">VAT: <span t-field="o.company_id.partner_id.vat"/></span>
<span t-field="o.company_id.partner_id"
t-field-options='{"widget": "contact", "fields": ["address"], "no_marker": true}' />
</div>
</div>
</div>
<div class="col-xs-6">
<div class="panel panel-default">
<div class="panel-heading">
Policyholder Service / Debtor:
</div>
<div class="panel-body">
<strong t-field="o.partner_id and o.partner_id.name"/>
<span t-field="o.partner_id"
t-field-options='{"widget": "contact", "fields": ["address"], "no_marker": true}' />
<span t-if="o.partner_id.vat">VAT: <span t-field="o.partner_id.vat"/></span>
</div>
</div>
</div>
</div>
<div class="row mt0">
<div class="col-xs-12">
Bank name: <span t-field="o.partner_bank_id.bank_name"/> / BIC: <span t-field="o.partner_bank_id.bank_bic"/><br/>
IBAN: <span t-field="o.partner_bank_id.acc_number"/><br/>
Payment type: <span t-field="o.type"/>
</div>
</div>
<div class="row mt8">
<div class="col-xs-12">
By signing this mandate form, you authorise (A) <span t-field="o.company_id.name"/> to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from <span t-field="o.company_id.name"/>.
</div>
</div>
<div class="row mt8">
<div class="col-xs-12 mb32">
<span class="mt0" t-if="o.scheme == 'B2B'">
This mandate is only intended for business-to-business transactions. You are not entitled to a refund from your bank after your account has been debited, but you are entitled to request your bank not to debit your account up until the day on which the payment is due.
Please complete all the fields marked *.
</span>
<span class="mt0" t-if="o.scheme != 'B2B'">
As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank.
A refund must be claimed within 8 weeks starting from the date on which your account was debited.
</span>
</div>
</div>
<div class="row mt16">
<div class="col-xs-12">
Location and sign: _______________________, at ______ from ____________ from <span t-esc="context_timestamp(datetime.datetime.now()).strftime('%Y')"/>
</div>
</div>
<div class="row mt32">
<div class="col-xs-12">
<div class="panel panel-default">
<div class="panel-heading">
Details regarding the underlying relationship between the Creditor and the Debtor - for information purposes only.
</div>
<div class="panel-body">
<div class="row">
<div class="col-xs-3">Debtor identification code:</div>
<div class="col-xs-9">
<hr class="mb0" style="border-top: 1px solid #000;"/>
<h6 class="mt0" t-if="o.scheme != 'B2B'">Write any code number here which you wish to have quoted by your bank.</h6>
<h6 class="mt0" t-if="o.scheme == 'B2B'">For business users: write any code number here which you wish to have quoted by your bank.</h6>
</div>
</div>
<div class="row">
<div class="col-xs-3">Person on whose behalf payment is made:</div>
<div class="col-xs-9">
<hr class="mb0" style="border-top: 1px solid #000;"/>
<h6 class="mt0">Name of the Debtor Reference Party: If you are making a payment in respect of an arrangement between
<span t-field="o.company_id.name"></span> and another person (e.g. where you are paying the other person's bill) please write the other person's name here.</h6>
<h6 class="mt0">
If you are paying on your own behalf, leave blank.
</h6>
<hr class="mb0" style="border-top: 1px solid #000;"/>
<h6 class="mt0">
Identification code of the Debtor Reference Party.
</h6>
</div>
</div>
<div class="row">
<div class="col-xs-3">Party on whose behalf the creditor collects the payment:</div>
<div class="col-xs-9">
<hr class="mb0" style="border-top: 1px solid #000;"/>
<h6 class="mt0">
Name of the Creditor Reference Party: Creditor must complete this section if collecting payment on behalf of another party.
</h6>
<hr class="mb0" style="border-top: 1px solid #000;"/>
<h6 class="mt0">
Identification code of the Creditor Reference Party.
</h6>
</div>
</div>
<div class="row">
<div class="col-xs-3">In respect of the contract:</div>
<div class="col-xs-9">
<hr class="mb0" style="border-top: 1px solid #000;"/>
<h6 class="mt0">
Identification number of the underlying contract.
</h6>
<hr class="mb0" style="border-top: 1px solid #000;"/>
<h6 class="mt0">
Description of contract.
</h6>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<template id="account_banking_mandate">
<t t-call="report.html_container">
<t t-foreach="doc_ids" t-as="doc_id">
<t t-raw="translate_doc(doc_id, doc_model, 'partner_id.lang', 'account_banking_mandate.account_banking_mandate_document')"/>
</t>
</t>
</template>
</data>
</openerp>

View File

@@ -1,3 +1,3 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_account_banking_mandate","Full access on account.banking.mandate","model_account_banking_mandate","account_payment.group_account_payment",1,1,1,1
"access_account_banking_mandate_read","Read access on account.banking.mandate","model_account_banking_mandate","base.group_user",1,0,0,0
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_account_banking_mandate,Full access on account.banking.mandate,model_account_banking_mandate,account_payment_order.group_account_payment,1,1,1,1
access_account_banking_mandate_read,Read access on account.banking.mandate,model_account_banking_mandate,base.group_user,1,0,0,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_account_banking_mandate Full access on account.banking.mandate model_account_banking_mandate account_payment.group_account_payment account_payment_order.group_account_payment 1 1 1 1
3 access_account_banking_mandate_read Read access on account.banking.mandate model_account_banking_mandate base.group_user 1 0 0 0

View File

@@ -13,6 +13,10 @@
<field name="name">Banking Mandate multi-company</field>
<field name="model_id" ref="model_account_banking_mandate"/>
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'child_of', [user.company_id.id])]</field>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="False"/>
<field name="perm_unlink" eval="True"/>
<field name="perm_create" eval="True"/>
</record>
</data>

View File

@@ -10,7 +10,6 @@
I create a partner bank account
-
!record {model: res.partner.bank, id: mandate_partner_bank, view: False}:
state: 'bank'
acc_number: '1234'
partner_id: mandate_partner
-

View File

@@ -12,7 +12,7 @@
<field name="name">view.mandate.form</field>
<field name="model">account.banking.mandate</field>
<field name="arch" type="xml">
<form string="Banking Mandate" version="7.0">
<form string="Banking Mandate">
<header>
<button name="validate" type="object" string="Validate" states="draft" class="oe_highlight"/>
<button name="cancel" type="object" string="Cancel" states="draft,valid"/>
@@ -31,9 +31,9 @@
</div>
<group name="main">
<field name="company_id" groups="base.group_multi_company"/>
<field name="format" string="Format"/>
<field name="partner_bank_id"
invisible="context.get('mandate_bank_partner_view')"
domain="[('partner_id', '=', partner_id)]" />
invisible="context.get('mandate_bank_partner_view')" />
<field name="partner_id"
invisible="context.get('mandate_bank_partner_view')"
readonly="True"/>
@@ -60,6 +60,7 @@
<tree string="Banking Mandate" colors="blue:state=='draft';black:state in ('expired', 'cancel')">
<field name="company_id" groups="base.group_multi_company"/>
<field name="partner_id" invisible="context.get('mandate_bank_partner_view')"/>
<field name="format" string="Format"/>
<field name="unique_mandate_reference" string="Reference"/>
<field name="signature_date" string="Signature Date"/>
<field name="last_debit_date"/>
@@ -80,6 +81,7 @@
<filter name="cancel" string="Cancelled" domain="[('state', '=', 'cancel')]" />
<filter name="expired" string="Expired" domain="[('state', '=', 'expired')]" />
<group string="Group By" name="groupby">
<filter name="state_groupby" string="State" context="{'group_by': 'state'}"/>
<filter name="signature_date_groupby" string="Signature Date" context="{'group_by': 'signature_date'}"/>
</group>
</search>
@@ -100,33 +102,11 @@
</record>
<menuitem id="mandate_menu"
parent="account_payment.menu_main_payment"
parent="account_payment_order.payment_root"
action="mandate_action"
sequence="20"
sequence="30"
/>
<!-- notifications in the chatter -->
<record id="mandate_valid" model="mail.message.subtype">
<field name="name">Mandate Validated</field>
<field name="res_model">account.banking.mandate</field>
<field name="default" eval="False"/>
<field name="description">Banking Mandate Validated</field>
</record>
<record id="mandate_expired" model="mail.message.subtype">
<field name="name">Mandate Expired</field>
<field name="res_model">account.banking.mandate</field>
<field name="default" eval="False"/>
<field name="description">Banking Mandate has Expired</field>
</record>
<record id="mandate_cancel" model="mail.message.subtype">
<field name="name">Mandate Cancelled</field>
<field name="res_model">account.banking.mandate</field>
<field name="default" eval="False"/>
<field name="description">Banking Mandate Cancelled</field>
</record>
</data>
</openerp>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2013 Akretion (http://www.akretion.com)
Copyright (C) 2013-2016 Akretion (http://www.akretion.com)
@author: Alexis de Lattre <alexis.delattre@akretion.com>
The licence is in the file __openerp__.py
-->
@@ -10,10 +10,13 @@
<record id="invoice_form" model="ir.ui.view">
<field name="name">add.mandate.on.customer.invoice.form</field>
<field name="model">account.invoice</field>
<field name="inherit_id" ref="account.invoice_form"/>
<field name="inherit_id" ref="account_payment_partner.invoice_form"/>
<field name="arch" type="xml">
<field name="partner_bank_id" position="after">
<field name="mandate_id" domain="[('partner_id', '=', partner_id), ('state', '=', 'valid')]" attrs="{'invisible': [('type', '=', 'out_refund')]}"/>
<field name="payment_mode_id" position="after">
<field name="mandate_id"
domain="[('partner_id', '=', commercial_partner_id), ('state', '=', 'valid')]"
attrs="{'required': [('mandate_required', '=', True)], 'invisible': [('mandate_required', '=', False)]}"/>
<field name="mandate_required" invisible="1"/>
</field>
</field>
</record>

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2016 Akretion (http://www.akretion.com/)
@author Alexis de Lattre <alexis.delattre@akretion.com>
The licence is in the file __openerp__.py
-->
<openerp>
<data>
<record id="view_move_line_form" model="ir.ui.view">
<field name="name">account_banking_mandate.move_line_form</field>
<field name="model">account.move.line</field>
<field name="inherit_id" ref="account_payment_order.view_move_line_form" />
<field name="arch" type="xml">
<field name="partner_bank_id" position="after">
<field name="mandate_id"
domain="[('partner_id', '=', partner_id), ('state', '=', 'valid')]"/>
</field>
</field>
</record>
</data>
</openerp>

View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
© 2013-2016 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-->
<odoo>
<data>
<record id="account_payment_line_form" model="ir.ui.view">
<field name="name">account_banking_mandate.account.payment.line.form</field>
<field name="model">account.payment.line</field>
<field name="inherit_id" ref="account_payment_order.account_payment_line_form"/>
<field name="arch" type="xml">
<field name="partner_bank_id" position="after">
<field name="mandate_required" invisible="1"/>
<field name="mandate_id"
domain="[('partner_bank_id', '=', partner_bank_id), ('state', '=', 'valid')]"
attrs="{'invisible': [('mandate_required', '=', False)], 'required': [('mandate_required', '=', True)]}"
context="{'default_partner_bank_id': partner_bank_id}"/>
</field>
</field>
</record>
<record id="account_payment_line_tree" model="ir.ui.view">
<field name="name">account_banking_mandate.account.payment.line.tree</field>
<field name="model">account.payment.line</field>
<field name="inherit_id" ref="account_payment_order.account_payment_line_tree"/>
<field name="arch" type="xml">
<field name="partner_bank_id" position="after">
<field name="mandate_id"
invisible="context.get('default_payment_type') != 'inbound'"/>
</field>
</field>
</record>
</data>
</odoo>

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="account_payment_method_form" model="ir.ui.view">
<field name="name">account_banking_mandate.account.payment.method.form</field>
<field name="model">account.payment.method</field>
<field name="inherit_id" ref="account_payment_mode.account_payment_method_form"/>
<field name="arch" type="xml">
<field name="bank_account_required" position="after">
<field name="mandate_required"
attrs="{'invisible': [('payment_type', '!=', 'inbound')]}"/>
</field>
</field>
</record>
</data>
</openerp>

View File

@@ -1,26 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2013 Akretion (http://www.akretion.com)
@author: Alexis de Lattre <alexis.delattre@akretion.com>
The licence is in the file __openerp__.py
-->
<openerp>
<data>
<record id="view_mandate_payment_order_form" model="ir.ui.view">
<field name="name">mandate.payment.order.form</field>
<field name="model">payment.order</field>
<field name="inherit_id" ref="account_payment.view_payment_order_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='line_ids']/form/notebook/page/group/field[@name='bank_id']" position="after">
<field name="mandate_id" domain="[('partner_bank_id', '=', bank_id), ('state', '=', 'valid')]" invisible="context.get('search_payment_order_type')!='debit'" context="{'default_partner_bank_id': bank_id}"/>
<newline />
</xpath>
<xpath expr="//field[@name='line_ids']/tree/field[@name='bank_id']" position="after">
<field name="mandate_id" string="DD Mandate" invisible="context.get('search_payment_order_type')!='debit'"/>
</xpath>
</field>
</record>
</data>
</openerp>

View File

@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2015-2016 Akretion (http://www.akretion.com)
@author: Alexis de Lattre <alexis.delattre@akretion.com>
The licence is in the file __openerp__.py
-->
<openerp>
<data>
<record id="bank_payment_line_form" model="ir.ui.view">
<field name="name">banking.mandate.bank.payment.line.form</field>
<field name="model">bank.payment.line</field>
<field name="inherit_id" ref="account_payment_order.bank_payment_line_form"/>
<field name="arch" type="xml">
<field name="partner_bank_id" position="after">
<field name="mandate_id"
invisible="context.get('default_payment_type')!='inbound'"/>
</field>
</field>
</record>
<record id="bank_payment_line_tree" model="ir.ui.view">
<field name="name">banking.mandate.bank.payment.line.tree</field>
<field name="model">bank.payment.line</field>
<field name="inherit_id" ref="account_payment_order.bank_payment_line_tree"/>
<field name="arch" type="xml">
<field name="partner_bank_id" position="after">
<field name="mandate_id" string="Mandate"
invisible="context.get('default_payment_type')!='inbound'"/>
</field>
</field>
</record>
</data>
</openerp>

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2016 Akretion (http://www.akretion.com)
@author: Alexis de Lattre <alexis.delattre@akretion.com>
The licence is in the file __openerp__.py
-->
<openerp>
<data>
<record id="partner_view_buttons" model="ir.ui.view">
<field name="name">mandate.res.partner.form</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="account.partner_view_buttons"/>
<field name="arch" type="xml">
<xpath expr="//button[@name='%(base.action_res_partner_bank_account_form)d']" position="after">
<button type="action" class="btn-link"
name="%(account_banking_mandate.mandate_action)d"
context="{'search_default_partner_id': active_id, 'default_partner_id': active_id}">
<field string="Mandate(s)" name="mandate_count" widget="statinfo"/>
</button>
</xpath>
</field>
</record>
</data>
</openerp>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2013 Akretion (http://www.akretion.com)
Copyright (C) 2013-2016 Akretion (http://www.akretion.com)
@author: Alexis de Lattre <alexis.delattre@akretion.com>
The licence is in the file __openerp__.py
-->
@@ -12,8 +12,8 @@
<field name="model">res.partner.bank</field>
<field name="inherit_id" ref="base.view_partner_bank_form"/>
<field name="arch" type="xml">
<group name="bank" position="after">
<group name="mandates" string="Direct Debit Mandates" colspan="4">
<group col="4" position="after">
<group name="mandates" string="Direct Debit Mandates">
<field name="mandate_ids" context="{'default_partner_bank_id': active_id, 'mandate_bank_partner_view': True}" nolabel="1"/>
</group>
</group>
@@ -26,23 +26,10 @@
<field name="inherit_id" ref="base.view_partner_bank_tree"/>
<field name="arch" type="xml">
<field name="partner_id" position="after">
<field name="mandate_ids" string="DD Mandates"/>
<field name="mandate_ids" string="Mandates"/>
</field>
</field>
</record>
<!-- add number of mandates in this list of bank accounts
on the partner form -->
<record id="mandate_partner_form" model="ir.ui.view">
<field name="name">mandate.partner.form</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="account.view_partner_property_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='bank_ids']/tree/field[@name='owner_name']" position="after">
<field name="mandate_ids" string="DD Mandates"/>
</xpath>
</field>
</record>
</data>
</openerp>

View File

@@ -0,0 +1,66 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:alt: License: AGPL-3
============================
Account Banking Mandate Sale
============================
This modules adds the field *Direct Debit Mandate* on sale orders.
Configuration
=============
There is nothing to configure.
Usage
=====
When you select a payment mode that requires mandate on a sale order, Odoo will
select by default the first valid mandate of this customer.
The mandate will be copied from the sale order to the invoice.
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/173/9.0
Known issues / Roadmap
======================
* No known issues.
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.
Credits
=======
Images
------
* Odoo Community Association: `Icon <https://github.com/OCA/maintainer-tools/blob/master/template/module/static/description/icon.svg>`_.
Contributors
------------
* Alexis de Lattre <alexis.delattre@akretion.com>
Maintainer
----------
.. image:: http://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: http://odoo-community.org
This module is maintained by the OCA.
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.
To contribute to this module, please visit http://odoo-community.org.

View File

@@ -1,2 +1,4 @@
# -*- coding: utf-8 -*-
from . import models
from . import wizard

View File

@@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
# © 2016 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
'name': 'Account Banking Mandate Sale',
'version': '9.0.1.0.0',
'category': 'Banking addons',
'license': 'AGPL-3',
'summary': "Adds mandates on sale orders",
'author': "Akretion, "
"Odoo Community Association (OCA)",
'website': 'https://github.com/OCA/bank-payment',
'depends': [
'account_payment_sale',
'account_banking_mandate',
],
'data': [
'views/sale_order.xml',
],
'installable': True,
}

View File

@@ -0,0 +1,3 @@
# -*- coding: utf-8 -*-
from . import sale_order

View File

@@ -0,0 +1,38 @@
# -*- coding: utf-8 -*-
# © 2014-2016 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from openerp import models, fields, api
class SaleOrder(models.Model):
_inherit = "sale.order"
# This field commercial_partner_id should be moved
# in an OCA base module named for example sale_commercial_partner
commercial_partner_id = fields.Many2one(
related='partner_id.commercial_partner_id', string='Commercial Entity',
store=True, readonly=True)
mandate_id = fields.Many2one(
'account.banking.mandate', string='Direct Debit Mandate',
ondelete='restrict', readonly=True,
states={'draft': [('readonly', False)], 'sent': [('readonly', False)]})
@api.multi
def _prepare_invoice(self):
"""Copy mandate from sale order to invoice"""
vals = super(SaleOrder, self)._prepare_invoice()
vals['mandate_id'] = self.mandate_id.id
return vals
@api.onchange('payment_mode_id')
def payment_mode_change(self):
"""Select by default the first valid mandate of the partner"""
if (
self.payment_mode_id.payment_method_id.mandate_required and
self.partner_id):
mandates = self.env['account.banking.mandate'].search([
('state', '=', 'valid'),
('partner_id', '=', self.commercial_partner_id.id),
])
self.mandate_id = mandates[0]

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2016 Akretion (http://www.akretion.com/)
@author Alexis de Lattre <alexis.delattre@akretion.com>
The licence is in the file __openerp__.py
-->
<openerp>
<data>
<record id="view_order_form" model="ir.ui.view">
<field name="name">account_banking_mandate_sale.sale_order.form</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="account_payment_sale.view_order_form"/>
<field name="arch" type="xml">
<field name="payment_mode_id" position="after">
<field name="commercial_partner_id" invisible="1"/>
<field name="mandate_id"
domain="[('partner_id', '=', commercial_partner_id), ('state', 'in', ('draft', 'valid'))]"/>
</field>
</field>
</record>
</data>
</openerp>

View File

@@ -0,0 +1,3 @@
# -*- coding: utf-8 -*-
from . import sale_make_invoice_advance

View File

@@ -0,0 +1,18 @@
# -*- coding: utf-8 -*-
# © 2016 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from openerp import models, api
class SaleAdvancePaymentInv(models.TransientModel):
_inherit = 'sale.advance.payment.inv'
@api.multi
def _create_invoice(self, order, so_line, amount):
"""Copy mandate from sale order to invoice"""
inv = super(SaleAdvancePaymentInv, self)._create_invoice(
order, so_line, amount)
if order.mandate_id:
inv.mandate_id = order.mandate_id.id
return inv

View File

@@ -1,6 +1,7 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:alt: License: AGPL-3
================================
Account Banking PAIN Base Module
================================
@@ -16,7 +17,8 @@ Installation
============
This module depends on :
- account_banking_payment_export
- account_payment_order
This module is part of the OCA/bank-payment suite.
@@ -30,23 +32,22 @@ Usage
See 'readme' files of the OCA/bank-payment suite.
For further information, please visit:
* https://www.odoo.com/forum/help-1
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/173/9.0
Known issues / Roadmap
======================
* no known issues
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
`here <https://github.com/OCA/bank-payment/issues/new?body=module:%20account_banking_pain_base%0Aversion:%208.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
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.
Credits
=======
@@ -54,14 +55,15 @@ Credits
Contributors
------------
* Alexis de Lattre
* Alexis de Lattre <alexis.delattre@akretion.com>
* Pedro M. Baeza
* Stéphane Bidoul <stephane.bidoul@acsone.eu>
* Stéphane Bidoul <stephane.bidoul@acsone.eu>
* Ignacio Ibeas - Acysos S.L.
* Alexandre Fayolle
* Raphaël Valyi
* Sandy Carter
* Stefan Rijnhart (Therp)
* Antonio Espinosa <antonioea@antiun.com>
Maintainer
----------

View File

@@ -1,24 +1,7 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# PAIN Base module for Odoo
# Copyright (C) 2013 Akretion (http://www.akretion.com)
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
# -*- coding: utf-8 -*-
# © 2013 Akretion - Alexis de Lattre <alexis.delattre@akretion.com>
# © 2014 Serv. Tecnol. Avanzados - Pedro M. Baeza
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from . import models
from .post_install import set_default_initiating_party

View File

@@ -1,45 +1,34 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# PAIN base module for Odoo
# Copyright (C) 2013-2015 Akretion (http://www.akretion.com)
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
# -*- coding: utf-8 -*-
# © 2013-2016 Akretion - Alexis de Lattre <alexis.delattre@akretion.com>
# © 2014 Serv. Tecnol. Avanzados - Pedro M. Baeza
# © 2016 Antiun Ingenieria S.L. - Antonio Espinosa
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
{
'name': 'Account Banking PAIN Base Module',
'summary': 'Base module for PAIN file generation',
'version': '8.0.0.2.0',
'version': '9.0.1.0.0',
'license': 'AGPL-3',
'author': "Akretion, "
"Noviat, "
"Serv. Tecnol. Avanzados - Pedro M. Baeza, "
"Antiun Ingeniería S.L., "
"Odoo Community Association (OCA)",
'website': 'https://github.com/OCA/bank-payment',
'contributors': ['Pedro M. Baeza <pedro.baeza@serviciosbaeza.com>'],
'category': 'Hidden',
'depends': ['account_banking_payment_export'],
'depends': ['account_payment_order'],
'external_dependencies': {
'python': ['unidecode', 'lxml'],
},
'data': [
'views/payment_line_view.xml',
'views/payment_mode_view.xml',
'views/account_payment_line.xml',
'views/account_payment_order.xml',
'views/bank_payment_line_view.xml',
'views/account_payment_mode.xml',
'views/res_company_view.xml',
'views/account_payment_method.xml',
],
'post_init_hook': 'set_default_initiating_party',
'installable': False,
'installable': True,
}

View File

@@ -1,28 +1,40 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_banking_pain_base
#
# * account_banking_pain_base
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Project-Id-Version: bank-payment (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-10-31 22:52+0000\n"
"PO-Revision-Date: 2014-10-31 22:52+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"POT-Creation-Date: 2016-04-08 00:46+0000\n"
"PO-Revision-Date: 2016-04-06 00:14+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>\n"
"Language-Team: Spanish (http://www.transifex.com/oca/OCA-bank-payment-8-0/language/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:74
#: model:ir.model,name:account_banking_pain_base.model_res_partner_bank
msgid "Bank Accounts"
msgstr "Cuentas de banco"
#. module: account_banking_pain_base
#: model:ir.model,name:account_banking_pain_base.model_bank_payment_line
msgid "Bank Payment Lines"
msgstr "Líneas de pago bancario"
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:62
#, python-format
msgid "Cannot compute the '%s' of the Payment Line with reference '%s'."
msgstr "No se puede procesar el campo '%s' de la línea de pago con referencia '%s'."
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:80
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:67
#, python-format
msgid "Cannot compute the '%s'."
msgstr "No se puede procesar el campo '%s'."
@@ -38,23 +50,11 @@ msgid "Convert to ASCII"
msgstr "Convertir a ASCII"
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:47
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:73
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:79
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:89
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:124
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:303
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:385
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:282
#, python-format
msgid "Error:"
msgstr "Error:"
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:83
#, python-format
msgid "Field type error:"
msgstr ""
#. module: account_banking_pain_base
#: selection:payment.line,priority:0
msgid "High"
@@ -67,18 +67,37 @@ msgstr "ID"
#. module: account_banking_pain_base
#: help:payment.mode,convert_to_ascii:0
msgid "If active, Odoo will convert each accented caracter to the corresponding unaccented caracter, so that only ASCII caracters are used in the generated PAIN file."
msgid ""
"If active, Odoo will convert each accented caracter to the corresponding "
"unaccented caracter, so that only ASCII caracters are used in the generated "
"PAIN file."
msgstr "Si está marcado, Odoo convertirá cada carácter acentuado en el correspondiente carácter no acentuado, para que sólo se usen caracteres ASCII en el archivo PAIN generado."
#. module: account_banking_pain_base
#: field:payment.mode,initiating_party_identifier:0
#: field:res.company,initiating_party_identifier:0
msgid "Initiating Party Identifier"
msgstr "Identificador del iniciador de la transacción"
#. module: account_banking_pain_base
#: field:payment.mode,initiating_party_issuer:0
#: field:res.company,initiating_party_issuer:0
msgid "Initiating Party Issuer"
msgstr "Emisor de la transacción"
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:386
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:256
#, python-format
msgid "Missing 'Structured Communication Type' on payment line with reference '%s'."
msgid ""
"Missing 'Initiating Party Issuer' and/or 'Initiating Party Identifier' for "
"the company '%s'. Both fields must have a value."
msgstr "Falta el 'Emisor de la transacción' y/o 'Identificador del iniciador de la transacción' para la compañía '%s'. Ambos campos deben tener un valor."
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:358
#, python-format
msgid ""
"Missing 'Structured Communication Type' on payment line with reference '%s'."
msgstr "Falta el campo 'Tipo de comunicación estructurada' en la línea de pago con referencia '%s'."
#. module: account_banking_pain_base
@@ -106,48 +125,95 @@ msgstr "Modo de pago"
msgid "Priority"
msgstr "Prioridad"
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:131
#, python-format
msgid "SEPA File"
msgstr "Archivo SEPA"
#. module: account_banking_pain_base
#: view:payment.mode:account_banking_pain_base.view_payment_mode_form_inherit
msgid "SEPA identifiers"
msgstr ""
#. module: account_banking_pain_base
#: field:payment.line,struct_communication_type:0
msgid "Structured Communication Type"
msgstr "Tipo de comunicación estructurada"
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:90
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:75
#, python-format
msgid "The '%s' is empty or 0. It should have a non-null value."
msgstr "'%s' está vacío o es 0. Debería tener un valor no nulo."
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:304
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:283
#, python-format
msgid "The bank account with IBAN '%s' of partner '%s' must have an associated BIC because it is a cross-border SEPA operation."
msgid ""
"The bank account with IBAN '%s' of partner '%s' must have an associated BIC "
"because it is a cross-border SEPA operation."
msgstr "La cuenta bancaria con IBAN '%s' de la empresa '%s' debe tener un BIC asociado, porque es una operación SEPA transfronteriza."
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:125
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:96
#, python-format
msgid "The generated XML file is not valid against the official XML Schema Definition. The generated XML file and the full error have been written in the server logs. Here is the error, which may give you an idea on the cause of the problem : %s"
msgid ""
"The generated XML file is not valid against the official XML Schema "
"Definition. The generated XML file and the full error have been written in "
"the server logs. Here is the error, which may give you an idea on the cause "
"of the problem : %s"
msgstr "El archivo XML generado no se puede validar contra la definición de esquema XML oficial. El archivo XML generado el error completo se ha escrito en los registros del servidor. Aquí está el error, que le puede dar una idea de la causa del problema : %s"
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:84
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:70
#, python-format
msgid "The type of the field '%s' is %s. It should be a string or unicode."
msgstr "El tipo del campo '%s' es %s. Debería ser una cadena o unicode."
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:47
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:35
#, python-format
msgid "This IBAN is not valid : %s"
msgstr "Este IBAN no es válido: %s"
#. module: account_banking_pain_base
#: help:payment.line,priority:0
msgid "This field will be used as the 'Instruction Priority' in the generated PAIN file."
msgid ""
"This field will be used as the 'Instruction Priority' in the generated PAIN "
"file."
msgstr "Este campo se usará como 'Prioridad de instrucción' en el archivo PAIN generado."
#. module: account_banking_pain_base
#: help:res.company,initiating_party_identifier:0
msgid ""
"This will be used as the 'Initiating Party Identifier' in the PAIN files "
"generated by Odoo."
msgstr "Esto se usará como el 'Identificador del iniciador de la transacción' en los archivos PAIN generados por Odoo."
#. module: account_banking_pain_base
#: help:payment.mode,initiating_party_identifier:0
msgid ""
"This will be used as the 'Initiating Party Identifier' in the PAIN files generated by Odoo. If not defined, Initiating Party Identifier from company will be used.\n"
"Common format (13): \n"
"- Country code (2, optional)\n"
"- Company idenfier (N, VAT)\n"
"- Service suffix (N, issued by bank)"
msgstr ""
#. module: account_banking_pain_base
#: help:res.company,initiating_party_issuer:0
msgid "This will be used as the 'Initiating Party Issuer' in the PAIN files generated by Odoo."
msgid ""
"This will be used as the 'Initiating Party Issuer' in the PAIN files "
"generated by Odoo."
msgstr "Este campo se usará como 'Emisor de la transacción' en los archivos PAIN generados por Odoo."
#. module: account_banking_pain_base
#: help:payment.mode,initiating_party_issuer:0
msgid ""
"This will be used as the 'Initiating Party Issuer' in the PAIN files generated by Odoo. If not defined, Initiating Party Issuer from company will be used.\n"
"Common format (13): \n"
"- Country code (2, optional)\n"
"- Company idenfier (N, VAT)\n"
"- Service suffix (N, issued by bank)"
msgstr ""

View File

@@ -1,44 +1,114 @@
# Translation of OpenERP Server.
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_banking_pain_base
#
# * account_banking_pain_base
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 7.0\n"
"Project-Id-Version: bank-payment (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-12-23 21:26+0000\n"
"PO-Revision-Date: 2014-02-01 04:48+0000\n"
"Last-Translator: Alexis de Lattre <alexis@via.ecp.fr>\n"
"Language-Team: \n"
"POT-Creation-Date: 2016-04-08 00:46+0000\n"
"PO-Revision-Date: 2016-04-06 00:14+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>\n"
"Language-Team: French (http://www.transifex.com/oca/OCA-bank-payment-8-0/language/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-05-31 06:02+0000\n"
"X-Generator: Launchpad (build 17031)\n"
"Content-Transfer-Encoding: \n"
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: account_banking_pain_base
#: model:ir.model,name:account_banking_pain_base.model_res_partner_bank
msgid "Bank Accounts"
msgstr ""
#. module: account_banking_pain_base
#: model:ir.model,name:account_banking_pain_base.model_bank_payment_line
msgid "Bank Payment Lines"
msgstr ""
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:62
#, python-format
msgid "Cannot compute the '%s' of the Payment Line with reference '%s'."
msgstr "Impossible de calculer le '%s' de la ligne de paiement ayant la référence '%s'."
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:67
#, python-format
msgid "Cannot compute the '%s'."
msgstr "Impossible de calculer le '%s'."
#. module: account_banking_pain_base
#: model:ir.model,name:account_banking_pain_base.model_res_company
msgid "Companies"
msgstr "Sociétés"
#. module: account_banking_pain_base
#: field:payment.mode,convert_to_ascii:0
msgid "Convert to ASCII"
msgstr "Convertir en ASCII"
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:282
#, python-format
msgid "Error:"
msgstr "Erreur :"
#. module: account_banking_pain_base
#: selection:payment.line,priority:0
msgid "High"
msgstr "Élevé"
#. module: account_banking_pain_base
#: field:banking.export.pain,id:0
msgid "ID"
msgstr ""
#. module: account_banking_pain_base
#: help:payment.mode,convert_to_ascii:0
msgid ""
"If active, Odoo will convert each accented caracter to the corresponding "
"unaccented caracter, so that only ASCII caracters are used in the generated "
"PAIN file."
msgstr ""
#. module: account_banking_pain_base
#: field:payment.mode,initiating_party_identifier:0
#: field:res.company,initiating_party_identifier:0
msgid "Initiating Party Identifier"
msgstr ""
#. module: account_banking_pain_base
#: field:payment.mode,initiating_party_issuer:0
#: field:res.company,initiating_party_issuer:0
msgid "Initiating Party Issuer"
msgstr "Initiating Party Issuer"
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/banking_export_pain.py:122
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:256
#, python-format
msgid ""
"The generated XML file is not valid against the official XML Schema "
"Definition. The generated XML file and the full error have been written in "
"the server logs. Here is the error, which may give you an idea on the cause "
"of the problem : %s"
"Missing 'Initiating Party Issuer' and/or 'Initiating Party Identifier' for "
"the company '%s'. Both fields must have a value."
msgstr ""
"Le fichier XML généré n'est pas valide par rapport à la Définition du Schéma "
"XML officiel. Le fichier XML généré et le message d'erreur complet ont été "
"écrits dans les logs du serveur. Voici l'erreur, qui vous donnera peut-être "
"une idée sur la cause du problème : %s"
#. module: account_banking_pain_base
#: field:payment.line,priority:0
msgid "Priority"
msgstr "Priorité"
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:358
#, python-format
msgid ""
"Missing 'Structured Communication Type' on payment line with reference '%s'."
msgstr "Le 'Type de communication structuré' n'est pas renseigné sur la ligne de paiement ayant la référence '%s'."
#. module: account_banking_pain_base
#: selection:payment.line,priority:0
msgid "Normal"
msgstr "Normal"
#. module: account_banking_pain_base
#: view:res.company:account_banking_pain_base.view_company_form
msgid "Payment Initiation"
msgstr "Payment Initiation"
#. module: account_banking_pain_base
#: model:ir.model,name:account_banking_pain_base.model_payment_line
@@ -51,76 +121,20 @@ msgid "Payment Mode"
msgstr "Mode de paiement"
#. module: account_banking_pain_base
#: help:res.company,initiating_party_issuer:0
msgid ""
"This will be used as the 'Initiating Party Issuer' in the PAIN files "
"generated by OpenERP."
#: field:payment.line,priority:0
msgid "Priority"
msgstr "Priorité"
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:131
#, python-format
msgid "SEPA File"
msgstr ""
"Ce champ sera le 'Initiating Party Issuer' dans les fichiers PAIN générés "
"par OpenERP."
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/banking_export_pain.py:351
#, python-format
msgid ""
"Missing 'Structured Communication Type' on payment line with reference '%s'."
#: view:payment.mode:account_banking_pain_base.view_payment_mode_form_inherit
msgid "SEPA identifiers"
msgstr ""
"Le 'Type de communication structuré' n'est pas renseigné sur la ligne de "
"paiement ayant la référence '%s'."
#. module: account_banking_pain_base
#: selection:payment.line,priority:0
msgid "Normal"
msgstr "Normal"
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/banking_export_pain.py:70
#, python-format
msgid "Cannot compute the '%s' of the Payment Line with reference '%s'."
msgstr ""
"Impossible de calculer le '%s' de la ligne de paiement ayant la référence "
"'%s'."
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/banking_export_pain.py:77
#, python-format
msgid "Cannot compute the '%s'."
msgstr "Impossible de calculer le '%s'."
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/banking_export_pain.py:81
#, python-format
msgid "The type of the field '%s' is %s. It should be a string or unicode."
msgstr ""
"Le type du champ '%s' est %s. Il devrait être de type string ou unicode."
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/banking_export_pain.py:47
#: code:addons/account_banking_pain_base/banking_export_pain.py:69
#: code:addons/account_banking_pain_base/banking_export_pain.py:76
#: code:addons/account_banking_pain_base/banking_export_pain.py:86
#: code:addons/account_banking_pain_base/banking_export_pain.py:121
#: code:addons/account_banking_pain_base/banking_export_pain.py:350
#, python-format
msgid "Error:"
msgstr "Erreur :"
#. module: account_banking_pain_base
#: model:ir.model,name:account_banking_pain_base.model_res_company
msgid "Companies"
msgstr "Sociétés"
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/banking_export_pain.py:47
#, python-format
msgid "This IBAN is not valid : %s"
msgstr "Cet IBAN n'est pas valide : %s"
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/banking_export_pain.py:80
#, python-format
msgid "Field type error:"
msgstr "Erreur dans le type de champ :"
#. module: account_banking_pain_base
#: field:payment.line,struct_communication_type:0
@@ -128,26 +142,40 @@ msgid "Structured Communication Type"
msgstr "Type de communication structurée"
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/banking_export_pain.py:87
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:75
#, python-format
msgid "The '%s' is empty or 0. It should have a non-null value."
msgstr "Le '%s' est vide ou égal à 0. Il devrait avoir une valeur non-nulle."
#. module: account_banking_pain_base
#: model:ir.model,name:account_banking_pain_base.model_banking_export_pain
msgid "banking.export.pain"
msgstr "banking.export.pain"
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:283
#, python-format
msgid ""
"The bank account with IBAN '%s' of partner '%s' must have an associated BIC "
"because it is a cross-border SEPA operation."
msgstr ""
#. module: account_banking_pain_base
#: help:payment.mode,convert_to_ascii:0
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:96
#, python-format
msgid ""
"If active, OpenERP will convert each accented caracter to the corresponding "
"unaccented caracter, so that only ASCII caracters are used in the generated "
"PAIN file."
msgstr ""
"Si actif, OpenERP convertira chaque caractère accentué en son équivalent non "
"accentué, de telle façon que seuls des caractères ASCII soient utilisés dans "
"le fichier PAIN généré."
"The generated XML file is not valid against the official XML Schema "
"Definition. The generated XML file and the full error have been written in "
"the server logs. Here is the error, which may give you an idea on the cause "
"of the problem : %s"
msgstr "Le fichier XML généré n'est pas valide par rapport à la Définition du Schéma XML officiel. Le fichier XML généré et le message d'erreur complet ont été écrits dans les logs du serveur. Voici l'erreur, qui vous donnera peut-être une idée sur la cause du problème : %s"
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:70
#, python-format
msgid "The type of the field '%s' is %s. It should be a string or unicode."
msgstr "Le type du champ '%s' est %s. Il devrait être de type string ou unicode."
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:35
#, python-format
msgid "This IBAN is not valid : %s"
msgstr "Cet IBAN n'est pas valide : %s"
#. module: account_banking_pain_base
#: help:payment.line,priority:0
@@ -157,16 +185,35 @@ msgid ""
msgstr "Ce champ sera le 'Instruction Priority' dans le fichier PAIN généré."
#. module: account_banking_pain_base
#: view:res.company:0
msgid "Payment Initiation"
msgstr "Payment Initiation"
#: help:res.company,initiating_party_identifier:0
msgid ""
"This will be used as the 'Initiating Party Identifier' in the PAIN files "
"generated by Odoo."
msgstr ""
#. module: account_banking_pain_base
#: selection:payment.line,priority:0
msgid "High"
msgstr "Élevé"
#: help:payment.mode,initiating_party_identifier:0
msgid ""
"This will be used as the 'Initiating Party Identifier' in the PAIN files generated by Odoo. If not defined, Initiating Party Identifier from company will be used.\n"
"Common format (13): \n"
"- Country code (2, optional)\n"
"- Company idenfier (N, VAT)\n"
"- Service suffix (N, issued by bank)"
msgstr ""
#. module: account_banking_pain_base
#: field:payment.mode,convert_to_ascii:0
msgid "Convert to ASCII"
msgstr "Convertir en ASCII"
#: help:res.company,initiating_party_issuer:0
msgid ""
"This will be used as the 'Initiating Party Issuer' in the PAIN files "
"generated by Odoo."
msgstr ""
#. module: account_banking_pain_base
#: help:payment.mode,initiating_party_issuer:0
msgid ""
"This will be used as the 'Initiating Party Issuer' in the PAIN files generated by Odoo. If not defined, Initiating Party Issuer from company will be used.\n"
"Common format (13): \n"
"- Country code (2, optional)\n"
"- Company idenfier (N, VAT)\n"
"- Service suffix (N, issued by bank)"
msgstr ""

View File

@@ -1,45 +1,115 @@
# Dutch translation for banking-addons
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the banking-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_banking_pain_base
#
# Translators:
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014
msgid ""
msgstr ""
"Project-Id-Version: banking-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2013-12-23 21:26+0000\n"
"PO-Revision-Date: 2014-02-11 08:32+0000\n"
"Last-Translator: Erwin van der Ploeg (BAS Solutions) <Unknown>\n"
"Language-Team: Dutch <nl@li.org>\n"
"Project-Id-Version: bank-payment (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-04-08 00:46+0000\n"
"PO-Revision-Date: 2016-04-06 00:14+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>\n"
"Language-Team: Dutch (http://www.transifex.com/oca/OCA-bank-payment-8-0/language/nl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-05-31 06:02+0000\n"
"X-Generator: Launchpad (build 17031)\n"
"Content-Transfer-Encoding: \n"
"Language: nl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_banking_pain_base
#: model:ir.model,name:account_banking_pain_base.model_res_partner_bank
msgid "Bank Accounts"
msgstr ""
#. module: account_banking_pain_base
#: model:ir.model,name:account_banking_pain_base.model_bank_payment_line
msgid "Bank Payment Lines"
msgstr ""
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:62
#, python-format
msgid "Cannot compute the '%s' of the Payment Line with reference '%s'."
msgstr "Kan de '%s' niet berekenen van de betaalregel met referentie '%s'."
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:67
#, python-format
msgid "Cannot compute the '%s'."
msgstr "Kan de '%s' niet berekenen."
#. module: account_banking_pain_base
#: model:ir.model,name:account_banking_pain_base.model_res_company
msgid "Companies"
msgstr "Bedrijven"
#. module: account_banking_pain_base
#: field:payment.mode,convert_to_ascii:0
msgid "Convert to ASCII"
msgstr "Converteer naar ASCII"
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:282
#, python-format
msgid "Error:"
msgstr "Fout:"
#. module: account_banking_pain_base
#: selection:payment.line,priority:0
msgid "High"
msgstr "Hoog"
#. module: account_banking_pain_base
#: field:banking.export.pain,id:0
msgid "ID"
msgstr ""
#. module: account_banking_pain_base
#: help:payment.mode,convert_to_ascii:0
msgid ""
"If active, Odoo will convert each accented caracter to the corresponding "
"unaccented caracter, so that only ASCII caracters are used in the generated "
"PAIN file."
msgstr ""
#. module: account_banking_pain_base
#: field:payment.mode,initiating_party_identifier:0
#: field:res.company,initiating_party_identifier:0
msgid "Initiating Party Identifier"
msgstr ""
#. module: account_banking_pain_base
#: field:payment.mode,initiating_party_issuer:0
#: field:res.company,initiating_party_issuer:0
msgid "Initiating Party Issuer"
msgstr "Initiating Party Issuer"
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/banking_export_pain.py:122
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:256
#, python-format
msgid ""
"The generated XML file is not valid against the official XML Schema "
"Definition. The generated XML file and the full error have been written in "
"the server logs. Here is the error, which may give you an idea on the cause "
"of the problem : %s"
"Missing 'Initiating Party Issuer' and/or 'Initiating Party Identifier' for "
"the company '%s'. Both fields must have a value."
msgstr ""
"Het gegenereerde XML bestand is niet geldig volgens de officiële XML schema "
"definities. Het gegenereerde XML bestand en de volledige fout zijn "
"weggeschreven in de server log bestanden. Hier is de fout, wat u een idee "
"kunt geven over de oorzaak van het probleem: %s\""
#. module: account_banking_pain_base
#: field:payment.line,priority:0
msgid "Priority"
msgstr "Prioriteit"
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:358
#, python-format
msgid ""
"Missing 'Structured Communication Type' on payment line with reference '%s'."
msgstr "Ontbrekende 'Structured Communication Type' op betaalregel met referentie '%s'."
#. module: account_banking_pain_base
#: selection:payment.line,priority:0
msgid "Normal"
msgstr "Normaal"
#. module: account_banking_pain_base
#: view:res.company:account_banking_pain_base.view_company_form
msgid "Payment Initiation"
msgstr "Payment Initiation"
#. module: account_banking_pain_base
#: model:ir.model,name:account_banking_pain_base.model_payment_line
@@ -52,73 +122,20 @@ msgid "Payment Mode"
msgstr "Betaalwijze"
#. module: account_banking_pain_base
#: help:res.company,initiating_party_issuer:0
msgid ""
"This will be used as the 'Initiating Party Issuer' in the PAIN files "
"generated by OpenERP."
#: field:payment.line,priority:0
msgid "Priority"
msgstr "Prioriteit"
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:131
#, python-format
msgid "SEPA File"
msgstr ""
"Dit wordt gebruikt als de 'Initiating Party Issuer' in de PAIN bestanden "
"gegenereerd door OpenERP."
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/banking_export_pain.py:351
#, python-format
msgid ""
"Missing 'Structured Communication Type' on payment line with reference '%s'."
#: view:payment.mode:account_banking_pain_base.view_payment_mode_form_inherit
msgid "SEPA identifiers"
msgstr ""
"Ontbrekende 'Structured Communication Type' op betaalregel met referentie "
"'%s'."
#. module: account_banking_pain_base
#: selection:payment.line,priority:0
msgid "Normal"
msgstr "Normaal"
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/banking_export_pain.py:70
#, python-format
msgid "Cannot compute the '%s' of the Payment Line with reference '%s'."
msgstr "Kan de '%s' niet berekenen van de betaalregel met referentie '%s'."
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/banking_export_pain.py:77
#, python-format
msgid "Cannot compute the '%s'."
msgstr "Kan de '%s' niet berekenen."
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/banking_export_pain.py:81
#, python-format
msgid "The type of the field '%s' is %s. It should be a string or unicode."
msgstr "Het type van veld '%s' is %s. Dit moet een string of unicode zijn."
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/banking_export_pain.py:47
#: code:addons/account_banking_pain_base/banking_export_pain.py:69
#: code:addons/account_banking_pain_base/banking_export_pain.py:76
#: code:addons/account_banking_pain_base/banking_export_pain.py:86
#: code:addons/account_banking_pain_base/banking_export_pain.py:121
#: code:addons/account_banking_pain_base/banking_export_pain.py:350
#, python-format
msgid "Error:"
msgstr "Fout:"
#. module: account_banking_pain_base
#: model:ir.model,name:account_banking_pain_base.model_res_company
msgid "Companies"
msgstr "Bedrijven"
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/banking_export_pain.py:47
#, python-format
msgid "This IBAN is not valid : %s"
msgstr "Deze IBAN is niet geldig : %s"
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/banking_export_pain.py:80
#, python-format
msgid "Field type error:"
msgstr "Veld type fout:"
#. module: account_banking_pain_base
#: field:payment.line,struct_communication_type:0
@@ -126,47 +143,78 @@ msgid "Structured Communication Type"
msgstr "Structured Communication Type"
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/banking_export_pain.py:87
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:75
#, python-format
msgid "The '%s' is empty or 0. It should have a non-null value."
msgstr "De '%s' is leeg of 0. Deze waarde zou niet nul moeten zijn."
#. module: account_banking_pain_base
#: model:ir.model,name:account_banking_pain_base.model_banking_export_pain
msgid "banking.export.pain"
msgstr "banking.export.pain"
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:283
#, python-format
msgid ""
"The bank account with IBAN '%s' of partner '%s' must have an associated BIC "
"because it is a cross-border SEPA operation."
msgstr ""
#. module: account_banking_pain_base
#: help:payment.mode,convert_to_ascii:0
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:96
#, python-format
msgid ""
"If active, OpenERP will convert each accented caracter to the corresponding "
"unaccented caracter, so that only ASCII caracters are used in the generated "
"PAIN file."
msgstr ""
"Indien aangevinkt, zal OpenERP elk geaccentueerde karakter omzetten in een "
"overeenkomstige ongeaccentueerde karakter, zodat alleen ASCII karakters "
"worden gebruikt in het gegenereerde PAIN bestand."
"The generated XML file is not valid against the official XML Schema "
"Definition. The generated XML file and the full error have been written in "
"the server logs. Here is the error, which may give you an idea on the cause "
"of the problem : %s"
msgstr "Het gegenereerde XML bestand is niet geldig volgens de officiële XML schema definities. Het gegenereerde XML bestand en de volledige fout zijn weggeschreven in de server log bestanden. Hier is de fout, wat u een idee kunt geven over de oorzaak van het probleem: %s\""
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:70
#, python-format
msgid "The type of the field '%s' is %s. It should be a string or unicode."
msgstr "Het type van veld '%s' is %s. Dit moet een string of unicode zijn."
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:35
#, python-format
msgid "This IBAN is not valid : %s"
msgstr "Deze IBAN is niet geldig : %s"
#. module: account_banking_pain_base
#: help:payment.line,priority:0
msgid ""
"This field will be used as the 'Instruction Priority' in the generated PAIN "
"file."
msgstr "Dit veld wordt gebruikt als de 'Instruction Priority' in het gegenereerde PAIN bestand."
#. module: account_banking_pain_base
#: help:res.company,initiating_party_identifier:0
msgid ""
"This will be used as the 'Initiating Party Identifier' in the PAIN files "
"generated by Odoo."
msgstr ""
"Dit veld wordt gebruikt als de 'Instruction Priority' in het gegenereerde "
"PAIN bestand."
#. module: account_banking_pain_base
#: view:res.company:0
msgid "Payment Initiation"
msgstr "Payment Initiation"
#: help:payment.mode,initiating_party_identifier:0
msgid ""
"This will be used as the 'Initiating Party Identifier' in the PAIN files generated by Odoo. If not defined, Initiating Party Identifier from company will be used.\n"
"Common format (13): \n"
"- Country code (2, optional)\n"
"- Company idenfier (N, VAT)\n"
"- Service suffix (N, issued by bank)"
msgstr ""
#. module: account_banking_pain_base
#: selection:payment.line,priority:0
msgid "High"
msgstr "Hoog"
#: help:res.company,initiating_party_issuer:0
msgid ""
"This will be used as the 'Initiating Party Issuer' in the PAIN files "
"generated by Odoo."
msgstr ""
#. module: account_banking_pain_base
#: field:payment.mode,convert_to_ascii:0
msgid "Convert to ASCII"
msgstr "Converteer naar ASCII"
#: help:payment.mode,initiating_party_issuer:0
msgid ""
"This will be used as the 'Initiating Party Issuer' in the PAIN files generated by Odoo. If not defined, Initiating Party Issuer from company will be used.\n"
"Common format (13): \n"
"- Country code (2, optional)\n"
"- Company idenfier (N, VAT)\n"
"- Service suffix (N, issued by bank)"
msgstr ""

View File

@@ -0,0 +1,220 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_banking_pain_base
#
# Translators:
# danimaribeiro <danimaribeiro@gmail.com>, 2016
msgid ""
msgstr ""
"Project-Id-Version: bank-payment (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-04-08 00:46+0000\n"
"PO-Revision-Date: 2016-04-06 01:03+0000\n"
"Last-Translator: danimaribeiro <danimaribeiro@gmail.com>\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/OCA-bank-payment-8-0/language/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: account_banking_pain_base
#: model:ir.model,name:account_banking_pain_base.model_res_partner_bank
msgid "Bank Accounts"
msgstr "Contas bancárias"
#. module: account_banking_pain_base
#: model:ir.model,name:account_banking_pain_base.model_bank_payment_line
msgid "Bank Payment Lines"
msgstr "Linhas de pagamento bancária"
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:62
#, python-format
msgid "Cannot compute the '%s' of the Payment Line with reference '%s'."
msgstr "Não foi possível calcular a '%s' da linha de pagamento com referência '%s'"
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:67
#, python-format
msgid "Cannot compute the '%s'."
msgstr "Não foi possível computar o '%s'"
#. module: account_banking_pain_base
#: model:ir.model,name:account_banking_pain_base.model_res_company
msgid "Companies"
msgstr "Empresas"
#. module: account_banking_pain_base
#: field:payment.mode,convert_to_ascii:0
msgid "Convert to ASCII"
msgstr "Converter para ASCII"
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:282
#, python-format
msgid "Error:"
msgstr "Erro:"
#. module: account_banking_pain_base
#: selection:payment.line,priority:0
msgid "High"
msgstr "Alto"
#. module: account_banking_pain_base
#: field:banking.export.pain,id:0
msgid "ID"
msgstr "ID"
#. module: account_banking_pain_base
#: help:payment.mode,convert_to_ascii:0
msgid ""
"If active, Odoo will convert each accented caracter to the corresponding "
"unaccented caracter, so that only ASCII caracters are used in the generated "
"PAIN file."
msgstr ""
#. module: account_banking_pain_base
#: field:payment.mode,initiating_party_identifier:0
#: field:res.company,initiating_party_identifier:0
msgid "Initiating Party Identifier"
msgstr ""
#. module: account_banking_pain_base
#: field:payment.mode,initiating_party_issuer:0
#: field:res.company,initiating_party_issuer:0
msgid "Initiating Party Issuer"
msgstr ""
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:256
#, python-format
msgid ""
"Missing 'Initiating Party Issuer' and/or 'Initiating Party Identifier' for "
"the company '%s'. Both fields must have a value."
msgstr ""
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:358
#, python-format
msgid ""
"Missing 'Structured Communication Type' on payment line with reference '%s'."
msgstr ""
#. module: account_banking_pain_base
#: selection:payment.line,priority:0
msgid "Normal"
msgstr "Normal"
#. module: account_banking_pain_base
#: view:res.company:account_banking_pain_base.view_company_form
msgid "Payment Initiation"
msgstr ""
#. module: account_banking_pain_base
#: model:ir.model,name:account_banking_pain_base.model_payment_line
msgid "Payment Line"
msgstr "Linha de Pagamento"
#. module: account_banking_pain_base
#: model:ir.model,name:account_banking_pain_base.model_payment_mode
msgid "Payment Mode"
msgstr "Modo de pagamento"
#. module: account_banking_pain_base
#: field:payment.line,priority:0
msgid "Priority"
msgstr ""
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:131
#, python-format
msgid "SEPA File"
msgstr ""
#. module: account_banking_pain_base
#: view:payment.mode:account_banking_pain_base.view_payment_mode_form_inherit
msgid "SEPA identifiers"
msgstr ""
#. module: account_banking_pain_base
#: field:payment.line,struct_communication_type:0
msgid "Structured Communication Type"
msgstr ""
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:75
#, python-format
msgid "The '%s' is empty or 0. It should have a non-null value."
msgstr ""
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:283
#, python-format
msgid ""
"The bank account with IBAN '%s' of partner '%s' must have an associated BIC "
"because it is a cross-border SEPA operation."
msgstr ""
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:96
#, python-format
msgid ""
"The generated XML file is not valid against the official XML Schema "
"Definition. The generated XML file and the full error have been written in "
"the server logs. Here is the error, which may give you an idea on the cause "
"of the problem : %s"
msgstr ""
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:70
#, python-format
msgid "The type of the field '%s' is %s. It should be a string or unicode."
msgstr ""
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:35
#, python-format
msgid "This IBAN is not valid : %s"
msgstr ""
#. module: account_banking_pain_base
#: help:payment.line,priority:0
msgid ""
"This field will be used as the 'Instruction Priority' in the generated PAIN "
"file."
msgstr ""
#. module: account_banking_pain_base
#: help:res.company,initiating_party_identifier:0
msgid ""
"This will be used as the 'Initiating Party Identifier' in the PAIN files "
"generated by Odoo."
msgstr ""
#. module: account_banking_pain_base
#: help:payment.mode,initiating_party_identifier:0
msgid ""
"This will be used as the 'Initiating Party Identifier' in the PAIN files generated by Odoo. If not defined, Initiating Party Identifier from company will be used.\n"
"Common format (13): \n"
"- Country code (2, optional)\n"
"- Company idenfier (N, VAT)\n"
"- Service suffix (N, issued by bank)"
msgstr ""
#. module: account_banking_pain_base
#: help:res.company,initiating_party_issuer:0
msgid ""
"This will be used as the 'Initiating Party Issuer' in the PAIN files "
"generated by Odoo."
msgstr ""
#. module: account_banking_pain_base
#: help:payment.mode,initiating_party_issuer:0
msgid ""
"This will be used as the 'Initiating Party Issuer' in the PAIN files generated by Odoo. If not defined, Initiating Party Issuer from company will be used.\n"
"Common format (13): \n"
"- Country code (2, optional)\n"
"- Company idenfier (N, VAT)\n"
"- Service suffix (N, issued by bank)"
msgstr ""

View File

@@ -0,0 +1,220 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_banking_pain_base
#
# Translators:
# Matjaž Mozetič <m.mozetic@matmoz.si>, 2016
msgid ""
msgstr ""
"Project-Id-Version: bank-payment (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-04-09 06:21+0000\n"
"PO-Revision-Date: 2016-04-15 11:04+0000\n"
"Last-Translator: Matjaž Mozetič <m.mozetic@matmoz.si>\n"
"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-bank-payment-8-0/language/sl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: sl\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_pain_base
#: model:ir.model,name:account_banking_pain_base.model_res_partner_bank
msgid "Bank Accounts"
msgstr "Bančni računi"
#. module: account_banking_pain_base
#: model:ir.model,name:account_banking_pain_base.model_bank_payment_line
msgid "Bank Payment Lines"
msgstr "Postavke bančnih plačil"
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:62
#, python-format
msgid "Cannot compute the '%s' of the Payment Line with reference '%s'."
msgstr "Ne morem izračunati '%s' plačilne postavke s sklicem '%s'."
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:67
#, python-format
msgid "Cannot compute the '%s'."
msgstr "Ne morem izračunati '%s'."
#. module: account_banking_pain_base
#: model:ir.model,name:account_banking_pain_base.model_res_company
msgid "Companies"
msgstr "Družbe"
#. module: account_banking_pain_base
#: field:payment.mode,convert_to_ascii:0
msgid "Convert to ASCII"
msgstr "Pretvori v ASCII"
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:282
#, python-format
msgid "Error:"
msgstr "Napaka:"
#. module: account_banking_pain_base
#: selection:payment.line,priority:0
msgid "High"
msgstr "Visoka"
#. module: account_banking_pain_base
#: field:banking.export.pain,id:0
msgid "ID"
msgstr "ID"
#. module: account_banking_pain_base
#: help:payment.mode,convert_to_ascii:0
msgid ""
"If active, Odoo will convert each accented caracter to the corresponding "
"unaccented caracter, so that only ASCII caracters are used in the generated "
"PAIN file."
msgstr "Če aktivno, Odoo pretvori vsak naglašen znak v ustrezen nenaglašen znak, tako, da se uporabi le ASCII znake v ustvarjeni PAIN datoteki."
#. module: account_banking_pain_base
#: field:payment.mode,initiating_party_identifier:0
#: field:res.company,initiating_party_identifier:0
msgid "Initiating Party Identifier"
msgstr "Identifikator začetne stranke"
#. module: account_banking_pain_base
#: field:payment.mode,initiating_party_issuer:0
#: field:res.company,initiating_party_issuer:0
msgid "Initiating Party Issuer"
msgstr "Izdajatelj začetne stranke"
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:256
#, python-format
msgid ""
"Missing 'Initiating Party Issuer' and/or 'Initiating Party Identifier' for "
"the company '%s'. Both fields must have a value."
msgstr "Manjkajoči 'Izdajatelj začetne stranke' in/ali 'Identifikator začetne stranke' pri družbi '%s'. Obe polji morata vsebovati vrednost."
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:358
#, python-format
msgid ""
"Missing 'Structured Communication Type' on payment line with reference '%s'."
msgstr "Manjkajoč 'Tip strukturirane komunikacije' pri plačilni postavki s sklicem '%s'."
#. module: account_banking_pain_base
#: selection:payment.line,priority:0
msgid "Normal"
msgstr "Običajna"
#. module: account_banking_pain_base
#: view:res.company:account_banking_pain_base.view_company_form
msgid "Payment Initiation"
msgstr "Začetek plačil"
#. module: account_banking_pain_base
#: model:ir.model,name:account_banking_pain_base.model_payment_line
msgid "Payment Line"
msgstr "Plačilna postavka"
#. module: account_banking_pain_base
#: model:ir.model,name:account_banking_pain_base.model_payment_mode
msgid "Payment Mode"
msgstr "Metoda plačila"
#. module: account_banking_pain_base
#: field:payment.line,priority:0
msgid "Priority"
msgstr "Prioriteta"
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:131
#, python-format
msgid "SEPA File"
msgstr "SEPA datoteka"
#. module: account_banking_pain_base
#: view:payment.mode:account_banking_pain_base.view_payment_mode_form_inherit
msgid "SEPA identifiers"
msgstr "SEPA identifikatorji"
#. module: account_banking_pain_base
#: field:payment.line,struct_communication_type:0
msgid "Structured Communication Type"
msgstr "Tip strukturirane komunikacije"
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:75
#, python-format
msgid "The '%s' is empty or 0. It should have a non-null value."
msgstr "'%s' je prazno ali 0. Vsebovati bi moralo ne ničelno vrednost."
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:283
#, python-format
msgid ""
"The bank account with IBAN '%s' of partner '%s' must have an associated BIC "
"because it is a cross-border SEPA operation."
msgstr "Bančni račun z IBAN '%s' partnerja '%s' mora vsebovati povezani BIC, ker gre za čezmejno SEPA operacijo."
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:96
#, python-format
msgid ""
"The generated XML file is not valid against the official XML Schema "
"Definition. The generated XML file and the full error have been written in "
"the server logs. Here is the error, which may give you an idea on the cause "
"of the problem : %s"
msgstr "Ustvarjena XML datoteka ni v skladu z uradno definicijo XML sheme. Ustvarjena XML datoteka in celotna napaka sta zapisani v strežniške dnevnike. Tu je napaka, ki bi lahko razjasnila, v čem je vzrok težave : %s"
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:70
#, python-format
msgid "The type of the field '%s' is %s. It should be a string or unicode."
msgstr "Tip polja '%s' je %s. Moral bi biti niz ali unicode."
#. module: account_banking_pain_base
#: code:addons/account_banking_pain_base/models/banking_export_pain.py:35
#, python-format
msgid "This IBAN is not valid : %s"
msgstr "Ta IBAN ni veljaven : %s"
#. module: account_banking_pain_base
#: help:payment.line,priority:0
msgid ""
"This field will be used as the 'Instruction Priority' in the generated PAIN "
"file."
msgstr "To polje bo uporabljeno kot 'Prioriteta navodil' v ustvarjeni PAIN datoteki."
#. module: account_banking_pain_base
#: help:res.company,initiating_party_identifier:0
msgid ""
"This will be used as the 'Initiating Party Identifier' in the PAIN files "
"generated by Odoo."
msgstr "To se uporabi kot 'Identifikator začetne stranke' v PAIN datotekah, ki jih ustvari Odoo."
#. module: account_banking_pain_base
#: help:payment.mode,initiating_party_identifier:0
msgid ""
"This will be used as the 'Initiating Party Identifier' in the PAIN files generated by Odoo. If not defined, Initiating Party Identifier from company will be used.\n"
"Common format (13): \n"
"- Country code (2, optional)\n"
"- Company idenfier (N, VAT)\n"
"- Service suffix (N, issued by bank)"
msgstr "To bo uporabljeno kot 'Identifikator začetne stranke' v PAIN datotekah, ki jih ustvari Odoo. Če ni določeno, se uporabi 'Identifikator začetne stranke' iz obrazca družbe.\nObičajni format (13): \n- Koda države (2, optional)\n- Identifikator družbe (ID za DDV)\n- Pripona storitve (številka, ki jo poda banka)"
#. module: account_banking_pain_base
#: help:res.company,initiating_party_issuer:0
msgid ""
"This will be used as the 'Initiating Party Issuer' in the PAIN files "
"generated by Odoo."
msgstr "To se uporabi kot 'Izdajatelj začetne stranke' v PAIN datotekah, ki jih ustvari Odoo."
#. module: account_banking_pain_base
#: help:payment.mode,initiating_party_issuer:0
msgid ""
"This will be used as the 'Initiating Party Issuer' in the PAIN files generated by Odoo. If not defined, Initiating Party Issuer from company will be used.\n"
"Common format (13): \n"
"- Country code (2, optional)\n"
"- Company idenfier (N, VAT)\n"
"- Service suffix (N, issued by bank)"
msgstr "To bo uporabljeno kot 'Izdajatelj začetne stranke' v PAIN datotekah, ki jih ustvari Odoo. Če ni določeno, se uporabi 'Identifikator začetne stranke' iz obrazca družbe.\nObičajni format (13): \n- Koda države (2, optional)\n- Identifikator družbe (ID za DDV)\n- Pripona storitve (številka, ki jo poda banka)"

View File

@@ -1,23 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright (C) 2015 Akretion (http://www.akretion.com/)
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
# © 2015 Akretion - Alexis de Lattre <alexis.delattre@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp.addons.account_banking_pain_base.post_install\
import set_default_initiating_party

View File

@@ -1,27 +1,10 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# PAIN Base module for Odoo
# Copyright (C) 2013 Akretion (http://www.akretion.com)
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
# -*- coding: utf-8 -*-
# © 2013-2016 Akretion - Alexis de Lattre <alexis.delattre@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from . import payment_line
from . import payment_mode
from . import account_payment_line
from . import account_payment_order
from . import bank_payment_line
from . import account_payment_mode
from . import res_company
from . import banking_export_pain
from . import res_partner_bank
from . import account_payment_method

View File

@@ -0,0 +1,27 @@
# -*- coding: utf-8 -*-
# © 2013-2016 Akretion - Alexis de Lattre <alexis.delattre@akretion.com>
# © 2014 Serv. Tecnol. Avanzados - Pedro M. Baeza
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import models, fields
class AccountPaymentLine(models.Model):
_inherit = 'account.payment.line'
priority = fields.Selection([
('NORM', 'Normal'),
('HIGH', 'High')],
string='Priority', default='NORM',
help="This field will be used as 'Instruction Priority' in "
"the generated PAIN file.")
# local_instrument is used in some countries, for example
# switzerland, cf l10n_ch_sepa that adds some entries in
# the selection field
local_instrument = fields.Selection([], string='Local Instrument')
# PAIN allows 140 characters
communication = fields.Char(size=140)
# The field struct_communication_type has been dropped in v9
# We now use communication_type ; you should add an option
# in communication_type with selection_add=[]
communication_type = fields.Selection(selection_add=[('ISO', 'ISO')])

View File

@@ -0,0 +1,24 @@
# -*- coding: utf-8 -*-
# © 2016 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import models, fields, api, _
from openerp.exceptions import UserError
class AccountPaymentMethod(models.Model):
_inherit = 'account.payment.method'
pain_version = fields.Selection([], string='PAIN Version')
convert_to_ascii = fields.Boolean(
string='Convert to ASCII', default=True,
help="If active, Odoo will convert each accented character to "
"the corresponding unaccented character, so that only ASCII "
"characters are used in the generated PAIN file.")
@api.multi
def get_xsd_file_path(self):
"""This method is designed to be inherited in the SEPA modules"""
self.ensure_one()
raise UserError(_(
"No XSD file path found for payment method '%s'") % self.name)

View File

@@ -0,0 +1,30 @@
# -*- coding: utf-8 -*-
# © 2013-2016 Akretion - Alexis de Lattre <alexis.delattre@akretion.com>
# © 2014 Serv. Tecnol. Avanzados - Pedro M. Baeza
# © 2016 Antiun Ingenieria S.L. - Antonio Espinosa
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import models, fields
class AccountPaymentMode(models.Model):
_inherit = 'account.payment.mode'
initiating_party_issuer = fields.Char(
string='Initiating Party Issuer', size=35,
help="This will be used as the 'Initiating Party Issuer' in the "
"PAIN files generated by Odoo. If not defined, Initiating Party "
"Issuer from company will be used.\n"
"Common format (13): \n"
"- Country code (2, optional)\n"
"- Company idenfier (N, VAT)\n"
"- Service suffix (N, issued by bank)")
initiating_party_identifier = fields.Char(
string='Initiating Party Identifier', size=35,
help="This will be used as the 'Initiating Party Identifier' in "
"the PAIN files generated by Odoo. If not defined, Initiating Party "
"Identifier from company will be used.\n"
"Common format (13): \n"
"- Country code (2, optional)\n"
"- Company idenfier (N, VAT)\n"
"- Service suffix (N, issued by bank)")

View File

@@ -0,0 +1,483 @@
# -*- coding: utf-8 -*-
# © 2013-2016 Akretion - Alexis de Lattre <alexis.delattre@akretion.com>
# © 2014 Serv. Tecnol. Avanzados - Pedro M. Baeza
# © 2016 Antiun Ingenieria S.L. - Antonio Espinosa
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import models, fields, api, _
from openerp.exceptions import UserError
from openerp.tools.safe_eval import safe_eval
from datetime import datetime
from lxml import etree
from openerp import tools
import logging
try:
from unidecode import unidecode
except ImportError:
unidecode = None
logger = logging.getLogger(__name__)
class AccountPaymentOrder(models.Model):
_inherit = 'account.payment.order'
sepa = fields.Boolean(
compute='compute_sepa', readonly=True, string="SEPA Payment")
charge_bearer = fields.Selection([
('SLEV', 'Following Service Level'),
('SHAR', 'Shared'),
('CRED', 'Borne by Creditor'),
('DEBT', 'Borne by Debtor')], string='Charge Bearer',
default='SLEV', readonly=True,
states={'draft': [('readonly', False)], 'open': [('readonly', False)]},
track_visibility='onchange',
help="Following service level : transaction charges are to be "
"applied following the rules agreed in the service level "
"and/or scheme (SEPA Core messages must use this). Shared : "
"transaction charges on the debtor side are to be borne by "
"the debtor, transaction charges on the creditor side are to "
"be borne by the creditor. Borne by creditor : all "
"transaction charges are to be borne by the creditor. Borne "
"by debtor : all transaction charges are to be borne by the "
"debtor.")
batch_booking = fields.Boolean(
string='Batch Booking', readonly=True,
states={'draft': [('readonly', False)], 'open': [('readonly', False)]},
track_visibility='onchange',
help="If true, the bank statement will display only one debit "
"line for all the wire transfers of the SEPA XML file ; if "
"false, the bank statement will display one debit line per wire "
"transfer of the SEPA XML file.")
@api.multi
@api.depends(
'company_partner_bank_id.acc_type',
'payment_line_ids.currency_id',
'payment_line_ids.partner_bank_id.acc_type')
def compute_sepa(self):
eur = self.env.ref('base.EUR')
for order in self:
sepa = True
if order.company_partner_bank_id.acc_type != 'iban':
sepa = False
for pline in order.payment_line_ids:
if pline.currency_id != eur:
sepa = False
break
if pline.partner_bank_id.acc_type != 'iban':
sepa = False
break
sepa = order.compute_sepa_final_hook(sepa)
self.sepa = sepa
@api.multi
def compute_sepa_final_hook(self, sepa):
self.ensure_one()
return sepa
@api.model
def _prepare_field(self, field_name, field_value, eval_ctx,
max_size=0, gen_args=None):
"""This function is designed to be inherited !"""
if gen_args is None:
gen_args = {}
assert isinstance(eval_ctx, dict), 'eval_ctx must contain a dict'
try:
value = safe_eval(field_value, eval_ctx)
# SEPA uses XML ; XML = UTF-8 ; UTF-8 = support for all characters
# But we are dealing with banks...
# and many banks don't want non-ASCCI characters !
# cf section 1.4 "Character set" of the SEPA Credit Transfer
# Scheme Customer-to-bank guidelines
if gen_args.get('convert_to_ascii'):
value = unidecode(value)
unallowed_ascii_chars = [
'"', '#', '$', '%', '&', '*', ';', '<', '>', '=', '@',
'[', ']', '^', '_', '`', '{', '}', '|', '~', '\\', '!']
for unallowed_ascii_char in unallowed_ascii_chars:
value = value.replace(unallowed_ascii_char, '-')
except:
line = eval_ctx.get('line')
if line:
raise UserError(
_("Cannot compute the '%s' of the Payment Line with "
"reference '%s'.")
% (field_name, line.name))
else:
raise UserError(
_("Cannot compute the '%s'.") % field_name)
if not isinstance(value, (str, unicode)):
raise UserError(
_("The type of the field '%s' is %s. It should be a string "
"or unicode.")
% (field_name, type(value)))
if not value:
raise UserError(
_("The '%s' is empty or 0. It should have a non-null value.")
% field_name)
if max_size and len(value) > max_size:
value = value[0:max_size]
return value
@api.model
def _validate_xml(self, xml_string, gen_args):
xsd_etree_obj = etree.parse(
tools.file_open(gen_args['pain_xsd_file']))
official_pain_schema = etree.XMLSchema(xsd_etree_obj)
try:
root_to_validate = etree.fromstring(xml_string)
official_pain_schema.assertValid(root_to_validate)
except Exception, e:
logger.warning(
"The XML file is invalid against the XML Schema Definition")
logger.warning(xml_string)
logger.warning(e)
raise UserError(
_("The generated XML file is not valid against the official "
"XML Schema Definition. The generated XML file and the "
"full error have been written in the server logs. Here "
"is the error, which may give you an idea on the cause "
"of the problem : %s")
% unicode(e))
return True
@api.multi
def finalize_sepa_file_creation(self, xml_root, gen_args):
xml_string = etree.tostring(
xml_root, pretty_print=True, encoding='UTF-8',
xml_declaration=True)
logger.debug(
"Generated SEPA XML file in format %s below"
% gen_args['pain_flavor'])
logger.debug(xml_string)
self._validate_xml(xml_string, gen_args)
filename = '%s%s.xml' % (gen_args['file_prefix'], self.name)
return (xml_string, filename)
@api.multi
def generate_pain_nsmap(self):
self.ensure_one()
pain_flavor = self.payment_mode_id.payment_method_id.pain_version
nsmap = {
'xsi': 'http://www.w3.org/2001/XMLSchema-instance',
None: 'urn:iso:std:iso:20022:tech:xsd:%s' % pain_flavor,
}
return nsmap
@api.multi
def generate_pain_attrib(self):
self.ensure_one()
return {}
@api.model
def generate_group_header_block(self, parent_node, gen_args):
group_header = etree.SubElement(parent_node, 'GrpHdr')
message_identification = etree.SubElement(
group_header, 'MsgId')
message_identification.text = self._prepare_field(
'Message Identification',
'self.name',
{'self': self}, 35, gen_args=gen_args)
creation_date_time = etree.SubElement(group_header, 'CreDtTm')
creation_date_time.text = datetime.strftime(
datetime.today(), '%Y-%m-%dT%H:%M:%S')
if gen_args.get('pain_flavor') == 'pain.001.001.02':
# batch_booking is in "Group header" with pain.001.001.02
# and in "Payment info" in pain.001.001.03/04
batch_booking = etree.SubElement(group_header, 'BtchBookg')
batch_booking.text = unicode(self.batch_booking).lower()
nb_of_transactions = etree.SubElement(
group_header, 'NbOfTxs')
control_sum = etree.SubElement(group_header, 'CtrlSum')
# Grpg removed in pain.001.001.03
if gen_args.get('pain_flavor') == 'pain.001.001.02':
grouping = etree.SubElement(group_header, 'Grpg')
grouping.text = 'GRPD'
self.generate_initiating_party_block(group_header, gen_args)
return group_header, nb_of_transactions, control_sum
@api.model
def generate_start_payment_info_block(
self, parent_node, payment_info_ident,
priority, local_instrument, sequence_type, requested_date,
eval_ctx, gen_args):
payment_info = etree.SubElement(parent_node, 'PmtInf')
payment_info_identification = etree.SubElement(
payment_info, 'PmtInfId')
payment_info_identification.text = self._prepare_field(
'Payment Information Identification',
payment_info_ident, eval_ctx, 35, gen_args=gen_args)
payment_method = etree.SubElement(payment_info, 'PmtMtd')
payment_method.text = gen_args['payment_method']
nb_of_transactions = False
control_sum = False
if gen_args.get('pain_flavor') != 'pain.001.001.02':
batch_booking = etree.SubElement(payment_info, 'BtchBookg')
batch_booking.text = unicode(self.batch_booking).lower()
# The "SEPA Customer-to-bank
# Implementation guidelines" for SCT and SDD says that control sum
# and nb_of_transactions should be present
# at both "group header" level and "payment info" level
nb_of_transactions = etree.SubElement(
payment_info, 'NbOfTxs')
control_sum = etree.SubElement(payment_info, 'CtrlSum')
payment_type_info = etree.SubElement(
payment_info, 'PmtTpInf')
if priority and gen_args['payment_method'] != 'DD':
instruction_priority = etree.SubElement(
payment_type_info, 'InstrPrty')
instruction_priority.text = priority
if self.sepa:
service_level = etree.SubElement(payment_type_info, 'SvcLvl')
service_level_code = etree.SubElement(service_level, 'Cd')
service_level_code.text = 'SEPA'
if local_instrument:
local_instrument_root = etree.SubElement(
payment_type_info, 'LclInstrm')
if gen_args.get('local_instrument_type') == 'proprietary':
local_instr_value = etree.SubElement(
local_instrument_root, 'Prtry')
else:
local_instr_value = etree.SubElement(
local_instrument_root, 'Cd')
local_instr_value.text = local_instrument
if sequence_type:
sequence_type_node = etree.SubElement(
payment_type_info, 'SeqTp')
sequence_type_node.text = sequence_type
if gen_args['payment_method'] == 'DD':
request_date_tag = 'ReqdColltnDt'
else:
request_date_tag = 'ReqdExctnDt'
requested_date_node = etree.SubElement(
payment_info, request_date_tag)
requested_date_node.text = requested_date
return payment_info, nb_of_transactions, control_sum
@api.model
def _must_have_initiating_party(self, gen_args):
'''This method is designed to be inherited in localization modules for
countries in which the initiating party is required'''
return False
@api.model
def generate_initiating_party_block(self, parent_node, gen_args):
my_company_name = self._prepare_field(
'Company Name',
'self.company_partner_bank_id.partner_id.name',
{'self': self}, gen_args.get('name_maxsize'), gen_args=gen_args)
initiating_party = etree.SubElement(parent_node, 'InitgPty')
initiating_party_name = etree.SubElement(initiating_party, 'Nm')
initiating_party_name.text = my_company_name
initiating_party_identifier = (
self.payment_mode_id.initiating_party_identifier or
self.payment_mode_id.company_id.initiating_party_identifier)
initiating_party_issuer = (
self.payment_mode_id.initiating_party_issuer or
self.payment_mode_id.company_id.initiating_party_issuer)
# in pain.008.001.02.ch.01.xsd files they use
# initiating_party_identifier but not initiating_party_issuer
if initiating_party_identifier:
iniparty_id = etree.SubElement(initiating_party, 'Id')
iniparty_org_id = etree.SubElement(iniparty_id, 'OrgId')
iniparty_org_other = etree.SubElement(iniparty_org_id, 'Othr')
iniparty_org_other_id = etree.SubElement(iniparty_org_other, 'Id')
iniparty_org_other_id.text = initiating_party_identifier
if initiating_party_issuer:
iniparty_org_other_issuer = etree.SubElement(
iniparty_org_other, 'Issr')
iniparty_org_other_issuer.text = initiating_party_issuer
elif self._must_have_initiating_party(gen_args):
raise UserError(
_("Missing 'Initiating Party Issuer' and/or "
"'Initiating Party Identifier' for the company '%s'. "
"Both fields must have a value.")
% self.company_id.name)
return True
@api.model
def generate_party_agent(
self, parent_node, party_type, order, partner_bank, gen_args,
bank_line=None):
"""Generate the piece of the XML file corresponding to BIC
This code is mutualized between TRF and DD
Starting from Feb 1st 2016, we should be able to do
cross-border SEPA transfers without BIC, cf
http://www.europeanpaymentscouncil.eu/index.cfm/
sepa-credit-transfer/iban-and-bic/
In some localization (l10n_ch_sepa for example), they need the
bank_line argument"""
assert order in ('B', 'C'), "Order can be 'B' or 'C'"
if partner_bank.bank_bic:
party_agent = etree.SubElement(parent_node, '%sAgt' % party_type)
party_agent_institution = etree.SubElement(
party_agent, 'FinInstnId')
party_agent_bic = etree.SubElement(
party_agent_institution, gen_args.get('bic_xml_tag'))
party_agent_bic.text = partner_bank.bank_bic
else:
if order == 'B' or (
order == 'C' and gen_args['payment_method'] == 'DD'):
party_agent = etree.SubElement(
parent_node, '%sAgt' % party_type)
party_agent_institution = etree.SubElement(
party_agent, 'FinInstnId')
party_agent_other = etree.SubElement(
party_agent_institution, 'Othr')
party_agent_other_identification = etree.SubElement(
party_agent_other, 'Id')
party_agent_other_identification.text = 'NOTPROVIDED'
# for Credit Transfers, in the 'C' block, if BIC is not provided,
# we should not put the 'Creditor Agent' block at all,
# as per the guidelines of the EPC
return True
@api.model
def generate_party_acc_number(
self, parent_node, party_type, order, partner_bank, gen_args,
bank_line=None):
party_account = etree.SubElement(
parent_node, '%sAcct' % party_type)
party_account_id = etree.SubElement(party_account, 'Id')
if partner_bank.acc_type == 'iban':
party_account_iban = etree.SubElement(
party_account_id, 'IBAN')
party_account_iban.text = partner_bank.sanitized_acc_number
else:
party_account_other = etree.SubElement(
party_account_id, 'Othr')
party_account_other_id = etree.SubElement(
party_account_other, 'Id')
party_account_other_id.text = partner_bank.sanitized_acc_number
return True
@api.model
def generate_party_block(
self, parent_node, party_type, order, partner_bank, gen_args,
bank_line=None):
"""Generate the piece of the XML file corresponding to Name+IBAN+BIC
This code is mutualized between TRF and DD
In some localization (l10n_ch_sepa for example), they need the
bank_line argument"""
assert order in ('B', 'C'), "Order can be 'B' or 'C'"
if party_type == 'Cdtr':
party_type_label = 'Creditor'
elif party_type == 'Dbtr':
party_type_label = 'Debtor'
name = 'partner_bank.partner_id.name'
eval_ctx = {'partner_bank': partner_bank}
party_name = self._prepare_field(
'%s Name' % party_type_label, name, eval_ctx,
gen_args.get('name_maxsize'), gen_args=gen_args)
# At C level, the order is : BIC, Name, IBAN
# At B level, the order is : Name, IBAN, BIC
if order == 'C':
self.generate_party_agent(
parent_node, party_type, order, partner_bank, gen_args,
bank_line=bank_line)
party = etree.SubElement(parent_node, party_type)
party_nm = etree.SubElement(party, 'Nm')
party_nm.text = party_name
partner = partner_bank.partner_id
if partner.country_id:
postal_address = etree.SubElement(party, 'PstlAdr')
country = etree.SubElement(postal_address, 'Ctry')
country.text = self._prepare_field(
'Country', 'partner.country_id.code',
{'partner': partner}, 2, gen_args=gen_args)
if partner.street:
adrline1 = etree.SubElement(postal_address, 'AdrLine')
adrline1.text = self._prepare_field(
'Adress Line1', 'partner.street',
{'partner': partner}, 70, gen_args=gen_args)
if partner.city and partner.zip:
adrline2 = etree.SubElement(postal_address, 'AdrLine')
adrline2.text = self._prepare_field(
'Address Line2', "partner.zip + ' ' + partner.city",
{'partner': partner}, 70, gen_args=gen_args)
self.generate_party_acc_number(
parent_node, party_type, order, partner_bank, gen_args,
bank_line=bank_line)
if order == 'B':
self.generate_party_agent(
parent_node, party_type, order, partner_bank, gen_args,
bank_line=bank_line)
return True
@api.model
def generate_remittance_info_block(self, parent_node, line, gen_args):
remittance_info = etree.SubElement(
parent_node, 'RmtInf')
if line.communication_type == 'normal':
remittance_info_unstructured = etree.SubElement(
remittance_info, 'Ustrd')
remittance_info_unstructured.text = \
self._prepare_field(
'Remittance Unstructured Information',
'line.communication', {'line': line}, 140,
gen_args=gen_args)
else:
remittance_info_structured = etree.SubElement(
remittance_info, 'Strd')
creditor_ref_information = etree.SubElement(
remittance_info_structured, 'CdtrRefInf')
if gen_args.get('pain_flavor') == 'pain.001.001.02':
creditor_ref_info_type = etree.SubElement(
creditor_ref_information, 'CdtrRefTp')
creditor_ref_info_type_code = etree.SubElement(
creditor_ref_info_type, 'Cd')
creditor_ref_info_type_code.text = 'SCOR'
# SCOR means "Structured Communication Reference"
creditor_ref_info_type_issuer = etree.SubElement(
creditor_ref_info_type, 'Issr')
creditor_ref_info_type_issuer.text = \
line.communication_type
creditor_reference = etree.SubElement(
creditor_ref_information, 'CdtrRef')
else:
if gen_args.get('structured_remittance_issuer', True):
creditor_ref_info_type = etree.SubElement(
creditor_ref_information, 'Tp')
creditor_ref_info_type_or = etree.SubElement(
creditor_ref_info_type, 'CdOrPrtry')
creditor_ref_info_type_code = etree.SubElement(
creditor_ref_info_type_or, 'Cd')
creditor_ref_info_type_code.text = 'SCOR'
creditor_ref_info_type_issuer = etree.SubElement(
creditor_ref_info_type, 'Issr')
creditor_ref_info_type_issuer.text = \
line.communication_type
creditor_reference = etree.SubElement(
creditor_ref_information, 'Ref')
creditor_reference.text = \
self._prepare_field(
'Creditor Structured Reference',
'line.communication', {'line': line}, 35,
gen_args=gen_args)
return True
@api.model
def generate_creditor_scheme_identification(
self, parent_node, identification, identification_label,
eval_ctx, scheme_name_proprietary, gen_args):
csi_id = etree.SubElement(parent_node, 'Id')
csi_privateid = etree.SubElement(csi_id, 'PrvtId')
csi_other = etree.SubElement(csi_privateid, 'Othr')
csi_other_id = etree.SubElement(csi_other, 'Id')
csi_other_id.text = self._prepare_field(
identification_label, identification, eval_ctx, gen_args=gen_args)
csi_scheme_name = etree.SubElement(csi_other, 'SchmeNm')
csi_scheme_name_proprietary = etree.SubElement(
csi_scheme_name, 'Prtry')
csi_scheme_name_proprietary.text = scheme_name_proprietary
return True

View File

@@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
# © 2013-2015 Akretion - Alexis de Lattre <alexis.delattre@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import models, fields, api
class BankPaymentLine(models.Model):
_inherit = 'bank.payment.line'
priority = fields.Selection(
related='payment_line_ids.priority', string='Priority')
local_instrument = fields.Selection(
related='payment_line_ids.local_instrument',
string='Local Instrument')
@api.model
def same_fields_payment_line_and_bank_payment_line(self):
res = super(BankPaymentLine, self).\
same_fields_payment_line_and_bank_payment_line()
res += ['priority', 'local_instrument']
return res

View File

@@ -1,425 +0,0 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# PAIN Base module for Odoo
# Copyright (C) 2013-2015 Akretion (http://www.akretion.com)
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp import models, api, _
from openerp.exceptions import Warning
from openerp.tools.safe_eval import safe_eval
from datetime import datetime
from lxml import etree
from openerp import tools
import logging
import base64
try:
from unidecode import unidecode
except ImportError:
unidecode = None
logger = logging.getLogger(__name__)
class BankingExportPain(models.AbstractModel):
_name = 'banking.export.pain'
@api.model
def _validate_iban(self, iban):
"""if IBAN is valid, returns IBAN
if IBAN is NOT valid, raises an error message"""
if self.env['res.partner.bank'].is_iban_valid(iban):
return iban.replace(' ', '')
else:
raise Warning(_("This IBAN is not valid : %s") % iban)
@api.model
def _prepare_field(self, field_name, field_value, eval_ctx,
max_size=0, gen_args=None):
"""This function is designed to be inherited !"""
if gen_args is None:
gen_args = {}
assert isinstance(eval_ctx, dict), 'eval_ctx must contain a dict'
try:
value = safe_eval(field_value, eval_ctx)
# SEPA uses XML ; XML = UTF-8 ; UTF-8 = support for all characters
# But we are dealing with banks...
# and many banks don't want non-ASCCI characters !
# cf section 1.4 "Character set" of the SEPA Credit Transfer
# Scheme Customer-to-bank guidelines
if gen_args.get('convert_to_ascii'):
value = unidecode(value)
unallowed_ascii_chars = [
'"', '#', '$', '%', '&', '*', ';', '<', '>', '=', '@',
'[', ']', '^', '_', '`', '{', '}', '|', '~', '\\', '!']
for unallowed_ascii_char in unallowed_ascii_chars:
value = value.replace(unallowed_ascii_char, '-')
except:
line = eval_ctx.get('line')
if line:
raise Warning(
_("Cannot compute the '%s' of the Payment Line with "
"reference '%s'.")
% (field_name, line.name))
else:
raise Warning(
_("Cannot compute the '%s'.") % field_name)
if not isinstance(value, (str, unicode)):
raise Warning(
_("The type of the field '%s' is %s. It should be a string "
"or unicode.")
% (field_name, type(value)))
if not value:
raise Warning(
_("The '%s' is empty or 0. It should have a non-null value.")
% field_name)
if max_size and len(value) > max_size:
value = value[0:max_size]
return value
@api.model
def _validate_xml(self, xml_string, gen_args):
xsd_etree_obj = etree.parse(
tools.file_open(gen_args['pain_xsd_file']))
official_pain_schema = etree.XMLSchema(xsd_etree_obj)
try:
root_to_validate = etree.fromstring(xml_string)
official_pain_schema.assertValid(root_to_validate)
except Exception, e:
logger.warning(
"The XML file is invalid against the XML Schema Definition")
logger.warning(xml_string)
logger.warning(e)
raise Warning(
_("The generated XML file is not valid against the official "
"XML Schema Definition. The generated XML file and the "
"full error have been written in the server logs. Here "
"is the error, which may give you an idea on the cause "
"of the problem : %s")
% unicode(e))
return True
@api.multi
def finalize_sepa_file_creation(
self, xml_root, total_amount, transactions_count, gen_args):
xml_string = etree.tostring(
xml_root, pretty_print=True, encoding='UTF-8',
xml_declaration=True)
logger.debug(
"Generated SEPA XML file in format %s below"
% gen_args['pain_flavor'])
logger.debug(xml_string)
self._validate_xml(xml_string, gen_args)
order_ref = []
for order in self.payment_order_ids:
if order.reference:
order_ref.append(order.reference.replace('/', '-'))
filename = '%s%s.xml' % (gen_args['file_prefix'], '-'.join(order_ref))
self.write({
'nb_transactions': transactions_count,
'total_amount': total_amount,
'filename': filename,
'file': base64.encodestring(xml_string),
'state': 'finish',
})
action = {
'name': _('SEPA File'),
'type': 'ir.actions.act_window',
'view_type': 'form',
'view_mode': 'form,tree',
'res_model': self._name,
'res_id': self.ids[0],
'target': 'new',
}
return action
@api.model
def generate_group_header_block(self, parent_node, gen_args):
group_header_1_0 = etree.SubElement(parent_node, 'GrpHdr')
message_identification_1_1 = etree.SubElement(
group_header_1_0, 'MsgId')
message_identification_1_1.text = self._prepare_field(
'Message Identification',
'self.payment_order_ids[0].reference',
{'self': self}, 35, gen_args=gen_args)
creation_date_time_1_2 = etree.SubElement(group_header_1_0, 'CreDtTm')
creation_date_time_1_2.text = datetime.strftime(
datetime.today(), '%Y-%m-%dT%H:%M:%S')
if gen_args.get('pain_flavor') == 'pain.001.001.02':
# batch_booking is in "Group header" with pain.001.001.02
# and in "Payment info" in pain.001.001.03/04
batch_booking = etree.SubElement(group_header_1_0, 'BtchBookg')
batch_booking.text = unicode(self.batch_booking).lower()
nb_of_transactions_1_6 = etree.SubElement(
group_header_1_0, 'NbOfTxs')
control_sum_1_7 = etree.SubElement(group_header_1_0, 'CtrlSum')
# Grpg removed in pain.001.001.03
if gen_args.get('pain_flavor') == 'pain.001.001.02':
grouping = etree.SubElement(group_header_1_0, 'Grpg')
grouping.text = 'GRPD'
self.generate_initiating_party_block(group_header_1_0, gen_args)
return group_header_1_0, nb_of_transactions_1_6, control_sum_1_7
@api.model
def generate_start_payment_info_block(
self, parent_node, payment_info_ident,
priority, local_instrument, sequence_type, requested_date,
eval_ctx, gen_args):
payment_info_2_0 = etree.SubElement(parent_node, 'PmtInf')
payment_info_identification_2_1 = etree.SubElement(
payment_info_2_0, 'PmtInfId')
payment_info_identification_2_1.text = self._prepare_field(
'Payment Information Identification',
payment_info_ident, eval_ctx, 35, gen_args=gen_args)
payment_method_2_2 = etree.SubElement(payment_info_2_0, 'PmtMtd')
payment_method_2_2.text = gen_args['payment_method']
nb_of_transactions_2_4 = False
control_sum_2_5 = False
if gen_args.get('pain_flavor') != 'pain.001.001.02':
batch_booking_2_3 = etree.SubElement(payment_info_2_0, 'BtchBookg')
batch_booking_2_3.text = unicode(self.batch_booking).lower()
# The "SEPA Customer-to-bank
# Implementation guidelines" for SCT and SDD says that control sum
# and nb_of_transactions should be present
# at both "group header" level and "payment info" level
nb_of_transactions_2_4 = etree.SubElement(
payment_info_2_0, 'NbOfTxs')
control_sum_2_5 = etree.SubElement(payment_info_2_0, 'CtrlSum')
payment_type_info_2_6 = etree.SubElement(
payment_info_2_0, 'PmtTpInf')
if priority and gen_args['payment_method'] != 'DD':
instruction_priority_2_7 = etree.SubElement(
payment_type_info_2_6, 'InstrPrty')
instruction_priority_2_7.text = priority
service_level_2_8 = etree.SubElement(
payment_type_info_2_6, 'SvcLvl')
service_level_code_2_9 = etree.SubElement(service_level_2_8, 'Cd')
service_level_code_2_9.text = 'SEPA'
if local_instrument:
local_instrument_2_11 = etree.SubElement(
payment_type_info_2_6, 'LclInstrm')
local_instr_code_2_12 = etree.SubElement(
local_instrument_2_11, 'Cd')
local_instr_code_2_12.text = local_instrument
if sequence_type:
sequence_type_2_14 = etree.SubElement(
payment_type_info_2_6, 'SeqTp')
sequence_type_2_14.text = sequence_type
if gen_args['payment_method'] == 'DD':
request_date_tag = 'ReqdColltnDt'
else:
request_date_tag = 'ReqdExctnDt'
requested_date_2_17 = etree.SubElement(
payment_info_2_0, request_date_tag)
requested_date_2_17.text = requested_date
return payment_info_2_0, nb_of_transactions_2_4, control_sum_2_5
@api.model
def _must_have_initiating_party(self, gen_args):
'''This method is designed to be inherited in localization modules for
countries in which the initiating party is required'''
return False
@api.model
def generate_initiating_party_block(self, parent_node, gen_args):
my_company_name = self._prepare_field(
'Company Name',
'self.payment_order_ids[0].mode.bank_id.partner_id.name',
{'self': self}, gen_args.get('name_maxsize'), gen_args=gen_args)
initiating_party_1_8 = etree.SubElement(parent_node, 'InitgPty')
initiating_party_name = etree.SubElement(initiating_party_1_8, 'Nm')
initiating_party_name.text = my_company_name
initiating_party_identifier =\
self.payment_order_ids[0].company_id.\
initiating_party_identifier
initiating_party_issuer =\
self.payment_order_ids[0].company_id.\
initiating_party_issuer
if initiating_party_identifier and initiating_party_issuer:
iniparty_id = etree.SubElement(initiating_party_1_8, 'Id')
iniparty_org_id = etree.SubElement(iniparty_id, 'OrgId')
iniparty_org_other = etree.SubElement(iniparty_org_id, 'Othr')
iniparty_org_other_id = etree.SubElement(iniparty_org_other, 'Id')
iniparty_org_other_id.text = initiating_party_identifier
iniparty_org_other_issuer = etree.SubElement(
iniparty_org_other, 'Issr')
iniparty_org_other_issuer.text = initiating_party_issuer
elif self._must_have_initiating_party(gen_args):
raise Warning(
_("Missing 'Initiating Party Issuer' and/or "
"'Initiating Party Identifier' for the company '%s'. "
"Both fields must have a value.")
% self.payment_order_ids[0].company_id.name)
return True
@api.model
def generate_party_agent(
self, parent_node, party_type, party_type_label,
order, party_name, iban, bic, eval_ctx, gen_args):
"""Generate the piece of the XML file corresponding to BIC
This code is mutualized between TRF and DD"""
assert order in ('B', 'C'), "Order can be 'B' or 'C'"
try:
bic = self._prepare_field(
'%s BIC' % party_type_label, bic, eval_ctx, gen_args=gen_args)
party_agent = etree.SubElement(parent_node, '%sAgt' % party_type)
party_agent_institution = etree.SubElement(
party_agent, 'FinInstnId')
party_agent_bic = etree.SubElement(
party_agent_institution, gen_args.get('bic_xml_tag'))
party_agent_bic.text = bic
except Warning:
if order == 'C':
if iban[0:2] != gen_args['initiating_party_country_code']:
raise Warning(
_('Error:'),
_("The bank account with IBAN '%s' of partner '%s' "
"must have an associated BIC because it is a "
"cross-border SEPA operation.")
% (iban, party_name))
if order == 'B' or (
order == 'C' and gen_args['payment_method'] == 'DD'):
party_agent = etree.SubElement(
parent_node, '%sAgt' % party_type)
party_agent_institution = etree.SubElement(
party_agent, 'FinInstnId')
party_agent_other = etree.SubElement(
party_agent_institution, 'Othr')
party_agent_other_identification = etree.SubElement(
party_agent_other, 'Id')
party_agent_other_identification.text = 'NOTPROVIDED'
# for Credit Transfers, in the 'C' block, if BIC is not provided,
# we should not put the 'Creditor Agent' block at all,
# as per the guidelines of the EPC
return True
@api.model
def generate_party_block(
self, parent_node, party_type, order, name, iban, bic,
eval_ctx, gen_args):
"""Generate the piece of the XML file corresponding to Name+IBAN+BIC
This code is mutualized between TRF and DD"""
assert order in ('B', 'C'), "Order can be 'B' or 'C'"
if party_type == 'Cdtr':
party_type_label = 'Creditor'
elif party_type == 'Dbtr':
party_type_label = 'Debtor'
party_name = self._prepare_field(
'%s Name' % party_type_label, name, eval_ctx,
gen_args.get('name_maxsize'), gen_args=gen_args)
piban = self._prepare_field(
'%s IBAN' % party_type_label, iban, eval_ctx, gen_args=gen_args)
viban = self._validate_iban(piban)
# At C level, the order is : BIC, Name, IBAN
# At B level, the order is : Name, IBAN, BIC
if order == 'B':
gen_args['initiating_party_country_code'] = viban[0:2]
elif order == 'C':
self.generate_party_agent(
parent_node, party_type, party_type_label,
order, party_name, viban, bic, eval_ctx, gen_args)
party = etree.SubElement(parent_node, party_type)
party_nm = etree.SubElement(party, 'Nm')
party_nm.text = party_name
party_account = etree.SubElement(
parent_node, '%sAcct' % party_type)
party_account_id = etree.SubElement(party_account, 'Id')
party_account_iban = etree.SubElement(
party_account_id, 'IBAN')
party_account_iban.text = viban
if order == 'B':
self.generate_party_agent(
parent_node, party_type, party_type_label,
order, party_name, viban, bic, eval_ctx, gen_args)
return True
@api.model
def generate_remittance_info_block(self, parent_node, line, gen_args):
remittance_info_2_91 = etree.SubElement(
parent_node, 'RmtInf')
if line.state == 'normal':
remittance_info_unstructured_2_99 = etree.SubElement(
remittance_info_2_91, 'Ustrd')
remittance_info_unstructured_2_99.text = \
self._prepare_field(
'Remittance Unstructured Information',
'line.communication', {'line': line}, 140,
gen_args=gen_args)
else:
if not line.struct_communication_type:
raise Warning(
_("Missing 'Structured Communication Type' on payment "
"line with reference '%s'.")
% line.name)
remittance_info_structured_2_100 = etree.SubElement(
remittance_info_2_91, 'Strd')
creditor_ref_information_2_120 = etree.SubElement(
remittance_info_structured_2_100, 'CdtrRefInf')
if gen_args.get('pain_flavor') == 'pain.001.001.02':
creditor_ref_info_type_2_121 = etree.SubElement(
creditor_ref_information_2_120, 'CdtrRefTp')
creditor_ref_info_type_code_2_123 = etree.SubElement(
creditor_ref_info_type_2_121, 'Cd')
creditor_ref_info_type_issuer_2_125 = etree.SubElement(
creditor_ref_info_type_2_121, 'Issr')
creditor_reference_2_126 = etree.SubElement(
creditor_ref_information_2_120, 'CdtrRef')
else:
creditor_ref_info_type_2_121 = etree.SubElement(
creditor_ref_information_2_120, 'Tp')
creditor_ref_info_type_or_2_122 = etree.SubElement(
creditor_ref_info_type_2_121, 'CdOrPrtry')
creditor_ref_info_type_code_2_123 = etree.SubElement(
creditor_ref_info_type_or_2_122, 'Cd')
creditor_ref_info_type_issuer_2_125 = etree.SubElement(
creditor_ref_info_type_2_121, 'Issr')
creditor_reference_2_126 = etree.SubElement(
creditor_ref_information_2_120, 'Ref')
creditor_ref_info_type_code_2_123.text = 'SCOR'
creditor_ref_info_type_issuer_2_125.text = \
line.struct_communication_type
creditor_reference_2_126.text = \
self._prepare_field(
'Creditor Structured Reference',
'line.communication', {'line': line}, 35,
gen_args=gen_args)
return True
@api.model
def generate_creditor_scheme_identification(
self, parent_node, identification, identification_label,
eval_ctx, scheme_name_proprietary, gen_args):
csi_id = etree.SubElement(parent_node, 'Id')
csi_privateid = etree.SubElement(csi_id, 'PrvtId')
csi_other = etree.SubElement(csi_privateid, 'Othr')
csi_other_id = etree.SubElement(csi_other, 'Id')
csi_other_id.text = self._prepare_field(
identification_label, identification, eval_ctx, gen_args=gen_args)
csi_scheme_name = etree.SubElement(csi_other, 'SchmeNm')
csi_scheme_name_proprietary = etree.SubElement(
csi_scheme_name, 'Prtry')
csi_scheme_name_proprietary.text = scheme_name_proprietary
return True

View File

@@ -1,43 +0,0 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# PAIN Base module for Odoo
# Copyright (C) 2013-2015 Akretion (http://www.akretion.com)
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp import models, fields, api
class PaymentLine(models.Model):
_inherit = 'payment.line'
@api.model
def _get_struct_communication_types(self):
return [('ISO', 'ISO')]
priority = fields.Selection([
('NORM', 'Normal'),
('HIGH', 'High')],
string='Priority', default='NORM',
help="This field will be used as the 'Instruction Priority' in "
"the generated PAIN file.")
# Update size from 64 to 140, because PAIN allows 140 caracters
communication = fields.Char(size=140)
struct_communication_type = fields.Selection(
'_get_struct_communication_types',
string='Structured Communication Type', default='ISO')

View File

@@ -1,33 +0,0 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# PAIN Base module for Odoo
# Copyright (C) 2013-2015 Akretion (http://www.akretion.com)
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp import models, fields
class PaymentMode(models.Model):
_inherit = 'payment.mode'
convert_to_ascii = fields.Boolean(
string='Convert to ASCII', default=True,
help="If active, Odoo will convert each accented caracter to "
"the corresponding unaccented caracter, so that only ASCII "
"caracters are used in the generated PAIN file.")

View File

@@ -1,26 +1,8 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# PAIN Base module for Odoo
# Copyright (C) 2013-2015 Akretion (http://www.akretion.com)
# Copyright (C) 2013 Noviat (http://www.noviat.com)
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
# @author: Luc de Meyer (Noviat)
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
# -*- coding: utf-8 -*-
# © 2013-2015 Akretion - Alexis de Lattre <alexis.delattre@akretion.com>
# © 2013 Noviat (http://www.noviat.com) - Luc de Meyer
# © 2014 Serv. Tecnol. Avanzados - Pedro M. Baeza
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import models, fields, api
import logging

View File

@@ -1,35 +0,0 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# Copyright (c) ACSONE SA/NV (<http://acsone.eu>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp import models, fields
class ResPartnerBank(models.Model):
_inherit = 'res.partner.bank'
bank = fields.Many2one(help="If this field is set and the related bank "
"has a 'Bank Identifier Code', then this BIC "
"will be used to generate the credit "
"transfers and direct debits files.")
bank_bic = fields.Char(help="In the generation of credit transfer and "
"direct debit files, this BIC will be used "
"only when the 'Bank' field is empty, or "
"has a value but the field 'Bank Identifier "
"Code' is not set on the related bank.")

View File

@@ -1,24 +1,7 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# PAIN Base module for Odoo
# Copyright (C) 2015 Akretion (http://www.akretion.com)
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
# -*- coding: utf-8 -*-
# © 2015-2016 Akretion - Alexis de Lattre <alexis.delattre@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import SUPERUSER_ID

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2013-2016 Akretion (http://www.akretion.com)
@author: Alexis de Lattre <alexis.delattre@akretion.com>
The licence is in the file __openerp__.py
-->
<openerp>
<data>
<record id="account_payment_line_form" model="ir.ui.view">
<field name="name">pain.base.account.payment.line</field>
<field name="model">account.payment.line</field>
<field name="inherit_id" ref="account_payment_order.account_payment_line_form"/>
<field name="arch" type="xml">
<field name="communication_type" position="before">
<field name="priority"/>
<field name="local_instrument" invisible="1"/>
</field>
</field>
</record>
</data>
</openerp>

View File

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="account_payment_method_form" model="ir.ui.view">
<field name="name">pain_base.account_payment_method.form</field>
<field name="model">account.payment.method</field>
<field name="inherit_id" ref="account_payment_mode.account_payment_method_form"/>
<field name="arch" type="xml">
<field name="payment_type" position="after">
<field name="pain_version"/>
<field name="convert_to_ascii"
attrs="{'invisible': [('pain_version', '=', False)]}"/>
</field>
</field>
</record>
<record id="account_payment_method_tree" model="ir.ui.view">
<field name="name">pain_base.account_payment_method.tree</field>
<field name="model">account.payment.method</field>
<field name="inherit_id" ref="account_payment_mode.account_payment_method_tree"/>
<field name="arch" type="xml">
<field name="payment_type" position="after">
<field name="pain_version"/>
</field>
</field>
</record>
</data>
</openerp>

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2013-2016 Akretion (http://www.akretion.com)
@author: Alexis de Lattre <alexis.delattre@akretion.com>
© 2015 Antiun Ingenieria S.L. - Antonio Espinosa
The licence is in the file __openerp__.py
-->
<openerp>
<data>
<record id="account_payment_mode_form" model="ir.ui.view">
<field name="name">pain_base.account.payment.mode.form</field>
<field name="model">account.payment.mode</field>
<field name="inherit_id" ref="account_payment_order.account_payment_mode_form"/>
<field name="arch" type="xml">
<group name="main" position="inside">
<!-- To be set visible in the localisation modules that need it -->
<field name="initiating_party_identifier" invisible="1"/>
<field name="initiating_party_issuer" invisible="1"/>
</group>
</field>
</record>
</data>
</openerp>

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2016 Akretion (http://www.akretion.com)
@author: Alexis de Lattre <alexis.delattre@akretion.com>
The licence is in the file __openerp__.py
-->
<openerp>
<data>
<record id="account_payment_order_form" model="ir.ui.view">
<field name="name">pain.base.account.payment.order.form</field>
<field name="model">account.payment.order</field>
<field name="inherit_id" ref="account_payment_order.account_payment_order_form"/>
<field name="arch" type="xml">
<field name="company_partner_bank_id" position="after">
<field name="sepa"/>
<field name="batch_booking"/>
<field name="charge_bearer" attrs="{'invisible': [('sepa', '=', True)]}"/>
</field>
</field>
</record>
</data>
</openerp>

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2015-2016 Akretion (http://www.akretion.com)
@author: Alexis de Lattre <alexis.delattre@akretion.com>
The licence is in the file __openerp__.py
-->
<openerp>
<data>
<record id="bank_payment_line_form" model="ir.ui.view">
<field name="name">pain.base.bank.payment.line.form</field>
<field name="model">bank.payment.line</field>
<field name="inherit_id" ref="account_payment_order.bank_payment_line_form"/>
<field name="arch" type="xml">
<field name="partner_bank_id" position="after">
<field name="priority"/>
<field name="local_instrument" invisible="1"/>
</field>
</field>
</record>
</data>
</openerp>

View File

@@ -1,41 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2013 Akretion (http://www.akretion.com)
@author: Alexis de Lattre <alexis.delattre@akretion.com>
The licence is in the file __openerp__.py
-->
<openerp>
<data>
<record id="view_payment_line_form" model="ir.ui.view">
<field name="name">pain.base.payment.line.form</field>
<field name="model">payment.line</field>
<field name="inherit_id" ref="account_payment.view_payment_line_form"/>
<field name="arch" type="xml">
<field name="bank_id" position="after">
<field name="priority"/>
<newline />
</field>
<field name="state" position="after">
<field name="struct_communication_type" attrs="{'invisible': [('state', '!=', 'structured')], 'required': [('state', '=', 'structured')]}"/>
</field>
</field>
</record>
<record id="view_payment_order_form" model="ir.ui.view">
<field name="name">pain.base.payment.line.inside.order.form</field>
<field name="model">payment.order</field>
<field name="inherit_id" ref="account_payment.view_payment_order_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='line_ids']/form//field[@name='bank_id']" position="after">
<field name="priority"/>
<newline />
</xpath>
<xpath expr="//field[@name='line_ids']/form//field[@name='state']" position="after">
<field name="struct_communication_type" attrs="{'invisible': [('state', '!=', 'structured')], 'required': [('state', '=', 'structured')]}"/>
</xpath>
</field>
</record>
</data>
</openerp>

View File

@@ -1,22 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2013 Akretion (http://www.akretion.com)
@author: Alexis de Lattre <alexis.delattre@akretion.com>
The licence is in the file __openerp__.py
-->
<openerp>
<data>
<record id="view_payment_mode_form_inherit" model="ir.ui.view">
<field name="name">add.convert_to_ascii.in.payment.mode.form</field>
<field name="model">payment.mode</field>
<field name="inherit_id" ref="account_banking_payment_export.view_payment_mode_form_inherit"/>
<field name="arch" type="xml">
<field name="type" position="after">
<field name="convert_to_ascii"/>
</field>
</field>
</record>
</data>
</openerp>

View File

@@ -1,94 +0,0 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:alt: License: AGPL-3
Account Banking - Payments Export Infrastructure
================================================
This module provide an infrastructure to export payment orders.
It includes some bug fixes and obvious enhancements to payment orders that will hopefully land in offical addons one
day.
This technical module provides the base infrastructure to export payment orders
for electronic banking. It provides the following technical features:
* a new payment.mode.type model
* payment.mode now has a mandatory type
* a better implementation of payment_mode.suitable_bank_types() based on
payment.mode.type
* the "make payment" button launches a wizard depending on the
payment.mode.type
* a manual payment mode type is provided as an example, with a default "do
nothing" wizard
To enable the use of payment order to collect money for customers,
it adds a payment_order_type (payment|debit) as a basis of direct debit support
(this field becomes visible when account_direct_debit is installed).
Installation
============
This module depends on:
* account_payment
* base_iban
This modules is part of the OCA/bank-payment suite.
Configuration
=============
No configuration required.
Usage
=====
This module provides a menu to configure payment order types : Accounting > Configuration > Miscellaneous > Payment Export Types
For further information, please visit:
* https://www.odoo.com/forum/help-1
Known issues / Roadmap
======================
* no known issues
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
`here <https://github.com/OCA/bank-payment/issues/new?body=module:%20account_banking_payment_export%0Aversion:%208.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Credits
=======
Contributors
------------
* Stéphane Bidoul <stephane.bidoul@acsone.eu>
* Alexis de Lattre
* Pedro M. Baeza
* Adrien Peiffer <adrien.peiffer@acsone.eu>
* Stefan Rijnhart
* Laurent Mignon <laurent.mignon@acsone.eu>
* Alexandre Fayolle
* Danimar Ribeiro
* Erwin van der Ploeg
* Raphaël Valyi
* Sandy Carter
* Angel Moya <angel.moya@domatix.com>
Maintainer
----------
.. image:: http://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: http://odoo-community.org
This module is maintained by the OCA.
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.
To contribute to this module, please visit http://odoo-community.org.

View File

@@ -1,52 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright (C) 2009 EduSense BV (<http://www.edusense.nl>).
# (C) 2011 - 2013 Therp BV (<http://therp.nl>).
# (C) 2013 - 2014 ACSONE SA (<http://acsone.eu>).
#
# All other contributions are (C) by their respective contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
{
'name': 'Account Banking - Payments Export Infrastructure',
'version': '8.0.0.1.165',
'license': 'AGPL-3',
'author': "ACSONE SA/NV, "
"Therp BV, "
"Serv. Tecnol. Avanzados - Pedro M. Baeza, "
"Odoo Community Association (OCA)",
'website': 'https://github.com/OCA/bank-payment',
'category': 'Banking addons',
'depends': [
'account_payment',
'base_iban', # for manual_bank_tranfer
'document', # to see the attachments on payment.order
],
'data': [
'views/account_payment.xml',
'views/payment_mode.xml',
'views/payment_mode_type.xml',
'wizard/bank_payment_manual.xml',
'wizard/payment_order_create_view.xml',
'data/payment_mode_type.xml',
'workflow/account_payment.xml',
'security/ir.model.access.csv',
],
'demo': ['demo/banking_demo.xml'],
'installable': False,
}

View File

@@ -1,102 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<record id="bank_fortuneo" model="res.bank">
<field name="name">Fortuneo Banque</field>
<field name="bic">FTNOFRP1XXX</field>
<field name="street">26 avenue des Champs Elysées</field>
<field name="zip">75008</field>
<field name="city">Paris</field>
<field name="country" ref="base.fr"/>
</record>
<record id="bank_la_banque_postale" model="res.bank">
<field name="name">La Banque Postale</field>
<field name="bic">PSSTFRPPXXX</field>
<field name="street">115 rue de Sèvres</field>
<field name="zip">75007</field>
<field name="city">Paris</field>
<field name="country" ref="base.fr"/>
</record>
<record id="bank_societe_generale" model="res.bank">
<field name="name">Société Générale</field>
<field name="bic">SOGEFRPPXXX</field>
<field name="street">1 avenue du Roi Fabien 1er</field>
<field name="zip">75008</field>
<field name="city">Paris</field>
<field name="country" ref="base.fr"/>
</record>
<record id="bank_fortis" model="res.bank">
<field name="name">BNP Paribas Fortis Charleroi</field>
<field name="bic">GEBABEBB03A</field>
<field name="city">Charleroi</field>
<field name="country" ref="base.be"/>
</record>
<record id="main_company_iban" model="res.partner.bank">
<field name="acc_number">FR76 4242 4242 4242 4242 4242 424</field>
<field name="state">iban</field>
<field name="bank" ref="bank_la_banque_postale"/>
<field name="partner_id" ref="base.main_partner" />
<field name="bank_name">La Banque Postale</field>
<field name="bank_bic">PSSTFRPPXXX</field>
</record>
<record id="main_company_iban2" model="res.partner.bank">
<field name="acc_number">FR20 1242 1242 1242 1242 1242 124</field>
<field name="state">iban</field>
<field name="bank" ref="bank_societe_generale"/>
<field name="partner_id" ref="base.main_partner" />
<field name="bank_name">Société Générale</field>
<field name="bank_bic">SOGEFRPPXXX</field>
</record>
<record id="res_partner_12_iban" model="res.partner.bank">
<field name="acc_number">FR66 1212 1212 1212 1212 1212 121</field>
<field name="state">iban</field>
<field name="bank" ref="bank_fortuneo"/>
<field name="partner_id" ref="base.res_partner_12" />
<field name="bank_name">Fortuneo Banque</field>
<field name="bank_bic">FTNOFRP1XXX</field>
</record>
<record id="res_partner_2_iban" model="res.partner.bank">
<field name="acc_number">BE96 9988 7766 5544</field>
<field name="state">iban</field>
<field name="bank" ref="bank_fortis"/>
<field name="partner_id" ref="base.res_partner_2" />
<field name="bank_name">BNP Paribas Fortis Charleroi</field>
<field name="bank_bic">GEBABEBB03A</field>
</record>
<record id="account_payment.payment_mode_1" model="payment.mode">
<field name="type" ref="account_banking_payment_export.manual_bank_tranfer"/>
<field name="sale_ok" eval="False"/>
</record>
<record id="payment_mode_2" model="payment.mode">
<field name="name">Credit Trf Banque Postale</field>
<field name="journal" ref="account.bank_journal"/>
<field name="bank_id" ref="main_company_iban"/>
<field name="company_id" ref="base.main_company"/>
<field name="type" ref="account_banking_payment_export.manual_bank_tranfer"/>
<field name="sale_ok" eval="False"/>
</record>
<record id="payment_mode_3" model="payment.mode">
<field name="name">Credit Trf Société Générale</field>
<field name="journal" ref="account.bank_journal"/>
<field name="bank_id" ref="main_company_iban2"/>
<field name="company_id" ref="base.main_company"/>
<field name="type" ref="account_banking_payment_export.manual_bank_tranfer"/>
<field name="sale_ok" eval="False"/>
</record>
</data>
</openerp>

View File

@@ -1,276 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_banking_payment_export
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-07-02 10:51+0000\n"
"PO-Revision-Date: 2015-07-02 10:51+0000\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_payment_export
#: field:payment.mode,active:0
#: field:payment.mode.type,active:0
msgid "Active"
msgstr ""
#. module: account_banking_payment_export
#: view:payment.manual:account_banking_payment_export.view_payment_manual_form
msgid "Cancel"
msgstr ""
#. module: account_banking_payment_export
#: field:payment.mode.type,code:0
msgid "Code"
msgstr ""
#. module: account_banking_payment_export
#: field:payment.manual,create_uid:0
#: field:payment.mode.type,create_uid:0
msgid "Created by"
msgstr ""
#. module: account_banking_payment_export
#: field:payment.manual,create_date:0
#: field:payment.mode.type,create_date:0
msgid "Created on"
msgstr ""
#. module: account_banking_payment_export
#: selection:payment.mode.type,payment_order_type:0
msgid "Debit"
msgstr ""
#. module: account_banking_payment_export
#: selection:payment.order,payment_order_type:0
msgid "Direct debit"
msgstr ""
#. module: account_banking_payment_export
#: code:addons/account_banking_payment_export/wizard/payment_order_create.py:121
#, python-format
msgid "Entry Lines"
msgstr ""
#. module: account_banking_payment_export
#: code:addons/account_banking_payment_export/models/account_payment.py:68
#, python-format
msgid "Error"
msgstr ""
#. module: account_banking_payment_export
#: field:payment.mode,type:0
msgid "Export type"
msgstr ""
#. module: account_banking_payment_export
#: field:payment.manual,id:0
#: field:payment.mode.type,id:0
msgid "ID"
msgstr ""
#. module: account_banking_payment_export
#: model:ir.model,name:account_banking_payment_export.model_account_invoice
msgid "Invoice"
msgstr ""
#. module: account_banking_payment_export
#: view:account.move.line:account_banking_payment_export.payment_order_populate_view_move_line_tree
msgid "Journal Entry"
msgstr ""
#. module: account_banking_payment_export
#: view:account.move.line:account_banking_payment_export.payment_order_populate_view_move_line_tree
#: model:ir.model,name:account_banking_payment_export.model_account_move_line
msgid "Journal Items"
msgstr ""
#. module: account_banking_payment_export
#: field:payment.manual,write_uid:0
#: field:payment.mode.type,write_uid:0
msgid "Last Updated by"
msgstr ""
#. module: account_banking_payment_export
#: field:payment.manual,write_date:0
#: field:payment.mode.type,write_date:0
msgid "Last Updated on"
msgstr ""
#. module: account_banking_payment_export
#: view:payment.manual:account_banking_payment_export.view_payment_manual_form
msgid "Manual payment"
msgstr ""
#. module: account_banking_payment_export
#: field:payment.mode.type,name:0
msgid "Name"
msgstr ""
#. module: account_banking_payment_export
#: view:payment.mode:account_banking_payment_export.view_payment_mode_form_inherit
#: field:payment.mode,note:0
msgid "Note"
msgstr ""
#. module: account_banking_payment_export
#: field:payment.mode.type,payment_order_type:0
msgid "Order type"
msgstr ""
#. module: account_banking_payment_export
#: selection:payment.mode.type,payment_order_type:0
#: selection:payment.order,payment_order_type:0
msgid "Payment"
msgstr ""
#. module: account_banking_payment_export
#: model:ir.actions.act_window,name:account_banking_payment_export.action_payment_mode_type
#: model:ir.ui.menu,name:account_banking_payment_export.menu_payment_mode_type
msgid "Payment Export Types"
msgstr ""
#. module: account_banking_payment_export
#: model:ir.model,name:account_banking_payment_export.model_payment_mode
msgid "Payment Mode"
msgstr ""
#. module: account_banking_payment_export
#: model:ir.model,name:account_banking_payment_export.model_payment_mode_type
msgid "Payment Mode Type"
msgstr ""
#. module: account_banking_payment_export
#: model:ir.model,name:account_banking_payment_export.model_payment_order
msgid "Payment Order"
msgstr ""
#. module: account_banking_payment_export
#: code:addons/account_banking_payment_export/models/account_payment.py:53
#, python-format
msgid "Payment Order Export"
msgstr ""
#. module: account_banking_payment_export
#: code:addons/account_banking_payment_export/wizard/payment_order_create.py:213
#, python-format
msgid "Payment Orders"
msgstr ""
#. module: account_banking_payment_export
#: view:payment.mode.type:account_banking_payment_export.view_payment_mode_type_form
#: help:payment.mode.type,name:0
msgid "Payment Type"
msgstr ""
#. module: account_banking_payment_export
#: view:payment.mode.type:account_banking_payment_export.view_payment_mode_type_tree
msgid "Payment Types"
msgstr ""
#. module: account_banking_payment_export
#: field:payment.order,payment_order_type:0
msgid "Payment order type"
msgstr ""
#. module: account_banking_payment_export
#: field:payment.mode.type,ir_model_id:0
msgid "Payment wizard"
msgstr ""
#. module: account_banking_payment_export
#: view:payment.manual:account_banking_payment_export.view_payment_manual_form
msgid "Please execute payment order manually, and click OK when succesfully sent."
msgstr ""
#. module: account_banking_payment_export
#: field:payment.order.create,populate_results:0
msgid "Populate results directly"
msgstr ""
#. module: account_banking_payment_export
#: help:payment.mode,type:0
msgid "Select the Export Payment Type for the Payment Mode."
msgstr ""
#. module: account_banking_payment_export
#: help:payment.mode.type,ir_model_id:0
msgid "Select the Payment Wizard for payments of this type. Leave empty for manual processing"
msgstr ""
#. module: account_banking_payment_export
#: field:payment.mode,purchase_ok:0
msgid "Selectable on purchase operations"
msgstr ""
#. module: account_banking_payment_export
#: field:payment.mode,sale_ok:0
msgid "Selectable on sale operations"
msgstr ""
#. module: account_banking_payment_export
#: model:ir.model,name:account_banking_payment_export.model_payment_manual
msgid "Send payment order(s) manually"
msgstr ""
#. module: account_banking_payment_export
#: help:payment.mode.type,code:0
msgid "Specify the Code for Payment Type"
msgstr ""
#. module: account_banking_payment_export
#: code:addons/account_banking_payment_export/models/account_invoice.py:34
#, python-format
msgid "Structured Reference"
msgstr ""
#. module: account_banking_payment_export
#: view:payment.mode.type:account_banking_payment_export.view_payment_mode_type_form
#: field:payment.mode.type,suitable_bank_types:0
msgid "Suitable bank types"
msgstr ""
#. module: account_banking_payment_export
#: help:payment.mode.type,payment_order_type:0
msgid "This field determines if this type applies to customers (Debit) or suppliers (Payment)"
msgstr ""
#. module: account_banking_payment_export
#: view:account.move.line:account_banking_payment_export.payment_order_populate_view_move_line_tree
msgid "Total Credit"
msgstr ""
#. module: account_banking_payment_export
#: view:account.move.line:account_banking_payment_export.payment_order_populate_view_move_line_tree
msgid "Total Debit"
msgstr ""
#. module: account_banking_payment_export
#: code:addons/account_banking_payment_export/models/account_payment.py:69
#, python-format
msgid "You can only combine payment orders of the same type"
msgstr ""
#. module: account_banking_payment_export
#: view:payment.order:account_banking_payment_export.view_banking_payment_order_form_1
msgid "launch_wizard"
msgstr ""
#. module: account_banking_payment_export
#: view:payment.order:account_banking_payment_export.view_banking_payment_order_form_1
msgid "{\n"
" 'invisible': [('state', '!=', 'draft')]}"
msgstr ""
#. module: account_banking_payment_export
#: view:payment.order.create:account_banking_payment_export.view_create_payment_order_lines
msgid "{'display_credit': context.get('display_credit', False),'display_debit': context.get('display_debit', False),'journal_type': 'sale', 'tree_view_ref' : 'account_banking_payment_export.payment_order_populate_view_move_line_tree'}"
msgstr ""

View File

@@ -1,277 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_banking_payment_export
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-07-02 10:49+0000\n"
"PO-Revision-Date: 2015-07-02 10:49+0000\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_payment_export
#: field:payment.mode,active:0
#: field:payment.mode.type,active:0
msgid "Active"
msgstr "Activo"
#. module: account_banking_payment_export
#: view:payment.manual:account_banking_payment_export.view_payment_manual_form
msgid "Cancel"
msgstr "Cancelar"
#. module: account_banking_payment_export
#: field:payment.mode.type,code:0
msgid "Code"
msgstr "Código"
#. module: account_banking_payment_export
#: field:payment.manual,create_uid:0
#: field:payment.mode.type,create_uid:0
msgid "Created by"
msgstr "Creado por"
#. module: account_banking_payment_export
#: field:payment.manual,create_date:0
#: field:payment.mode.type,create_date:0
msgid "Created on"
msgstr "Creado en"
#. module: account_banking_payment_export
#: selection:payment.mode.type,payment_order_type:0
msgid "Debit"
msgstr "Cobro"
#. module: account_banking_payment_export
#: selection:payment.order,payment_order_type:0
msgid "Direct debit"
msgstr "Adeudo directo (cobro)"
#. module: account_banking_payment_export
#: code:addons/account_banking_payment_export/wizard/payment_order_create.py:121
#, python-format
msgid "Entry Lines"
msgstr "Líneas de pago"
#. module: account_banking_payment_export
#: code:addons/account_banking_payment_export/models/account_payment.py:68
#, python-format
msgid "Error"
msgstr "Error"
#. module: account_banking_payment_export
#: field:payment.mode,type:0
msgid "Export type"
msgstr "Tipo de exportación"
#. module: account_banking_payment_export
#: field:payment.manual,id:0
#: field:payment.mode.type,id:0
msgid "ID"
msgstr "ID"
#. module: account_banking_payment_export
#: model:ir.model,name:account_banking_payment_export.model_account_invoice
msgid "Invoice"
msgstr "Factura"
#. module: account_banking_payment_export
#: view:account.move.line:account_banking_payment_export.payment_order_populate_view_move_line_tree
msgid "Journal Entry"
msgstr "Asiento contable"
#. module: account_banking_payment_export
#: view:account.move.line:account_banking_payment_export.payment_order_populate_view_move_line_tree
#: model:ir.model,name:account_banking_payment_export.model_account_move_line
msgid "Journal Items"
msgstr "Apuntes contables"
#. module: account_banking_payment_export
#: field:payment.manual,write_uid:0
#: field:payment.mode.type,write_uid:0
msgid "Last Updated by"
msgstr "Última actualización por"
#. module: account_banking_payment_export
#: field:payment.manual,write_date:0
#: field:payment.mode.type,write_date:0
msgid "Last Updated on"
msgstr "Última actualización en"
#. module: account_banking_payment_export
#: view:payment.manual:account_banking_payment_export.view_payment_manual_form
msgid "Manual payment"
msgstr "Pago manual"
#. module: account_banking_payment_export
#: field:payment.mode.type,name:0
msgid "Name"
msgstr "Nombre"
#. module: account_banking_payment_export
#: view:payment.mode:account_banking_payment_export.view_payment_mode_form_inherit
#: field:payment.mode,note:0
msgid "Note"
msgstr "Descripción"
#. module: account_banking_payment_export
#: field:payment.mode.type,payment_order_type:0
msgid "Order type"
msgstr "Tipo de orden"
#. module: account_banking_payment_export
#: selection:payment.mode.type,payment_order_type:0
#: selection:payment.order,payment_order_type:0
msgid "Payment"
msgstr "Pago"
#. module: account_banking_payment_export
#: model:ir.actions.act_window,name:account_banking_payment_export.action_payment_mode_type
#: model:ir.ui.menu,name:account_banking_payment_export.menu_payment_mode_type
msgid "Payment Export Types"
msgstr "Tipos de exportación de pagos"
#. module: account_banking_payment_export
#: model:ir.model,name:account_banking_payment_export.model_payment_mode
msgid "Payment Mode"
msgstr "Modo de pago"
#. module: account_banking_payment_export
#: model:ir.model,name:account_banking_payment_export.model_payment_mode_type
msgid "Payment Mode Type"
msgstr "Tipo del modo de pago"
#. module: account_banking_payment_export
#: model:ir.model,name:account_banking_payment_export.model_payment_order
msgid "Payment Order"
msgstr "Orden de pago"
#. module: account_banking_payment_export
#: code:addons/account_banking_payment_export/models/account_payment.py:53
#, python-format
msgid "Payment Order Export"
msgstr "Exportación de la orden de pago"
#. module: account_banking_payment_export
#: code:addons/account_banking_payment_export/wizard/payment_order_create.py:213
#, python-format
msgid "Payment Orders"
msgstr "Órdenes de pago"
#. module: account_banking_payment_export
#: view:payment.mode.type:account_banking_payment_export.view_payment_mode_type_form
#: help:payment.mode.type,name:0
msgid "Payment Type"
msgstr "Tipo de pago"
#. module: account_banking_payment_export
#: view:payment.mode.type:account_banking_payment_export.view_payment_mode_type_tree
msgid "Payment Types"
msgstr "Tipos de pago"
#. module: account_banking_payment_export
#: field:payment.order,payment_order_type:0
msgid "Payment order type"
msgstr "Tipo de la orden de pago"
#. module: account_banking_payment_export
#: field:payment.mode.type,ir_model_id:0
msgid "Payment wizard"
msgstr "Asistente de pago"
#. module: account_banking_payment_export
#: view:payment.manual:account_banking_payment_export.view_payment_manual_form
msgid "Please execute payment order manually, and click OK when succesfully sent."
msgstr "Ejecute la orden de pago manualmente (fuera del sistema), y pulse en Aceptar cuando la haya tramitado correctamente."
#. module: account_banking_payment_export
#: field:payment.order.create,populate_results:0
msgid "Populate results directly"
msgstr "Incluir directamente los resultados"
#. module: account_banking_payment_export
#: help:payment.mode,type:0
msgid "Select the Export Payment Type for the Payment Mode."
msgstr "Seleccione el tipo de exportación de pago para el modo de pago."
#. module: account_banking_payment_export
#: help:payment.mode.type,ir_model_id:0
msgid "Select the Payment Wizard for payments of this type. Leave empty for manual processing"
msgstr "Seleccione el asistente de pago para los pagos de este tipo. Déjelo vacío para un procesado manual."
#. module: account_banking_payment_export
#: field:payment.mode,purchase_ok:0
msgid "Selectable on purchase operations"
msgstr "Seleccionable en operaciones de compra"
#. module: account_banking_payment_export
#: field:payment.mode,sale_ok:0
msgid "Selectable on sale operations"
msgstr "Seleccionable en operaciones de venta"
#. module: account_banking_payment_export
#: model:ir.model,name:account_banking_payment_export.model_payment_manual
msgid "Send payment order(s) manually"
msgstr "Enviar la(s) orden(es) de pago manualmente"
#. module: account_banking_payment_export
#: help:payment.mode.type,code:0
msgid "Specify the Code for Payment Type"
msgstr "Especifica el código para el tipo de pago"
#. module: account_banking_payment_export
#: code:addons/account_banking_payment_export/models/account_invoice.py:34
#, python-format
msgid "Structured Reference"
msgstr "Referencia esctructurada"
#. module: account_banking_payment_export
#: view:payment.mode.type:account_banking_payment_export.view_payment_mode_type_form
#: field:payment.mode.type,suitable_bank_types:0
msgid "Suitable bank types"
msgstr "Tipos de cuentas bancarias adecuadas"
#. module: account_banking_payment_export
#: help:payment.mode.type,payment_order_type:0
msgid "This field determines if this type applies to customers (Debit) or suppliers (Payment)"
msgstr "Este campo determina si este tipo aplica a clientes (Cobro) o a proveedores (Pago)"
#. module: account_banking_payment_export
#: view:account.move.line:account_banking_payment_export.payment_order_populate_view_move_line_tree
msgid "Total Credit"
msgstr "Total haber"
#. module: account_banking_payment_export
#: view:account.move.line:account_banking_payment_export.payment_order_populate_view_move_line_tree
msgid "Total Debit"
msgstr "Total debe"
#. module: account_banking_payment_export
#: code:addons/account_banking_payment_export/models/account_payment.py:69
#, python-format
msgid "You can only combine payment orders of the same type"
msgstr "Sólo puede combinar órdenes de pago del mismo tipo"
#. module: account_banking_payment_export
#: view:payment.order:account_banking_payment_export.view_banking_payment_order_form_1
msgid "launch_wizard"
msgstr "Asistente"
#. module: account_banking_payment_export
#: view:payment.order:account_banking_payment_export.view_banking_payment_order_form_1
msgid "{\n"
" 'invisible': [('state', '!=', 'draft')]}"
msgstr "{\n"
" 'invisible': [('state', '!=', 'draft')]}"
#. module: account_banking_payment_export
#: view:payment.order.create:account_banking_payment_export.view_create_payment_order_lines
msgid "{'display_credit': context.get('display_credit', False),'display_debit': context.get('display_debit', False),'journal_type': 'sale', 'tree_view_ref' : 'account_banking_payment_export.payment_order_populate_view_move_line_tree'}"
msgstr "{'display_credit': context.get('display_credit', False),'display_debit': context.get('display_debit', False),'journal_type': 'sale', 'tree_view_ref' : 'account_banking_payment_export.payment_order_populate_view_move_line_tree'}"

View File

@@ -1,151 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * account_banking_payment_export
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 7.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-10-25 15:58+0000\n"
"PO-Revision-Date: 2013-12-03 11:49+0000\n"
"Last-Translator: Erwin van der Ploeg (BAS Solutions) <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-05-31 06:02+0000\n"
"X-Generator: Launchpad (build 17031)\n"
#. module: account_banking_payment_export
#: help:payment.mode.type,name:0
msgid "Payment Type"
msgstr "Betaalwijze"
#. module: account_banking_payment_export
#: model:ir.model,name:account_banking_payment_export.model_payment_order
msgid "Payment Order"
msgstr "Betalingsopdracht"
#. module: account_banking_payment_export
#: view:payment.manual:0
msgid ""
"Please execute payment order manually, and click OK when succesfully sent."
msgstr ""
"Voer de betaalopdracht handmatig uit en klik OK, wanneer succesvol verzonden."
#. module: account_banking_payment_export
#: model:ir.model,name:account_banking_payment_export.model_payment_mode
msgid "Payment Mode"
msgstr "Betaalwijze"
#. module: account_banking_payment_export
#: code:addons/account_banking_payment_export/model/account_payment.py:69
#, python-format
msgid "You can only combine payment orders of the same type"
msgstr "U kunt alleen betalingsopdrachten van dezelfde soort combineren"
#. module: account_banking_payment_export
#: model:ir.model,name:account_banking_payment_export.model_payment_mode_type
msgid "Payment Mode Type"
msgstr "Betaalwijze soort"
#. module: account_banking_payment_export
#: model:ir.model,name:account_banking_payment_export.model_account_move_line
msgid "Journal Items"
msgstr "Boekingen"
#. module: account_banking_payment_export
#: model:ir.model,name:account_banking_payment_export.model_payment_manual
msgid "Send payment order(s) manually"
msgstr "Verzend betaalopdrachten handmatig"
#. module: account_banking_payment_export
#: field:payment.mode.type,name:0
msgid "Name"
msgstr "Naam"
#. module: account_banking_payment_export
#: help:payment.mode.type,ir_model_id:0
msgid ""
"Select the Payment Wizard for payments of this type. Leave empty for manual "
"processing"
msgstr ""
"Selecteer de wizard voor het verwerken van betalingen van dit type. Laat "
"leeg voor handmatige verwerking."
#. module: account_banking_payment_export
#: view:payment.manual:0
msgid "Manual payment"
msgstr "Handmatige betaling"
#. module: account_banking_payment_export
#: field:payment.manual,payment_order_ids:0
msgid "Payment orders"
msgstr "Betaalopdrachten"
#. module: account_banking_payment_export
#: code:addons/account_banking_payment_export/model/account_payment.py:52
#, python-format
msgid "Payment Order Export"
msgstr "Betaalopdracht export"
#. module: account_banking_payment_export
#: help:payment.mode,type:0
msgid "Select the Payment Type for the Payment Mode."
msgstr "Selecteer het type van de betaalmodus."
#. module: account_banking_payment_export
#: view:payment.order:0
msgid "launch_wizard"
msgstr "launch_wizard"
#. module: account_banking_payment_export
#: help:payment.mode.type,code:0
msgid "Specify the Code for Payment Type"
msgstr "Geef de code op voor het betaaltype"
#. module: account_banking_payment_export
#: model:ir.model,name:account_banking_payment_export.model_payment_order_create
msgid "payment.order.create"
msgstr "payment.order.create"
#. module: account_banking_payment_export
#: code:addons/account_banking_payment_export/model/account_payment.py:68
#, python-format
msgid "Error"
msgstr "Fout"
#. module: account_banking_payment_export
#: field:payment.mode.type,ir_model_id:0
msgid "Payment wizard"
msgstr "Betaalwizard"
#. module: account_banking_payment_export
#: field:payment.mode,type:0
msgid "Payment type"
msgstr "Betaaltype"
#. module: account_banking_payment_export
#: field:payment.mode.type,code:0
msgid "Code"
msgstr "Code"
#. module: account_banking_payment_export
#: view:payment.manual:0
msgid "OK"
msgstr "OK"
#. module: account_banking_payment_export
#: view:payment.mode.type:0
msgid "Payment mode"
msgstr "Betaalwijze"
#. module: account_banking_payment_export
#: view:payment.manual:0
msgid "Cancel"
msgstr "Annuleren"
#. module: account_banking_payment_export
#: field:payment.mode.type,suitable_bank_types:0
msgid "Suitable bank types"
msgstr "Geschikte banktypen"

View File

@@ -1,236 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_banking_payment_export
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-10-31 22:52+0000\n"
"PO-Revision-Date: 2014-10-31 22:52+0000\n"
"Last-Translator: Danimar Ribeiro<danimaribeiro@gmail.com>\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_payment_export
#: field:payment.mode,active:0
#: field:payment.mode.type,active:0
msgid "Active"
msgstr "Ativo"
#. module: account_banking_payment_export
#: field:payment.mode,sale_ok:0
msgid "Selectable on sale operations"
msgstr "Selecionável em operações de venda"
#. module: account_banking_payment_export
#: field:payment.mode,purchase_ok:0
msgid "Selectable on purchase operations"
msgstr "Selecionável em operações de compra"
#. module: account_banking_payment_export
#: field:account.move.line,amount_to_pay:0
msgid "Amount to pay"
msgstr "Valor a pagar"
#. module: account_banking_payment_export
#: view:payment.manual:account_banking_payment_export.view_payment_manual_form
msgid "Cancel"
msgstr "Cancelar"
#. module: account_banking_payment_export
#: field:payment.mode.type,code:0
msgid "Code"
msgstr "Código"
#. module: account_banking_payment_export
#: field:payment.manual,create_uid:0
#: field:payment.mode.type,create_uid:0
msgid "Created by"
msgstr "Criado por"
#. module: account_banking_payment_export
#: field:payment.manual,create_date:0
#: field:payment.mode.type,create_date:0
msgid "Created on"
msgstr "Criado em"
#. module: account_banking_payment_export
#: selection:payment.mode.type,payment_order_type:0
msgid "Debit"
msgstr "Débito"
#. module: account_banking_payment_export
#: selection:payment.order,payment_order_type:0
msgid "Direct debit"
msgstr "Débito direto"
#. module: account_banking_payment_export
#: code:addons/account_banking_payment_export/wizard/payment_order_create.py:77
#, python-format
msgid "Entry Lines"
msgstr "Linhas de pagamento"
#. module: account_banking_payment_export
#: code:addons/account_banking_payment_export/models/account_payment.py:68
#, python-format
msgid "Error"
msgstr "Erro"
#. module: account_banking_payment_export
#: field:payment.mode,type:0
msgid "Export type"
msgstr "Tipo de exportação"
#. module: account_banking_payment_export
#: field:payment.manual,id:0
#: field:payment.mode.type,id:0
msgid "ID"
msgstr "ID"
#. module: account_banking_payment_export
#: model:ir.model,name:account_banking_payment_export.model_account_move_line
msgid "Journal Items"
msgstr "Itens de Diário"
#. module: account_banking_payment_export
#: field:payment.manual,write_uid:0
#: field:payment.mode.type,write_uid:0
msgid "Last Updated by"
msgstr "Última Atualização por"
#. module: account_banking_payment_export
#: field:payment.manual,write_date:0
#: field:payment.mode.type,write_date:0
msgid "Last Updated on"
msgstr "Última Atualização em"
#. module: account_banking_payment_export
#: view:payment.manual:account_banking_payment_export.view_payment_manual_form
msgid "Manual payment"
msgstr "Pagamento manual"
#. module: account_banking_payment_export
#: field:payment.mode.type,name:0
msgid "Name"
msgstr "Nome"
#. module: account_banking_payment_export
#: field:payment.mode.type,payment_order_type:0
msgid "Order type"
msgstr "Tipo de ordem"
#. module: account_banking_payment_export
#: selection:payment.mode.type,payment_order_type:0
#: selection:payment.order,payment_order_type:0
msgid "Payment"
msgstr "Pagamento"
#. module: account_banking_payment_export
#: model:ir.actions.act_window,name:account_banking_payment_export.action_payment_mode_type
#: model:ir.ui.menu,name:account_banking_payment_export.menu_payment_mode_type
msgid "Payment Export Types"
msgstr "Tipos de exportação dos Pagamentos"
#. module: account_banking_payment_export
#: model:ir.model,name:account_banking_payment_export.model_payment_mode
msgid "Payment Mode"
msgstr "Modo de pagamento"
#. module: account_banking_payment_export
#: model:ir.model,name:account_banking_payment_export.model_payment_mode_type
msgid "Payment Mode Type"
msgstr "Tipo do Modo de Pagamento"
#. module: account_banking_payment_export
#: model:ir.model,name:account_banking_payment_export.model_payment_order
msgid "Payment Order"
msgstr "Ordem de Pagamento"
#. module: account_banking_payment_export
#: code:addons/account_banking_payment_export/models/account_payment.py:53
#, python-format
msgid "Payment Order Export"
msgstr "Exportação da Ordem de Pagamento"
#. module: account_banking_payment_export
#: code:addons/account_banking_payment_export/wizard/payment_order_create.py:169
#, python-format
msgid "Payment Orders"
msgstr "Ordens de Pagamento"
#. module: account_banking_payment_export
#: view:payment.mode.type:account_banking_payment_export.view_payment_mode_type_form
#: help:payment.mode.type,name:0
msgid "Payment Type"
msgstr "Tipo de pagamento"
#. module: account_banking_payment_export
#: view:payment.mode.type:account_banking_payment_export.view_payment_mode_type_tree
msgid "Payment Types"
msgstr "Tipos de pagamento"
#. module: account_banking_payment_export
#: field:payment.order,payment_order_type:0
msgid "Payment order type"
msgstr "Tipo da ordem de pagamento"
#. module: account_banking_payment_export
#: field:payment.mode.type,ir_model_id:0
msgid "Payment wizard"
msgstr "Assistente para Pagamentos"
#. module: account_banking_payment_export
#: view:payment.manual:account_banking_payment_export.view_payment_manual_form
msgid "Please execute payment order manually, and click OK when succesfully sent."
msgstr "Por favor execute a ordem de pagamento manualmente, e clique OK quando terminar de enviar."
#. module: account_banking_payment_export
#: field:payment.order.create,populate_results:0
msgid "Populate results directly"
msgstr "Incluir diretamente os resultados"
#. module: account_banking_payment_export
#: help:payment.mode,type:0
msgid "Select the Export Payment Type for the Payment Mode."
msgstr "Selecione os tipos de pagamento que permitem exportação para o Modo de Pagamento."
#. module: account_banking_payment_export
#: help:payment.mode.type,ir_model_id:0
msgid "Select the Payment Wizard for payments of this type. Leave empty for manual processing"
msgstr "Selecione o Assistente de Pagamento para pagamentos deste tipo. Deixe vazio para processamento manual"
#. module: account_banking_payment_export
#: model:ir.model,name:account_banking_payment_export.model_payment_manual
msgid "Send payment order(s) manually"
msgstr "Enviar a(s) ordem(s) de pagamento manualmente"
#. module: account_banking_payment_export
#: help:payment.mode.type,code:0
msgid "Specify the Code for Payment Type"
msgstr "Especifique o código para o Tipo de Pagamento"
#. module: account_banking_payment_export
#: view:payment.mode.type:account_banking_payment_export.view_payment_mode_type_form
#: field:payment.mode.type,suitable_bank_types:0
msgid "Suitable bank types"
msgstr "Tipos de contas bancárias adequadas"
#. module: account_banking_payment_export
#: help:payment.mode.type,payment_order_type:0
msgid "This field determines if this type applies to customers (Debit) or suppliers (Payment)"
msgstr "Este campo determina se este tipo se aplica a clientes (Cobrança) ou a fornecedores (Pagamentos)"
#. module: account_banking_payment_export
#: code:addons/account_banking_payment_export/models/account_payment.py:69
#, python-format
msgid "You can only combine payment orders of the same type"
msgstr "Você pode combinar ordens de pagamento do mesmo tipo"
#. module: account_banking_payment_export
#: view:payment.order:account_banking_payment_export.view_banking_payment_order_form_1
msgid "launch_wizard"
msgstr "launch_wizard"

View File

@@ -1,8 +0,0 @@
# -*- coding: utf-8 -*-
from . import account_payment
# important: import payment_mode_type before payment_mode
# to let the _auto_init work properly
from . import payment_mode_type
from . import payment_mode
from . import account_move_line
from . import account_invoice

View File

@@ -1,52 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright (C) 2004-2014 OpenERP S.A. (http://www.openerp.com/)
# (C) 2014 Akretion (http://www.akretion.com/)
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp import models, fields, api
class AccountMoveLine(models.Model):
_inherit = 'account.move.line'
@api.one
def _get_journal_entry_ref(self):
if self.move_id.state == 'draft':
if self.invoice.id:
self.journal_entry_ref = self.invoice.number
else:
self.journal_entry_ref = '*' + str(self.move_id.id)
else:
self.journal_entry_ref = self.move_id.name
journal_entry_ref = fields.Char(compute=_get_journal_entry_ref,
string='Journal Entry Ref')
@api.multi
def get_balance(self):
"""
Return the balance of any set of move lines.
Not to be confused with the 'balance' field on this model, which
returns the account balance that the move line applies to.
"""
total = 0.0
for line in self:
total += (line.debit or 0.0) - (line.credit or 0.0)
return total

View File

@@ -1,89 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright (C) 2009 EduSense BV (<http://www.edusense.nl>).
# (C) 2011 - 2013 Therp BV (<http://therp.nl>).
#
# All other contributions are (C) by their respective contributors
#
# All Rights Reserved
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp import models, fields, api, exceptions, workflow, _
class PaymentOrder(models.Model):
_inherit = 'payment.order'
payment_order_type = fields.Selection(
[('payment', 'Payment'), ('debit', 'Direct debit')],
'Payment order type', required=True, default='payment',
readonly=True, states={'draft': [('readonly', False)]})
mode_type = fields.Many2one('payment.mode.type', related='mode.type',
string='Payment Type')
total = fields.Float(compute='_compute_total', store=True)
@api.depends('line_ids', 'line_ids.amount')
@api.one
def _compute_total(self):
self.total = sum(self.mapped('line_ids.amount') or [0.0])
@api.multi
def launch_wizard(self):
"""Search for a wizard to launch according to the type.
If type is manual. just confirm the order.
Previously (pre-v6) in account_payment/wizard/wizard_pay.py
"""
context = self.env.context.copy()
order = self[0]
# check if a wizard is defined for the first order
if order.mode.type and order.mode.type.ir_model_id:
context['active_ids'] = self.ids
wizard_model = order.mode.type.ir_model_id.model
wizard_obj = self.env[wizard_model]
return {
'name': wizard_obj._description or _('Payment Order Export'),
'view_type': 'form',
'view_mode': 'form',
'res_model': wizard_model,
'domain': [],
'context': context,
'type': 'ir.actions.act_window',
'target': 'new',
'nodestroy': True,
}
else:
# should all be manual orders without type or wizard model
for order in self[1:]:
if order.mode.type and order.mode.type.ir_model_id:
raise exceptions.Warning(
_('Error'),
_('You can only combine payment orders of the same '
'type'))
# process manual payments
for order_id in self.ids:
workflow.trg_validate(self.env.uid, 'payment.order',
order_id, 'done', self.env.cr)
return {}
@api.multi
def action_done(self):
self.write({
'date_done': fields.Date.context_today(self),
'state': 'done',
})
return True

View File

@@ -1,110 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright (C) 2009 EduSense BV (<http://www.edusense.nl>).
# (C) 2011 - 2013 Therp BV (<http://therp.nl>).
#
# All other contributions are (C) by their respective contributors
#
# All Rights Reserved
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp import models, fields, api, SUPERUSER_ID
class PaymentMode(models.Model):
"""Restoring the payment type from version 5,
used to select the export wizard (if any)
"""
_inherit = "payment.mode"
def _get_manual_bank_transfer(self, cr, uid, context=None):
""" hack: pre-create the manual bank transfer that is also
defined in the data directory, so we have an id in to use
in _auto_init """
model_data = self.pool['ir.model.data']
try:
_, res = model_data.get_object_reference(
cr, uid,
'account_banking_payment_export',
'manual_bank_tranfer')
except ValueError:
payment_mode_type = self.pool['payment.mode.type']
res = payment_mode_type.create(
cr, uid,
{'name': 'Manual Bank Transfer',
'code': 'BANKMAN'})
model_data.create(
cr, uid,
{'module': 'account_banking_payment_export',
'model': 'payment.mode.type',
'name': 'manual_bank_tranfer',
'res_id': res,
'noupdate': False})
return res
def _auto_init(self, cr, context=None):
""" hack: pre-create and initialize the type column so that the
constraint setting will not fail, this is a hack, made necessary
because Odoo tries to set the not-null constraint before
applying default values """
self._field_create(cr, context=context)
column_data = self._select_column_data(cr)
if 'type' not in column_data:
default_type = self._get_manual_bank_transfer(
cr, SUPERUSER_ID, context=context)
if default_type:
cr.execute('ALTER TABLE "{table}" ADD COLUMN "type" INTEGER'.
format(table=self._table))
cr.execute('UPDATE "{table}" SET type=%s'.
format(table=self._table),
(default_type,))
return super(PaymentMode, self)._auto_init(cr, context=context)
def suitable_bank_types(self, cr, uid, payment_mode_id=None, context=None):
""" Reinstates functional code for suitable bank type filtering.
Current code in account_payment is disfunctional.
"""
res = []
payment_mode = self.browse(cr, uid, payment_mode_id, context=context)
if (payment_mode and payment_mode.type and
payment_mode.type.suitable_bank_types):
res = [t.code for t in payment_mode.type.suitable_bank_types]
return res
@api.model
def _default_type(self):
return self.env.ref(
'account_banking_payment_export.'
'manual_bank_tranfer', raise_if_not_found=False)\
or self.env['payment.mode.type']
type = fields.Many2one(
'payment.mode.type', string='Export type', required=True,
help='Select the Export Payment Type for the Payment Mode.',
default=_default_type)
payment_order_type = fields.Selection(
related='type.payment_order_type', readonly=True, string="Order Type",
selection=[('payment', 'Payment'), ('debit', 'Debit')],
help="This field, that comes from export type, determines if this "
"mode can be selected for customers or suppliers.")
active = fields.Boolean(string='Active', default=True)
sale_ok = fields.Boolean(string='Selectable on sale operations',
default=True)
purchase_ok = fields.Boolean(string='Selectable on purchase operations',
default=True)
note = fields.Text(string="Note", translate=True)

View File

@@ -1,63 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright (C) 2009 EduSense BV (<http://www.edusense.nl>).
# (C) 2011 - 2013 Therp BV (<http://therp.nl>).
#
# All other contributions are (C) by their respective contributors
#
# All Rights Reserved
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp import models, fields
class PaymentModeType(models.Model):
_name = 'payment.mode.type'
_description = 'Payment Mode Type'
name = fields.Char('Name', size=64, required=True, help='Payment Type')
code = fields.Char('Code', size=64, required=True,
help='Specify the Code for Payment Type')
suitable_bank_types = fields.Many2many(
comodel_name='res.partner.bank.type',
relation='bank_type_payment_type_rel', column1='pay_type_id',
column2='bank_type_id', string='Suitable bank types', required=True)
ir_model_id = fields.Many2one(
'ir.model', string='Payment wizard',
help='Select the Payment Wizard for payments of this type. Leave '
'empty for manual processing',
domain=[('osv_memory', '=', True)])
payment_order_type = fields.Selection(
[('payment', 'Payment'),
('debit', 'Debit')],
string='Order type', required=True, default='payment',
help="This field determines if this type applies to customers "
"(Debit) or suppliers (Payment)")
active = fields.Boolean(string='Active', default=True)
def _auto_init(self, cr, context=None):
res = super(PaymentModeType, self)._auto_init(cr, context=context)
# migrate xmlid from manual_bank_transfer to avoid dependency on
# account_banking
cr.execute(
"""UPDATE ir_model_data
SET module='account_banking_payment_export'
WHERE module='account_banking' AND
name='manual_bank_tranfer' AND
model='payment.mode.type'""")
return res

View File

@@ -1,2 +0,0 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_payment_mode_type","payment.mode.type","model_payment_mode_type","account_payment.group_account_payment",1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_payment_mode_type payment.mode.type model_payment_mode_type account_payment.group_account_payment 1 1 1 1

View File

@@ -1,27 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!-- restore wizard functionality when making payments
-->
<record id="view_banking_payment_order_form_1" model="ir.ui.view">
<field name="name">account.payment.order.form.banking-1</field>
<field name="inherit_id" ref="account_payment.view_payment_order_form" />
<field name="model">payment.order</field>
<field name="arch" type="xml">
<xpath expr="//button[@string='Make Payments']"
position="attributes">
<attribute name="name">launch_wizard</attribute>
</xpath>
<field name="mode" position="after">
<field name="mode_type" invisible="1"/>
</field>
<xpath expr="//button[@string='Invoices']" position="attributes">
<attribute name="attrs">{
'invisible': [('state', '!=', 'draft')]}</attribute>
</xpath>
</field>
</record>
</data>
</openerp>

View File

@@ -1,18 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="view_payment_manual_form" model="ir.ui.view">
<field name="name">Form for manual payment wizard</field>
<field name="model">payment.manual</field>
<field name="arch" type="xml">
<form string="Manual payment" version="7.0">
<label string="Please execute payment order manually, and click OK when succesfully sent."/>
<footer>
<button name="button_ok" type="object" string="OK" class="oe_highlight"/>
<button special="cancel" string="Cancel" class="oe_link"/>
</footer>
</form>
</field>
</record>
</data>
</openerp>

View File

@@ -1,28 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!--
Add the payment mode type settings
-->
<record id="view_payment_mode_form_inherit" model="ir.ui.view">
<field name="name">payment.mode.form.inherit</field>
<field name="model">payment.mode</field>
<field name="inherit_id" ref="account_payment.view_payment_mode_form"/>
<field name="arch" type="xml">
<field name="company_id" position="after">
<field name="active"/>
<field name="type"/>
<field name="purchase_ok"/>
<field name="sale_ok"/>
</field>
<form position="inside">
<group string="Note" col="4">
<field name="note" nolabel="1"/>
</group>
</form>
</field>
</record>
</data>
</openerp>

View File

@@ -1,66 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="view_payment_mode_tree_inherit" model="ir.ui.view">
<field name="name">payment.mode.tree.inherit</field>
<field name="model">payment.mode</field>
<field name="inherit_id" ref="account_payment.view_payment_mode_tree"/>
<field name="arch" type="xml">
<field name="company_id" position="after">
<field name="type"/>
</field>
</field>
</record>
<!-- basic view for payment mode type -->
<record model="ir.ui.view" id="view_payment_mode_type_form">
<field name="name">view.payment.mode.type.form</field>
<field name="model">payment.mode.type</field>
<field name="arch" type="xml">
<form string="Payment Type" version="7.0">
<group name="main">
<group>
<field name="name"/>
<field name="ir_model_id"/>
</group>
<group>
<field name="code"/>
<field name="active"/>
</group>
</group>
<group string="Suitable bank types">
<field name="suitable_bank_types"
nolabel="1"/>
</group>
</form>
</field>
</record>
<record id="view_payment_mode_type_tree" model="ir.ui.view">
<field name="name">view.payment.mode.type.tree</field>
<field name="model">payment.mode.type</field>
<field name="arch" type="xml">
<tree string="Payment Types">
<field name="name"/>
<field name="code"/>
<field name="active"/>
<field name="ir_model_id"/>
</tree>
</field>
</record>
<record id="action_payment_mode_type" model="ir.actions.act_window">
<field name="name">Payment Export Types</field>
<field name="res_model">payment.mode.type</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="context">{'active_test': False}</field>
</record>
<menuitem id="menu_payment_mode_type"
action="action_payment_mode_type"
parent="account.menu_configuration_misc" />
</data>
</openerp>

View File

@@ -1,3 +0,0 @@
# -*- coding: utf-8 -*-
from . import payment_order_create
from . import bank_payment_manual

View File

@@ -1,42 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright (C) 2009 EduSense BV (<http://www.edusense.nl>).
# (C) 2011 - 2013 Therp BV (<http://therp.nl>).
#
# All other contributions are (C) by their respective contributors
#
# All Rights Reserved
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
"""This module contains a single "wizard" for confirming manual
bank transfers.
"""
from openerp import models, api, workflow
class PaymentManual(models.TransientModel):
_name = 'payment.manual'
_description = 'Send payment order(s) manually'
@api.multi
def button_ok(self):
for order_id in self.env.context.get('active_ids', []):
workflow.trg_validate(self.env.uid, 'payment.order', order_id,
'done', self.env.cr)
return {'type': 'ir.actions.act_window_close'}

View File

@@ -1,18 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="view_payment_manual_form" model="ir.ui.view">
<field name="name">Form for manual payment wizard</field>
<field name="model">payment.manual</field>
<field name="arch" type="xml">
<form string="Manual payment" version="7.0">
<label string="Please execute payment order manually, and click OK when succesfully sent."/>
<footer>
<button name="button_ok" type="object" string="OK" class="oe_highlight"/>
<button special="cancel" string="Cancel" class="oe_link"/>
</footer>
</form>
</field>
</record>
</data>
</openerp>

View File

@@ -1,217 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright (C) 2009 EduSense BV (<http://www.edusense.nl>).
# (C) 2011 - 2013 Therp BV (<http://therp.nl>).
# (C) 2014 - 2015 ACSONE SA/NV (<http://acsone.eu>).
#
# All other contributions are (C) by their respective contributors
#
# All Rights Reserved
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp import models, fields, api, _
class PaymentOrderCreate(models.TransientModel):
_inherit = 'payment.order.create'
populate_results = fields.Boolean(string="Populate results directly",
default=True)
@api.model
def default_get(self, field_list):
res = super(PaymentOrderCreate, self).default_get(field_list)
context = self.env.context
if ('entries' in field_list and context.get('line_ids') and
context.get('populate_results')):
res.update({'entries': context['line_ids']})
return res
@api.multi
def extend_payment_order_domain(self, payment_order, domain):
self.ensure_one()
if payment_order.payment_order_type == 'payment':
# For payables, propose all unreconciled credit lines,
# including partially reconciled ones.
# If they are partially reconciled with a supplier refund,
# the residual will be added to the payment order.
#
# For receivables, propose all unreconciled credit lines.
# (ie customer refunds): they can be refunded with a payment.
# Do not propose partially reconciled credit lines,
# as they are deducted from a customer invoice, and
# will not be refunded with a payment.
domain += [('credit', '>', 0),
'|',
('account_id.type', '=', 'payable'),
'&',
('account_id.type', '=', 'receivable'),
('reconcile_partial_id', '=', False)]
@api.multi
def filter_lines(self, lines):
""" Filter move lines before proposing them for inclusion
in the payment order.
This implementation filters out move lines that are already
included in draft or open payment orders. This prevents the
user to include the same line in two different open payment
orders. When the payment order is sent, it is assumed that
the move will be reconciled soon (or immediately with
account_banking_payment_transfer), so it will not be
proposed anymore for payment.
See also https://github.com/OCA/bank-payment/issues/93.
:param lines: recordset of move lines
:returns: list of move line ids
"""
self.ensure_one()
payment_lines = self.env['payment.line'].\
search([('order_id.state', 'in', ('draft', 'open')),
('move_line_id', 'in', lines.ids)])
to_exclude = set([l.move_line_id.id for l in payment_lines])
return [l.id for l in lines if l.id not in to_exclude]
@api.multi
def search_entries(self):
"""This method taken from account_payment module.
We adapt the domain based on the payment_order_type
"""
line_obj = self.env['account.move.line']
model_data_obj = self.env['ir.model.data']
# -- start account_banking_payment --
payment = self.env['payment.order'].browse(
self.env.context['active_id'])
# Search for move line to pay:
domain = [('move_id.state', '=', 'posted'),
('reconcile_id', '=', False),
('company_id', '=', payment.mode.company_id.id),
'|',
('date_maturity', '<=', self.duedate),
('date_maturity', '=', False)]
self.extend_payment_order_domain(payment, domain)
# -- end account_direct_debit --
lines = line_obj.search(domain)
context = self.env.context.copy()
context['line_ids'] = self.filter_lines(lines)
context['populate_results'] = self.populate_results
if payment.payment_order_type == 'payment':
context['display_credit'] = True
context['display_debit'] = False
else:
context['display_credit'] = False
context['display_debit'] = True
model_datas = model_data_obj.search(
[('model', '=', 'ir.ui.view'),
('name', '=', 'view_create_payment_order_lines')])
return {'name': _('Entry Lines'),
'context': context,
'view_type': 'form',
'view_mode': 'form',
'res_model': 'payment.order.create',
'views': [(model_datas[0].res_id, 'form')],
'type': 'ir.actions.act_window',
'target': 'new',
}
@api.multi
def _prepare_payment_line(self, payment, line):
"""This function is designed to be inherited
The resulting dict is passed to the create method of payment.line"""
self.ensure_one()
_today = fields.Date.context_today(self)
date_to_pay = False # no payment date => immediate payment
if payment.date_prefered == 'due':
# -- account_banking
# date_to_pay = line.date_maturity
date_to_pay = (
line.date_maturity
if line.date_maturity and line.date_maturity > _today
else False)
# -- end account banking
elif payment.date_prefered == 'fixed':
# -- account_banking
# date_to_pay = payment.date_scheduled
date_to_pay = (
payment.date_scheduled
if payment.date_scheduled and payment.date_scheduled > _today
else False)
# -- end account banking
# -- account_banking
state = 'normal'
communication = line.ref or '-'
if line.invoice:
if line.invoice.type in ('in_invoice', 'in_refund'):
if line.invoice.reference_type == 'structured':
state = 'structured'
communication = line.invoice.reference
else:
if line.invoice.reference:
communication = line.invoice.reference
elif line.invoice.supplier_invoice_number:
communication = line.invoice.supplier_invoice_number
else:
# Make sure that the communication includes the
# customer invoice number (in the case of debit order)
communication = line.invoice.number.replace('/', '')
state = 'structured'
amount_currency = line.amount_residual_currency
line2bank = line.line2bank(payment.mode.id)
# -- end account banking
res = {'move_line_id': line.id,
'amount_currency': amount_currency,
'bank_id': line2bank.get(line.id),
'order_id': payment.id,
'partner_id': line.partner_id and line.partner_id.id or False,
# account banking
'communication': communication,
'state': state,
# end account banking
'date': date_to_pay,
'currency': (line.invoice and line.invoice.currency_id.id or
line.journal_id.currency.id or
line.journal_id.company_id.currency_id.id)}
return res
@api.multi
def create_payment(self):
"""This method is a slightly modified version of the existing method on
this model in account_payment.
- pass the payment mode to line2bank()
- allow invoices to create influence on the payment process: not only
'Free' references are allowed, but others as well
- check date_to_pay is not in the past.
"""
if not self.entries:
return {'type': 'ir.actions.act_window_close'}
context = self.env.context
payment_line_obj = self.env['payment.line']
payment = self.env['payment.order'].browse(context['active_id'])
# Populate the current payment with new lines:
for line in self.entries:
vals = self._prepare_payment_line(payment, line)
payment_line_obj.create(vals)
# Force reload of payment order view as a workaround for lp:1155525
return {'name': _('Payment Orders'),
'context': context,
'view_type': 'form',
'view_mode': 'form,tree',
'res_model': 'payment.order',
'res_id': context['active_id'],
'type': 'ir.actions.act_window'}

View File

@@ -1,58 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2013 Akretion (http://www.akretion.com)
@author: Alexis de Lattre <alexis.delattre@akretion.com>
The licence is in the file __openerp__.py
-->
<openerp>
<data>
<record id="view_create_payment_order" model="ir.ui.view">
<field name="name">payment.order.create.form.export</field>
<field name="model">payment.order.create</field>
<field name="inherit_id" ref="account_payment.view_create_payment_order"/>
<field name="arch" type="xml">
<field name="duedate" position="after">
<field name="populate_results"/>
</field>
</field>
</record>
<record id="view_create_payment_order_lines" model="ir.ui.view">
<field name="name">add.context.to.display.maturity.date</field>
<field name="model">payment.order.create</field>
<field name="inherit_id" ref="account_payment.view_create_payment_order_lines"/>
<field name="arch" type="xml">
<field name="entries" position="attributes">
<attribute name="context">{'display_credit': context.get('display_credit', False),'display_debit': context.get('display_debit', False),'journal_type': 'sale', 'tree_view_ref' : 'account_banking_payment_export.payment_order_populate_view_move_line_tree'}</attribute>
<attribute name="nolabel">1</attribute>
</field>
</field>
</record>
<record id="payment_order_populate_view_move_line_tree" model="ir.ui.view">
<field name="name">payment.order.populate.account.move.line.tree</field>
<field name="model">account.move.line</field>
<field name="arch" type="xml">
<tree string="Journal Items">
<field name="journal_id" />
<field name="date"/>
<field name="name"/>
<field name="ref"/>
<field name="partner_id" />
<field name="account_id" />
<field name="journal_entry_ref" string="Journal Entry" />
<field name="debit" sum="Total Debit" invisible="not context.get('display_debit', False)"/>
<field name="credit" sum="Total Credit" invisible="not context.get('display_credit', False)"/>
<field name="amount_residual" />
<field name="date_maturity" invisible="context.get('journal_type', False) not in ['sale','sale_refund','purchase','purchase_refund']" />
<field name="reconcile_ref"/>
<field name="amount_currency" invisible="not context.get('currency',False)"/>
<field name="currency_id" invisible="not context.get('currency',False)" />
</tree>
</field>
</record>
</data>
</openerp>

View File

@@ -1,16 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2015 Akretion (http://www.akretion.com/)
@author: Alexis de Lattre <alexis.delattre@akretion.com>
The licence is in the file __openerp__.py
-->
<openerp>
<data>
<record id="account_payment.act_done" model="workflow.activity">
<field name="action">action_done()</field>
</record>
</data>
</openerp>

View File

@@ -1,78 +0,0 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:alt: License: AGPL-3
Account Banking - Payments Transfer Account
===========================================
Payment order reconciliation infrastructure
This module reconciles invoices as soon as the payment order
is sent, by creating a move to a transfer account (aka suspense account).
When the moves on the suspense account are reconciled (typically through
the bank statement reconciliation, the payment order moves to the done
status).
Installation
============
This module depends on :
* account_banking_payment_export
This module is part of the OCA/bank-payment suite.
Configuration
=============
To configure this module, you need to:
* create a transfer account who allow reconciliation : option "Allow Reconciliation" activated.
* configure transfer account on payment mode. Go to the menu Accounting > Configuration > Miscellaneous > Payment Mode and complete the section "Transfer move settings".
Usage
=====
This module allows to reconcile transfer account and invoice by selecting on a payment order a payment mode with the option "transfer account" activated.
For further information, please visit:
* https://www.odoo.com/forum/help-1
Known issues / Roadmap
======================
* No known issues
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
`here <https://github.com/OCA/bank-payment/issues/new?body=module:%20account_banking_payment_transfer%0Aversion:%208.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Credits
=======
Contributors
------------
* Stéphane Bidoul <stephane.bidoul@acsone.eu>
* Adrien Peiffer <adrien.peiffer@acsone.eu>
* Alexis de Lattre
* Matt Choplin
* Alexandre Fayolle
* Danimar Ribeiro
Maintainer
----------
.. image:: http://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: http://odoo-community.org
This module is maintained by the OCA.
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.
To contribute to this module, please visit http://odoo-community.org.

View File

@@ -1,2 +0,0 @@
from . import model
from .post_install import set_date_sent

View File

@@ -1,53 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright (C) 2009 EduSense BV (<http://www.edusense.nl>).
# (C) 2011 - 2013 Therp BV (<http://therp.nl>).
# (C) 2014 ACSONE SA/NV (<http://acsone.eu>).
#
# All other contributions are (C) by their respective contributors
#
# All Rights Reserved
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
{
'name': 'Account Banking - Payments Transfer Account',
'version': '8.0.0.2.0',
'license': 'AGPL-3',
'author': "Banking addons community,Odoo Community Association (OCA)",
'website': 'https://github.com/OCA/banking',
'category': 'Banking addons',
'post_init_hook': 'set_date_sent',
'depends': [
'account_banking_payment_export',
],
'data': [
'view/payment_mode.xml',
'workflow/account_payment.xml',
'view/account_payment.xml',
],
'test': [
'test/data.yml',
'test/test_payment_method.yml',
'test/test_partial_payment_refunded.yml',
'test/test_partial_payment_transfer.yml',
],
'auto_install': False,
'installable': False,
}

View File

@@ -1,340 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * account_banking_payment
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 7.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-10-25 15:58+0000\n"
"PO-Revision-Date: 2013-10-25 15:58+0000\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_payment
#: model:ir.model,name:account_banking_payment.model_payment_order_create
msgid "payment.order.create"
msgstr ""
#. module: account_banking_payment
#: view:payment.order:0
msgid "{\n"
" 'readonly': [('state', '=', 'normal')]\n"
" }"
msgstr ""
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/account_payment.py:204
#: code:addons/account_banking_payment/model/banking_import_transaction.py:224
#: code:addons/account_banking_payment/model/banking_import_transaction.py:236
#: code:addons/account_banking_payment/model/banking_import_transaction.py:240
#, python-format
msgid "Cannot unreconcile"
msgstr ""
#. module: account_banking_payment
#: field:payment.mode,transfer_journal_id:0
msgid "Transfer journal"
msgstr ""
#. module: account_banking_payment
#: model:ir.model,name:account_banking_payment.model_payment_order
msgid "Payment Order"
msgstr ""
#. module: account_banking_payment
#: field:payment.mode.type,payment_order_type:0
#: field:payment.order,payment_order_type:0
msgid "Payment order type"
msgstr ""
#. module: account_banking_payment
#: help:payment.mode,payment_term_ids:0
msgid "Limit selected invoices to invoices with these payment terms"
msgstr ""
#. module: account_banking_payment
#: model:ir.model,name:account_banking_payment.model_payment_line
msgid "Payment Line"
msgstr ""
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/account_payment.py:251
#, python-format
msgid "No move line provided for line %s"
msgstr ""
#. module: account_banking_payment
#: model:ir.model,name:account_banking_payment.model_payment_mode
msgid "Payment Mode"
msgstr ""
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/payment_line.py:131
#, python-format
msgid "Can not reconcile"
msgstr ""
#. module: account_banking_payment
#: field:payment.line,date_done:0
msgid "Date Confirmed"
msgstr ""
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/banking_import_transaction.py:179
#, python-format
msgid "Cannot reconcile"
msgstr ""
#. module: account_banking_payment
#: field:banking.transaction.wizard,manual_payment_order_id:0
msgid "Match this payment order"
msgstr ""
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/account_payment.py:255
#, python-format
msgid "Move line %s has already been paid/reconciled"
msgstr ""
#. module: account_banking_payment
#: help:payment.mode,transfer_account_id:0
msgid "Pay off lines in sent orders with a move on this account. For debit type modes only. You can only select accounts of type regular that are marked for reconciliation"
msgstr ""
#. module: account_banking_payment
#: view:payment.order:0
msgid "{\n"
" 'invisible':[('state','!=','draft')]\n"
" }"
msgstr ""
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/banking_import_transaction.py:261
#: code:addons/account_banking_payment/model/banking_import_transaction.py:265
#: code:addons/account_banking_payment/model/banking_import_transaction.py:284
#, python-format
msgid "Cannot cancel link with storno"
msgstr ""
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/banking_import_transaction.py:237
#, python-format
msgid "Cannot unreconcile: no payment or direct debit order"
msgstr ""
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/account_payment.py:205
#, python-format
msgid "Cannot unreconcile payment order: Workflow will not allow it."
msgstr ""
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/account_payment.py:241
#, python-format
msgid "Direct debit order"
msgstr ""
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/banking_import_transaction.py:154
#, python-format
msgid "Cannot link with storno"
msgstr ""
#. module: account_banking_payment
#: field:banking.import.transaction,payment_order_id:0
#: field:banking.transaction.wizard,payment_order_id:0
msgid "Payment order to reconcile"
msgstr ""
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/banking_import_transaction.py:241
#, python-format
msgid "Payment orders without transfer move lines cannot be unreconciled this way"
msgstr ""
#. module: account_banking_payment
#: selection:payment.mode.type,payment_order_type:0
#: selection:payment.order,payment_order_type:0
msgid "Payment"
msgstr ""
#. module: account_banking_payment
#: field:payment.mode,payment_term_ids:0
msgid "Payment terms"
msgstr ""
#. module: account_banking_payment
#: view:payment.mode:0
msgid "Transfer move settings"
msgstr ""
#. module: account_banking_payment
#: selection:payment.mode.type,payment_order_type:0
#: selection:payment.order,payment_order_type:0
msgid "Direct debit"
msgstr ""
#. module: account_banking_payment
#: model:ir.model,name:account_banking_payment.model_banking_import_transaction
msgid "Bank import transaction"
msgstr ""
#. module: account_banking_payment
#: view:payment.mode:0
msgid "Optional filter by payment term"
msgstr ""
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/payment_line.py:136
#: code:addons/account_banking_payment/model/payment_line.py:142
#, python-format
msgid "Move line %s has already been reconciled"
msgstr ""
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/account_payment.py:271
#, python-format
msgid "%s for %s"
msgstr ""
#. module: account_banking_payment
#: field:banking.import.transaction,payment_order_ids:0
msgid "Payment orders"
msgstr ""
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/banking_import_transaction.py:155
#: code:addons/account_banking_payment/model/banking_import_transaction.py:262
#, python-format
msgid "No direct debit order item"
msgstr ""
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/banking_import_transaction.py:266
#, python-format
msgid "The direct debit order item is not marked for storno"
msgstr ""
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/banking_import_transaction.py:285
#, python-format
msgid "Line id not found"
msgstr ""
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/banking_transaction_wizard.py:62
#, python-format
msgid "When matching a payment order, the amounts have to match exactly"
msgstr ""
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/account_payment.py:250
#: code:addons/account_banking_payment/model/account_payment.py:254
#: code:addons/account_banking_payment/model/banking_transaction_wizard.py:61
#: code:addons/account_banking_payment/model/payment_line.py:135
#: code:addons/account_banking_payment/model/payment_line.py:141
#, python-format
msgid "Error"
msgstr ""
#. module: account_banking_payment
#: field:payment.mode,transfer_account_id:0
msgid "Transfer account"
msgstr ""
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/banking_import_transaction.py:225
#, python-format
msgid "Cannot unreconcile: this operation is not yet supported for match type 'payment'"
msgstr ""
#. module: account_banking_payment
#: field:banking.transaction.wizard,payment_line_id:0
msgid "Matching payment or storno"
msgstr ""
#. module: account_banking_payment
#: field:payment.order,date_sent:0
msgid "Send date"
msgstr ""
#. module: account_banking_payment
#: model:ir.model,name:account_banking_payment.model_banking_import_line
msgid "Bank import lines"
msgstr ""
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/payment_order_create.py:88
#, python-format
msgid "Entry Lines"
msgstr ""
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/payment_line.py:132
#, python-format
msgid "No move line for line %s"
msgstr ""
#. module: account_banking_payment
#: field:banking.transaction.wizard,manual_payment_line_id:0
msgid "Match this payment line"
msgstr ""
#. module: account_banking_payment
#: field:banking.transaction.wizard,payment_order_ids:0
msgid "Matching payment orders"
msgstr ""
#. module: account_banking_payment
#: field:payment.line,transit_move_line_id:0
msgid "Debit move line"
msgstr ""
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/account_payment.py:240
#: field:banking.import.line,payment_order_id:0
#, python-format
msgid "Payment order"
msgstr ""
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/banking_import_transaction.py:180
#, python-format
msgid "Cannot reconcile: no direct debit order"
msgstr ""
#. module: account_banking_payment
#: help:payment.mode,transfer_journal_id:0
msgid "Journal to write payment entries when confirming a debit order of this mode"
msgstr ""
#. module: account_banking_payment
#: model:ir.model,name:account_banking_payment.model_payment_mode_type
msgid "Payment Mode Type"
msgstr ""
#. module: account_banking_payment
#: field:banking.import.transaction,payment_line_id:0
msgid "Payment line"
msgstr ""
#. module: account_banking_payment
#: model:ir.model,name:account_banking_payment.model_banking_transaction_wizard
msgid "Match transaction"
msgstr ""
#. module: account_banking_payment
#: help:payment.line,transit_move_line_id:0
msgid "Move line through which the debit order pays the invoice"
msgstr ""
#. module: account_banking_payment
#: field:payment.line,msg:0
msgid "Message"
msgstr ""

View File

@@ -1,370 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * account_banking_payment
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 7.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-10-25 15:58+0000\n"
"PO-Revision-Date: 2014-03-26 14:48+0000\n"
"Last-Translator: Erwin van der Ploeg (BAS Solutions) <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-05-31 06:02+0000\n"
"X-Generator: Launchpad (build 17031)\n"
#. module: account_banking_payment
#: model:ir.model,name:account_banking_payment.model_payment_order_create
msgid "payment.order.create"
msgstr "payment.order.create"
#. module: account_banking_payment
#: view:payment.order:0
msgid ""
"{\n"
" 'readonly': [('state', '=', 'normal')]\n"
" }"
msgstr ""
"{\n"
" 'readonly': [('state', '=', 'normal')]\n"
" }"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/account_payment.py:204
#: code:addons/account_banking_payment/model/banking_import_transaction.py:224
#: code:addons/account_banking_payment/model/banking_import_transaction.py:236
#: code:addons/account_banking_payment/model/banking_import_transaction.py:240
#, python-format
msgid "Cannot unreconcile"
msgstr "Kan niet afletteren"
#. module: account_banking_payment
#: field:payment.mode,transfer_journal_id:0
msgid "Transfer journal"
msgstr "Overschrijf dagboek"
#. module: account_banking_payment
#: model:ir.model,name:account_banking_payment.model_payment_order
msgid "Payment Order"
msgstr "Betalingsopdracht"
#. module: account_banking_payment
#: field:payment.mode.type,payment_order_type:0
#: field:payment.order,payment_order_type:0
msgid "Payment order type"
msgstr "Type betaalopdracht"
#. module: account_banking_payment
#: help:payment.mode,payment_term_ids:0
msgid "Limit selected invoices to invoices with these payment terms"
msgstr ""
"Beperk de geselecteerde facturen tot facturen met deze betaalconditie"
#. module: account_banking_payment
#: model:ir.model,name:account_banking_payment.model_payment_line
msgid "Payment Line"
msgstr "Betaalregel"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/account_payment.py:251
#, python-format
msgid "No move line provided for line %s"
msgstr "Geen mutatieregel beschikbaar voor regel %s"
#. module: account_banking_payment
#: model:ir.model,name:account_banking_payment.model_payment_mode
msgid "Payment Mode"
msgstr "Betaalwijze"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/payment_line.py:131
#, python-format
msgid "Can not reconcile"
msgstr "Kan niet afletteren"
#. module: account_banking_payment
#: field:payment.line,date_done:0
msgid "Date Confirmed"
msgstr "Datum bevestigd"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/banking_import_transaction.py:179
#, python-format
msgid "Cannot reconcile"
msgstr "Kan niet afletteren"
#. module: account_banking_payment
#: field:banking.transaction.wizard,manual_payment_order_id:0
msgid "Match this payment order"
msgstr "Match deze betaalopdracht"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/account_payment.py:255
#, python-format
msgid "Move line %s has already been paid/reconciled"
msgstr "Mutatie regel %s is al betaald/afgeletterd"
#. module: account_banking_payment
#: help:payment.mode,transfer_account_id:0
msgid ""
"Pay off lines in sent orders with a move on this account. For debit type "
"modes only. You can only select accounts of type regular that are marked for "
"reconciliation"
msgstr ""
"Betaalregels in verzonden opdrachten met een mutatie op deze rekening. "
"Alleen voor incasso's. U kunt alleen een rekening selecteren van het "
"standaard soort, welke zijn gemarkeerd voor afletteren."
#. module: account_banking_payment
#: view:payment.order:0
msgid ""
"{\n"
" 'invisible':[('state','!=','draft')]\n"
" }"
msgstr ""
"{\n"
" 'invisible':[('state','!=','draft')]\n"
" }"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/banking_import_transaction.py:261
#: code:addons/account_banking_payment/model/banking_import_transaction.py:265
#: code:addons/account_banking_payment/model/banking_import_transaction.py:284
#, python-format
msgid "Cannot cancel link with storno"
msgstr "Niet mogelijk koppeling met storno te annuleren"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/banking_import_transaction.py:237
#, python-format
msgid "Cannot unreconcile: no payment or direct debit order"
msgstr ""
"Alettering ongedaan maken niet mogelijk: Geen betaling of incasso opdracht"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/account_payment.py:205
#, python-format
msgid "Cannot unreconcile payment order: Workflow will not allow it."
msgstr ""
"Alettering ongedaan maken betaalopdracht niet mogelijk: Workflow staat dit "
"niet toe."
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/account_payment.py:241
#, python-format
msgid "Direct debit order"
msgstr "Incasso opdracht"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/banking_import_transaction.py:154
#, python-format
msgid "Cannot link with storno"
msgstr "Kan niet koppelen met een storno"
#. module: account_banking_payment
#: field:banking.import.transaction,payment_order_id:0
#: field:banking.transaction.wizard,payment_order_id:0
msgid "Payment order to reconcile"
msgstr "Betaalopdracht ter aflettering"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/banking_import_transaction.py:241
#, python-format
msgid ""
"Payment orders without transfer move lines cannot be unreconciled this way"
msgstr ""
"Van betaalopdrachten zonder een transactie mutatie, kan het afletteren niet "
"ongedaan worden gemaakt op deze manier."
#. module: account_banking_payment
#: selection:payment.mode.type,payment_order_type:0
#: selection:payment.order,payment_order_type:0
msgid "Payment"
msgstr "Betaling"
#. module: account_banking_payment
#: field:payment.mode,payment_term_ids:0
msgid "Payment terms"
msgstr "Betaalcondities"
#. module: account_banking_payment
#: view:payment.mode:0
msgid "Transfer move settings"
msgstr "Overschrijving instellingen"
#. module: account_banking_payment
#: selection:payment.mode.type,payment_order_type:0
#: selection:payment.order,payment_order_type:0
msgid "Direct debit"
msgstr "Incasso-opdracht"
#. module: account_banking_payment
#: model:ir.model,name:account_banking_payment.model_banking_import_transaction
msgid "Bank import transaction"
msgstr "Geïmporteerde bankmutatie"
#. module: account_banking_payment
#: view:payment.mode:0
msgid "Optional filter by payment term"
msgstr "Optioneel filter op betaalconditie"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/payment_line.py:136
#: code:addons/account_banking_payment/model/payment_line.py:142
#, python-format
msgid "Move line %s has already been reconciled"
msgstr "Mutatieregel %s is al afgeletterd"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/account_payment.py:271
#, python-format
msgid "%s for %s"
msgstr "%s voor %s"
#. module: account_banking_payment
#: field:banking.import.transaction,payment_order_ids:0
msgid "Payment orders"
msgstr "Betaalopdrachten"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/banking_import_transaction.py:155
#: code:addons/account_banking_payment/model/banking_import_transaction.py:262
#, python-format
msgid "No direct debit order item"
msgstr "Geen incasso opdracht item"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/banking_import_transaction.py:266
#, python-format
msgid "The direct debit order item is not marked for storno"
msgstr "Het incasso opdracht item is niet gemarkeerd voor storno"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/banking_import_transaction.py:285
#, python-format
msgid "Line id not found"
msgstr "Regel ID niet gevonden"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/banking_transaction_wizard.py:62
#, python-format
msgid "When matching a payment order, the amounts have to match exactly"
msgstr ""
"Bij het matchen van een betaalopdracht, dienen de bedragen exact overeen te "
"komen."
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/account_payment.py:250
#: code:addons/account_banking_payment/model/account_payment.py:254
#: code:addons/account_banking_payment/model/banking_transaction_wizard.py:61
#: code:addons/account_banking_payment/model/payment_line.py:135
#: code:addons/account_banking_payment/model/payment_line.py:141
#, python-format
msgid "Error"
msgstr "Fout"
#. module: account_banking_payment
#: field:payment.mode,transfer_account_id:0
msgid "Transfer account"
msgstr "Overschrijf rekening"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/banking_import_transaction.py:225
#, python-format
msgid ""
"Cannot unreconcile: this operation is not yet supported for match type "
"'payment'"
msgstr ""
"Afletteren ongedaan maken niet mogelijk: deze bewerking wordt nog niet "
"ondersteund voor het match type 'betaling'"
#. module: account_banking_payment
#: field:banking.transaction.wizard,payment_line_id:0
msgid "Matching payment or storno"
msgstr "Gevonden betaling of storno"
#. module: account_banking_payment
#: field:payment.order,date_sent:0
msgid "Send date"
msgstr "Datum verstuurd"
#. module: account_banking_payment
#: model:ir.model,name:account_banking_payment.model_banking_import_line
msgid "Bank import lines"
msgstr "Bankimportregels"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/payment_order_create.py:88
#, python-format
msgid "Entry Lines"
msgstr "Boekingsregels"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/payment_line.py:132
#, python-format
msgid "No move line for line %s"
msgstr "Geen boekingsregel voor regel %s"
#. module: account_banking_payment
#: field:banking.transaction.wizard,manual_payment_line_id:0
msgid "Match this payment line"
msgstr "Match deze betaalregel"
#. module: account_banking_payment
#: field:banking.transaction.wizard,payment_order_ids:0
msgid "Matching payment orders"
msgstr "Gekoppelde betaalopdrachten"
#. module: account_banking_payment
#: field:payment.line,transit_move_line_id:0
msgid "Debit move line"
msgstr "Debit regel"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/account_payment.py:240
#: field:banking.import.line,payment_order_id:0
#, python-format
msgid "Payment order"
msgstr "Betaalopdracht"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/banking_import_transaction.py:180
#, python-format
msgid "Cannot reconcile: no direct debit order"
msgstr "Alettering niet mogelijk: Geen incasso opdracht"
#. module: account_banking_payment
#: help:payment.mode,transfer_journal_id:0
msgid ""
"Journal to write payment entries when confirming a debit order of this mode"
msgstr ""
"Dagboek voor het boeken van betalingen bij het bevestigen van een incasso in "
"deze mode"
#. module: account_banking_payment
#: model:ir.model,name:account_banking_payment.model_payment_mode_type
msgid "Payment Mode Type"
msgstr "Betaalmode soort"
#. module: account_banking_payment
#: field:banking.import.transaction,payment_line_id:0
msgid "Payment line"
msgstr "Betaling"
#. module: account_banking_payment
#: model:ir.model,name:account_banking_payment.model_banking_transaction_wizard
msgid "Match transaction"
msgstr "Match deze mutatie"
#. module: account_banking_payment
#: help:payment.line,transit_move_line_id:0
msgid "Move line through which the debit order pays the invoice"
msgstr "Mutatie waardoor de incasso opdracht de factuur betaald."
#. module: account_banking_payment
#: field:payment.line,msg:0
msgid "Message"
msgstr "Bericht"

View File

@@ -1,368 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * account_banking_payment
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 7.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-10-25 15:58+0000\n"
"PO-Revision-Date: 2014-03-26 14:48+0000\n"
"Last-Translator: Danimar Ribeiro<danimaribeiro@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-05-31 06:02+0000\n"
"X-Generator: Launchpad (build 17031)\n"
#. module: account_banking_payment
#: model:ir.model,name:account_banking_payment.model_payment_order_create
msgid "payment.order.create"
msgstr "payment.order.create"
#. module: account_banking_payment
#: view:payment.order:0
msgid ""
"{\n"
" 'readonly': [('state', '=', 'normal')]\n"
" }"
msgstr ""
"{\n"
" 'readonly': [('state', '=', 'normal')]\n"
" }"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/account_payment.py:204
#: code:addons/account_banking_payment/model/banking_import_transaction.py:224
#: code:addons/account_banking_payment/model/banking_import_transaction.py:236
#: code:addons/account_banking_payment/model/banking_import_transaction.py:240
#, python-format
msgid "Cannot unreconcile"
msgstr "Não é possível desfazer a reconciliação"
#. module: account_banking_payment
#: field:payment.mode,transfer_journal_id:0
msgid "Transfer journal"
msgstr "Transferir Diário"
#. module: account_banking_payment
#: model:ir.model,name:account_banking_payment.model_payment_order
msgid "Payment Order"
msgstr "Ordem de Pagamento"
#. module: account_banking_payment
#: field:payment.mode.type,payment_order_type:0
#: field:payment.order,payment_order_type:0
msgid "Payment order type"
msgstr "Tipo de Ordem de Pagamento"
#. module: account_banking_payment
#: help:payment.mode,payment_term_ids:0
msgid "Limit selected invoices to invoices with these payment terms"
msgstr "Limitar as faturas para serem pagas com estas condições de pagamento"
#. module: account_banking_payment
#: model:ir.model,name:account_banking_payment.model_payment_line
msgid "Payment Line"
msgstr "Linha de Pagamento"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/account_payment.py:251
#, python-format
msgid "No move line provided for line %s"
msgstr "Nenhuma movimentação fornecida para a linha %s"
#. module: account_banking_payment
#: model:ir.model,name:account_banking_payment.model_payment_mode
msgid "Payment Mode"
msgstr "Modo de Pagamento"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/payment_line.py:131
#, python-format
msgid "Can not reconcile"
msgstr "Não é possível reconciliar"
#. module: account_banking_payment
#: field:payment.line,date_done:0
msgid "Date Confirmed"
msgstr "Data Confirmada"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/banking_import_transaction.py:179
#, python-format
msgid "Cannot reconcile"
msgstr "Não é possível reconciliar"
#. module: account_banking_payment
#: field:banking.transaction.wizard,manual_payment_order_id:0
msgid "Match this payment order"
msgstr "Combinar esta Ordem de Pagamento"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/account_payment.py:255
#, python-format
msgid "Move line %s has already been paid/reconciled"
msgstr "Esta linha de movimentação %s já foi paga/reconciliada"
#. module: account_banking_payment
#: help:payment.mode,transfer_account_id:0
msgid ""
"Pay off lines in sent orders with a move on this account. For debit type "
"modes only. You can only select accounts of type regular that are marked for "
"reconciliation"
msgstr ""
"Pagar os registros nas ordens enviadas com uma movimentação nesta conta. Para modos "
"do tipo débito apenas. Você pode selecionar apenas contas do tipo regular que estão marcadas "
"para reconciliação."
#. module: account_banking_payment
#: view:payment.order:0
msgid ""
"{\n"
" 'invisible':[('state','!=','draft')]\n"
" }"
msgstr ""
"{\n"
" 'invisible':[('state','!=','draft')]\n"
" }"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/banking_import_transaction.py:261
#: code:addons/account_banking_payment/model/banking_import_transaction.py:265
#: code:addons/account_banking_payment/model/banking_import_transaction.py:284
#, python-format
msgid "Cannot cancel link with storno"
msgstr "Não é possível cancelar ligação com estorno"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/banking_import_transaction.py:237
#, python-format
msgid "Cannot unreconcile: no payment or direct debit order"
msgstr ""
"Não é possível desconciliar: sem pagamento ou ordem de débito direto"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/account_payment.py:205
#, python-format
msgid "Cannot unreconcile payment order: Workflow will not allow it."
msgstr ""
"Não pode desconciliar uma ordem de pagamento: o workflow não irá permitir."
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/account_payment.py:241
#, python-format
msgid "Direct debit order"
msgstr "Ordem de Débito Direto"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/banking_import_transaction.py:154
#, python-format
msgid "Cannot link with storno"
msgstr "Não é possível ligar com um estorno"
#. module: account_banking_payment
#: field:banking.import.transaction,payment_order_id:0
#: field:banking.transaction.wizard,payment_order_id:0
msgid "Payment order to reconcile"
msgstr "Ordem de pagamento para reconciliar"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/banking_import_transaction.py:241
#, python-format
msgid ""
"Payment orders without transfer move lines cannot be unreconciled this way"
msgstr ""
"Ordens de pagamento sem movimentações de transferência não podem ser desconciliadas desta maneira."
#. module: account_banking_payment
#: selection:payment.mode.type,payment_order_type:0
#: selection:payment.order,payment_order_type:0
msgid "Payment"
msgstr "Pagamento"
#. module: account_banking_payment
#: field:payment.mode,payment_term_ids:0
msgid "Payment terms"
msgstr "Condições de Pagamento"
#. module: account_banking_payment
#: view:payment.mode:0
msgid "Transfer move settings"
msgstr "Definições de transferência e movimentações"
#. module: account_banking_payment
#: selection:payment.mode.type,payment_order_type:0
#: selection:payment.order,payment_order_type:0
msgid "Direct debit"
msgstr "Débito Direto"
#. module: account_banking_payment
#: model:ir.model,name:account_banking_payment.model_banking_import_transaction
msgid "Bank import transaction"
msgstr "Transação de importação bancária"
#. module: account_banking_payment
#: view:payment.mode:0
msgid "Optional filter by payment term"
msgstr "Condições de pagamento permitidas"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/payment_line.py:136
#: code:addons/account_banking_payment/model/payment_line.py:142
#, python-format
msgid "Move line %s has already been reconciled"
msgstr "Esta movimentação %s já foi reconciliada"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/account_payment.py:271
#, python-format
msgid "%s for %s"
msgstr "%s para %s"
#. module: account_banking_payment
#: field:banking.import.transaction,payment_order_ids:0
msgid "Payment orders"
msgstr "Ordens de Pagamento"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/banking_import_transaction.py:155
#: code:addons/account_banking_payment/model/banking_import_transaction.py:262
#, python-format
msgid "No direct debit order item"
msgstr "Nenhuma Ordem de Débito Direto"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/banking_import_transaction.py:266
#, python-format
msgid "The direct debit order item is not marked for storno"
msgstr "A Ordem de Débito Direto não está marcada para estorno"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/banking_import_transaction.py:285
#, python-format
msgid "Line id not found"
msgstr "Id da linha não encontrado"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/banking_transaction_wizard.py:62
#, python-format
msgid "When matching a payment order, the amounts have to match exactly"
msgstr ""
"Quando combinando uma ordem de pagamento, os valores devem corresponder exatamente "
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/account_payment.py:250
#: code:addons/account_banking_payment/model/account_payment.py:254
#: code:addons/account_banking_payment/model/banking_transaction_wizard.py:61
#: code:addons/account_banking_payment/model/payment_line.py:135
#: code:addons/account_banking_payment/model/payment_line.py:141
#, python-format
msgid "Error"
msgstr "Erro"
#. module: account_banking_payment
#: field:payment.mode,transfer_account_id:0
msgid "Transfer account"
msgstr "Conta de Transferência"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/banking_import_transaction.py:225
#, python-format
msgid ""
"Cannot unreconcile: this operation is not yet supported for match type "
"'payment'"
msgstr ""
"Não pode desfazer reconciliação: esta operação ainda não é suportada para este tipo: "
"'pagamento'"
#. module: account_banking_payment
#: field:banking.transaction.wizard,payment_line_id:0
msgid "Matching payment or storno"
msgstr "Combinando pagamentos ou estornos"
#. module: account_banking_payment
#: field:payment.order,date_sent:0
msgid "Send date"
msgstr "Data de envio"
#. module: account_banking_payment
#: model:ir.model,name:account_banking_payment.model_banking_import_line
msgid "Bank import lines"
msgstr "Linhas de importação bancária"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/payment_order_create.py:88
#, python-format
msgid "Entry Lines"
msgstr "Linhas de entrada"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/payment_line.py:132
#, python-format
msgid "No move line for line %s"
msgstr "Sem movimentações para a linha %s"
#. module: account_banking_payment
#: field:banking.transaction.wizard,manual_payment_line_id:0
msgid "Match this payment line"
msgstr "Combine esta linha de pagamento"
#. module: account_banking_payment
#: field:banking.transaction.wizard,payment_order_ids:0
msgid "Matching payment orders"
msgstr "Combinando ordens de pagamento"
#. module: account_banking_payment
#: field:payment.line,transit_move_line_id:0
msgid "Debit move line"
msgstr "Movimentação de Débito"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/account_payment.py:240
#: field:banking.import.line,payment_order_id:0
#, python-format
msgid "Payment order"
msgstr "Ordem de Pagamento"
#. module: account_banking_payment
#: code:addons/account_banking_payment/model/banking_import_transaction.py:180
#, python-format
msgid "Cannot reconcile: no direct debit order"
msgstr "Não é possível reconciliar: nenhuma Ordem de Débito Direto"
#. module: account_banking_payment
#: help:payment.mode,transfer_journal_id:0
msgid ""
"Journal to write payment entries when confirming a debit order of this mode"
msgstr ""
"Entrada de diário para salvar os pagamentos quando confirmar a ordem de pagamento deste modo"
"deze mode"
#. module: account_banking_payment
#: model:ir.model,name:account_banking_payment.model_payment_mode_type
msgid "Payment Mode Type"
msgstr "Tipo do Modo de Pagamento"
#. module: account_banking_payment
#: field:banking.import.transaction,payment_line_id:0
msgid "Payment line"
msgstr "Linha de Pagamento"
#. module: account_banking_payment
#: model:ir.model,name:account_banking_payment.model_banking_transaction_wizard
msgid "Match transaction"
msgstr "Combine as transações"
#. module: account_banking_payment
#: help:payment.line,transit_move_line_id:0
msgid "Move line through which the debit order pays the invoice"
msgstr "Movimentação pela qual a ordem de débito paga a fatura."
#. module: account_banking_payment
#: field:payment.line,msg:0
msgid "Message"
msgstr "Mensagem"

View File

@@ -1,4 +0,0 @@
from . import account_payment
from . import payment_line
from . import payment_mode
from . import account_move_reconcile

Some files were not shown because too many files have changed in this diff Show More