├── setup ├── _metapackage │ ├── VERSION.txt │ └── setup.py ├── account_payment_mode │ ├── odoo │ │ └── addons │ │ │ └── account_payment_mode │ └── setup.py ├── account_payment_sale │ ├── odoo │ │ └── addons │ │ │ └── account_payment_sale │ └── setup.py ├── account_payment_order │ ├── odoo │ │ └── addons │ │ │ └── account_payment_order │ └── setup.py ├── account_banking_mandate │ ├── odoo │ │ └── addons │ │ │ └── account_banking_mandate │ └── setup.py ├── account_payment_partner │ ├── odoo │ │ └── addons │ │ │ └── account_payment_partner │ └── setup.py ├── account_payment_purchase │ ├── odoo │ │ └── addons │ │ │ └── account_payment_purchase │ └── setup.py ├── account_banking_pain_base │ ├── odoo │ │ └── addons │ │ │ └── account_banking_pain_base │ └── setup.py ├── README ├── account_banking_mandate_sale │ ├── odoo │ │ └── addons │ │ │ └── account_banking_mandate_sale │ └── setup.py ├── account_payment_order_return │ ├── odoo │ │ └── addons │ │ │ └── account_payment_order_return │ └── setup.py ├── account_payment_purchase_stock │ ├── odoo │ │ └── addons │ │ │ └── account_payment_purchase_stock │ └── setup.py ├── account_banking_sepa_direct_debit │ ├── odoo │ │ └── addons │ │ │ └── account_banking_sepa_direct_debit │ └── setup.py ├── account_invoice_select_for_payment │ ├── odoo │ │ └── addons │ │ │ └── account_invoice_select_for_payment │ └── setup.py ├── account_banking_sepa_credit_transfer │ ├── odoo │ │ └── addons │ │ │ └── account_banking_sepa_credit_transfer │ └── setup.py └── .setuptools-odoo-make-default-ignore ├── account_payment_mode ├── __init__.py ├── models │ ├── __init__.py │ └── account_payment_method.py ├── readme │ ├── USAGE.rst │ ├── CONFIGURE.rst │ ├── CONTRIBUTORS.rst │ └── DESCRIPTION.rst ├── tests │ └── __init__.py ├── static │ └── description │ │ └── icon.png ├── security │ ├── account_payment_mode.xml │ └── ir.model.access.csv ├── views │ └── account_journal.xml └── __manifest__.py ├── account_banking_mandate ├── __init__.py ├── tests │ └── __init__.py ├── readme │ ├── USAGE.rst │ ├── INSTALL.rst │ ├── CONTRIBUTORS.rst │ └── DESCRIPTION.rst ├── static │ └── description │ │ └── icon.png ├── models │ ├── __init__.py │ ├── account_payment_method.py │ ├── bank_payment_line.py │ ├── account_move_line.py │ └── res_partner_bank.py ├── security │ ├── ir.model.access.csv │ └── mandate_security.xml ├── data │ └── mandate_reference_sequence.xml ├── views │ ├── account_payment_method.xml │ ├── account_move_view.xml │ ├── res_partner.xml │ ├── res_partner_bank_view.xml │ ├── bank_payment_line_view.xml │ └── account_payment_line.xml ├── migrations │ └── 14.0.1.0.0 │ │ └── post-migrate.py └── __manifest__.py ├── account_banking_mandate_sale ├── oca_dependencies.txt ├── models │ ├── __init__.py │ └── sale_order.py ├── readme │ ├── CONFIGURATION.rst │ ├── DESCRIPTION.rst │ ├── CONTRIBUTORS.rst │ └── USAGE.rst ├── __init__.py ├── wizard │ ├── __init__.py │ └── sale_make_invoice_advance.py ├── static │ └── description │ │ └── icon.png ├── __manifest__.py ├── views │ └── sale_order.xml └── i18n │ ├── ca_ES.po │ └── nl_NL.po ├── account_payment_sale ├── models │ ├── __init__.py │ └── sale_order.py ├── wizard │ ├── __init__.py │ └── sale_make_invoice_advance.py ├── tests │ └── __init__.py ├── __init__.py ├── static │ └── description │ │ └── icon.png ├── readme │ ├── DESCRIPTION.rst │ ├── CONTRIBUTORS.rst │ └── USAGE.rst ├── views │ ├── sale_report_templates.xml │ └── sale_order_view.xml ├── __manifest__.py └── i18n │ ├── zh_CN.po │ ├── da_DK.po │ ├── es_AR.po │ ├── nl_NL.po │ ├── de.po │ ├── sl.po │ ├── nl.po │ ├── es.po │ ├── fr.po │ ├── pt_BR.po │ └── account_payment_sale.pot ├── account_invoice_select_for_payment ├── __init__.py ├── models │ ├── __init__.py │ ├── account_move.py │ └── account_payment.py ├── readme │ ├── CREDITS.rst │ ├── CONTRIBUTORS.rst │ ├── DESCRIPTION.rst │ └── USAGE.rst ├── static │ └── description │ │ └── icon.png ├── __manifest__.py └── views │ └── account_move.xml ├── account_banking_sepa_credit_transfer ├── tests │ └── __init__.py ├── __init__.py ├── models │ ├── __init__.py │ ├── account_payment_line.py │ └── account_payment_method.py ├── readme │ ├── INSTALL.rst │ ├── USAGE.rst │ ├── CONFIGURE.rst │ ├── CONTRIBUTORS.rst │ └── DESCRIPTION.rst ├── static │ └── description │ │ └── icon.png ├── data │ └── account_payment_method.xml ├── post_install.py ├── __manifest__.py └── demo │ └── sepa_credit_transfer_demo.xml ├── account_payment_order ├── report │ ├── __init__.py │ ├── print_account_payment_order.xml │ └── account_payment_order.py ├── __init__.py ├── readme │ ├── DESCRIPTION.rst │ ├── CONFIGURE.rst │ ├── INSTALL.rst │ ├── USAGE.rst │ └── CONTRIBUTORS.rst ├── wizard │ ├── __init__.py │ ├── account_invoice_payment_line_multi.py │ └── account_invoice_payment_line_multi_view.xml ├── static │ └── description │ │ └── icon.png ├── tests │ ├── __init__.py │ └── test_bank.py ├── models │ ├── __init__.py │ ├── account_payment_method.py │ ├── res_bank.py │ ├── account_journal.py │ └── account_payment.py ├── migrations │ └── 14.0.1.3.0 │ │ └── pre-migration.py ├── views │ ├── account_payment_method.xml │ ├── ir_attachment.xml │ └── account_move_line.xml ├── security │ ├── ir.model.access.csv │ └── payment_security.xml ├── data │ └── payment_seq.xml ├── demo │ └── payment_demo.xml └── __manifest__.py ├── account_payment_partner ├── reports │ ├── __init__.py │ ├── account_invoice_report.py │ └── account_invoice_report_view.xml ├── tests │ └── __init__.py ├── models │ ├── __init__.py │ ├── account_move_line.py │ └── res_partner.py ├── __init__.py ├── static │ └── description │ │ └── icon.png ├── readme │ ├── HISTORY.rst │ ├── USAGE.rst │ ├── CONTRIBUTORS.rst │ └── DESCRIPTION.rst ├── views │ ├── res_partner_view.xml │ ├── account_move_line.xml │ ├── account_payment_mode.xml │ └── report_invoice.xml ├── __manifest__.py └── demo │ └── partner_demo.xml ├── account_banking_sepa_direct_debit ├── wizards │ ├── __init__.py │ └── res_config_settings.py ├── tests │ ├── __init__.py │ └── test_mandate.py ├── __init__.py ├── static │ ├── description │ │ └── icon.png │ └── src │ │ └── css │ │ └── report.css ├── readme │ ├── INSTALL.rst │ ├── USAGE.rst │ ├── CONTRIBUTORS.rst │ ├── DESCRIPTION.rst │ └── CONFIGURE.rst ├── models │ ├── __init__.py │ ├── bank_payment_line.py │ ├── res_company.py │ ├── account_payment_method.py │ └── account_payment_mode.py ├── data │ ├── account_payment_method.xml │ ├── report_paperformat.xml │ └── mandate_expire_cron.xml ├── post_install.py ├── views │ ├── account_payment_mode.xml │ └── res_config_settings.xml ├── __manifest__.py └── reports │ └── sepa_direct_debit_mandate.xml ├── account_banking_pain_base ├── readme │ ├── USAGE.rst │ ├── INSTALL.rst │ ├── DESCRIPTION.rst │ ├── CONTRIBUTORS.rst │ └── CONFIGURE.rst ├── static │ └── description │ │ └── icon.png ├── __init__.py ├── models │ ├── __init__.py │ ├── bank_payment_line.py │ ├── res_config_settings.py │ ├── res_bank.py │ ├── account_payment_method.py │ └── account_payment_mode.py ├── security │ └── security.xml ├── post_install.py ├── __manifest__.py └── views │ ├── account_payment_mode.xml │ ├── account_payment_method.xml │ ├── bank_payment_line_view.xml │ ├── account_payment_line.xml │ └── account_payment_order.xml ├── requirements.txt ├── account_payment_purchase_stock ├── readme │ ├── USAGE.rst │ ├── DESCRIPTION.rst │ ├── INSTALL.rst │ └── CONTRIBUTORS.rst ├── __init__.py ├── models │ ├── __init__.py │ └── stock_rule.py ├── tests │ └── __init__.py ├── static │ └── description │ │ └── icon.png ├── __manifest__.py └── i18n │ ├── account_payment_purchase_stock.pot │ ├── fr_FR.po │ ├── es_AR.po │ └── it.po ├── account_payment_order_return ├── __init__.py ├── readme │ ├── INSTALL.rst │ ├── CONTRIBUTORS.rst │ ├── DESCRIPTION.rst │ └── USAGE.rst ├── tests │ └── __init__.py ├── wizards │ ├── __init__.py │ ├── account_payment_line_create_view.xml │ └── account_payment_line_create.py ├── static │ └── description │ │ └── icon.png ├── __manifest__.py └── i18n │ ├── ca_ES.po │ ├── es.po │ ├── de.po │ ├── ca.po │ ├── fr.po │ ├── account_payment_order_return.pot │ ├── fr_FR.po │ └── es_AR.po ├── account_payment_purchase ├── __init__.py ├── tests │ └── __init__.py ├── models │ ├── __init__.py │ ├── account_invoice.py │ └── purchase_order.py ├── static │ └── description │ │ └── icon.png ├── readme │ ├── INSTALL.rst │ ├── CONTRIBUTORS.rst │ ├── USAGE.rst │ └── DESCRIPTION.rst ├── __manifest__.py └── views │ └── purchase_order_view.xml ├── oca_dependencies.txt ├── .prettierrc.yml ├── .flake8 ├── .isort.cfg ├── .copier-answers.yml ├── .editorconfig ├── .github └── workflows │ └── pre-commit.yml ├── .travis.yml ├── .gitignore └── .pylintrc-mandatory /setup/_metapackage/VERSION.txt: -------------------------------------------------------------------------------- 1 | 14.0.20211103.0 -------------------------------------------------------------------------------- /account_payment_mode/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /account_banking_mandate/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /account_banking_mandate_sale/oca_dependencies.txt: -------------------------------------------------------------------------------- 1 | sale-workflow 2 | -------------------------------------------------------------------------------- /account_payment_sale/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import sale_order 2 | -------------------------------------------------------------------------------- /account_invoice_select_for_payment/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /account_banking_mandate_sale/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import sale_order 2 | -------------------------------------------------------------------------------- /account_banking_sepa_credit_transfer/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_sct 2 | -------------------------------------------------------------------------------- /account_payment_order/report/__init__.py: -------------------------------------------------------------------------------- 1 | from . import account_payment_order 2 | -------------------------------------------------------------------------------- /account_payment_sale/wizard/__init__.py: -------------------------------------------------------------------------------- 1 | from . import sale_make_invoice_advance 2 | -------------------------------------------------------------------------------- /account_banking_mandate_sale/readme/CONFIGURATION.rst: -------------------------------------------------------------------------------- 1 | There is nothing to configure. 2 | -------------------------------------------------------------------------------- /account_payment_partner/reports/__init__.py: -------------------------------------------------------------------------------- 1 | from . import account_invoice_report 2 | -------------------------------------------------------------------------------- /account_payment_partner/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_account_payment_partner 2 | -------------------------------------------------------------------------------- /account_banking_mandate_sale/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | from . import wizard 3 | -------------------------------------------------------------------------------- /account_banking_mandate_sale/wizard/__init__.py: -------------------------------------------------------------------------------- 1 | from . import sale_make_invoice_advance 2 | -------------------------------------------------------------------------------- /account_banking_sepa_direct_debit/wizards/__init__.py: -------------------------------------------------------------------------------- 1 | from . import res_config_settings 2 | -------------------------------------------------------------------------------- /setup/account_payment_mode/odoo/addons/account_payment_mode: -------------------------------------------------------------------------------- 1 | ../../../../account_payment_mode -------------------------------------------------------------------------------- /setup/account_payment_sale/odoo/addons/account_payment_sale: -------------------------------------------------------------------------------- 1 | ../../../../account_payment_sale -------------------------------------------------------------------------------- /account_banking_pain_base/readme/USAGE.rst: -------------------------------------------------------------------------------- 1 | See 'readme' files of the OCA/bank-payment suite. 2 | -------------------------------------------------------------------------------- /account_payment_sale/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import common 2 | from . import test_sale_order 3 | -------------------------------------------------------------------------------- /setup/account_payment_order/odoo/addons/account_payment_order: -------------------------------------------------------------------------------- 1 | ../../../../account_payment_order -------------------------------------------------------------------------------- /setup/account_banking_mandate/odoo/addons/account_banking_mandate: -------------------------------------------------------------------------------- 1 | ../../../../account_banking_mandate -------------------------------------------------------------------------------- /setup/account_payment_partner/odoo/addons/account_payment_partner: -------------------------------------------------------------------------------- 1 | ../../../../account_payment_partner -------------------------------------------------------------------------------- /setup/account_payment_purchase/odoo/addons/account_payment_purchase: -------------------------------------------------------------------------------- 1 | ../../../../account_payment_purchase -------------------------------------------------------------------------------- /account_payment_order/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | from . import report 3 | from . import wizard 4 | -------------------------------------------------------------------------------- /account_payment_sale/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | from . import wizard 3 | from . import tests 4 | -------------------------------------------------------------------------------- /setup/account_banking_pain_base/odoo/addons/account_banking_pain_base: -------------------------------------------------------------------------------- 1 | ../../../../account_banking_pain_base -------------------------------------------------------------------------------- /account_banking_mandate/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_mandate 2 | from . import test_invoice_mandate 3 | -------------------------------------------------------------------------------- /account_banking_sepa_direct_debit/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_sdd 2 | from . import test_mandate 3 | -------------------------------------------------------------------------------- /account_payment_order/readme/DESCRIPTION.rst: -------------------------------------------------------------------------------- 1 | This module adds support for payment orders and debit orders. 2 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | # generated from manifests external_dependencies 2 | lxml 3 | python-stdnum 4 | unidecode 5 | -------------------------------------------------------------------------------- /account_invoice_select_for_payment/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import account_move 2 | from . import account_payment 3 | -------------------------------------------------------------------------------- /setup/README: -------------------------------------------------------------------------------- 1 | To learn more about this directory, please visit 2 | https://pypi.python.org/pypi/setuptools-odoo 3 | -------------------------------------------------------------------------------- /setup/account_banking_mandate_sale/odoo/addons/account_banking_mandate_sale: -------------------------------------------------------------------------------- 1 | ../../../../account_banking_mandate_sale -------------------------------------------------------------------------------- /setup/account_payment_order_return/odoo/addons/account_payment_order_return: -------------------------------------------------------------------------------- 1 | ../../../../account_payment_order_return -------------------------------------------------------------------------------- /account_banking_mandate/readme/USAGE.rst: -------------------------------------------------------------------------------- 1 | To use this module, see menu "Invoicing/Accounting > Customers > Debit Orders" 2 | -------------------------------------------------------------------------------- /account_banking_mandate_sale/readme/DESCRIPTION.rst: -------------------------------------------------------------------------------- 1 | This modules adds the field *Direct Debit Mandate* on sale orders. 2 | -------------------------------------------------------------------------------- /account_payment_mode/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import account_journal, account_payment_method, account_payment_mode 2 | -------------------------------------------------------------------------------- /account_payment_mode/readme/USAGE.rst: -------------------------------------------------------------------------------- 1 | This module doesn't add any feature, but it is used by several other modules. 2 | -------------------------------------------------------------------------------- /setup/account_payment_purchase_stock/odoo/addons/account_payment_purchase_stock: -------------------------------------------------------------------------------- 1 | ../../../../account_payment_purchase_stock -------------------------------------------------------------------------------- /account_banking_sepa_credit_transfer/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | from .post_install import update_bank_journals 3 | -------------------------------------------------------------------------------- /account_payment_partner/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import account_move, account_move_line, account_payment_mode, res_partner 2 | -------------------------------------------------------------------------------- /account_payment_purchase_stock/readme/USAGE.rst: -------------------------------------------------------------------------------- 1 | This module doesn't add any feature, but it is used by several other modules. 2 | -------------------------------------------------------------------------------- /setup/account_banking_sepa_direct_debit/odoo/addons/account_banking_sepa_direct_debit: -------------------------------------------------------------------------------- 1 | ../../../../account_banking_sepa_direct_debit -------------------------------------------------------------------------------- /setup/account_invoice_select_for_payment/odoo/addons/account_invoice_select_for_payment: -------------------------------------------------------------------------------- 1 | ../../../../account_invoice_select_for_payment -------------------------------------------------------------------------------- /account_payment_order/wizard/__init__.py: -------------------------------------------------------------------------------- 1 | from . import account_payment_line_create 2 | from . import account_invoice_payment_line_multi 3 | -------------------------------------------------------------------------------- /account_payment_order_return/__init__.py: -------------------------------------------------------------------------------- 1 | # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html 2 | 3 | from . import wizards 4 | -------------------------------------------------------------------------------- /account_payment_purchase/__init__.py: -------------------------------------------------------------------------------- 1 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). 2 | 3 | from . import models 4 | -------------------------------------------------------------------------------- /account_payment_purchase_stock/readme/DESCRIPTION.rst: -------------------------------------------------------------------------------- 1 | This module combines the *account_payment_purchase* module with *purchase_stock*. 2 | -------------------------------------------------------------------------------- /oca_dependencies.txt: -------------------------------------------------------------------------------- 1 | # See https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#oca_dependencies-txt 2 | -------------------------------------------------------------------------------- /setup/account_banking_sepa_credit_transfer/odoo/addons/account_banking_sepa_credit_transfer: -------------------------------------------------------------------------------- 1 | ../../../../account_banking_sepa_credit_transfer -------------------------------------------------------------------------------- /account_banking_sepa_direct_debit/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | from . import wizards 3 | from .post_install import update_bank_journals 4 | -------------------------------------------------------------------------------- /account_invoice_select_for_payment/readme/CREDITS.rst: -------------------------------------------------------------------------------- 1 | The development of this module has been financially supported by: 2 | 3 | * Camptocamp 4 | -------------------------------------------------------------------------------- /account_payment_purchase_stock/__init__.py: -------------------------------------------------------------------------------- 1 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). 2 | 3 | from . import models 4 | -------------------------------------------------------------------------------- /setup/.setuptools-odoo-make-default-ignore: -------------------------------------------------------------------------------- 1 | # addons listed in this file are ignored by 2 | # setuptools-odoo-make-default (one addon per line) 3 | -------------------------------------------------------------------------------- /account_banking_mandate/readme/INSTALL.rst: -------------------------------------------------------------------------------- 1 | This module depends on : 2 | * account_payment 3 | 4 | This module is part of the OCA/bank-payment suite. 5 | -------------------------------------------------------------------------------- /account_banking_mandate_sale/readme/CONTRIBUTORS.rst: -------------------------------------------------------------------------------- 1 | * Alexis de Lattre 2 | * Thomas Binsfeld 3 | -------------------------------------------------------------------------------- /account_payment_mode/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html). 2 | from . import test_account_payment_mode 3 | -------------------------------------------------------------------------------- /account_payment_order_return/readme/INSTALL.rst: -------------------------------------------------------------------------------- 1 | This module is auto-installed when you install *account_payment_return* and 2 | *account_payment_order*. 3 | -------------------------------------------------------------------------------- /account_payment_purchase_stock/models/__init__.py: -------------------------------------------------------------------------------- 1 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). 2 | 3 | from . import stock_rule 4 | -------------------------------------------------------------------------------- /account_invoice_select_for_payment/readme/CONTRIBUTORS.rst: -------------------------------------------------------------------------------- 1 | * Alexandre Fayolle 2 | * Hiep Nguyen Hoang 3 | -------------------------------------------------------------------------------- /account_payment_mode/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vertelab/odoo-oca-bank-payment/14.0/account_payment_mode/static/description/icon.png -------------------------------------------------------------------------------- /account_payment_sale/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vertelab/odoo-oca-bank-payment/14.0/account_payment_sale/static/description/icon.png -------------------------------------------------------------------------------- /setup/account_banking_mandate/setup.py: -------------------------------------------------------------------------------- 1 | import setuptools 2 | 3 | setuptools.setup( 4 | setup_requires=['setuptools-odoo'], 5 | odoo_addon=True, 6 | ) 7 | -------------------------------------------------------------------------------- /setup/account_payment_mode/setup.py: -------------------------------------------------------------------------------- 1 | import setuptools 2 | 3 | setuptools.setup( 4 | setup_requires=['setuptools-odoo'], 5 | odoo_addon=True, 6 | ) 7 | -------------------------------------------------------------------------------- /setup/account_payment_order/setup.py: -------------------------------------------------------------------------------- 1 | import setuptools 2 | 3 | setuptools.setup( 4 | setup_requires=['setuptools-odoo'], 5 | odoo_addon=True, 6 | ) 7 | -------------------------------------------------------------------------------- /setup/account_payment_partner/setup.py: -------------------------------------------------------------------------------- 1 | import setuptools 2 | 3 | setuptools.setup( 4 | setup_requires=['setuptools-odoo'], 5 | odoo_addon=True, 6 | ) 7 | -------------------------------------------------------------------------------- /setup/account_payment_purchase/setup.py: -------------------------------------------------------------------------------- 1 | import setuptools 2 | 3 | setuptools.setup( 4 | setup_requires=['setuptools-odoo'], 5 | odoo_addon=True, 6 | ) 7 | -------------------------------------------------------------------------------- /setup/account_payment_sale/setup.py: -------------------------------------------------------------------------------- 1 | import setuptools 2 | 3 | setuptools.setup( 4 | setup_requires=['setuptools-odoo'], 5 | odoo_addon=True, 6 | ) 7 | -------------------------------------------------------------------------------- /account_banking_mandate/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vertelab/odoo-oca-bank-payment/14.0/account_banking_mandate/static/description/icon.png -------------------------------------------------------------------------------- /account_banking_pain_base/readme/INSTALL.rst: -------------------------------------------------------------------------------- 1 | This module depends on : 2 | 3 | - account_payment_order 4 | 5 | This module is part of the OCA/bank-payment suite. 6 | -------------------------------------------------------------------------------- /account_payment_order/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vertelab/odoo-oca-bank-payment/14.0/account_payment_order/static/description/icon.png -------------------------------------------------------------------------------- /account_payment_order_return/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0 2 | 3 | from . import test_account_payment_order_return 4 | -------------------------------------------------------------------------------- /account_payment_order_return/wizards/__init__.py: -------------------------------------------------------------------------------- 1 | # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html 2 | 3 | from . import account_payment_line_create 4 | -------------------------------------------------------------------------------- /account_payment_partner/__init__.py: -------------------------------------------------------------------------------- 1 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). 2 | 3 | from . import models 4 | from . import reports 5 | -------------------------------------------------------------------------------- /account_payment_partner/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vertelab/odoo-oca-bank-payment/14.0/account_payment_partner/static/description/icon.png -------------------------------------------------------------------------------- /account_payment_purchase/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html 2 | 3 | from . import test_account_payment_purchase 4 | -------------------------------------------------------------------------------- /setup/account_banking_mandate_sale/setup.py: -------------------------------------------------------------------------------- 1 | import setuptools 2 | 3 | setuptools.setup( 4 | setup_requires=['setuptools-odoo'], 5 | odoo_addon=True, 6 | ) 7 | -------------------------------------------------------------------------------- /setup/account_banking_pain_base/setup.py: -------------------------------------------------------------------------------- 1 | import setuptools 2 | 3 | setuptools.setup( 4 | setup_requires=['setuptools-odoo'], 5 | odoo_addon=True, 6 | ) 7 | -------------------------------------------------------------------------------- /setup/account_payment_order_return/setup.py: -------------------------------------------------------------------------------- 1 | import setuptools 2 | 3 | setuptools.setup( 4 | setup_requires=['setuptools-odoo'], 5 | odoo_addon=True, 6 | ) 7 | -------------------------------------------------------------------------------- /account_banking_pain_base/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vertelab/odoo-oca-bank-payment/14.0/account_banking_pain_base/static/description/icon.png -------------------------------------------------------------------------------- /account_payment_mode/readme/CONFIGURE.rst: -------------------------------------------------------------------------------- 1 | To configure this module, you need to go to the menu 2 | *Invoicing/Accounting > Configuration > Management > Payment Modes*. 3 | -------------------------------------------------------------------------------- /account_payment_order/readme/CONFIGURE.rst: -------------------------------------------------------------------------------- 1 | This module adds several options on Payment Modes, cf Invoicing/Accounting > 2 | Configuration > Management > Payment Modes. 3 | -------------------------------------------------------------------------------- /account_payment_purchase/models/__init__.py: -------------------------------------------------------------------------------- 1 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). 2 | 3 | from . import account_invoice, purchase_order 4 | -------------------------------------------------------------------------------- /account_payment_purchase/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vertelab/odoo-oca-bank-payment/14.0/account_payment_purchase/static/description/icon.png -------------------------------------------------------------------------------- /setup/account_banking_sepa_direct_debit/setup.py: -------------------------------------------------------------------------------- 1 | import setuptools 2 | 3 | setuptools.setup( 4 | setup_requires=['setuptools-odoo'], 5 | odoo_addon=True, 6 | ) 7 | -------------------------------------------------------------------------------- /setup/account_invoice_select_for_payment/setup.py: -------------------------------------------------------------------------------- 1 | import setuptools 2 | 3 | setuptools.setup( 4 | setup_requires=['setuptools-odoo'], 5 | odoo_addon=True, 6 | ) 7 | -------------------------------------------------------------------------------- /setup/account_payment_purchase_stock/setup.py: -------------------------------------------------------------------------------- 1 | import setuptools 2 | 3 | setuptools.setup( 4 | setup_requires=['setuptools-odoo'], 5 | odoo_addon=True, 6 | ) 7 | -------------------------------------------------------------------------------- /account_banking_mandate_sale/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vertelab/odoo-oca-bank-payment/14.0/account_banking_mandate_sale/static/description/icon.png -------------------------------------------------------------------------------- /account_banking_sepa_credit_transfer/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import account_payment_method 2 | from . import account_payment_order 3 | from . import account_payment_line 4 | -------------------------------------------------------------------------------- /account_banking_sepa_credit_transfer/readme/INSTALL.rst: -------------------------------------------------------------------------------- 1 | This module depends on : 2 | * account_banking_pain_base 3 | 4 | This module is part of the OCA/bank-payment suite. 5 | -------------------------------------------------------------------------------- /account_payment_order_return/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vertelab/odoo-oca-bank-payment/14.0/account_payment_order_return/static/description/icon.png -------------------------------------------------------------------------------- /account_payment_purchase_stock/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html 2 | 3 | from . import test_account_payment_purchase_stock 4 | -------------------------------------------------------------------------------- /setup/account_banking_sepa_credit_transfer/setup.py: -------------------------------------------------------------------------------- 1 | import setuptools 2 | 3 | setuptools.setup( 4 | setup_requires=['setuptools-odoo'], 5 | odoo_addon=True, 6 | ) 7 | -------------------------------------------------------------------------------- /account_payment_mode/readme/CONTRIBUTORS.rst: -------------------------------------------------------------------------------- 1 | * Alexis de Lattre 2 | * Eric Lembregts 3 | * Andrea Stirpe 4 | -------------------------------------------------------------------------------- /account_payment_purchase/readme/INSTALL.rst: -------------------------------------------------------------------------------- 1 | This module depends on : 2 | 3 | - purchase 4 | - account_payment_partner 5 | 6 | This module is part of the OCA/bank-payment suite. 7 | -------------------------------------------------------------------------------- /account_payment_purchase_stock/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vertelab/odoo-oca-bank-payment/14.0/account_payment_purchase_stock/static/description/icon.png -------------------------------------------------------------------------------- /account_banking_sepa_direct_debit/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vertelab/odoo-oca-bank-payment/14.0/account_banking_sepa_direct_debit/static/description/icon.png -------------------------------------------------------------------------------- /account_invoice_select_for_payment/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vertelab/odoo-oca-bank-payment/14.0/account_invoice_select_for_payment/static/description/icon.png -------------------------------------------------------------------------------- /account_banking_sepa_credit_transfer/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vertelab/odoo-oca-bank-payment/14.0/account_banking_sepa_credit_transfer/static/description/icon.png -------------------------------------------------------------------------------- /account_payment_mode/readme/DESCRIPTION.rst: -------------------------------------------------------------------------------- 1 | This module adds a new object *account.payment.mode*, that is used to better 2 | classify and route incoming/outgoing payment orders with the banks. 3 | -------------------------------------------------------------------------------- /account_payment_order/readme/INSTALL.rst: -------------------------------------------------------------------------------- 1 | This module depends on: 2 | 3 | * account_payment_partner 4 | * base_iban 5 | * document 6 | 7 | This modules is part of the OCA/bank-payment suite. 8 | -------------------------------------------------------------------------------- /account_payment_purchase_stock/readme/INSTALL.rst: -------------------------------------------------------------------------------- 1 | This module depends on : 2 | 3 | - purchase_stock 4 | - account_payment_purchase 5 | 6 | This module is part of the OCA/bank-payment suite. 7 | -------------------------------------------------------------------------------- /account_banking_sepa_direct_debit/readme/INSTALL.rst: -------------------------------------------------------------------------------- 1 | This module depends on : 2 | 3 | * account_banking_pain_base 4 | * account_banking_mandate 5 | 6 | This module is part of the OCA/bank-payment suite. 7 | -------------------------------------------------------------------------------- /account_payment_order_return/readme/CONTRIBUTORS.rst: -------------------------------------------------------------------------------- 1 | * Tecnativa 2 | 3 | * Luis M. Ontalba 4 | * Vicent Cubells 5 | * João Marques 6 | 7 | * Kitti U. 8 | -------------------------------------------------------------------------------- /account_payment_sale/readme/DESCRIPTION.rst: -------------------------------------------------------------------------------- 1 | This modules adds one field on sale orders: *Payment Mode*. 2 | This field is copied from customer to sale order and then from sale order to 3 | customer invoice. 4 | -------------------------------------------------------------------------------- /account_payment_sale/readme/CONTRIBUTORS.rst: -------------------------------------------------------------------------------- 1 | * Pedro M. Baeza 2 | * Alexis de Lattre 3 | * Alexandre Fayolle 4 | * Danimar Ribeiro 5 | * Raphaël Valyi 6 | * Raf Ven 7 | -------------------------------------------------------------------------------- /account_payment_order/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_payment_mode 2 | from . import test_bank 3 | from . import test_payment_order_inbound 4 | from . import test_payment_order_outbound 5 | from . import test_account_payment 6 | -------------------------------------------------------------------------------- /account_payment_order_return/readme/DESCRIPTION.rst: -------------------------------------------------------------------------------- 1 | This module adds a check in the wizard where move lines are imported into 2 | payment order. 3 | This check lets include in selection lines from invoices linked to a 4 | payment return. 5 | -------------------------------------------------------------------------------- /account_payment_partner/readme/HISTORY.rst: -------------------------------------------------------------------------------- 1 | 10.0.1.2.0 (2018-05-24) 2 | ~~~~~~~~~~~~~~~~~~~~~~~ 3 | 4 | * [IMP] Add options to show partner bank account in invoice report 5 | (`#458 `_) 6 | -------------------------------------------------------------------------------- /account_banking_sepa_direct_debit/readme/USAGE.rst: -------------------------------------------------------------------------------- 1 | In the menu *Invoicing/Accounting > Customers > Debit Order*, create a new debit 2 | order and select the Payment Mode dedicated to SEPA Direct Debit that 3 | you created during the configuration step. 4 | -------------------------------------------------------------------------------- /account_banking_mandate_sale/readme/USAGE.rst: -------------------------------------------------------------------------------- 1 | When you select a payment mode that requires mandate on a sale order, Odoo will 2 | select by default the first valid mandate of this customer. 3 | 4 | The mandate will be copied from the sale order to the invoice. 5 | -------------------------------------------------------------------------------- /account_banking_sepa_credit_transfer/readme/USAGE.rst: -------------------------------------------------------------------------------- 1 | In the menu *Invoicing/Accounting > Vendors > Payment Orders*, create a new 2 | payment order and select the Payment Mode dedicated to SEPA Credit 3 | Transfer that you created during the configuration step. 4 | -------------------------------------------------------------------------------- /account_payment_sale/readme/USAGE.rst: -------------------------------------------------------------------------------- 1 | You are able to add a payment mode directly on a partner. 2 | This payment mode is automatically associated to the sale order, then copied to the related invoice. 3 | This default value can be changed sale orders or on draft invoices. 4 | -------------------------------------------------------------------------------- /.prettierrc.yml: -------------------------------------------------------------------------------- 1 | # Defaults for all prettier-supported languages. 2 | # Prettier will complete this with settings from .editorconfig file. 3 | bracketSpacing: false 4 | printWidth: 88 5 | proseWrap: always 6 | semi: true 7 | trailingComma: "es5" 8 | xmlWhitespaceSensitivity: "strict" 9 | -------------------------------------------------------------------------------- /account_invoice_select_for_payment/readme/DESCRIPTION.rst: -------------------------------------------------------------------------------- 1 | This module allows to mark invoices as "selected for payment". This can be done 2 | in the list view of invoices using a button in the first column of the view 3 | which shows the selection status. This selection persists until a payment is 4 | registered. 5 | -------------------------------------------------------------------------------- /account_banking_sepa_direct_debit/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import res_company 2 | from . import account_banking_mandate 3 | from . import bank_payment_line 4 | from . import account_payment_mode 5 | from . import account_payment_method 6 | from . import account_payment_order 7 | from . import account_payment_line 8 | -------------------------------------------------------------------------------- /account_banking_pain_base/__init__.py: -------------------------------------------------------------------------------- 1 | # © 2013 Akretion - Alexis de Lattre 2 | # © 2014 Serv. Tecnol. Avanzados - Pedro M. Baeza 3 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). 4 | 5 | from . import models 6 | from .post_install import set_default_initiating_party 7 | -------------------------------------------------------------------------------- /account_banking_mandate/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import account_banking_mandate 2 | from . import account_payment_method 3 | from . import account_move 4 | from . import res_partner_bank 5 | from . import res_partner 6 | from . import account_payment_line 7 | from . import bank_payment_line 8 | from . import account_move_line 9 | -------------------------------------------------------------------------------- /account_banking_sepa_credit_transfer/readme/CONFIGURE.rst: -------------------------------------------------------------------------------- 1 | * Create a Payment Mode dedicated to SEPA Credit Transfer. 2 | 3 | * Select the Payment Method *SEPA Credit Transfer to suppliers* (which is 4 | automatically created upon module installation). 5 | 6 | * Check that this payment method uses the proper version of PAIN. 7 | -------------------------------------------------------------------------------- /account_banking_pain_base/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import account_payment_line 2 | from . import account_payment_order 3 | from . import bank_payment_line 4 | from . import account_payment_mode 5 | from . import res_company 6 | from . import res_config_settings 7 | from . import account_payment_method 8 | from . import res_bank 9 | -------------------------------------------------------------------------------- /account_payment_order_return/readme/USAGE.rst: -------------------------------------------------------------------------------- 1 | #. Go to Invoicing > Customers > Debit Orders. 2 | #. Create a new record. 3 | #. Click on button "Create Payment Lines from Journal Items" to open the 4 | wizard. 5 | #. Click on the "Include move lines from returns" check. 6 | #. Fill other options. 7 | #. Click on button "Add All Move Lines". 8 | -------------------------------------------------------------------------------- /account_banking_pain_base/security/security.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SEPA/PAIN Identifiers on Payment Modes 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /account_payment_order/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import account_payment_mode 2 | from . import account_payment_order 3 | from . import account_payment_line 4 | from . import bank_payment_line 5 | from . import account_move 6 | from . import account_move_line 7 | from . import res_bank 8 | from . import account_payment_method 9 | from . import account_journal 10 | from . import account_payment 11 | -------------------------------------------------------------------------------- /account_banking_mandate/security/ir.model.access.csv: -------------------------------------------------------------------------------- 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_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 4 | -------------------------------------------------------------------------------- /.flake8: -------------------------------------------------------------------------------- 1 | [flake8] 2 | max-line-length = 88 3 | max-complexity = 16 4 | # B = bugbear 5 | # B9 = bugbear opinionated (incl line length) 6 | select = C,E,F,W,B,B9 7 | # E203: whitespace before ':' (black behaviour) 8 | # E501: flake8 line length (covered by bugbear B950) 9 | # W503: line break before binary operator (black behaviour) 10 | ignore = E203,E501,W503 11 | per-file-ignores= 12 | __init__.py:F401 13 | -------------------------------------------------------------------------------- /.isort.cfg: -------------------------------------------------------------------------------- 1 | [settings] 2 | ; see https://github.com/psf/black 3 | multi_line_output=3 4 | include_trailing_comma=True 5 | force_grid_wrap=0 6 | combine_as_imports=True 7 | use_parentheses=True 8 | line_length=88 9 | known_odoo=odoo 10 | known_odoo_addons=odoo.addons 11 | sections=FUTURE,STDLIB,THIRDPARTY,ODOO,ODOO_ADDONS,FIRSTPARTY,LOCALFOLDER 12 | default_section=THIRDPARTY 13 | ensure_newline_before_comments = True 14 | -------------------------------------------------------------------------------- /account_banking_mandate/data/mandate_reference_sequence.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | DD Mandate Reference 5 | account.banking.mandate 6 | BM 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /account_payment_partner/readme/USAGE.rst: -------------------------------------------------------------------------------- 1 | You are able to add a payment mode directly on a partner. 2 | 3 | This payment mode is automatically associated to the invoice related to the 4 | partner. This default value could be changed in a draft invoice. 5 | 6 | When you create a payment order, only invoices related to chosen payment mode 7 | are displayed. 8 | 9 | Invoices without any payment mode are displayed too. 10 | -------------------------------------------------------------------------------- /account_banking_pain_base/readme/DESCRIPTION.rst: -------------------------------------------------------------------------------- 1 | This module contains fields and functions that are used by the module for SEPA 2 | Credit Transfer (account_banking_sepa_credit_transfer) and SEPA Direct Debit 3 | (account_banking_sepa_direct_debit). This module doesn't provide any 4 | functionality by itself. 5 | 6 | This module was started during the Akretion-Noviat code sprint of November 7 | 21st 2013 in Epiais les Louvres (France). 8 | -------------------------------------------------------------------------------- /account_banking_sepa_direct_debit/readme/CONTRIBUTORS.rst: -------------------------------------------------------------------------------- 1 | * Alexis de Lattre 2 | * Stéphane Bidoul 3 | * Alexandre Fayolle 4 | * Raphaël Valyi 5 | * Sandy Carter 6 | * Antonio Espinosa 7 | * Marçal Isern 8 | * `Tecnativa `__: 9 | 10 | * Pedro M. Baeza 11 | * Sergio Teruel 12 | * Carlos Roca 13 | -------------------------------------------------------------------------------- /account_payment_order/migrations/14.0.1.3.0/pre-migration.py: -------------------------------------------------------------------------------- 1 | # Copyright 2021 Akretion France (http://www.akretion.com/) 2 | # @author: Alexis de Lattre 3 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). 4 | 5 | 6 | def migrate(cr, version): 7 | if not version: 8 | return 9 | 10 | cr.execute("UPDATE account_payment_order SET state='uploaded' WHERE state='done'") 11 | -------------------------------------------------------------------------------- /account_payment_purchase/readme/CONTRIBUTORS.rst: -------------------------------------------------------------------------------- 1 | * Alexis de Lattre 2 | * Alexandre Fayolle 3 | * Danimar Ribeiro 4 | * Raphaël Valyi 5 | * Abraham Anes 6 | * `Tecnativa `_: 7 | 8 | * Pedro M. Baeza 9 | * Vicent Cubells 10 | * Carlos Roca 11 | 12 | * Nikul Chaudhary 13 | * Miquel Raïch 14 | * Andrea Stirpe 15 | -------------------------------------------------------------------------------- /account_banking_mandate/readme/CONTRIBUTORS.rst: -------------------------------------------------------------------------------- 1 | * Alexis de Lattre 2 | * Pedro M. Baeza 3 | * Alexandre Fayolle 4 | * Stéphane Bidoul 5 | * Sergio Teruel 6 | * Cédric Pigeon 7 | * Carlos Dauden 8 | * Marçal Isern 9 | * Andrea Stirpe 10 | -------------------------------------------------------------------------------- /account_banking_mandate/readme/DESCRIPTION.rst: -------------------------------------------------------------------------------- 1 | This module adds a generic model for banking mandates. 2 | These mandates can be specialized to fit any banking mandates (such as sepa or lsv). 3 | 4 | A banking mandate is attached to a bank account and represents an 5 | authorization that the bank account owner gives to a company for a 6 | specific operation (such as direct debit). 7 | You can setup mandates from the accounting menu or directly from a bank 8 | account. 9 | -------------------------------------------------------------------------------- /account_banking_sepa_direct_debit/wizards/res_config_settings.py: -------------------------------------------------------------------------------- 1 | # Copyright 2016 Akretion - Alexis de Lattre 2 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). 3 | 4 | from odoo import fields, models 5 | 6 | 7 | class ResConfigSettings(models.TransientModel): 8 | _inherit = "res.config.settings" 9 | 10 | sepa_creditor_identifier = fields.Char( 11 | related="company_id.sepa_creditor_identifier", readonly=False 12 | ) 13 | -------------------------------------------------------------------------------- /.copier-answers.yml: -------------------------------------------------------------------------------- 1 | # Do NOT update manually; changes here will be overwritten by Copier 2 | _commit: v1.3.6 3 | _src_path: gh:oca/oca-addons-repo-template 4 | ci: Travis 5 | dependency_installation_mode: PIP 6 | generate_requirements_txt: true 7 | include_wkhtmltopdf: false 8 | odoo_version: 14.0 9 | rebel_module_groups: [] 10 | repo_description: 'TODO: add repo description.' 11 | repo_name: bank-payment 12 | repo_slug: bank-payment 13 | travis_apt_packages: [] 14 | travis_apt_sources: [] 15 | -------------------------------------------------------------------------------- /account_payment_order/tests/test_bank.py: -------------------------------------------------------------------------------- 1 | # © 2017 Creu Blanca 2 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). 3 | 4 | from odoo.exceptions import ValidationError 5 | from odoo.tests.common import TransactionCase 6 | 7 | 8 | class TestBank(TransactionCase): 9 | def test_bank(self): 10 | bank = self.env["res.bank"].search([], limit=1) 11 | self.assertTrue(bank) 12 | with self.assertRaises(ValidationError): 13 | bank.bic = "TEST" 14 | -------------------------------------------------------------------------------- /account_payment_purchase_stock/readme/CONTRIBUTORS.rst: -------------------------------------------------------------------------------- 1 | * Alexis de Lattre 2 | * Alexandre Fayolle 3 | * Danimar Ribeiro 4 | * Raphaël Valyi 5 | * Abraham Anes 6 | * `Tecnativa `_: 7 | 8 | * Pedro M. Baeza 9 | * Vicent Cubells 10 | 11 | * Nikul Chaudhary 12 | * Miquel Raïch 13 | * Andrea Stirpe 14 | -------------------------------------------------------------------------------- /account_payment_mode/security/account_payment_mode.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Payment mode multi-company rule 5 | 6 | 7 | ['|', ('company_id', '=', False), ('company_id', 'in', company_ids)] 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /account_banking_pain_base/readme/CONTRIBUTORS.rst: -------------------------------------------------------------------------------- 1 | * Alexis de Lattre 2 | * Stéphane Bidoul 3 | * Ignacio Ibeas - Acysos S.L. 4 | * Alexandre Fayolle 5 | * Raphaël Valyi 6 | * Sandy Carter 7 | * Stefan Rijnhart (Therp) 8 | * Antonio Espinosa 9 | * `DynApps NV `_: 10 | 11 | * Axel Priem 12 | * `Tecnativa `_: 13 | 14 | * Pedro M. Baeza 15 | * Carlos Roca 16 | -------------------------------------------------------------------------------- /account_banking_pain_base/post_install.py: -------------------------------------------------------------------------------- 1 | # © 2015-2016 Akretion - Alexis de Lattre 2 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). 3 | 4 | 5 | from odoo import SUPERUSER_ID, api 6 | 7 | 8 | def set_default_initiating_party(cr, registry): 9 | with api.Environment.manage(): 10 | env = api.Environment(cr, SUPERUSER_ID, {}) 11 | for company in env["res.company"].search([]): 12 | company._default_initiating_party() 13 | return 14 | -------------------------------------------------------------------------------- /account_payment_purchase/readme/USAGE.rst: -------------------------------------------------------------------------------- 1 | You are able to add a payment mode directly on a partner. 2 | This payment mode is automatically associated to the purchase order, then on 3 | related invoice. 4 | This default value could be change in a draft purchase or draft invoice. 5 | When you create a payment order, only invoices related to chosen payment mode 6 | are displayed. 7 | Invoices without any payment mode are displayed too. 8 | 9 | 10 | This module doesn't add any feature, but it is used by several other modules. 11 | -------------------------------------------------------------------------------- /account_payment_partner/readme/CONTRIBUTORS.rst: -------------------------------------------------------------------------------- 1 | * Alexis de Lattre 2 | * Raphaël Valyi 3 | * Stefan Rijnhart (Therp) 4 | * Alexandre Fayolle 5 | * Stéphane Bidoul 6 | * Danimar Ribeiro 7 | * Angel Moya 8 | * `Tecnativa `_: 9 | 10 | * Pedro M. Baeza 11 | * Carlos Dauden 12 | * Víctor Martínez 13 | * `DynApps `_: 14 | 15 | * Raf Ven 16 | * Marçal Isern 17 | -------------------------------------------------------------------------------- /account_payment_sale/views/sale_report_templates.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 12 | -------------------------------------------------------------------------------- /account_payment_order/models/account_payment_method.py: -------------------------------------------------------------------------------- 1 | # Copyright 2019 ACSONE SA/NV 2 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). 3 | 4 | from odoo import fields, models 5 | 6 | 7 | class AccountPaymentMethod(models.Model): 8 | _inherit = "account.payment.method" 9 | 10 | payment_order_only = fields.Boolean( 11 | string="Only for payment orders", 12 | help="This option helps enforcing the use of payment orders for " 13 | "some payment methods.", 14 | default=False, 15 | ) 16 | -------------------------------------------------------------------------------- /account_banking_sepa_credit_transfer/data/account_payment_method.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SEPA Credit Transfer to suppliers 5 | sepa_credit_transfer 6 | outbound 7 | 8 | pain.001.001.03 9 | 10 | 11 | -------------------------------------------------------------------------------- /account_invoice_select_for_payment/readme/USAGE.rst: -------------------------------------------------------------------------------- 1 | To mark an invoice as "selected for payment", click on the button before the 2 | Number column. This will change the state and change the way the button is 3 | displayed to a checked box. 4 | 5 | When done, use the search filter "Selected for payment", and select all the 6 | lines to give access to the Actions menu, in which you can select "Register 7 | payment" to display the Payment wizard. 8 | 9 | The selection is cleared when the wizard is displayed, whether the payment is 10 | done or not. 11 | -------------------------------------------------------------------------------- /account_payment_purchase/readme/DESCRIPTION.rst: -------------------------------------------------------------------------------- 1 | This module adds 2 fields on purchase orders: *Bank Account* and *Payment 2 | Mode*. These fields are copied from partner to purchase order and then from 3 | purchase order to supplier invoice. 4 | 5 | This module is similar to the *purchase_payment* module; the main difference 6 | is that it doesn't depend on the *account_payment_extension* module (it's not 7 | the only module to conflict with *account_payment_extension*; all the SEPA 8 | modules in the banking addons conflict with *account_payment_extension*). 9 | -------------------------------------------------------------------------------- /account_payment_order/readme/USAGE.rst: -------------------------------------------------------------------------------- 1 | You can create a Payment order via the menu Invoicing/Accounting > Vendors > Payment Orders and then select the move lines to pay. 2 | 3 | You can create a Debit order via the menu Invoicing/Accounting > Customers > Debit Orders and then select the move lines to debit. 4 | 5 | This module also adds an action *Add to Payment Order* on supplier invoices and *Add to Debit Order* on customer invoices. 6 | 7 | You can print a Payment order via the menu Invoicing/Accounting > Vendors > Payment Orders and then select the payment oder to print. 8 | -------------------------------------------------------------------------------- /account_payment_mode/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | account.access_account_payment_method,Full access on account.payment.method to Financial Manager,account.model_account_payment_method,account.group_account_manager,1,1,1,1 3 | access_account_payment_mode_read,Read access on account.payment.mode to Employees,model_account_payment_mode,base.group_user,1,0,0,0 4 | access_account_payment_mode_full,Full access on account.payment.mode to Financial Manager,model_account_payment_mode,account.group_account_manager,1,1,1,1 5 | -------------------------------------------------------------------------------- /account_banking_sepa_direct_debit/data/account_payment_method.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SEPA Direct Debit for customers 5 | sepa_direct_debit 6 | inbound 7 | 8 | 9 | pain.008.001.02 10 | 11 | 12 | -------------------------------------------------------------------------------- /account_banking_mandate/models/account_payment_method.py: -------------------------------------------------------------------------------- 1 | # Copyright 2016-2020 Akretion (Alexis de Lattre ) 2 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). 3 | 4 | from odoo import fields, models 5 | 6 | 7 | class AccountPaymentMethod(models.Model): 8 | _inherit = "account.payment.method" 9 | 10 | mandate_required = fields.Boolean( 11 | string="Mandate Required", 12 | help="Activate this option if this payment method requires your " 13 | "customer to sign a direct debit mandate with your company.", 14 | ) 15 | -------------------------------------------------------------------------------- /account_invoice_select_for_payment/__manifest__.py: -------------------------------------------------------------------------------- 1 | # © 2016 Akretion (). 2 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). 3 | 4 | { 5 | "name": "Account Invoice Select for Payment", 6 | "version": "14.0.1.0.0", 7 | "license": "AGPL-3", 8 | "author": "Camptocamp,Odoo Community Association (OCA)", 9 | "website": "https://github.com/OCA/bank-payment", 10 | "category": "Banking addons", 11 | "depends": ["account"], 12 | "data": ["views/account_move.xml"], 13 | "development_status": "Alpha", 14 | "installable": True, 15 | } 16 | -------------------------------------------------------------------------------- /account_payment_sale/wizard/sale_make_invoice_advance.py: -------------------------------------------------------------------------------- 1 | # Copyright 2016-2020 Akretion - Alexis de Lattre 2 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). 3 | 4 | from odoo import models 5 | 6 | 7 | class SaleAdvancePaymentInv(models.TransientModel): 8 | _inherit = "sale.advance.payment.inv" 9 | 10 | def _prepare_invoice_values(self, order, name, amount, so_line): 11 | """Copy payment mode from sale order to invoice""" 12 | vals = super()._prepare_invoice_values(order, name, amount, so_line) 13 | order._get_payment_mode_vals(vals) 14 | return vals 15 | -------------------------------------------------------------------------------- /account_banking_sepa_credit_transfer/readme/CONTRIBUTORS.rst: -------------------------------------------------------------------------------- 1 | * Alexis de Lattre 2 | * Stéphane Bidoul 3 | * Stefan Rijnhart 4 | * Julien Laloux 5 | * Alexandre Fayolle 6 | * Raphaël Valyi 7 | * Erwin van der Ploeg 8 | * Sandy Carter 9 | * `Tecnativa `__: 10 | 11 | * Antonio Espinosa 12 | * Pedro M. Baeza 13 | * Carlos Roca 14 | * `DynApps NV `_: 15 | 16 | * Axel Priem 17 | * `Sygel Technology `_: 18 | 19 | * Valentin Vinagre 20 | -------------------------------------------------------------------------------- /account_payment_partner/reports/account_invoice_report.py: -------------------------------------------------------------------------------- 1 | # Copyright 2021 Tecnativa - Víctor Martínez 2 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). 3 | 4 | from odoo import fields, models 5 | 6 | 7 | class AccountInvoiceReport(models.Model): 8 | _inherit = "account.invoice.report" 9 | 10 | payment_mode_id = fields.Many2one( 11 | comodel_name="account.payment.mode", 12 | string="Payment mode", 13 | readonly=True, 14 | ) 15 | 16 | def _select(self): 17 | select_str = super()._select() 18 | return "%s, move.payment_mode_id AS payment_mode_id" % select_str 19 | -------------------------------------------------------------------------------- /account_payment_order_return/wizards/account_payment_line_create_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | account.payment.line.create 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # Configuration for known file extensions 2 | [*.{css,js,json,less,md,py,rst,sass,scss,xml,yaml,yml}] 3 | charset = utf-8 4 | end_of_line = lf 5 | indent_size = 4 6 | indent_style = space 7 | insert_final_newline = true 8 | trim_trailing_whitespace = true 9 | 10 | [*.{json,yml,yaml,rst,md}] 11 | indent_size = 2 12 | 13 | # Do not configure editor for libs and autogenerated content 14 | [{*/static/{lib,src/lib}/**,*/static/description/index.html,*/readme/../README.rst}] 15 | charset = unset 16 | end_of_line = unset 17 | indent_size = unset 18 | indent_style = unset 19 | insert_final_newline = false 20 | trim_trailing_whitespace = false 21 | -------------------------------------------------------------------------------- /account_banking_sepa_direct_debit/post_install.py: -------------------------------------------------------------------------------- 1 | # Copyright 2016 Akretion (Alexis de Lattre ) 2 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). 3 | 4 | from odoo import SUPERUSER_ID, api 5 | 6 | 7 | def update_bank_journals(cr, registry): 8 | with api.Environment.manage(): 9 | env = api.Environment(cr, SUPERUSER_ID, {}) 10 | ajo = env["account.journal"] 11 | journals = ajo.search([("type", "=", "bank")]) 12 | sdd = env.ref("account_banking_sepa_direct_debit.sepa_direct_debit") 13 | if sdd: 14 | journals.write({"inbound_payment_method_ids": [(4, sdd.id)]}) 15 | return 16 | -------------------------------------------------------------------------------- /account_banking_mandate_sale/wizard/sale_make_invoice_advance.py: -------------------------------------------------------------------------------- 1 | # Copyright 2016-2020 Akretion (Alexis de Lattre ) 2 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). 3 | 4 | from odoo import models 5 | 6 | 7 | class SaleAdvancePaymentInv(models.TransientModel): 8 | _inherit = "sale.advance.payment.inv" 9 | 10 | def _prepare_invoice_values(self, order, name, amount, so_line): 11 | """Copy mandate from sale order to invoice""" 12 | vals = super()._prepare_invoice_values(order, name, amount, so_line) 13 | if order.mandate_id: 14 | vals["mandate_id"] = order.mandate_id.id 15 | return vals 16 | -------------------------------------------------------------------------------- /account_banking_sepa_direct_debit/static/src/css/report.css: -------------------------------------------------------------------------------- 1 | .sepa_direct_debit h4 { 2 | margin-top: 2px; 3 | margin-bottom: 2px; 4 | } 5 | .sepa_direct_debit .under-line { 6 | border-bottom: 1px solid; 7 | } 8 | .sepa_direct_debit input { 9 | vertical-align: baseline; 10 | } 11 | .sepa_direct_debit .card { 12 | border: 2px solid; 13 | margin-bottom: 4px; 14 | } 15 | .sepa_direct_debit .card-body { 16 | padding: 2px 14px; 17 | } 18 | .sepa_direct_debit p { 19 | margin: 0 0 4px; 20 | font-size: 8px; 21 | } 22 | .sepa_direct_debit .native_lang { 23 | font-style: italic; 24 | } 25 | .sepa_direct_debit .native_lang_small { 26 | font-size: 0.8em; 27 | } 28 | -------------------------------------------------------------------------------- /account_payment_order_return/__manifest__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2017 Tecnativa - Luis M. Ontalba 2 | # Copyright 2021 Tecnativa - João Marques 3 | # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html 4 | 5 | { 6 | "name": "Account Payment Order Return", 7 | "version": "14.0.1.0.1", 8 | "category": "Banking addons", 9 | "author": "Tecnativa, " "Odoo Community Association (OCA)", 10 | "website": "https://github.com/OCA/bank-payment", 11 | "depends": ["account_payment_return", "account_payment_order"], 12 | "data": ["wizards/account_payment_line_create_view.xml"], 13 | "license": "AGPL-3", 14 | "installable": True, 15 | "auto_install": True, 16 | } 17 | -------------------------------------------------------------------------------- /account_banking_sepa_credit_transfer/post_install.py: -------------------------------------------------------------------------------- 1 | # Copyright 2016-2020 Akretion (Alexis de Lattre ) 2 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). 3 | 4 | from odoo import SUPERUSER_ID, api 5 | 6 | 7 | def update_bank_journals(cr, registry): 8 | with api.Environment.manage(): 9 | env = api.Environment(cr, SUPERUSER_ID, {}) 10 | ajo = env["account.journal"] 11 | journals = ajo.search([("type", "=", "bank")]) 12 | sct = env.ref("account_banking_sepa_credit_transfer.sepa_credit_transfer") 13 | if sct: 14 | journals.write({"outbound_payment_method_ids": [(4, sct.id)]}) 15 | return 16 | -------------------------------------------------------------------------------- /account_invoice_select_for_payment/models/account_move.py: -------------------------------------------------------------------------------- 1 | # Copyright 2020 Camptocamp 2 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). 3 | 4 | from odoo import fields, models 5 | 6 | 7 | class AccountMove(models.Model): 8 | _inherit = "account.move" 9 | 10 | selected_for_payment = fields.Boolean("To Pay") 11 | 12 | def action_toggle_select_for_payment(self): 13 | selected = self.filtered(lambda rec: rec.selected_for_payment) 14 | unselected = self - selected 15 | if selected: 16 | selected.write({"selected_for_payment": False}) 17 | if unselected: 18 | unselected.write({"selected_for_payment": True}) 19 | -------------------------------------------------------------------------------- /account_invoice_select_for_payment/models/account_payment.py: -------------------------------------------------------------------------------- 1 | # Copyright 2020 Camptocamp 2 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). 3 | 4 | from odoo import models 5 | 6 | 7 | class AccountPayment(models.Model): 8 | _inherit = "account.payment" 9 | 10 | def action_register_payment(self): 11 | active_ids = self.env.context.get("active_ids") 12 | if active_ids: 13 | invoices = self.env["account.move"].search( 14 | [("id", "in", active_ids), ("selected_for_payment", "=", True)] 15 | ) 16 | invoices.write({"selected_for_payment": False}) 17 | return super().action_register_payment() 18 | -------------------------------------------------------------------------------- /account_payment_purchase_stock/__manifest__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2016 Akretion (). 2 | # Copyright 2017 Tecnativa - Vicent Cubells 3 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). 4 | 5 | { 6 | "name": "Account Payment Purchase Stock", 7 | "version": "14.0.1.0.1", 8 | "category": "Banking addons", 9 | "license": "AGPL-3", 10 | "summary": "Integrate Account Payment Purchase with Stock", 11 | "author": "Akretion, Tecnativa, Odoo Community Association (OCA)", 12 | "website": "https://github.com/OCA/bank-payment", 13 | "depends": ["account_payment_purchase", "purchase_stock"], 14 | "installable": True, 15 | "auto_install": True, 16 | } 17 | -------------------------------------------------------------------------------- /account_banking_pain_base/readme/CONFIGURE.rst: -------------------------------------------------------------------------------- 1 | #. Go to Invoicing/Accounting > Configuration > Settings. 2 | #. On the fields "Initiating Party Issuer" and "Initiating Party Identifier", 3 | in the section *SEPA/PAIN*, you can fill the corresponding identifiers. 4 | 5 | If your country requires several identifiers (like Spain), you must: 6 | 7 | #. Go to *Invoicing/Accounting > Configuration > Settings*. 8 | #. On the section *SEPA/PAIN*, check the mark "Multiple identifiers". 9 | #. Now go to *Invoicing/Accounting > Configuration > Management > Payment Modes*. 10 | #. Create a payment mode for your specific bank. 11 | #. Fill the specific identifiers on the fields "Initiating Party Identifier" 12 | and "Initiating Party Issuer". 13 | -------------------------------------------------------------------------------- /account_payment_sale/__manifest__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2014-2016 Akretion (http://www.akretion.com) 2 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). 3 | # @author Alexis de Lattre 4 | 5 | { 6 | "name": "Account Payment Sale", 7 | "version": "14.0.1.0.0", 8 | "category": "Banking addons", 9 | "license": "AGPL-3", 10 | "summary": "Adds payment mode on sale orders", 11 | "author": "Akretion, " "Tecnativa, " "Odoo Community Association (OCA)", 12 | "website": "https://github.com/OCA/bank-payment", 13 | "depends": ["sale", "account_payment_partner"], 14 | "data": ["views/sale_order_view.xml", "views/sale_report_templates.xml"], 15 | "auto_install": True, 16 | } 17 | -------------------------------------------------------------------------------- /account_payment_purchase/__manifest__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2016 Akretion (). 2 | # Copyright 2017 Tecnativa - Vicent Cubells 3 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). 4 | 5 | { 6 | "name": "Account Payment Purchase", 7 | "version": "14.0.1.0.1", 8 | "category": "Banking addons", 9 | "license": "AGPL-3", 10 | "summary": "Adds Bank Account and Payment Mode on Purchase Orders", 11 | "author": "Akretion, Tecnativa, Odoo Community Association (OCA)", 12 | "website": "https://github.com/OCA/bank-payment", 13 | "depends": ["account_payment_partner", "purchase"], 14 | "data": ["views/purchase_order_view.xml"], 15 | "installable": True, 16 | "auto_install": True, 17 | } 18 | -------------------------------------------------------------------------------- /account_payment_order_return/wizards/account_payment_line_create.py: -------------------------------------------------------------------------------- 1 | # Copyright 2017 Tecnativa - Luis M. Ontalba 2 | # Copyright 2021 Tecnativa - João Marques 3 | # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html 4 | 5 | from odoo import fields, models 6 | 7 | 8 | class AccountPaymentLineCreate(models.TransientModel): 9 | _inherit = "account.payment.line.create" 10 | 11 | include_returned = fields.Boolean(string="Include move lines from returns") 12 | 13 | def _prepare_move_line_domain(self): 14 | domain = super()._prepare_move_line_domain() 15 | if not self.include_returned: 16 | domain += [ 17 | ("move_id.returned_payment", "=", False), 18 | ] 19 | return domain 20 | -------------------------------------------------------------------------------- /.github/workflows/pre-commit.yml: -------------------------------------------------------------------------------- 1 | name: pre-commit 2 | 3 | on: 4 | pull_request: 5 | push: 6 | 7 | jobs: 8 | pre-commit: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - uses: actions/checkout@v2 12 | - uses: actions/setup-python@v2 13 | with: 14 | # The pylint-odoo version we use here does not support python 3.10 15 | # https://github.com/OCA/oca-addons-repo-template/issues/80 16 | # We also need to pin to an older version of python for older odoo versions 17 | # where we are not using black > 21. Older black versions won't work with 18 | # Python 3.9.8+, and we can't bump black without reformatting. 19 | python-version: "3.9.7" 20 | - uses: pre-commit/action@v2.0.0 21 | -------------------------------------------------------------------------------- /account_banking_sepa_credit_transfer/models/account_payment_line.py: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2020 Akretion - Alexis de Lattre 2 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). 3 | 4 | from odoo import fields, models 5 | 6 | 7 | class AccountPaymentLine(models.Model): 8 | _inherit = "account.payment.line" 9 | 10 | # Local_instrument 'INST' used for instant credit transfers 11 | # which will begin on November 21st 2017, cf 12 | # https://www.europeanpaymentscouncil.eu/document-library/ 13 | # rulebooks/2017-sepa-instant-credit-transfer-rulebook 14 | local_instrument = fields.Selection( 15 | selection_add=[("INST", "Instant Transfer")], 16 | ondelete={"INST": "set null"}, 17 | ) 18 | -------------------------------------------------------------------------------- /account_banking_mandate_sale/__manifest__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2016-2020 Akretion (Alexis de Lattre ) 2 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). 3 | 4 | { 5 | "name": "Account Banking Mandate Sale", 6 | "version": "14.0.1.0.0", 7 | "category": "Banking addons", 8 | "license": "AGPL-3", 9 | "summary": "Adds mandates on sale orders", 10 | "author": "Odoo Community Association (OCA), " "Akretion", 11 | "website": "https://github.com/OCA/bank-payment", 12 | "depends": [ 13 | "account_payment_sale", 14 | "sale_commercial_partner", 15 | "account_banking_mandate", 16 | ], 17 | "data": [ 18 | "views/sale_order.xml", 19 | ], 20 | "installable": True, 21 | } 22 | -------------------------------------------------------------------------------- /account_banking_sepa_direct_debit/readme/DESCRIPTION.rst: -------------------------------------------------------------------------------- 1 | Create SEPA files for Direct Debit 2 | 3 | Module to export direct debit payment orders in SEPA XML file format. 4 | 5 | SEPA PAIN (PAyment INitiation) is the new european standard for 6 | Customer-to-Bank payment instructions. This module implements SEPA Direct 7 | Debit (SDD), more specifically PAIN versions 008.001.02, 008.001.03 and 8 | 008.001.04. It is part of the ISO 20022 standard, available on 9 | http://www.iso20022.org. 10 | 11 | The Implementation Guidelines for SEPA Direct Debit published by the European 12 | Payments Council (http://http://www.europeanpaymentscouncil.eu) use PAIN 13 | version 008.001.02. So if you don't know which version your bank supports, you 14 | should try version 008.001.02 first. 15 | -------------------------------------------------------------------------------- /account_payment_order/wizard/account_invoice_payment_line_multi.py: -------------------------------------------------------------------------------- 1 | # © 2016 Akretion () 2 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). 3 | 4 | from odoo import models 5 | 6 | 7 | class AccountInvoicePaymentLineMulti(models.TransientModel): 8 | _name = "account.invoice.payment.line.multi" 9 | _description = "Create payment lines from invoice tree view" 10 | 11 | def run(self): 12 | self.ensure_one() 13 | assert ( 14 | self._context["active_model"] == "account.move" 15 | ), "Active model should be account.move" 16 | invoices = self.env["account.move"].browse(self._context["active_ids"]) 17 | action = invoices.create_account_payment_line() 18 | return action 19 | -------------------------------------------------------------------------------- /account_payment_mode/views/account_journal.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | usability.account_journal.form 5 | account.journal 6 | 7 | 8 | 11 | 12 | 1 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /account_banking_mandate/views/account_payment_method.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | account_banking_mandate.account.payment.method.form 5 | account.payment.method 6 | 10 | 11 | 12 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /account_payment_order/views/account_payment_method.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | account.payment.method.form (in account_payment_order) 9 | account.payment.method 10 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /account_payment_sale/views/sale_order_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | account_payment_sale.sale_order.form 9 | sale.order 10 | 11 | 12 | 13 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /account_banking_sepa_direct_debit/data/report_paperformat.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | European A4 low margin for SEPA 5 | 6 | A4 7 | 0 8 | 0 9 | Portrait 10 | 10 11 | 10 12 | 5 13 | 5 14 | 15 | 0 16 | 80 17 | 18 | 19 | -------------------------------------------------------------------------------- /account_banking_mandate/security/mandate_security.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | Banking Mandate multi-company 9 | 10 | ['|', ('company_id', '=', False), ('company_id', 'in', company_ids)] 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /account_banking_sepa_credit_transfer/readme/DESCRIPTION.rst: -------------------------------------------------------------------------------- 1 | Module to export payment orders in SEPA XML file format. 2 | 3 | SEPA PAIN (PAyment INitiation) is the new european standard for 4 | Customer-to-Bank payment instructions. This module implements SEPA Credit 5 | Transfer (SCT), more specifically PAIN versions 001.001.02, 001.001.03, 6 | 001.001.04 and 001.001.05. It is part of the ISO 20022 standard, available on 7 | https://www.iso20022.org. 8 | 9 | The Implementation Guidelines for SEPA Credit Transfer published by the 10 | European Payments Council (https://www.europeanpaymentscouncil.eu) use 11 | PAIN version 001.001.03, so it's probably the version of PAIN that you should 12 | try first. 13 | 14 | It also includes pain.001.003.03 which is used in Germany instead of 001.001.03. 15 | You can read more about this here (only in german language): 16 | http://www.ebics.de/startseite/ 17 | -------------------------------------------------------------------------------- /account_banking_sepa_credit_transfer/__manifest__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2010-2020 Akretion (www.akretion.com) 2 | # Copyright 2016-2020 Tecnativa - Antonio Espinosa and Pedro M. Baeza 3 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html) 4 | 5 | { 6 | "name": "Account Banking SEPA Credit Transfer", 7 | "summary": "Create SEPA XML files for Credit Transfers", 8 | "version": "14.0.1.2.0", 9 | "license": "AGPL-3", 10 | "author": "Akretion, " "Tecnativa, " "Odoo Community Association (OCA)", 11 | "website": "https://github.com/OCA/bank-payment", 12 | "category": "Banking addons", 13 | "conflicts": ["account_sepa"], 14 | "depends": ["account_banking_pain_base"], 15 | "data": ["data/account_payment_method.xml"], 16 | "demo": ["demo/sepa_credit_transfer_demo.xml"], 17 | "post_init_hook": "update_bank_journals", 18 | "installable": True, 19 | } 20 | -------------------------------------------------------------------------------- /account_banking_sepa_direct_debit/models/bank_payment_line.py: -------------------------------------------------------------------------------- 1 | # Copyright 2020 Akretion - Alexis de Lattre 2 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). 3 | 4 | from odoo import models 5 | 6 | 7 | class BankPaymentLine(models.Model): 8 | _inherit = "bank.payment.line" 9 | 10 | def move_line_offsetting_account_hashcode(self): 11 | """ 12 | From my experience, even when you ask several direct debits 13 | at the same date with enough delay, you will have several credits 14 | on your bank statement: one for each mandate types. 15 | So we split the transfer move lines by mandate type, so easier 16 | reconciliation of the bank statement. 17 | """ 18 | hashcode = super().move_line_offsetting_account_hashcode() 19 | hashcode += "-" + str(self.mandate_id.recurrent_sequence_type) 20 | return hashcode 21 | -------------------------------------------------------------------------------- /account_banking_sepa_direct_debit/data/mandate_expire_cron.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | Set SEPA Direct Debit Mandates to Expired 9 | 10 | 11 | code 12 | model._sdd_mandate_set_state_to_expired() 13 | 1 14 | days 15 | -1 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /account_payment_purchase_stock/models/stock_rule.py: -------------------------------------------------------------------------------- 1 | # Copyright 2015 Tecnativa - Pedro M. Baeza 2 | # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html 3 | 4 | from odoo import models 5 | 6 | 7 | class StockRule(models.Model): 8 | _inherit = "stock.rule" 9 | 10 | def _prepare_purchase_order(self, company_id, origins, values): 11 | """Propagate payment mode on MTO/drop shipping.""" 12 | res = super()._prepare_purchase_order(company_id, origins, values) 13 | values = values[0] 14 | partner = values["supplier"].name 15 | if partner: 16 | res["payment_mode_id"] = partner.with_company( 17 | self.company_id.id 18 | ).supplier_payment_mode_id.id 19 | res["supplier_partner_bank_id"] = self.env[ 20 | "purchase.order" 21 | ]._get_default_supplier_partner_bank(partner) 22 | return res 23 | -------------------------------------------------------------------------------- /account_payment_mode/__manifest__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2016-2020 Akretion France () 2 | # @author: Alexis de Lattre 3 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). 4 | 5 | { 6 | "name": "Account Payment Mode", 7 | "version": "14.0.1.0.2", 8 | "development_status": "Production/Stable", 9 | "license": "AGPL-3", 10 | "author": "Akretion,Odoo Community Association (OCA)", 11 | "website": "https://github.com/OCA/bank-payment", 12 | "category": "Banking addons", 13 | "depends": ["account"], 14 | "data": [ 15 | "security/account_payment_mode.xml", 16 | "security/ir.model.access.csv", 17 | "views/account_payment_method.xml", 18 | "views/account_payment_mode.xml", 19 | "views/account_journal.xml", 20 | ], 21 | "demo": ["demo/payment_demo.xml"], 22 | "installable": True, 23 | } 24 | -------------------------------------------------------------------------------- /account_banking_mandate/models/bank_payment_line.py: -------------------------------------------------------------------------------- 1 | # Copyright 2014 Compassion CH - Cyril Sester 2 | # Copyright 2014 Serv. Tecnol. Avanzados - Pedro M. Baeza 3 | # Copyright 2015-16 Akretion - Alexis de Lattre 4 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). 5 | 6 | from odoo import api, fields, models 7 | 8 | 9 | class BankPaymentLine(models.Model): 10 | _inherit = "bank.payment.line" 11 | 12 | mandate_id = fields.Many2one( 13 | comodel_name="account.banking.mandate", 14 | string="Direct Debit Mandate", 15 | related="payment_line_ids.mandate_id", 16 | check_company=True, 17 | ) 18 | 19 | @api.model 20 | def same_fields_payment_line_and_bank_payment_line(self): 21 | res = super().same_fields_payment_line_and_bank_payment_line() 22 | res.append("mandate_id") 23 | return res 24 | -------------------------------------------------------------------------------- /account_payment_order/models/res_bank.py: -------------------------------------------------------------------------------- 1 | # © 2015-2016 Akretion - Alexis de Lattre 2 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). 3 | 4 | from odoo import _, api, models 5 | from odoo.exceptions import ValidationError 6 | 7 | 8 | class ResBank(models.Model): 9 | _inherit = "res.bank" 10 | 11 | @api.constrains("bic") 12 | def check_bic_length(self): 13 | for bank in self: 14 | if bank.bic and len(bank.bic) not in (8, 11): 15 | raise ValidationError( 16 | _( 17 | "A valid BIC contains 8 or 11 characters. The BIC '%s' " 18 | "contains %d characters, so it is not valid." 19 | ) 20 | % (bank.bic, len(bank.bic)) 21 | ) 22 | 23 | 24 | # starting from v9, on res.partner.bank bank_bic is a related of bank_id.bic 25 | -------------------------------------------------------------------------------- /account_payment_partner/readme/DESCRIPTION.rst: -------------------------------------------------------------------------------- 1 | This module adds several fields: 2 | 3 | * the *Supplier Payment Mode* and *Customer Payment Mode* on Partners, 4 | 5 | * the *Payment Mode* on Invoices. 6 | 7 | * the *Show bank account* on Payment Mode. 8 | 9 | * the *# of digits for customer bank account* on Payment Mode. 10 | 11 | * the *Bank account from journals* on Payment Mode. 12 | 13 | * the *Payment mode* on Invoices Analysis. 14 | 15 | On a Payment Order, in the wizard *Select Invoices to Pay*, the invoices will 16 | be filtered per Payment Mode. 17 | 18 | Allows to print in the invoice to which account number the payment 19 | (via SEPA direct debit) is going to be charged so the customer knows that 20 | information, but there are some customers that don't want that everyone 21 | looking at the invoice sees the full account number (and even GDPR can say a 22 | word about that), so that's the reason behind the several options. 23 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: python 2 | cache: 3 | directories: 4 | - $HOME/.cache/pip 5 | - $HOME/.cache/pre-commit 6 | 7 | python: 8 | - "3.6" 9 | 10 | addons: 11 | postgresql: "9.6" 12 | apt: 13 | packages: 14 | - expect-dev # provides unbuffer utility 15 | 16 | stages: 17 | - test 18 | 19 | jobs: 20 | include: 21 | - stage: test 22 | env: 23 | - TESTS=1 ODOO_REPO="odoo/odoo" MAKEPOT="1" 24 | - stage: test 25 | env: 26 | - TESTS=1 ODOO_REPO="OCA/OCB" 27 | env: 28 | global: 29 | - VERSION="14.0" TESTS="0" LINT_CHECK="0" MAKEPOT="0" 30 | - MQT_DEP=PIP 31 | 32 | install: 33 | - git clone --depth=1 https://github.com/OCA/maintainer-quality-tools.git 34 | ${HOME}/maintainer-quality-tools 35 | - export PATH=${HOME}/maintainer-quality-tools/travis:${PATH} 36 | - travis_install_nightly 37 | 38 | script: 39 | - travis_run_tests 40 | 41 | after_success: 42 | - travis_after_tests_success 43 | -------------------------------------------------------------------------------- /account_payment_order_return/i18n/ca_ES.po: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # * account_payment_order_return 4 | # 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: Odoo Server 12.0\n" 8 | "Report-Msgid-Bugs-To: \n" 9 | "Last-Translator: Automatically generated\n" 10 | "Language-Team: none\n" 11 | "Language: ca_ES\n" 12 | "MIME-Version: 1.0\n" 13 | "Content-Type: text/plain; charset=UTF-8\n" 14 | "Content-Transfer-Encoding: \n" 15 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 16 | 17 | #. module: account_payment_order_return 18 | #: model:ir.model.fields,field_description:account_payment_order_return.field_account_payment_line_create__include_returned 19 | msgid "Include move lines from returns" 20 | msgstr "" 21 | 22 | #. module: account_payment_order_return 23 | #: model:ir.model,name:account_payment_order_return.model_account_payment_line_create 24 | msgid "Wizard to create payment lines" 25 | msgstr "" 26 | -------------------------------------------------------------------------------- /account_payment_partner/models/account_move_line.py: -------------------------------------------------------------------------------- 1 | # Copyright 2016 Akretion (http://www.akretion.com/) 2 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). 3 | 4 | from odoo import api, fields, models 5 | 6 | 7 | class AccountMoveLine(models.Model): 8 | _inherit = "account.move.line" 9 | 10 | payment_mode_id = fields.Many2one( 11 | comodel_name="account.payment.mode", 12 | compute="_compute_payment_mode", 13 | store=True, 14 | ondelete="restrict", 15 | index=True, 16 | ) 17 | 18 | @api.depends("move_id.payment_mode_id") 19 | def _compute_payment_mode(self): 20 | for line in self: 21 | if line.move_id.is_invoice() and line.account_internal_type in ( 22 | "receivable", 23 | "payable", 24 | ): 25 | line.payment_mode_id = line.move_id.payment_mode_id 26 | else: 27 | line.payment_mode_id = False 28 | -------------------------------------------------------------------------------- /account_payment_partner/views/res_partner_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | account_partner_payment.partner_form 9 | res.partner 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /account_payment_partner/views/account_move_line.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | account_payment_partner.move_line_form 9 | account.move.line 10 | 11 | 12 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /account_payment_order/report/print_account_payment_order.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | Payment Order 8 | account.payment.order 9 | qweb-pdf 10 | account_payment_order.print_account_payment_order_main 13 | account_payment_order.print_account_payment_order_main 16 | 20 | report 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /account_banking_mandate_sale/views/sale_order.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | account_banking_mandate_sale.sale_order.form 10 | sale.order 11 | 12 | 13 | 14 | 15 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /account_payment_order/readme/CONTRIBUTORS.rst: -------------------------------------------------------------------------------- 1 | * Stéphane Bidoul 2 | * Alexis de Lattre 3 | * Adrien Peiffer 4 | * Stefan Rijnhart 5 | * Laurent Mignon 6 | * Alexandre Fayolle 7 | * Danimar Ribeiro 8 | * Erwin van der Ploeg 9 | * Raphaël Valyi 10 | * Sandy Carter 11 | * Angel Moya 12 | * Jose María Alzaga 13 | * Meyomesse Gilles 14 | * `DynApps `_: 15 | 16 | * Raf Ven 17 | * Andrea Stirpe 18 | * `Jarsa `_: 19 | 20 | * Alan Ramos 21 | * `Tecnativa `_: 22 | 23 | * Pedro M. Baeza 24 | * Carlos Dauden 25 | * Carlos Roca 26 | 27 | * `Open Source Integrators `_: 28 | 29 | * Ammar Officewala 30 | -------------------------------------------------------------------------------- /account_banking_sepa_credit_transfer/demo/sepa_credit_transfer_demo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SEPA Credit Transfer to suppliers 6 | 7 | variable 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /account_banking_sepa_direct_debit/views/account_payment_mode.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | Add SEPA identifiers on payment mode form 8 | account.payment.mode 9 | 13 | 14 | 15 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /account_payment_purchase/views/purchase_order_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | account_payment_purchase.purchase_order.form 8 | purchase.order 9 | 10 | 11 | 12 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /account_payment_order_return/i18n/es.po: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # * account_payment_order_return 4 | # 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: Odoo Server 9.0c\n" 8 | "Report-Msgid-Bugs-To: \n" 9 | "POT-Creation-Date: 2017-10-13 08:31+0000\n" 10 | "PO-Revision-Date: 2017-10-13 08:31+0000\n" 11 | "Last-Translator: <>\n" 12 | "Language-Team: \n" 13 | "Language: \n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: \n" 17 | "Plural-Forms: \n" 18 | 19 | #. module: account_payment_order_return 20 | #: model:ir.model.fields,field_description:account_payment_order_return.field_account_payment_line_create__include_returned 21 | msgid "Include move lines from returns" 22 | msgstr "Incluir efectos devueltos" 23 | 24 | #. module: account_payment_order_return 25 | #: model:ir.model,name:account_payment_order_return.model_account_payment_line_create 26 | msgid "Wizard to create payment lines" 27 | msgstr "Asistente para crear líneas de pago" 28 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | /.venv 5 | /.pytest_cache 6 | 7 | # C extensions 8 | *.so 9 | 10 | # Distribution / packaging 11 | .Python 12 | env/ 13 | bin/ 14 | build/ 15 | develop-eggs/ 16 | dist/ 17 | eggs/ 18 | lib/ 19 | lib64/ 20 | parts/ 21 | sdist/ 22 | var/ 23 | *.egg-info/ 24 | .installed.cfg 25 | *.egg 26 | *.eggs 27 | 28 | # Installer logs 29 | pip-log.txt 30 | pip-delete-this-directory.txt 31 | 32 | # Unit test / coverage reports 33 | htmlcov/ 34 | .tox/ 35 | .coverage 36 | .cache 37 | nosetests.xml 38 | coverage.xml 39 | 40 | # Translations 41 | *.mo 42 | 43 | # Pycharm 44 | .idea 45 | 46 | # Eclipse 47 | .settings 48 | 49 | # Visual Studio cache/options directory 50 | .vs/ 51 | .vscode 52 | 53 | # OSX Files 54 | .DS_Store 55 | 56 | # Django stuff: 57 | *.log 58 | 59 | # Mr Developer 60 | .mr.developer.cfg 61 | .project 62 | .pydevproject 63 | 64 | # Rope 65 | .ropeproject 66 | 67 | # Sphinx documentation 68 | docs/_build/ 69 | 70 | # Backup files 71 | *~ 72 | *.swp 73 | 74 | # OCA rules 75 | !static/lib/ 76 | -------------------------------------------------------------------------------- /account_payment_partner/reports/account_invoice_report_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | account.invoice.report.search 9 | account.invoice.report 10 | 11 | 12 | 13 | 14 | 15 | 16 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /account_banking_mandate/views/account_move_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | add.mandate.on.account.move.form 9 | account.move 10 | 11 | 12 | 13 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /account_banking_pain_base/models/bank_payment_line.py: -------------------------------------------------------------------------------- 1 | # Copyright 2013-2016 Akretion - Alexis de Lattre 2 | # Copyright 2021 Tecnativa - Carlos Roca 3 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). 4 | 5 | from odoo import api, fields, models 6 | 7 | 8 | class BankPaymentLine(models.Model): 9 | _inherit = "bank.payment.line" 10 | 11 | priority = fields.Selection(related="payment_line_ids.priority", string="Priority") 12 | local_instrument = fields.Selection( 13 | related="payment_line_ids.local_instrument", string="Local Instrument" 14 | ) 15 | category_purpose = fields.Selection( 16 | related="payment_line_ids.category_purpose", string="Category Purpose" 17 | ) 18 | purpose = fields.Selection(related="payment_line_ids.purpose") 19 | 20 | @api.model 21 | def same_fields_payment_line_and_bank_payment_line(self): 22 | res = super().same_fields_payment_line_and_bank_payment_line() 23 | res += ["priority", "local_instrument", "category_purpose", "purpose"] 24 | return res 25 | -------------------------------------------------------------------------------- /account_payment_partner/__manifest__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2014 Akretion - Alexis de Lattre 2 | # Copyright 2014 Tecnativa - Pedro M. Baeza 3 | # Copyright 2018 Tecnativa - Carlos Dauden 4 | # Copyright 2021 Tecnativa - Víctor Martínez 5 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). 6 | 7 | { 8 | "name": "Account Payment Partner", 9 | "version": "14.0.1.3.3", 10 | "category": "Banking addons", 11 | "license": "AGPL-3", 12 | "summary": "Adds payment mode on partners and invoices", 13 | "author": "Akretion, Tecnativa, Odoo Community Association (OCA)", 14 | "website": "https://github.com/OCA/bank-payment", 15 | "depends": ["account_payment_mode"], 16 | "data": [ 17 | "views/res_partner_view.xml", 18 | "views/account_move_view.xml", 19 | "views/account_move_line.xml", 20 | "views/account_payment_mode.xml", 21 | "views/report_invoice.xml", 22 | "reports/account_invoice_report_view.xml", 23 | ], 24 | "demo": ["demo/partner_demo.xml"], 25 | "installable": True, 26 | } 27 | -------------------------------------------------------------------------------- /account_banking_pain_base/models/res_config_settings.py: -------------------------------------------------------------------------------- 1 | # Copyright 2016 Akretion - Alexis de Lattre 2 | # Copyright 2017 Tecnativa - Pedro M. Baeza 3 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). 4 | 5 | from odoo import fields, models 6 | 7 | 8 | class ResConfigSettings(models.TransientModel): 9 | _inherit = "res.config.settings" 10 | 11 | initiating_party_issuer = fields.Char( 12 | related="company_id.initiating_party_issuer", readonly=False 13 | ) 14 | initiating_party_identifier = fields.Char( 15 | related="company_id.initiating_party_identifier", readonly=False 16 | ) 17 | initiating_party_scheme = fields.Char( 18 | related="company_id.initiating_party_scheme", readonly=False 19 | ) 20 | group_pain_multiple_identifier = fields.Boolean( 21 | string="Multiple identifiers", 22 | implied_group="account_banking_pain_base." "group_pain_multiple_identifier", 23 | help="Enable this option if your country requires several SEPA/PAIN " 24 | "identifiers like in Spain.", 25 | ) 26 | -------------------------------------------------------------------------------- /account_banking_sepa_direct_debit/views/res_config_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | sepa_direct_debit.account_config_settings.form 5 | 6 | res.config.settings 7 | 11 | 12 | 13 |
14 |
23 |
24 |
25 |
26 |
27 | -------------------------------------------------------------------------------- /account_banking_mandate/migrations/14.0.1.0.0/post-migrate.py: -------------------------------------------------------------------------------- 1 | # Copyright 2021 Opener B.V. - Stefan Rijnhart 2 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). 3 | import logging 4 | 5 | from odoo.tools.sql import column_exists 6 | 7 | 8 | def migrate(cr, version): 9 | logger = logging.getLogger( 10 | "odoo.addons.account_banking_mandate.migrations.14.0.1.0.0" 11 | ) 12 | if not column_exists(cr, "account_move_line", "mandate_id"): 13 | logger.warning( 14 | "Column account_move_line.mandate_id not found when " 15 | "populating account_move.mandate_id" 16 | ) 17 | return 18 | logger.info( 19 | "Populating account_move.mandate_id from obsolete " 20 | "account_move_line.mandate_id" 21 | ) 22 | cr.execute( 23 | """ 24 | UPDATE account_move am 25 | SET mandate_id = aml.mandate_id 26 | FROM account_move_line aml 27 | WHERE aml.mandate_id IS NOT NULL 28 | AND am.mandate_id IS NULL 29 | AND am.id=aml.move_id 30 | """ 31 | ) 32 | -------------------------------------------------------------------------------- /account_payment_order/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | access_account_payment_order,Full access on account.payment.order to Payment Manager,model_account_payment_order,group_account_payment,1,1,1,1 3 | access_account_payment_line,Full access on account.payment.line to Payment Manager,model_account_payment_line,group_account_payment,1,1,1,1 4 | access_bank_payment_line,Full access on bank.payment.line to Payment Manager,model_bank_payment_line,group_account_payment,1,1,1,1 5 | base.access_res_partner_bank_group_partner_manager,Full access on res.partner.bank to Account Payment group,base.model_res_partner_bank,group_account_payment,1,1,1,1 6 | base.access_res_bank_group_partner_manager,Full access on res.bank to Account Payment group,base.model_res_bank,group_account_payment,1,1,1,1 7 | access_account_payment_line_create,access_account_payment_line_create,model_account_payment_line_create,group_account_payment,1,1,1,1 8 | access_account_invoice_payment_line_multi,access_account_invoice_payment_line_multi,model_account_invoice_payment_line_multi,group_account_payment,1,1,1,1 9 | -------------------------------------------------------------------------------- /account_payment_partner/models/res_partner.py: -------------------------------------------------------------------------------- 1 | # Copyright 2014 Akretion - Alexis de Lattre 2 | # Copyright 2014 Tecnativa - Pedro M. Baeza 3 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). 4 | 5 | from odoo import api, fields, models 6 | 7 | 8 | class ResPartner(models.Model): 9 | _inherit = "res.partner" 10 | 11 | supplier_payment_mode_id = fields.Many2one( 12 | comodel_name="account.payment.mode", 13 | company_dependent=True, 14 | check_company=True, 15 | domain="[('payment_type', '=', 'outbound')]", 16 | help="Select the default payment mode for this supplier.", 17 | ) 18 | customer_payment_mode_id = fields.Many2one( 19 | comodel_name="account.payment.mode", 20 | company_dependent=True, 21 | check_company=True, 22 | domain="[('payment_type', '=', 'inbound')]", 23 | help="Select the default payment mode for this customer.", 24 | ) 25 | 26 | @api.model 27 | def _commercial_fields(self): 28 | res = super()._commercial_fields() 29 | res += ["supplier_payment_mode_id", "customer_payment_mode_id"] 30 | return res 31 | -------------------------------------------------------------------------------- /account_payment_order/models/account_journal.py: -------------------------------------------------------------------------------- 1 | # Copyright 2019 ACSONE SA/NV 2 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). 3 | 4 | from odoo import api, fields, models 5 | 6 | 7 | class AccountJournal(models.Model): 8 | _inherit = "account.journal" 9 | 10 | inbound_payment_order_only = fields.Boolean( 11 | compute="_compute_inbound_payment_order_only", readonly=True, store=True 12 | ) 13 | outbound_payment_order_only = fields.Boolean( 14 | compute="_compute_outbound_payment_order_only", readonly=True, store=True 15 | ) 16 | 17 | @api.depends("inbound_payment_method_ids.payment_order_only") 18 | def _compute_inbound_payment_order_only(self): 19 | for rec in self: 20 | rec.inbound_payment_order_only = all( 21 | p.payment_order_only for p in rec.inbound_payment_method_ids 22 | ) 23 | 24 | @api.depends("outbound_payment_method_ids.payment_order_only") 25 | def _compute_outbound_payment_order_only(self): 26 | for rec in self: 27 | rec.outbound_payment_order_only = all( 28 | p.payment_order_only for p in rec.outbound_payment_method_ids 29 | ) 30 | -------------------------------------------------------------------------------- /setup/_metapackage/setup.py: -------------------------------------------------------------------------------- 1 | import setuptools 2 | 3 | with open('VERSION.txt', 'r') as f: 4 | version = f.read().strip() 5 | 6 | setuptools.setup( 7 | name="odoo14-addons-oca-bank-payment", 8 | description="Meta package for oca-bank-payment Odoo addons", 9 | version=version, 10 | install_requires=[ 11 | 'odoo14-addon-account_banking_mandate', 12 | 'odoo14-addon-account_banking_mandate_sale', 13 | 'odoo14-addon-account_banking_pain_base', 14 | 'odoo14-addon-account_banking_sepa_credit_transfer', 15 | 'odoo14-addon-account_banking_sepa_direct_debit', 16 | 'odoo14-addon-account_invoice_select_for_payment', 17 | 'odoo14-addon-account_payment_mode', 18 | 'odoo14-addon-account_payment_order', 19 | 'odoo14-addon-account_payment_order_return', 20 | 'odoo14-addon-account_payment_partner', 21 | 'odoo14-addon-account_payment_purchase', 22 | 'odoo14-addon-account_payment_purchase_stock', 23 | 'odoo14-addon-account_payment_sale', 24 | ], 25 | classifiers=[ 26 | 'Programming Language :: Python', 27 | 'Framework :: Odoo', 28 | 'Framework :: Odoo :: 14.0', 29 | ] 30 | ) 31 | -------------------------------------------------------------------------------- /account_banking_pain_base/__manifest__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2013-2016 Akretion - Alexis de Lattre 2 | # Copyright 2014-2017 Tecnativa - Pedro M. Baeza 3 | # Copyright 2016 Tecnativa - Antonio Espinosa 4 | # Copyright 2021 Tecnativa - Carlos Roca 5 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). 6 | 7 | { 8 | "name": "Account Banking PAIN Base Module", 9 | "summary": "Base module for PAIN file generation", 10 | "version": "14.0.1.0.1", 11 | "license": "AGPL-3", 12 | "author": "Akretion, Noviat, Tecnativa, Odoo Community Association (OCA)", 13 | "website": "https://github.com/OCA/bank-payment", 14 | "category": "Hidden", 15 | "depends": ["account_payment_order"], 16 | "external_dependencies": {"python": ["unidecode", "lxml"]}, 17 | "data": [ 18 | "security/security.xml", 19 | "views/account_payment_line.xml", 20 | "views/account_payment_order.xml", 21 | "views/bank_payment_line_view.xml", 22 | "views/account_payment_mode.xml", 23 | "views/res_config_settings.xml", 24 | "views/account_payment_method.xml", 25 | ], 26 | "post_init_hook": "set_default_initiating_party", 27 | "installable": True, 28 | } 29 | -------------------------------------------------------------------------------- /account_banking_mandate/views/res_partner.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | mandate.res.partner.form 9 | res.partner 10 | 11 | 12 | 16 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /account_payment_purchase_stock/i18n/account_payment_purchase_stock.pot: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # * account_payment_purchase_stock 4 | # 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: Odoo Server 14.0\n" 8 | "Report-Msgid-Bugs-To: \n" 9 | "Last-Translator: \n" 10 | "Language-Team: \n" 11 | "MIME-Version: 1.0\n" 12 | "Content-Type: text/plain; charset=UTF-8\n" 13 | "Content-Transfer-Encoding: \n" 14 | "Plural-Forms: \n" 15 | 16 | #. module: account_payment_purchase_stock 17 | #: model:ir.model.fields,field_description:account_payment_purchase_stock.field_stock_rule__display_name 18 | msgid "Display Name" 19 | msgstr "" 20 | 21 | #. module: account_payment_purchase_stock 22 | #: model:ir.model.fields,field_description:account_payment_purchase_stock.field_stock_rule__id 23 | msgid "ID" 24 | msgstr "" 25 | 26 | #. module: account_payment_purchase_stock 27 | #: model:ir.model.fields,field_description:account_payment_purchase_stock.field_stock_rule____last_update 28 | msgid "Last Modified on" 29 | msgstr "" 30 | 31 | #. module: account_payment_purchase_stock 32 | #: model:ir.model,name:account_payment_purchase_stock.model_stock_rule 33 | msgid "Stock Rule" 34 | msgstr "" 35 | -------------------------------------------------------------------------------- /account_payment_order_return/i18n/de.po: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # * account_payment_order_return 4 | # 5 | # Translators: 6 | # Akim Juillerat , 2017 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: Odoo Server 9.0c\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2017-10-15 00:40+0000\n" 12 | "PO-Revision-Date: 2017-10-15 00:40+0000\n" 13 | "Last-Translator: Akim Juillerat , 2017\n" 14 | "Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n" 15 | "Language: de\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: \n" 19 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 20 | 21 | #. module: account_payment_order_return 22 | #: model:ir.model.fields,field_description:account_payment_order_return.field_account_payment_line_create__include_returned 23 | msgid "Include move lines from returns" 24 | msgstr "" 25 | 26 | #. module: account_payment_order_return 27 | #: model:ir.model,name:account_payment_order_return.model_account_payment_line_create 28 | msgid "Wizard to create payment lines" 29 | msgstr "Assistent zum Anlegen von Zahlungszeilen" 30 | -------------------------------------------------------------------------------- /account_banking_sepa_direct_debit/__manifest__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2013-2020 Akretion (www.akretion.com) 2 | # Copyright 2014-2020 Tecnativa - Pedro M. Baeza & Antonio Espinosa 3 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). 4 | 5 | { 6 | "name": "Account Banking SEPA Direct Debit", 7 | "summary": "Create SEPA files for Direct Debit", 8 | "version": "14.0.1.3.0", 9 | "license": "AGPL-3", 10 | "author": "Akretion, " "Tecnativa, " "Odoo Community Association (OCA)", 11 | "website": "https://github.com/OCA/bank-payment", 12 | "category": "Banking addons", 13 | "depends": ["account_banking_pain_base", "account_banking_mandate"], 14 | "external_dependencies": {"python": ["stdnum"]}, 15 | "data": [ 16 | "views/account_banking_mandate_view.xml", 17 | "views/res_config_settings.xml", 18 | "views/account_payment_mode.xml", 19 | "data/mandate_expire_cron.xml", 20 | "data/account_payment_method.xml", 21 | "data/report_paperformat.xml", 22 | "reports/sepa_direct_debit_mandate.xml", 23 | "views/report_sepa_direct_debit_mandate.xml", 24 | ], 25 | "demo": ["demo/sepa_direct_debit_demo.xml"], 26 | "post_init_hook": "update_bank_journals", 27 | "installable": True, 28 | } 29 | -------------------------------------------------------------------------------- /account_payment_order_return/i18n/ca.po: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # * account_payment_order_return 4 | # 5 | # Translators: 6 | # Marc Tormo i Bochaca , 2017 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: Odoo Server 9.0c\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2017-10-15 00:40+0000\n" 12 | "PO-Revision-Date: 2019-10-07 09:24+0000\n" 13 | "Last-Translator: Jaume Planas \n" 14 | "Language-Team: Catalan (https://www.transifex.com/oca/teams/23907/ca/)\n" 15 | "Language: ca\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: \n" 19 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 20 | "X-Generator: Weblate 3.8\n" 21 | 22 | #. module: account_payment_order_return 23 | #: model:ir.model.fields,field_description:account_payment_order_return.field_account_payment_line_create__include_returned 24 | msgid "Include move lines from returns" 25 | msgstr "Inclou apunts de les devolucions" 26 | 27 | #. module: account_payment_order_return 28 | #: model:ir.model,name:account_payment_order_return.model_account_payment_line_create 29 | msgid "Wizard to create payment lines" 30 | msgstr "Assistent per crear línies de pagament" 31 | -------------------------------------------------------------------------------- /account_payment_order_return/i18n/fr.po: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # * account_payment_order_return 4 | # 5 | # Translators: 6 | # OCA Transbot , 2017 7 | # Quentin THEURET , 2017 8 | msgid "" 9 | msgstr "" 10 | "Project-Id-Version: Odoo Server 9.0c\n" 11 | "Report-Msgid-Bugs-To: \n" 12 | "POT-Creation-Date: 2017-12-02 02:22+0000\n" 13 | "PO-Revision-Date: 2017-12-02 02:22+0000\n" 14 | "Last-Translator: Quentin THEURET , 2017\n" 15 | "Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" 16 | "Language: fr\n" 17 | "MIME-Version: 1.0\n" 18 | "Content-Type: text/plain; charset=UTF-8\n" 19 | "Content-Transfer-Encoding: \n" 20 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" 21 | 22 | #. module: account_payment_order_return 23 | #: model:ir.model.fields,field_description:account_payment_order_return.field_account_payment_line_create__include_returned 24 | msgid "Include move lines from returns" 25 | msgstr "Inclure les écritures depuis les retours" 26 | 27 | #. module: account_payment_order_return 28 | #: model:ir.model,name:account_payment_order_return.model_account_payment_line_create 29 | msgid "Wizard to create payment lines" 30 | msgstr "Assistant pour créer des lignes de paiement" 31 | -------------------------------------------------------------------------------- /account_banking_mandate/__manifest__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2014 Compassion CH - Cyril Sester 2 | # Copyright 2014 Tecnativa - Pedro M. Baeza 3 | # Copyright 2015-2020 Akretion - Alexis de Lattre 4 | # Copyright 2017 Tecnativa - Carlos Dauden 5 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). 6 | 7 | { 8 | "name": "Account Banking Mandate", 9 | "summary": "Banking mandates", 10 | "version": "14.0.1.1.1", 11 | "license": "AGPL-3", 12 | "author": "Compassion CH, " 13 | "Tecnativa, " 14 | "Akretion, " 15 | "Odoo Community Association (OCA)", 16 | "website": "https://github.com/OCA/bank-payment", 17 | "category": "Banking addons", 18 | "depends": ["account_payment_order"], 19 | "data": [ 20 | "views/account_banking_mandate_view.xml", 21 | "views/account_payment_method.xml", 22 | "views/account_move_view.xml", 23 | "views/account_payment_line.xml", 24 | "views/res_partner_bank_view.xml", 25 | "views/res_partner.xml", 26 | "views/bank_payment_line_view.xml", 27 | "data/mandate_reference_sequence.xml", 28 | "security/mandate_security.xml", 29 | "security/ir.model.access.csv", 30 | ], 31 | "installable": True, 32 | } 33 | -------------------------------------------------------------------------------- /account_banking_sepa_direct_debit/models/res_company.py: -------------------------------------------------------------------------------- 1 | # Copyright 2013-2016 Akretion - Alexis de Lattre 2 | # Copyright 2014 Tecnativa - Pedro M. Baeza 3 | # Copyright 2016 Tecnativa - Antonio Espinosa 4 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). 5 | 6 | from stdnum.eu.at_02 import is_valid 7 | 8 | from odoo import _, api, fields, models 9 | from odoo.exceptions import ValidationError 10 | 11 | 12 | class ResCompany(models.Model): 13 | _inherit = "res.company" 14 | 15 | sepa_creditor_identifier = fields.Char( 16 | string="SEPA Creditor Identifier", 17 | size=35, 18 | help="Enter the Creditor Identifier that has been attributed to your " 19 | "company to make SEPA Direct Debits. This identifier is composed " 20 | "of :\n- your country ISO code (2 letters)\n- a 2-digits " 21 | "checkum\n- a 3-letters business code\n- a country-specific " 22 | "identifier", 23 | ) 24 | 25 | @api.constrains("sepa_creditor_identifier") 26 | def _check_sepa_creditor_identifier(self): 27 | for company in self: 28 | ics = company.sepa_creditor_identifier 29 | if ics and not is_valid(ics): 30 | raise ValidationError( 31 | _("The SEPA Creditor Identifier '%s' is invalid.") % ics 32 | ) 33 | -------------------------------------------------------------------------------- /account_payment_order/views/ir_attachment.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ir.attachment.simplified.form 6 | ir.attachment 7 | 8 | 9 |
10 | 11 | 25 |
26 |
27 |
28 |
29 | -------------------------------------------------------------------------------- /account_payment_partner/demo/partner_demo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | Default Supplier Payment Mode 9 | 13 | 17 | 18 | 19 | 24 | Default Customer Payment Mode 25 | 29 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /account_payment_order/data/payment_seq.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | Bank Payment Line 11 | bank.payment.line 12 | L 13 | 5 14 | 15 | 16 | 17 | Payment Line 18 | account.payment.line 19 | P 20 | 5 21 | 22 | 23 | 24 | Payment Order 25 | account.payment.order 26 | PAY 27 | 4 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /account_banking_mandate/models/account_move_line.py: -------------------------------------------------------------------------------- 1 | # Copyright Akretion (http://www.akretion.com/) 2 | # Copyright 2017 Carlos Dauden 3 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). 4 | 5 | 6 | from odoo import models 7 | 8 | 9 | class AccountMoveLine(models.Model): 10 | _inherit = "account.move.line" 11 | 12 | def _prepare_payment_line_vals(self, payment_order): 13 | vals = super()._prepare_payment_line_vals(payment_order) 14 | if payment_order.payment_type != "inbound": 15 | return vals 16 | mandate = self.move_id.mandate_id 17 | if not mandate and vals.get("mandate_id", False): 18 | mandate = mandate.browse(vals["mandate_id"]) 19 | partner_bank_id = vals.get("partner_bank_id", False) 20 | if not mandate: 21 | if partner_bank_id: 22 | domain = [("partner_bank_id", "=", partner_bank_id)] 23 | else: 24 | domain = [("partner_id", "=", self.partner_id.id)] 25 | domain.append(("state", "=", "valid")) 26 | mandate = mandate.search(domain, limit=1) 27 | vals.update( 28 | { 29 | "mandate_id": mandate.id, 30 | "partner_bank_id": mandate.partner_bank_id.id or partner_bank_id, 31 | } 32 | ) 33 | return vals 34 | -------------------------------------------------------------------------------- /account_banking_pain_base/models/res_bank.py: -------------------------------------------------------------------------------- 1 | # Copyright 2019 ACSONE SA/NV 2 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). 3 | 4 | import re 5 | 6 | from odoo import _, api, models 7 | from odoo.exceptions import ValidationError 8 | 9 | BIC_REGEX = re.compile(r"[A-Z]{6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3})?$") 10 | 11 | 12 | class ResBank(models.Model): 13 | _inherit = "res.bank" 14 | 15 | @api.constrains("bic") 16 | def _check_bic(self): 17 | """ 18 | This method strengthens the constraint on the BIC of the bank account 19 | (The account_payment_order module already checks the length in the 20 | check_bic_length method). 21 | :raise: ValidationError if the BIC doesn't respect the regex of the 22 | SEPA pain schemas. 23 | """ 24 | invalid_banks = self.filtered(lambda r: r.bic and not BIC_REGEX.match(r.bic)) 25 | if invalid_banks: 26 | raise ValidationError( 27 | _( 28 | "The following Bank Identifier Codes (BIC) do not respect " 29 | "the SEPA pattern:\n{bic_list}\n\nSEPA pattern: " 30 | "{sepa_pattern}" 31 | ).format( 32 | sepa_pattern=BIC_REGEX.pattern, 33 | bic_list="\n".join(invalid_banks.mapped("bic")), 34 | ) 35 | ) 36 | -------------------------------------------------------------------------------- /account_banking_sepa_direct_debit/models/account_payment_method.py: -------------------------------------------------------------------------------- 1 | # Copyright 2020 Akretion (Alexis de Lattre ) 2 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). 3 | 4 | from odoo import fields, models 5 | 6 | 7 | class AccountPaymentMethod(models.Model): 8 | _inherit = "account.payment.method" 9 | 10 | pain_version = fields.Selection( 11 | selection_add=[ 12 | ("pain.008.001.02", "pain.008.001.02 (recommended for direct debit)"), 13 | ("pain.008.001.03", "pain.008.001.03"), 14 | ("pain.008.001.04", "pain.008.001.04"), 15 | ("pain.008.003.02", "pain.008.003.02 (direct debit in Germany)"), 16 | ], 17 | ondelete={ 18 | "pain.008.001.02": "set null", 19 | "pain.008.001.03": "set null", 20 | "pain.008.001.04": "set null", 21 | "pain.008.003.02": "set null", 22 | }, 23 | ) 24 | 25 | def get_xsd_file_path(self): 26 | self.ensure_one() 27 | if self.pain_version in [ 28 | "pain.008.001.02", 29 | "pain.008.001.03", 30 | "pain.008.001.04", 31 | "pain.008.003.02", 32 | ]: 33 | path = "account_banking_sepa_direct_debit/data/%s.xsd" % self.pain_version 34 | return path 35 | return super().get_xsd_file_path() 36 | -------------------------------------------------------------------------------- /account_banking_sepa_direct_debit/models/account_payment_mode.py: -------------------------------------------------------------------------------- 1 | # Copyright 2016 Tecnativa - Antonio Espinosa 2 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). 3 | 4 | from stdnum.eu.at_02 import is_valid 5 | 6 | from odoo import _, api, fields, models 7 | from odoo.exceptions import ValidationError 8 | 9 | 10 | class AccountPaymentMode(models.Model): 11 | _inherit = "account.payment.mode" 12 | 13 | sepa_creditor_identifier = fields.Char( 14 | string="SEPA Creditor Identifier", 15 | size=35, 16 | help="Enter the Creditor Identifier that has been attributed to your " 17 | "company to make SEPA Direct Debits. If not defined, " 18 | "SEPA Creditor Identifier from company will be used.\n" 19 | "This identifier is composed of :\n" 20 | "- your country ISO code (2 letters)\n" 21 | "- a 2-digits checkum\n" 22 | "- a 3-letters business code\n" 23 | "- a country-specific identifier", 24 | ) 25 | 26 | @api.constrains("sepa_creditor_identifier") 27 | def _check_sepa_creditor_identifier(self): 28 | for payment_mode in self: 29 | ics = payment_mode.sepa_creditor_identifier 30 | if ics and not is_valid(ics): 31 | raise ValidationError( 32 | _("The SEPA Creditor Identifier '%s' is invalid.") % ics 33 | ) 34 | -------------------------------------------------------------------------------- /account_payment_purchase/models/account_invoice.py: -------------------------------------------------------------------------------- 1 | # Copyright 2016 Akretion (). 2 | # Copyright 2017 Tecnativa - Vicent Cubells. 3 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). 4 | 5 | from odoo import _, api, models 6 | 7 | 8 | class AccountMove(models.Model): 9 | _inherit = "account.move" 10 | 11 | @api.onchange("purchase_vendor_bill_id", "purchase_id") 12 | def _onchange_purchase_auto_complete(self): 13 | new_mode = self.purchase_id.payment_mode_id.id or False 14 | new_bank = self.purchase_id.supplier_partner_bank_id.id or False 15 | res = super()._onchange_purchase_auto_complete() or {} 16 | if self.payment_mode_id and new_mode and self.payment_mode_id.id != new_mode: 17 | res["warning"] = { 18 | "title": _("Warning"), 19 | "message": _("Selected purchase order have different payment mode."), 20 | } 21 | return res 22 | self.payment_mode_id = new_mode 23 | if self.partner_bank_id and new_bank and self.partner_bank_id.id != new_bank: 24 | res["warning"] = { 25 | "title": _("Warning"), 26 | "message": _("Selected purchase order have different supplier bank."), 27 | } 28 | return res 29 | self.partner_bank_id = new_bank 30 | return res 31 | -------------------------------------------------------------------------------- /account_banking_pain_base/models/account_payment_method.py: -------------------------------------------------------------------------------- 1 | # Copyright 2016 Akretion (Alexis de Lattre ) 2 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). 3 | 4 | from odoo import _, fields, models 5 | from odoo.exceptions import UserError 6 | 7 | 8 | class AccountPaymentMethod(models.Model): 9 | _inherit = "account.payment.method" 10 | 11 | pain_version = fields.Selection([], string="PAIN Version") 12 | convert_to_ascii = fields.Boolean( 13 | string="Convert to ASCII", 14 | default=True, 15 | help="If active, Odoo will convert each accented character to " 16 | "the corresponding unaccented character, so that only ASCII " 17 | "characters are used in the generated PAIN file.", 18 | ) 19 | 20 | def get_xsd_file_path(self): 21 | """This method is designed to be inherited in the SEPA modules""" 22 | self.ensure_one() 23 | raise UserError(_("No XSD file path found for payment method '%s'") % self.name) 24 | 25 | _sql_constraints = [ 26 | ( 27 | # Extending this constraint from account_payment_mode 28 | "code_payment_type_unique", 29 | "unique(code, payment_type, pain_version)", 30 | "A payment method of the same type already exists with this code" 31 | " and PAIN version", 32 | ) 33 | ] 34 | -------------------------------------------------------------------------------- /account_banking_pain_base/views/account_payment_mode.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | pain_base.account.payment.mode.form 10 | account.payment.mode 11 | 15 | 16 | 17 | 21 | 25 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /account_banking_pain_base/views/account_payment_method.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | pain_base.account_payment_method.form 5 | account.payment.method 6 | 10 | 11 | 12 | 13 | 17 | 18 | 19 | 20 | 21 | pain_base.account_payment_method.tree 22 | account.payment.method 23 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /account_payment_purchase_stock/i18n/fr_FR.po: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # * account_payment_purchase_stock 4 | # 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: Odoo Server 14.0\n" 8 | "Report-Msgid-Bugs-To: \n" 9 | "PO-Revision-Date: 2021-04-10 14:47+0000\n" 10 | "Last-Translator: Yves Le Doeuff \n" 11 | "Language-Team: none\n" 12 | "Language: fr_FR\n" 13 | "MIME-Version: 1.0\n" 14 | "Content-Type: text/plain; charset=UTF-8\n" 15 | "Content-Transfer-Encoding: \n" 16 | "Plural-Forms: nplurals=2; plural=n > 1;\n" 17 | "X-Generator: Weblate 4.3.2\n" 18 | 19 | #. module: account_payment_purchase_stock 20 | #: model:ir.model.fields,field_description:account_payment_purchase_stock.field_stock_rule__display_name 21 | msgid "Display Name" 22 | msgstr "Nom affiché" 23 | 24 | #. module: account_payment_purchase_stock 25 | #: model:ir.model.fields,field_description:account_payment_purchase_stock.field_stock_rule__id 26 | msgid "ID" 27 | msgstr "" 28 | 29 | #. module: account_payment_purchase_stock 30 | #: model:ir.model.fields,field_description:account_payment_purchase_stock.field_stock_rule____last_update 31 | msgid "Last Modified on" 32 | msgstr "Dernière modification" 33 | 34 | #. module: account_payment_purchase_stock 35 | #: model:ir.model,name:account_payment_purchase_stock.model_stock_rule 36 | msgid "Stock Rule" 37 | msgstr "Règle de stockage" 38 | -------------------------------------------------------------------------------- /account_payment_purchase_stock/i18n/es_AR.po: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # * account_payment_purchase_stock 4 | # 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: Odoo Server 14.0\n" 8 | "Report-Msgid-Bugs-To: \n" 9 | "PO-Revision-Date: 2021-04-01 03:48+0000\n" 10 | "Last-Translator: Ignacio Buioli \n" 11 | "Language-Team: none\n" 12 | "Language: es_AR\n" 13 | "MIME-Version: 1.0\n" 14 | "Content-Type: text/plain; charset=UTF-8\n" 15 | "Content-Transfer-Encoding: \n" 16 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 17 | "X-Generator: Weblate 4.3.2\n" 18 | 19 | #. module: account_payment_purchase_stock 20 | #: model:ir.model.fields,field_description:account_payment_purchase_stock.field_stock_rule__display_name 21 | msgid "Display Name" 22 | msgstr "Mostrar Nombre" 23 | 24 | #. module: account_payment_purchase_stock 25 | #: model:ir.model.fields,field_description:account_payment_purchase_stock.field_stock_rule__id 26 | msgid "ID" 27 | msgstr "ID" 28 | 29 | #. module: account_payment_purchase_stock 30 | #: model:ir.model.fields,field_description:account_payment_purchase_stock.field_stock_rule____last_update 31 | msgid "Last Modified on" 32 | msgstr "Última modificación en" 33 | 34 | #. module: account_payment_purchase_stock 35 | #: model:ir.model,name:account_payment_purchase_stock.model_stock_rule 36 | msgid "Stock Rule" 37 | msgstr "Regla de Inventario" 38 | -------------------------------------------------------------------------------- /account_payment_purchase_stock/i18n/it.po: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # * account_payment_purchase_stock 4 | # 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: Odoo Server 14.0\n" 8 | "Report-Msgid-Bugs-To: \n" 9 | "PO-Revision-Date: 2021-12-03 12:36+0000\n" 10 | "Last-Translator: Francesco Foresti \n" 11 | "Language-Team: none\n" 12 | "Language: it\n" 13 | "MIME-Version: 1.0\n" 14 | "Content-Type: text/plain; charset=UTF-8\n" 15 | "Content-Transfer-Encoding: \n" 16 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 17 | "X-Generator: Weblate 4.3.2\n" 18 | 19 | #. module: account_payment_purchase_stock 20 | #: model:ir.model.fields,field_description:account_payment_purchase_stock.field_stock_rule__display_name 21 | msgid "Display Name" 22 | msgstr "Nome da visualizzare" 23 | 24 | #. module: account_payment_purchase_stock 25 | #: model:ir.model.fields,field_description:account_payment_purchase_stock.field_stock_rule__id 26 | msgid "ID" 27 | msgstr "ID" 28 | 29 | #. module: account_payment_purchase_stock 30 | #: model:ir.model.fields,field_description:account_payment_purchase_stock.field_stock_rule____last_update 31 | msgid "Last Modified on" 32 | msgstr "Ultima modifica il" 33 | 34 | #. module: account_payment_purchase_stock 35 | #: model:ir.model,name:account_payment_purchase_stock.model_stock_rule 36 | msgid "Stock Rule" 37 | msgstr "Regola" 38 | -------------------------------------------------------------------------------- /account_banking_sepa_direct_debit/readme/CONFIGURE.rst: -------------------------------------------------------------------------------- 1 | For setting the SEPA creditor identifier: 2 | 3 | #. Go to Invoicing/Accounting > Configuration > Settings. 4 | #. On the field "SEPA Creditor Identifier" in the section *SEPA/PAIN*, you can 5 | fill the corresponding identifier. 6 | 7 | If your country requires several identifiers (like Spain), you must: 8 | 9 | #. Go to *Invoicing/Accounting > Configuration > Settings*. 10 | #. On the section *SEPA/PAIN*, check the mark "Multiple identifiers". 11 | #. Now go to *Invoicing/Accounting > Configuration > Management > Payment Modes*. 12 | #. Create a payment mode for your specific bank. 13 | #. Fill the specific identifier on the field "SEPA Creditor Identifier". 14 | 15 | For defining a payment mode that uses SEPA direct debit: 16 | 17 | #. Go to *Invoicing/Accounting > Configuration > Management > Payment Modes*. 18 | #. Create a record. 19 | #. Select the Payment Method *SEPA Direct Debit for customers* (which is 20 | automatically created upon module installation). 21 | #. Check that this payment method uses the proper version of PAIN. 22 | #. If not, go *Invoicing/Accounting > Configuration > Management > Payment Methods*. 23 | #. Locate the "SEPA Direct Debit for customers" record and open it. 24 | #. Change the "PAIN version" according your needs. 25 | #. If you need to handle several PAIN versions, just duplicate the payment 26 | method adjusting this field on each for having them. 27 | -------------------------------------------------------------------------------- /account_banking_pain_base/views/bank_payment_line_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | pain.base.bank.payment.line.form 9 | bank.payment.line 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | pain.base.bank.payment.line.tree 22 | bank.payment.line 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /account_payment_sale/i18n/zh_CN.po: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # * account_payment_sale 4 | # 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: Odoo Server 12.0\n" 8 | "Report-Msgid-Bugs-To: \n" 9 | "PO-Revision-Date: 2019-09-04 04:23+0000\n" 10 | "Last-Translator: 黎伟杰 <674416404@qq.com>\n" 11 | "Language-Team: none\n" 12 | "Language: zh_CN\n" 13 | "MIME-Version: 1.0\n" 14 | "Content-Type: text/plain; charset=UTF-8\n" 15 | "Content-Transfer-Encoding: \n" 16 | "Plural-Forms: nplurals=1; plural=0;\n" 17 | "X-Generator: Weblate 3.8\n" 18 | 19 | #. module: account_payment_sale 20 | #: model_terms:ir.ui.view,arch_db:account_payment_sale.report_sale_payment_mode 21 | msgid "Payment Mode:" 22 | msgstr "付款方式:" 23 | 24 | #. module: account_payment_sale 25 | #: model:ir.model,name:account_payment_sale.model_account_move 26 | msgid "Journal Entries" 27 | msgstr "" 28 | 29 | #. module: account_payment_sale 30 | #: model:ir.model.fields,field_description:account_payment_sale.field_sale_order__payment_mode_id 31 | msgid "Payment Mode" 32 | msgstr "付款方式" 33 | 34 | #. module: account_payment_sale 35 | #: model:ir.model,name:account_payment_sale.model_sale_advance_payment_inv 36 | msgid "Sales Advance Payment Invoice" 37 | msgstr "销售预付款发票" 38 | 39 | #. module: account_payment_sale 40 | #: model:ir.model,name:account_payment_sale.model_sale_order 41 | #, fuzzy 42 | msgid "Sales Order" 43 | msgstr "销售订单" 44 | -------------------------------------------------------------------------------- /account_payment_order/wizard/account_invoice_payment_line_multi_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | account_invoice_payment_line_multi.form 9 | account.invoice.payment.line.multi 10 | 11 |
12 |

This wizard will create payment lines for the selected invoices:

13 |
    14 |
  • if there are existing draft payment orders for the payment modes of the invoices, the payment lines will be added to those payment orders
  • 16 |
  • otherwise, new payment orders will be created (one per payment mode).
  • 18 |
19 |
20 |
28 |
29 |
30 |
31 |
32 | -------------------------------------------------------------------------------- /account_banking_mandate/views/res_partner_bank_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | mandate.res.partner.bank.form 9 | res.partner.bank 10 | 11 | 12 | 13 | 14 | 19 | 20 | 21 | 22 | 23 | 24 | mandate.res.partner.bank.tree 25 | res.partner.bank 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /account_payment_order_return/i18n/account_payment_order_return.pot: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # * account_payment_order_return 4 | # 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: Odoo Server 14.0\n" 8 | "Report-Msgid-Bugs-To: \n" 9 | "Last-Translator: \n" 10 | "Language-Team: \n" 11 | "MIME-Version: 1.0\n" 12 | "Content-Type: text/plain; charset=UTF-8\n" 13 | "Content-Transfer-Encoding: \n" 14 | "Plural-Forms: \n" 15 | 16 | #. module: account_payment_order_return 17 | #: model:ir.model.fields,field_description:account_payment_order_return.field_account_payment_line_create__display_name 18 | msgid "Display Name" 19 | msgstr "" 20 | 21 | #. module: account_payment_order_return 22 | #: model:ir.model.fields,field_description:account_payment_order_return.field_account_payment_line_create__id 23 | msgid "ID" 24 | msgstr "" 25 | 26 | #. module: account_payment_order_return 27 | #: model:ir.model.fields,field_description:account_payment_order_return.field_account_payment_line_create__include_returned 28 | msgid "Include move lines from returns" 29 | msgstr "" 30 | 31 | #. module: account_payment_order_return 32 | #: model:ir.model.fields,field_description:account_payment_order_return.field_account_payment_line_create____last_update 33 | msgid "Last Modified on" 34 | msgstr "" 35 | 36 | #. module: account_payment_order_return 37 | #: model:ir.model,name:account_payment_order_return.model_account_payment_line_create 38 | msgid "Wizard to create payment lines" 39 | msgstr "" 40 | -------------------------------------------------------------------------------- /account_payment_partner/views/account_payment_mode.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | account.payment.mode 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 20 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /account_payment_order/models/account_payment.py: -------------------------------------------------------------------------------- 1 | # Copyright 2019 ACSONE SA/NV 2 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). 3 | 4 | from odoo import api, models 5 | 6 | 7 | class AccountPayment(models.Model): 8 | _inherit = "account.payment" 9 | 10 | def _get_default_journal(self): 11 | res = super()._get_default_journal() 12 | return res.filtered(lambda journal: not journal.inbound_payment_order_only) 13 | 14 | @api.depends( 15 | "payment_type", 16 | "journal_id.inbound_payment_method_ids", 17 | "journal_id.outbound_payment_method_ids", 18 | ) 19 | def _compute_payment_method_fields(self): 20 | res = super()._compute_payment_method_fields() 21 | for pay in self: 22 | if pay.payment_type == "inbound": 23 | pay.available_payment_method_ids = ( 24 | pay.journal_id.inbound_payment_method_ids.filtered( 25 | lambda m: not m.payment_order_only 26 | ) 27 | ) 28 | else: 29 | pay.available_payment_method_ids = ( 30 | pay.journal_id.outbound_payment_method_ids.filtered( 31 | lambda m: not m.payment_order_only 32 | ) 33 | ) 34 | 35 | pay.hide_payment_method = ( 36 | len(pay.available_payment_method_ids) == 1 37 | and pay.available_payment_method_ids.code == "manual" 38 | ) 39 | return res 40 | -------------------------------------------------------------------------------- /account_banking_pain_base/views/account_payment_line.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | pain.base.account.payment.line 9 | account.payment.line 10 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | pain.base.account.payment.tree 25 | account.payment.line 26 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /account_payment_sale/i18n/da_DK.po: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # * account_payment_sale 4 | # 5 | # Translators: 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: bank-payment (10.0)\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2017-08-18 00:42+0000\n" 11 | "PO-Revision-Date: 2016-10-19 23:47+0000\n" 12 | "Last-Translator: <>\n" 13 | "Language-Team: Danish (Denmark) (http://www.transifex.com/oca/OCA-bank-" 14 | "payment-10-0/language/da_DK/)\n" 15 | "Language: da_DK\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: \n" 19 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 20 | 21 | #. module: account_payment_sale 22 | #: model_terms:ir.ui.view,arch_db:account_payment_sale.report_sale_payment_mode 23 | msgid "Payment Mode:" 24 | msgstr "" 25 | 26 | #. module: account_payment_sale 27 | #: model:ir.model,name:account_payment_sale.model_account_move 28 | msgid "Journal Entries" 29 | msgstr "" 30 | 31 | #. module: account_payment_sale 32 | #: model:ir.model.fields,field_description:account_payment_sale.field_sale_order__payment_mode_id 33 | msgid "Payment Mode" 34 | msgstr "Betalingsform" 35 | 36 | #. module: account_payment_sale 37 | #: model:ir.model,name:account_payment_sale.model_sale_advance_payment_inv 38 | msgid "Sales Advance Payment Invoice" 39 | msgstr "" 40 | 41 | #. module: account_payment_sale 42 | #: model:ir.model,name:account_payment_sale.model_sale_order 43 | msgid "Sales Order" 44 | msgstr "" 45 | -------------------------------------------------------------------------------- /account_payment_sale/i18n/es_AR.po: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # * account_payment_sale 4 | # 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: Odoo Server 13.0\n" 8 | "Report-Msgid-Bugs-To: \n" 9 | "PO-Revision-Date: 2020-08-22 01:59+0000\n" 10 | "Last-Translator: Ignacio Buioli \n" 11 | "Language-Team: none\n" 12 | "Language: es_AR\n" 13 | "MIME-Version: 1.0\n" 14 | "Content-Type: text/plain; charset=UTF-8\n" 15 | "Content-Transfer-Encoding: \n" 16 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 17 | "X-Generator: Weblate 3.10\n" 18 | 19 | #. module: account_payment_sale 20 | #: model_terms:ir.ui.view,arch_db:account_payment_sale.report_sale_payment_mode 21 | msgid "Payment Mode:" 22 | msgstr "Modo de Pago:" 23 | 24 | #. module: account_payment_sale 25 | #: model:ir.model,name:account_payment_sale.model_account_move 26 | msgid "Journal Entries" 27 | msgstr "Asientos Contables" 28 | 29 | #. module: account_payment_sale 30 | #: model:ir.model.fields,field_description:account_payment_sale.field_sale_order__payment_mode_id 31 | msgid "Payment Mode" 32 | msgstr "Modo de Pago" 33 | 34 | #. module: account_payment_sale 35 | #: model:ir.model,name:account_payment_sale.model_sale_advance_payment_inv 36 | msgid "Sales Advance Payment Invoice" 37 | msgstr "Factura de Anticipo de Ventas" 38 | 39 | #. module: account_payment_sale 40 | #: model:ir.model,name:account_payment_sale.model_sale_order 41 | msgid "Sales Order" 42 | msgstr "Pedido de Ventas" 43 | -------------------------------------------------------------------------------- /account_banking_sepa_direct_debit/reports/sepa_direct_debit_mandate.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 15 | 16 | 17 | SEPA Mandate 18 | account.banking.mandate 19 | qweb-pdf 20 | account_banking_sepa_direct_debit.sepa_direct_debit_mandate 23 | account_banking_sepa_direct_debit.sepa_direct_debit_mandate 26 | 30 | 'Mandate-%s-%s' % (object.unique_mandate_reference, object.partner_id and object.partner_id.name.replace(' ', '_') or '') 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /account_banking_mandate/views/bank_payment_line_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | banking.mandate.bank.payment.line.form 9 | bank.payment.line 10 | 11 | 12 | 13 | 17 | 18 | 19 | 20 | 21 | banking.mandate.bank.payment.line.tree 22 | bank.payment.line 23 | 24 | 25 | 26 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /account_banking_sepa_credit_transfer/models/account_payment_method.py: -------------------------------------------------------------------------------- 1 | # Copyright 2016-2020 Akretion (Alexis de Lattre ) 2 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). 3 | 4 | from odoo import fields, models 5 | 6 | 7 | class AccountPaymentMethod(models.Model): 8 | _inherit = "account.payment.method" 9 | 10 | pain_version = fields.Selection( 11 | selection_add=[ 12 | ("pain.001.001.02", "pain.001.001.02"), 13 | ("pain.001.001.03", "pain.001.001.03 " "(recommended for credit transfer)"), 14 | ("pain.001.001.04", "pain.001.001.04"), 15 | ("pain.001.001.05", "pain.001.001.05"), 16 | ("pain.001.003.03", "pain.001.003.03 (credit transfer in Germany)"), 17 | ], 18 | ondelete={ 19 | "pain.001.001.02": "set null", 20 | "pain.001.001.03": "set null", 21 | "pain.001.001.04": "set null", 22 | "pain.001.001.05": "set null", 23 | "pain.001.003.03": "set null", 24 | }, 25 | ) 26 | 27 | def get_xsd_file_path(self): 28 | self.ensure_one() 29 | if self.pain_version in [ 30 | "pain.001.001.02", 31 | "pain.001.001.03", 32 | "pain.001.001.04", 33 | "pain.001.001.05", 34 | "pain.001.003.03", 35 | ]: 36 | path = ( 37 | "account_banking_sepa_credit_transfer/data/%s.xsd" % self.pain_version 38 | ) 39 | return path 40 | return super().get_xsd_file_path() 41 | -------------------------------------------------------------------------------- /account_payment_sale/models/sale_order.py: -------------------------------------------------------------------------------- 1 | # Copyright 2014-2020 Akretion - Alexis de Lattre 2 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). 3 | 4 | from odoo import api, fields, models 5 | 6 | 7 | class SaleOrder(models.Model): 8 | _inherit = "sale.order" 9 | 10 | payment_mode_id = fields.Many2one( 11 | comodel_name="account.payment.mode", 12 | compute="_compute_payment_mode", 13 | store=True, 14 | readonly=False, 15 | check_company=True, 16 | domain="[('payment_type', '=', 'inbound'), ('company_id', '=', company_id)]", 17 | ) 18 | 19 | @api.depends("partner_id") 20 | def _compute_payment_mode(self): 21 | for order in self: 22 | if order.partner_id: 23 | order.payment_mode_id = order.partner_id.customer_payment_mode_id 24 | else: 25 | order.payment_mode_id = False 26 | 27 | def _get_payment_mode_vals(self, vals): 28 | if self.payment_mode_id: 29 | vals["payment_mode_id"] = self.payment_mode_id.id 30 | if ( 31 | self.payment_mode_id.bank_account_link == "fixed" 32 | and self.payment_mode_id.payment_method_id.code == "manual" 33 | ): 34 | vals[ 35 | "partner_bank_id" 36 | ] = self.payment_mode_id.fixed_journal_id.bank_account_id.id 37 | 38 | def _prepare_invoice(self): 39 | """Copy bank partner from sale order to invoice""" 40 | vals = super()._prepare_invoice() 41 | self._get_payment_mode_vals(vals) 42 | return vals 43 | -------------------------------------------------------------------------------- /account_banking_pain_base/views/account_payment_order.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | pain.base.account.payment.order.form 9 | account.payment.order 10 | 14 | 15 | 16 | 17 | 18 | 22 | 23 | 24 | 25 | 26 | pain.base.account.payment.order.tree 27 | account.payment.order 28 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /account_invoice_select_for_payment/views/account_move.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | account.move 5 | 6 | 7 | 8 | 13 | 14 | 15 | 16 | 17 | account.move.select 18 | account.move 19 | 20 | 21 | 22 | 23 | 28 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /account_payment_order/demo/payment_demo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 13 | 14 | 15 | 19 | 20 | 21 | 25 | 26 | 27 | 31 | 32 | 36 | 37 | 41 | 42 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /account_payment_sale/i18n/nl_NL.po: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # * account_payment_sale 4 | # 5 | # Translators: 6 | # Peter Hageman , 2017 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: bank-payment (10.0)\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2017-08-18 00:42+0000\n" 12 | "PO-Revision-Date: 2017-11-20 14:01+0000\n" 13 | "Last-Translator: Peter Hageman \n" 14 | "Language-Team: Dutch (Netherlands) (http://www.transifex.com/oca/OCA-bank-" 15 | "payment-10-0/language/nl_NL/)\n" 16 | "Language: nl_NL\n" 17 | "MIME-Version: 1.0\n" 18 | "Content-Type: text/plain; charset=UTF-8\n" 19 | "Content-Transfer-Encoding: \n" 20 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 21 | 22 | #. module: account_payment_sale 23 | #: model_terms:ir.ui.view,arch_db:account_payment_sale.report_sale_payment_mode 24 | msgid "Payment Mode:" 25 | msgstr "" 26 | 27 | #. module: account_payment_sale 28 | #: model:ir.model,name:account_payment_sale.model_account_move 29 | msgid "Journal Entries" 30 | msgstr "" 31 | 32 | #. module: account_payment_sale 33 | #: model:ir.model.fields,field_description:account_payment_sale.field_sale_order__payment_mode_id 34 | msgid "Payment Mode" 35 | msgstr "" 36 | 37 | #. module: account_payment_sale 38 | #: model:ir.model,name:account_payment_sale.model_sale_advance_payment_inv 39 | msgid "Sales Advance Payment Invoice" 40 | msgstr "" 41 | 42 | #. module: account_payment_sale 43 | #: model:ir.model,name:account_payment_sale.model_sale_order 44 | #, fuzzy 45 | msgid "Sales Order" 46 | msgstr "Verkooporder" 47 | -------------------------------------------------------------------------------- /account_banking_mandate/models/res_partner_bank.py: -------------------------------------------------------------------------------- 1 | # Copyright 2014 Compassion CH - Cyril Sester 2 | # Copyright 2014 Tecnativa - Pedro M. Baeza 3 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). 4 | 5 | from odoo import _, api, fields, models 6 | from odoo.exceptions import ValidationError 7 | 8 | 9 | class ResPartnerBank(models.Model): 10 | _inherit = "res.partner.bank" 11 | 12 | mandate_ids = fields.One2many( 13 | comodel_name="account.banking.mandate", 14 | inverse_name="partner_bank_id", 15 | string="Direct Debit Mandates", 16 | help="Banking mandates represent an authorization that the bank " 17 | "account owner gives to a company for a specific operation.", 18 | ) 19 | 20 | @api.constrains("company_id") 21 | def _company_constrains(self): 22 | for rpb in self: 23 | if rpb.company_id and ( 24 | self.env["account.banking.mandate"] 25 | .sudo() 26 | .search( 27 | [ 28 | ("partner_bank_id", "=", rpb.id), 29 | ("company_id", "!=", rpb.company_id.id), 30 | ], 31 | limit=1, 32 | ) 33 | ): 34 | raise ValidationError( 35 | _( 36 | "You cannot change the company of Partner Bank %s, " 37 | "as there exists mandates referencing it that " 38 | "belong to another company." 39 | ) 40 | % (rpb.display_name,) 41 | ) 42 | -------------------------------------------------------------------------------- /account_payment_sale/i18n/de.po: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # * account_payment_sale 4 | # 5 | # Translators: 6 | # OCA Transbot , 2018 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: Odoo Server 11.0\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2018-02-02 03:43+0000\n" 12 | "PO-Revision-Date: 2018-02-02 03:43+0000\n" 13 | "Last-Translator: OCA Transbot , 2018\n" 14 | "Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n" 15 | "Language: de\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: \n" 19 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 20 | 21 | #. module: account_payment_sale 22 | #: model_terms:ir.ui.view,arch_db:account_payment_sale.report_sale_payment_mode 23 | msgid "Payment Mode:" 24 | msgstr "Zahlungsmethode:" 25 | 26 | #. module: account_payment_sale 27 | #: model:ir.model,name:account_payment_sale.model_account_move 28 | msgid "Journal Entries" 29 | msgstr "" 30 | 31 | #. module: account_payment_sale 32 | #: model:ir.model.fields,field_description:account_payment_sale.field_sale_order__payment_mode_id 33 | msgid "Payment Mode" 34 | msgstr "Zahlungsmodus" 35 | 36 | #. module: account_payment_sale 37 | #: model:ir.model,name:account_payment_sale.model_sale_advance_payment_inv 38 | msgid "Sales Advance Payment Invoice" 39 | msgstr "Verkaufsanzahlungsrechnung" 40 | 41 | #. module: account_payment_sale 42 | #: model:ir.model,name:account_payment_sale.model_sale_order 43 | msgid "Sales Order" 44 | msgstr "" 45 | -------------------------------------------------------------------------------- /account_payment_sale/i18n/sl.po: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # * account_payment_sale 4 | # 5 | # Translators: 6 | # OCA Transbot , 2018 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: Odoo Server 11.0\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2018-02-02 03:43+0000\n" 12 | "PO-Revision-Date: 2018-02-02 03:43+0000\n" 13 | "Last-Translator: OCA Transbot , 2018\n" 14 | "Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n" 15 | "Language: sl\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: \n" 19 | "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" 20 | "%100==4 ? 2 : 3);\n" 21 | 22 | #. module: account_payment_sale 23 | #: model_terms:ir.ui.view,arch_db:account_payment_sale.report_sale_payment_mode 24 | msgid "Payment Mode:" 25 | msgstr "" 26 | 27 | #. module: account_payment_sale 28 | #: model:ir.model,name:account_payment_sale.model_account_move 29 | msgid "Journal Entries" 30 | msgstr "" 31 | 32 | #. module: account_payment_sale 33 | #: model:ir.model.fields,field_description:account_payment_sale.field_sale_order__payment_mode_id 34 | msgid "Payment Mode" 35 | msgstr "Metoda plačila" 36 | 37 | #. module: account_payment_sale 38 | #: model:ir.model,name:account_payment_sale.model_sale_advance_payment_inv 39 | msgid "Sales Advance Payment Invoice" 40 | msgstr "" 41 | 42 | #. module: account_payment_sale 43 | #: model:ir.model,name:account_payment_sale.model_sale_order 44 | msgid "Sales Order" 45 | msgstr "" 46 | -------------------------------------------------------------------------------- /account_payment_sale/i18n/nl.po: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # * account_payment_sale 4 | # 5 | # Translators: 6 | # OCA Transbot , 2018 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: Odoo Server 11.0\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2018-02-02 03:43+0000\n" 12 | "PO-Revision-Date: 2021-04-22 18:47+0000\n" 13 | "Last-Translator: Bosd \n" 14 | "Language-Team: Dutch (https://www.transifex.com/oca/teams/23907/nl/)\n" 15 | "Language: nl\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: \n" 19 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 20 | "X-Generator: Weblate 4.3.2\n" 21 | 22 | #. module: account_payment_sale 23 | #: model_terms:ir.ui.view,arch_db:account_payment_sale.report_sale_payment_mode 24 | msgid "Payment Mode:" 25 | msgstr "Betaalmode:" 26 | 27 | #. module: account_payment_sale 28 | #: model:ir.model,name:account_payment_sale.model_account_move 29 | msgid "Journal Entries" 30 | msgstr "Boekingen" 31 | 32 | #. module: account_payment_sale 33 | #: model:ir.model.fields,field_description:account_payment_sale.field_sale_order__payment_mode_id 34 | msgid "Payment Mode" 35 | msgstr "Betaalwijze" 36 | 37 | #. module: account_payment_sale 38 | #: model:ir.model,name:account_payment_sale.model_sale_advance_payment_inv 39 | msgid "Sales Advance Payment Invoice" 40 | msgstr "Verkoop Incassofactuur" 41 | 42 | #. module: account_payment_sale 43 | #: model:ir.model,name:account_payment_sale.model_sale_order 44 | msgid "Sales Order" 45 | msgstr "" 46 | -------------------------------------------------------------------------------- /account_payment_purchase/models/purchase_order.py: -------------------------------------------------------------------------------- 1 | # Copyright 2016 Akretion (). 2 | # Copyright 2017 Tecnativa - Vicent Cubells. 3 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). 4 | 5 | from odoo import api, fields, models 6 | 7 | 8 | class PurchaseOrder(models.Model): 9 | _inherit = "purchase.order" 10 | 11 | supplier_partner_bank_id = fields.Many2one( 12 | comodel_name="res.partner.bank", 13 | string="Supplier Bank Account", 14 | domain="[('partner_id', '=', partner_id)]", 15 | help="Select the bank account of your supplier on which your company " 16 | "should send the payment. This field is copied from the partner " 17 | "and will be copied to the supplier invoice.", 18 | ) 19 | payment_mode_id = fields.Many2one( 20 | comodel_name="account.payment.mode", 21 | string="Payment Mode", 22 | domain="[('payment_type', '=', 'outbound')]", 23 | ) 24 | 25 | @api.model 26 | def _get_default_supplier_partner_bank(self, partner): 27 | """This function is designed to be inherited""" 28 | return partner.bank_ids and partner.bank_ids[0].id or False 29 | 30 | @api.onchange("partner_id", "company_id") 31 | def onchange_partner_id(self): 32 | super(PurchaseOrder, self).onchange_partner_id() 33 | if self.partner_id: 34 | self.supplier_partner_bank_id = self._get_default_supplier_partner_bank( 35 | self.partner_id 36 | ) 37 | self.payment_mode_id = self.partner_id.supplier_payment_mode_id 38 | else: 39 | self.supplier_partner_bank_id = False 40 | self.payment_mode_id = False 41 | -------------------------------------------------------------------------------- /account_payment_order/report/account_payment_order.py: -------------------------------------------------------------------------------- 1 | # © 2017 Acsone SA/NV () 2 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). 3 | 4 | from odoo import api, models 5 | from odoo.tools.misc import formatLang 6 | 7 | 8 | class AccountPaymentOrderReport(models.AbstractModel): 9 | _name = "report.account_payment_order.print_account_payment_order_main" 10 | _description = "Technical model for printing payment order" 11 | 12 | @api.model 13 | def _get_report_values(self, docids, data=None): 14 | AccountPaymentOrderObj = self.env["account.payment.order"] 15 | docs = AccountPaymentOrderObj.browse(docids) 16 | 17 | return { 18 | "doc_ids": docids, 19 | "doc_model": "account.payment.order", 20 | "docs": docs, 21 | "data": data, 22 | "env": self.env, 23 | "get_bank_account_name": self.get_bank_account_name, 24 | "formatLang": formatLang, 25 | } 26 | 27 | @api.model 28 | def get_bank_account_name(self, partner_bank): 29 | """ 30 | 31 | :param partner_bank: 32 | :return: 33 | """ 34 | if partner_bank: 35 | name = "" 36 | if partner_bank.bank_name: 37 | name = "%s: " % partner_bank.bank_id.name 38 | if partner_bank.acc_number: 39 | name = "{} {}".format(name, partner_bank.acc_number) 40 | if partner_bank.bank_bic: 41 | name = "%s - " % (name) 42 | if partner_bank.bank_bic: 43 | name = "{} BIC {}".format(name, partner_bank.bank_bic) 44 | return name 45 | else: 46 | return False 47 | -------------------------------------------------------------------------------- /account_payment_order/__manifest__.py: -------------------------------------------------------------------------------- 1 | # © 2009 EduSense BV () 2 | # © 2011-2013 Therp BV () 3 | # © 2013-2014 ACSONE SA (). 4 | # © 2014-2016 Tecnativa - Pedro M. Baeza 5 | # © 2016 Akretion (). 6 | # © 2016 Aselcis (). 7 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). 8 | 9 | { 10 | "name": "Account Payment Order", 11 | "version": "14.0.1.4.0", 12 | "license": "AGPL-3", 13 | "author": "ACSONE SA/NV, " 14 | "Therp BV, " 15 | "Tecnativa, " 16 | "Akretion, " 17 | "Odoo Community Association (OCA)", 18 | "website": "https://github.com/OCA/bank-payment", 19 | "category": "Banking addons", 20 | "maintainers": ["iammiracle"], 21 | "external_dependencies": {"python": ["lxml"]}, 22 | "depends": ["account_payment_partner", "base_iban"], # for manual_bank_tranfer 23 | "data": [ 24 | "views/account_payment_method.xml", 25 | "security/payment_security.xml", 26 | "security/ir.model.access.csv", 27 | "wizard/account_payment_line_create_view.xml", 28 | "wizard/account_invoice_payment_line_multi_view.xml", 29 | "views/account_payment_mode.xml", 30 | "views/account_payment_order.xml", 31 | "views/account_payment_line.xml", 32 | "views/bank_payment_line.xml", 33 | "views/account_move_line.xml", 34 | "views/ir_attachment.xml", 35 | "views/account_invoice_view.xml", 36 | "data/payment_seq.xml", 37 | "report/print_account_payment_order.xml", 38 | "report/account_payment_order.xml", 39 | ], 40 | "demo": ["demo/payment_demo.xml"], 41 | "installable": True, 42 | } 43 | -------------------------------------------------------------------------------- /account_payment_sale/i18n/es.po: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # * account_payment_sale 4 | # 5 | # Translators: 6 | # OCA Transbot , 2018 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: Odoo Server 11.0\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2018-02-02 03:43+0000\n" 12 | "PO-Revision-Date: 2022-02-02 14:33+0000\n" 13 | "Last-Translator: Olga Marco Puértolas \n" 14 | "Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" 15 | "Language: es\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: \n" 19 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 20 | "X-Generator: Weblate 4.3.2\n" 21 | 22 | #. module: account_payment_sale 23 | #: model_terms:ir.ui.view,arch_db:account_payment_sale.report_sale_payment_mode 24 | msgid "Payment Mode:" 25 | msgstr "Modo de pago:" 26 | 27 | #. module: account_payment_sale 28 | #: model:ir.model,name:account_payment_sale.model_account_move 29 | msgid "Journal Entries" 30 | msgstr "" 31 | 32 | #. module: account_payment_sale 33 | #: model:ir.model.fields,field_description:account_payment_sale.field_sale_order__payment_mode_id 34 | msgid "Payment Mode" 35 | msgstr "Modo de pago" 36 | 37 | #. module: account_payment_sale 38 | #: model:ir.model,name:account_payment_sale.model_sale_advance_payment_inv 39 | msgid "Sales Advance Payment Invoice" 40 | msgstr "Ventas. Anticipo pago factura" 41 | 42 | #. module: account_payment_sale 43 | #: model:ir.model,name:account_payment_sale.model_sale_order 44 | msgid "Sales Order" 45 | msgstr "Órdenes de venta" 46 | 47 | #~ msgid "Quotation" 48 | #~ msgstr "Presupuesto" 49 | -------------------------------------------------------------------------------- /account_payment_sale/i18n/fr.po: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # * account_payment_sale 4 | # 5 | # Translators: 6 | # OCA Transbot , 2018 7 | # Quentin THEURET , 2018 8 | msgid "" 9 | msgstr "" 10 | "Project-Id-Version: Odoo Server 11.0\n" 11 | "Report-Msgid-Bugs-To: \n" 12 | "POT-Creation-Date: 2018-02-03 02:12+0000\n" 13 | "PO-Revision-Date: 2018-02-03 02:12+0000\n" 14 | "Last-Translator: Quentin THEURET , 2018\n" 15 | "Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" 16 | "Language: fr\n" 17 | "MIME-Version: 1.0\n" 18 | "Content-Type: text/plain; charset=UTF-8\n" 19 | "Content-Transfer-Encoding: \n" 20 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" 21 | 22 | #. module: account_payment_sale 23 | #: model_terms:ir.ui.view,arch_db:account_payment_sale.report_sale_payment_mode 24 | msgid "Payment Mode:" 25 | msgstr "Mode de paiement :" 26 | 27 | #. module: account_payment_sale 28 | #: model:ir.model,name:account_payment_sale.model_account_move 29 | msgid "Journal Entries" 30 | msgstr "" 31 | 32 | #. module: account_payment_sale 33 | #: model:ir.model.fields,field_description:account_payment_sale.field_sale_order__payment_mode_id 34 | msgid "Payment Mode" 35 | msgstr "Mode de paiement" 36 | 37 | #. module: account_payment_sale 38 | #: model:ir.model,name:account_payment_sale.model_sale_advance_payment_inv 39 | msgid "Sales Advance Payment Invoice" 40 | msgstr "Facture de paiement anticipé des ventes" 41 | 42 | #. module: account_payment_sale 43 | #: model:ir.model,name:account_payment_sale.model_sale_order 44 | msgid "Sales Order" 45 | msgstr "" 46 | 47 | #~ msgid "Quotation" 48 | #~ msgstr "Devis" 49 | -------------------------------------------------------------------------------- /account_payment_order_return/i18n/fr_FR.po: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # * account_payment_order_return 4 | # 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: Odoo Server 14.0\n" 8 | "Report-Msgid-Bugs-To: \n" 9 | "PO-Revision-Date: 2021-04-10 16:46+0000\n" 10 | "Last-Translator: Yves Le Doeuff \n" 11 | "Language-Team: none\n" 12 | "Language: fr_FR\n" 13 | "MIME-Version: 1.0\n" 14 | "Content-Type: text/plain; charset=UTF-8\n" 15 | "Content-Transfer-Encoding: \n" 16 | "Plural-Forms: nplurals=2; plural=n > 1;\n" 17 | "X-Generator: Weblate 4.3.2\n" 18 | 19 | #. module: account_payment_order_return 20 | #: model:ir.model.fields,field_description:account_payment_order_return.field_account_payment_line_create__display_name 21 | msgid "Display Name" 22 | msgstr "" 23 | 24 | #. module: account_payment_order_return 25 | #: model:ir.model.fields,field_description:account_payment_order_return.field_account_payment_line_create__id 26 | msgid "ID" 27 | msgstr "" 28 | 29 | #. module: account_payment_order_return 30 | #: model:ir.model.fields,field_description:account_payment_order_return.field_account_payment_line_create__include_returned 31 | msgid "Include move lines from returns" 32 | msgstr "Inclure les lignes d'écritures des retours" 33 | 34 | #. module: account_payment_order_return 35 | #: model:ir.model.fields,field_description:account_payment_order_return.field_account_payment_line_create____last_update 36 | msgid "Last Modified on" 37 | msgstr "Dernière modification" 38 | 39 | #. module: account_payment_order_return 40 | #: model:ir.model,name:account_payment_order_return.model_account_payment_line_create 41 | msgid "Wizard to create payment lines" 42 | msgstr "Assistant pour créer des lignes de paiement" 43 | -------------------------------------------------------------------------------- /account_payment_sale/i18n/pt_BR.po: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # * account_payment_sale 4 | # 5 | # Translators: 6 | # OCA Transbot , 2018 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: Odoo Server 11.0\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2018-02-02 03:43+0000\n" 12 | "PO-Revision-Date: 2020-08-12 18:59+0000\n" 13 | "Last-Translator: Rodrigo Macedo \n" 14 | "Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/teams/" 15 | "23907/pt_BR/)\n" 16 | "Language: pt_BR\n" 17 | "MIME-Version: 1.0\n" 18 | "Content-Type: text/plain; charset=UTF-8\n" 19 | "Content-Transfer-Encoding: \n" 20 | "Plural-Forms: nplurals=2; plural=n > 1;\n" 21 | "X-Generator: Weblate 3.10\n" 22 | 23 | #. module: account_payment_sale 24 | #: model_terms:ir.ui.view,arch_db:account_payment_sale.report_sale_payment_mode 25 | msgid "Payment Mode:" 26 | msgstr "Modo de Pagamento:" 27 | 28 | #. module: account_payment_sale 29 | #: model:ir.model,name:account_payment_sale.model_account_move 30 | msgid "Journal Entries" 31 | msgstr "Entradas diárias" 32 | 33 | #. module: account_payment_sale 34 | #: model:ir.model.fields,field_description:account_payment_sale.field_sale_order__payment_mode_id 35 | msgid "Payment Mode" 36 | msgstr "Modo de Pagamento" 37 | 38 | #. module: account_payment_sale 39 | #: model:ir.model,name:account_payment_sale.model_sale_advance_payment_inv 40 | msgid "Sales Advance Payment Invoice" 41 | msgstr "Fatura de pagamento antecipado de vendas" 42 | 43 | #. module: account_payment_sale 44 | #: model:ir.model,name:account_payment_sale.model_sale_order 45 | msgid "Sales Order" 46 | msgstr "Pedido de Venda" 47 | -------------------------------------------------------------------------------- /account_banking_mandate_sale/i18n/ca_ES.po: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # * account_banking_mandate_sale 4 | # 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: Odoo Server 12.0\n" 8 | "Report-Msgid-Bugs-To: \n" 9 | "Last-Translator: Automatically generated\n" 10 | "Language-Team: none\n" 11 | "Language: ca_ES\n" 12 | "MIME-Version: 1.0\n" 13 | "Content-Type: text/plain; charset=UTF-8\n" 14 | "Content-Transfer-Encoding: \n" 15 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 16 | 17 | #. module: account_banking_mandate_sale 18 | #: model:ir.model.fields,help:account_banking_mandate_sale.field_sale_order__mandate_required 19 | msgid "Activate this option if this payment method requires your customer to sign a direct debit mandate with your company." 20 | msgstr "" 21 | 22 | #. module: account_banking_mandate_sale 23 | #: model:ir.model.fields,field_description:account_banking_mandate_sale.field_sale_order__commercial_partner_id 24 | msgid "Commercial Entity" 25 | msgstr "" 26 | 27 | #. module: account_banking_mandate_sale 28 | #: model:ir.model.fields,field_description:account_banking_mandate_sale.field_sale_order__mandate_id 29 | msgid "Direct Debit Mandate" 30 | msgstr "" 31 | 32 | #. module: account_banking_mandate_sale 33 | #: model:ir.model.fields,field_description:account_banking_mandate_sale.field_sale_order__mandate_required 34 | msgid "Mandate Required" 35 | msgstr "" 36 | 37 | #. module: account_banking_mandate_sale 38 | #: model:ir.model,name:account_banking_mandate_sale.model_sale_order 39 | msgid "Sale Order" 40 | msgstr "" 41 | 42 | #. module: account_banking_mandate_sale 43 | #: model:ir.model,name:account_banking_mandate_sale.model_sale_advance_payment_inv 44 | msgid "Sales Advance Payment Invoice" 45 | msgstr "" 46 | -------------------------------------------------------------------------------- /account_payment_order/security/payment_security.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Accounting / Payments 6 | 10 | 11 | 12 | 13 | 14 | 15 | Payment order multi-company rule 16 | 17 | ['|', ('company_id', '=', False), ('company_id', 'in', company_ids)] 20 | 21 | 22 | Payment line multi-company rule 23 | 24 | ['|', ('company_id', '=', False), ('company_id', 'in', company_ids)] 27 | 28 | 29 | Bank payment line multi-company rule 30 | 31 | ['|', ('company_id', '=', False), ('company_id', 'in', company_ids)] 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /account_payment_order_return/i18n/es_AR.po: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # * account_payment_order_return 4 | # 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: Odoo Server 14.0\n" 8 | "Report-Msgid-Bugs-To: \n" 9 | "PO-Revision-Date: 2021-04-01 03:48+0000\n" 10 | "Last-Translator: Ignacio Buioli \n" 11 | "Language-Team: none\n" 12 | "Language: es_AR\n" 13 | "MIME-Version: 1.0\n" 14 | "Content-Type: text/plain; charset=UTF-8\n" 15 | "Content-Transfer-Encoding: \n" 16 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 17 | "X-Generator: Weblate 4.3.2\n" 18 | 19 | #. module: account_payment_order_return 20 | #: model:ir.model.fields,field_description:account_payment_order_return.field_account_payment_line_create__display_name 21 | msgid "Display Name" 22 | msgstr "Mostrar Nombre" 23 | 24 | #. module: account_payment_order_return 25 | #: model:ir.model.fields,field_description:account_payment_order_return.field_account_payment_line_create__id 26 | msgid "ID" 27 | msgstr "ID" 28 | 29 | #. module: account_payment_order_return 30 | #: model:ir.model.fields,field_description:account_payment_order_return.field_account_payment_line_create__include_returned 31 | msgid "Include move lines from returns" 32 | msgstr "Incluir líneas de movimiento de devoluciones" 33 | 34 | #. module: account_payment_order_return 35 | #: model:ir.model.fields,field_description:account_payment_order_return.field_account_payment_line_create____last_update 36 | msgid "Last Modified on" 37 | msgstr "Última modificación en" 38 | 39 | #. module: account_payment_order_return 40 | #: model:ir.model,name:account_payment_order_return.model_account_payment_line_create 41 | msgid "Wizard to create payment lines" 42 | msgstr "Asistente para crear líneas de pago" 43 | -------------------------------------------------------------------------------- /account_payment_mode/models/account_payment_method.py: -------------------------------------------------------------------------------- 1 | # Copyright 2016-2020 Akretion France (http://www.akretion.com/) 2 | # @author: Alexis de Lattre 3 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). 4 | 5 | from odoo import api, fields, models 6 | 7 | 8 | class AccountPaymentMethod(models.Model): 9 | _inherit = "account.payment.method" 10 | 11 | code = fields.Char( 12 | string="Code (Do Not Modify)", 13 | help="This code is used in the code of the Odoo module that handles " 14 | "this payment method. Therefore, if you change it, " 15 | "the generation of the payment file may fail.", 16 | ) 17 | active = fields.Boolean(default=True) 18 | bank_account_required = fields.Boolean( 19 | help="Activate this option if this payment method requires you to " 20 | "know the bank account number of your customer or supplier." 21 | ) 22 | payment_mode_ids = fields.One2many( 23 | comodel_name="account.payment.mode", 24 | inverse_name="payment_method_id", 25 | string="Payment modes", 26 | ) 27 | 28 | @api.depends("code", "name", "payment_type") 29 | def name_get(self): 30 | result = [] 31 | for method in self: 32 | result.append( 33 | ( 34 | method.id, 35 | "[{}] {} ({})".format( 36 | method.code, method.name, method.payment_type 37 | ), 38 | ) 39 | ) 40 | return result 41 | 42 | _sql_constraints = [ 43 | ( 44 | "code_payment_type_unique", 45 | "unique(code, payment_type)", 46 | "A payment method of the same type already exists with this code", 47 | ) 48 | ] 49 | -------------------------------------------------------------------------------- /account_banking_pain_base/models/account_payment_mode.py: -------------------------------------------------------------------------------- 1 | # Copyright 2013-2016 Akretion - Alexis de Lattre 2 | # Copyright 2014 Serv. Tecnol. Avanzados - Pedro M. Baeza 3 | # Copyright 2016 Antiun Ingenieria S.L. - Antonio Espinosa 4 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). 5 | 6 | from odoo import fields, models 7 | 8 | 9 | class AccountPaymentMode(models.Model): 10 | _inherit = "account.payment.mode" 11 | 12 | initiating_party_issuer = fields.Char( 13 | string="Initiating Party Issuer", 14 | size=35, 15 | help="This will be used as the 'Initiating Party Issuer' in the " 16 | "PAIN files generated by Odoo. If not defined, Initiating Party " 17 | "Issuer from company will be used.\n" 18 | "Common format (13): \n" 19 | "- Country code (2, optional)\n" 20 | "- Company idenfier (N, VAT)\n" 21 | "- Service suffix (N, issued by bank)", 22 | ) 23 | initiating_party_identifier = fields.Char( 24 | string="Initiating Party Identifier", 25 | size=35, 26 | help="This will be used as the 'Initiating Party Identifier' in " 27 | "the PAIN files generated by Odoo. If not defined, Initiating Party " 28 | "Identifier from company will be used.\n" 29 | "Common format (13): \n" 30 | "- Country code (2, optional)\n" 31 | "- Company idenfier (N, VAT)\n" 32 | "- Service suffix (N, issued by bank)", 33 | ) 34 | initiating_party_scheme = fields.Char( 35 | string="Initiating Party Scheme", 36 | size=35, 37 | help="This will be used as the 'Initiating Party Scheme Name' in " 38 | "the PAIN files generated by Odoo. This value is determined by the " 39 | "financial institution that will process the file. If not defined, " 40 | "no scheme will be used.\n", 41 | ) 42 | -------------------------------------------------------------------------------- /.pylintrc-mandatory: -------------------------------------------------------------------------------- 1 | [MASTER] 2 | load-plugins=pylint_odoo 3 | score=n 4 | 5 | [ODOOLINT] 6 | readme_template_url="https://github.com/OCA/maintainer-tools/blob/master/template/module/README.rst" 7 | manifest_required_authors=Odoo Community Association (OCA) 8 | manifest_required_keys=license 9 | manifest_deprecated_keys=description,active 10 | license_allowed=AGPL-3,GPL-2,GPL-2 or any later version,GPL-3,GPL-3 or any later version,LGPL-3 11 | valid_odoo_versions=14.0 12 | 13 | [MESSAGES CONTROL] 14 | disable=all 15 | 16 | enable=anomalous-backslash-in-string, 17 | api-one-deprecated, 18 | api-one-multi-together, 19 | assignment-from-none, 20 | attribute-deprecated, 21 | class-camelcase, 22 | dangerous-default-value, 23 | dangerous-view-replace-wo-priority, 24 | development-status-allowed, 25 | duplicate-id-csv, 26 | duplicate-key, 27 | duplicate-xml-fields, 28 | duplicate-xml-record-id, 29 | eval-referenced, 30 | eval-used, 31 | incoherent-interpreter-exec-perm, 32 | license-allowed, 33 | manifest-author-string, 34 | manifest-deprecated-key, 35 | manifest-required-author, 36 | manifest-required-key, 37 | manifest-version-format, 38 | method-compute, 39 | method-inverse, 40 | method-required-super, 41 | method-search, 42 | openerp-exception-warning, 43 | pointless-statement, 44 | pointless-string-statement, 45 | print-used, 46 | redundant-keyword-arg, 47 | redundant-modulename-xml, 48 | reimported, 49 | relative-import, 50 | return-in-init, 51 | rst-syntax-error, 52 | sql-injection, 53 | too-few-format-args, 54 | translation-field, 55 | translation-required, 56 | unreachable, 57 | use-vim-comment, 58 | wrong-tabs-instead-of-spaces, 59 | xml-syntax-error 60 | 61 | [REPORTS] 62 | msg-template={path}:{line}: [{msg_id}({symbol}), {obj}] {msg} 63 | output-format=colorized 64 | reports=no 65 | -------------------------------------------------------------------------------- /account_banking_mandate/views/account_payment_line.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | account_banking_mandate.account.payment.line.form 9 | account.payment.line 10 | 14 | 15 | 16 | 17 | 23 | 24 | 25 | 26 | 27 | account_banking_mandate.account.payment.line.tree 28 | account.payment.line 29 | 33 | 34 | 35 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /account_payment_sale/i18n/account_payment_sale.pot: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # * account_payment_sale 4 | # 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: Odoo Server 14.0\n" 8 | "Report-Msgid-Bugs-To: \n" 9 | "Last-Translator: \n" 10 | "Language-Team: \n" 11 | "MIME-Version: 1.0\n" 12 | "Content-Type: text/plain; charset=UTF-8\n" 13 | "Content-Transfer-Encoding: \n" 14 | "Plural-Forms: \n" 15 | 16 | #. module: account_payment_sale 17 | #: model_terms:ir.ui.view,arch_db:account_payment_sale.report_sale_payment_mode 18 | msgid "Payment Mode:" 19 | msgstr "" 20 | 21 | #. module: account_payment_sale 22 | #: model:ir.model.fields,field_description:account_payment_sale.field_sale_advance_payment_inv__display_name 23 | #: model:ir.model.fields,field_description:account_payment_sale.field_sale_order__display_name 24 | msgid "Display Name" 25 | msgstr "" 26 | 27 | #. module: account_payment_sale 28 | #: model:ir.model.fields,field_description:account_payment_sale.field_sale_advance_payment_inv__id 29 | #: model:ir.model.fields,field_description:account_payment_sale.field_sale_order__id 30 | msgid "ID" 31 | msgstr "" 32 | 33 | #. module: account_payment_sale 34 | #: model:ir.model.fields,field_description:account_payment_sale.field_sale_advance_payment_inv____last_update 35 | #: model:ir.model.fields,field_description:account_payment_sale.field_sale_order____last_update 36 | msgid "Last Modified on" 37 | msgstr "" 38 | 39 | #. module: account_payment_sale 40 | #: model:ir.model.fields,field_description:account_payment_sale.field_sale_order__payment_mode_id 41 | msgid "Payment Mode" 42 | msgstr "" 43 | 44 | #. module: account_payment_sale 45 | #: model:ir.model,name:account_payment_sale.model_sale_advance_payment_inv 46 | msgid "Sales Advance Payment Invoice" 47 | msgstr "" 48 | 49 | #. module: account_payment_sale 50 | #: model:ir.model,name:account_payment_sale.model_sale_order 51 | msgid "Sales Order" 52 | msgstr "" 53 | -------------------------------------------------------------------------------- /account_payment_order/views/account_move_line.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | account_payment_order.move_line_form 10 | account.move.line 11 | 12 | 13 | 14 | 18 | 19 | 20 | 21 | 22 | 23 | account_payment_order.add.move_line_tree 24 | account.move.line 25 | 26 | primary 27 | 99 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /account_banking_mandate_sale/i18n/nl_NL.po: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # * account_banking_mandate_sale 4 | # 5 | # Translators: 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: bank-payment (10.0)\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2017-08-18 00:42+0000\n" 11 | "PO-Revision-Date: 2016-10-19 23:45+0000\n" 12 | "Last-Translator: <>\n" 13 | "Language-Team: Dutch (Netherlands) (http://www.transifex.com/oca/OCA-bank-" 14 | "payment-10-0/language/nl_NL/)\n" 15 | "Language: nl_NL\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: \n" 19 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 20 | 21 | #. module: account_banking_mandate_sale 22 | #: model:ir.model.fields,help:account_banking_mandate_sale.field_sale_order__mandate_required 23 | msgid "" 24 | "Activate this option if this payment method requires your customer to sign a " 25 | "direct debit mandate with your company." 26 | msgstr "" 27 | 28 | #. module: account_banking_mandate_sale 29 | #: model:ir.model.fields,field_description:account_banking_mandate_sale.field_sale_order__commercial_partner_id 30 | msgid "Commercial Entity" 31 | msgstr "" 32 | 33 | #. module: account_banking_mandate_sale 34 | #: model:ir.model.fields,field_description:account_banking_mandate_sale.field_sale_order__mandate_id 35 | msgid "Direct Debit Mandate" 36 | msgstr "" 37 | 38 | #. module: account_banking_mandate_sale 39 | #: model:ir.model.fields,field_description:account_banking_mandate_sale.field_sale_order__mandate_required 40 | msgid "Mandate Required" 41 | msgstr "" 42 | 43 | #. module: account_banking_mandate_sale 44 | #: model:ir.model,name:account_banking_mandate_sale.model_sale_order 45 | #, fuzzy 46 | msgid "Sale Order" 47 | msgstr "Verkooporder" 48 | 49 | #. module: account_banking_mandate_sale 50 | #: model:ir.model,name:account_banking_mandate_sale.model_sale_advance_payment_inv 51 | msgid "Sales Advance Payment Invoice" 52 | msgstr "" 53 | -------------------------------------------------------------------------------- /account_payment_partner/views/report_invoice.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 37 | 38 | -------------------------------------------------------------------------------- /account_banking_mandate_sale/models/sale_order.py: -------------------------------------------------------------------------------- 1 | # Copyright 2014-2020 Akretion (Alexis de Lattre ) 2 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). 3 | 4 | from odoo import api, fields, models 5 | 6 | 7 | class SaleOrder(models.Model): 8 | _inherit = "sale.order" 9 | 10 | # This field commercial_partner_id should be moved 11 | # in an OCA base module named for example sale_commercial_partner 12 | mandate_id = fields.Many2one( 13 | "account.banking.mandate", 14 | string="Direct Debit Mandate", 15 | ondelete="restrict", 16 | check_company=True, 17 | readonly=False, 18 | domain="[('partner_id', '=', commercial_partner_id), " 19 | "('state', 'in', ('draft', 'valid')), " 20 | "('company_id', '=', company_id)]", 21 | ) 22 | mandate_required = fields.Boolean( 23 | related="payment_mode_id.payment_method_id.mandate_required", 24 | ) 25 | 26 | def _prepare_invoice(self): 27 | """Copy mandate from sale order to invoice""" 28 | vals = super()._prepare_invoice() 29 | vals["mandate_id"] = self.mandate_id.id or False 30 | return vals 31 | 32 | @api.depends("partner_id") 33 | def _compute_payment_mode(self): 34 | """Select by default the first valid mandate of the partner""" 35 | super()._compute_payment_mode() 36 | abm_obj = self.env["account.banking.mandate"] 37 | for order in self: 38 | if order.mandate_required and order.partner_id: 39 | mandate = abm_obj.search( 40 | [ 41 | ("state", "=", "valid"), 42 | ("partner_id", "=", order.commercial_partner_id.id), 43 | ("company_id", "=", order.company_id.id), 44 | ], 45 | limit=1, 46 | ) 47 | order.mandate_id = mandate or False 48 | else: 49 | order.mandate_id = False 50 | -------------------------------------------------------------------------------- /account_banking_sepa_direct_debit/tests/test_mandate.py: -------------------------------------------------------------------------------- 1 | # Copyright 2016-2020 Akretion (Alexis de Lattre ) 2 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). 3 | 4 | from dateutil.relativedelta import relativedelta 5 | 6 | from odoo import fields 7 | from odoo.exceptions import UserError 8 | from odoo.tests.common import TransactionCase 9 | 10 | 11 | class TestMandate(TransactionCase): 12 | def test_contrains(self): 13 | with self.assertRaises(UserError): 14 | self.mandate.recurrent_sequence_type = False 15 | self.mandate.type = "recurrent" 16 | self.mandate._check_recurring_type() 17 | 18 | def test_onchange_bank(self): 19 | self.mandate.write( 20 | {"type": "recurrent", "recurrent_sequence_type": "recurring"} 21 | ) 22 | self.mandate.validate() 23 | self.mandate.partner_bank_id = self.env.ref( 24 | "account_payment_mode.res_partner_2_iban" 25 | ) 26 | self.mandate.mandate_partner_bank_change() 27 | self.assertEqual(self.mandate.recurrent_sequence_type, "first") 28 | 29 | def test_expire(self): 30 | self.mandate.signature_date = fields.Date.today() + relativedelta(months=-50) 31 | self.mandate.validate() 32 | self.assertEqual(self.mandate.state, "valid") 33 | self.env["account.banking.mandate"]._sdd_mandate_set_state_to_expired() 34 | self.assertEqual(self.mandate.state, "expired") 35 | 36 | def setUp(self): 37 | res = super().setUp() 38 | self.partner = self.env.ref("base.res_partner_12") 39 | bank_account = self.env.ref("account_payment_mode.res_partner_12_iban") 40 | self.mandate = self.env["account.banking.mandate"].create( 41 | { 42 | "partner_bank_id": bank_account.id, 43 | "format": "sepa", 44 | "type": "oneoff", 45 | "signature_date": "2015-01-01", 46 | } 47 | ) 48 | return res 49 | --------------------------------------------------------------------------------