From aa458ac48b008e8de595d18015d100ad43603124 Mon Sep 17 00:00:00 2001
From: Quentin Groulard
Date: Thu, 12 Jan 2023 15:04:04 +0100
Subject: [PATCH 01/13] [ADD] account_invoice_bank_brand
---
account_invoice_bank_brand/README.rst | 87 ++++
account_invoice_bank_brand/__init__.py | 1 +
account_invoice_bank_brand/__manifest__.py | 14 +
account_invoice_bank_brand/models/__init__.py | 2 +
.../models/account_invoice.py | 27 ++
.../models/res_brand.py | 33 ++
.../readme/CONTRIBUTORS.rst | 1 +
.../readme/DESCRIPTION.rst | 1 +
account_invoice_bank_brand/readme/USAGE.rst | 10 +
.../static/description/icon.png | Bin 0 -> 9455 bytes
.../static/description/index.html | 439 ++++++++++++++++++
account_invoice_bank_brand/tests/__init__.py | 1 +
.../tests/test_account_invoice.py | 41 ++
.../views/res_brand.xml | 20 +
14 files changed, 677 insertions(+)
create mode 100644 account_invoice_bank_brand/README.rst
create mode 100644 account_invoice_bank_brand/__init__.py
create mode 100644 account_invoice_bank_brand/__manifest__.py
create mode 100644 account_invoice_bank_brand/models/__init__.py
create mode 100644 account_invoice_bank_brand/models/account_invoice.py
create mode 100644 account_invoice_bank_brand/models/res_brand.py
create mode 100644 account_invoice_bank_brand/readme/CONTRIBUTORS.rst
create mode 100644 account_invoice_bank_brand/readme/DESCRIPTION.rst
create mode 100644 account_invoice_bank_brand/readme/USAGE.rst
create mode 100644 account_invoice_bank_brand/static/description/icon.png
create mode 100644 account_invoice_bank_brand/static/description/index.html
create mode 100644 account_invoice_bank_brand/tests/__init__.py
create mode 100644 account_invoice_bank_brand/tests/test_account_invoice.py
create mode 100644 account_invoice_bank_brand/views/res_brand.xml
diff --git a/account_invoice_bank_brand/README.rst b/account_invoice_bank_brand/README.rst
new file mode 100644
index 000000000..39e440ec8
--- /dev/null
+++ b/account_invoice_bank_brand/README.rst
@@ -0,0 +1,87 @@
+==========================
+Account Invoice Bank Brand
+==========================
+
+.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! This file is generated by oca-gen-addon-readme !!
+ !! changes will be overwritten. !!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
+ :target: https://odoo-community.org/page/development-status
+ :alt: Beta
+.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
+ :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
+ :alt: License: AGPL-3
+.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fbrand-lightgray.png?logo=github
+ :target: https://github.com/OCA/brand/tree/12.0/account_invoice_bank_brand
+ :alt: OCA/brand
+.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
+ :target: https://translation.odoo-community.org/projects/brand-12-0/brand-12-0-account_invoice_bank_brand
+ :alt: Translate me on Weblate
+.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
+ :target: https://runbot.odoo-community.org/runbot/284/12.0
+ :alt: Try me on Runbot
+
+|badge1| |badge2| |badge3| |badge4| |badge5|
+
+This addon allows to set partner_bank_id on invoices depending on the brand.
+
+**Table of contents**
+
+.. contents::
+ :local:
+
+Usage
+=====
+
+To use this module, you need to:
+
+#. Go to Settings > Users & Companies > Brands
+#. Select a brand
+#. Define bank account
+#. Create a new invoice
+ #. Select the brand
+ #. Save
+
+The bank account is filled with the brand bank account.
+
+Bug Tracker
+===========
+
+Bugs are tracked on `GitHub Issues `_.
+In case of trouble, please check there if your issue has already been reported.
+If you spotted it first, help us smashing it by providing a detailed and welcomed
+`feedback `_.
+
+Do not contact contributors directly about support or help with technical issues.
+
+Credits
+=======
+
+Authors
+~~~~~~~
+
+* ACSONE SA/NV
+
+Contributors
+~~~~~~~~~~~~
+
+* Quentin Groulard
+
+Maintainers
+~~~~~~~~~~~
+
+This module is maintained by the OCA.
+
+.. image:: https://odoo-community.org/logo.png
+ :alt: Odoo Community Association
+ :target: https://odoo-community.org
+
+OCA, or the Odoo Community Association, is a nonprofit organization whose
+mission is to support the collaborative development of Odoo features and
+promote its widespread use.
+
+This module is part of the `OCA/brand `_ project on GitHub.
+
+You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/account_invoice_bank_brand/__init__.py b/account_invoice_bank_brand/__init__.py
new file mode 100644
index 000000000..0650744f6
--- /dev/null
+++ b/account_invoice_bank_brand/__init__.py
@@ -0,0 +1 @@
+from . import models
diff --git a/account_invoice_bank_brand/__manifest__.py b/account_invoice_bank_brand/__manifest__.py
new file mode 100644
index 000000000..baf56ada3
--- /dev/null
+++ b/account_invoice_bank_brand/__manifest__.py
@@ -0,0 +1,14 @@
+# Copyright 2023 ACSONE SA/NV
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+{
+ "name": "Account Invoice Bank Brand",
+ "summary": """
+ This addon allows to set partner_bank_id on invoices depending on the brand.""",
+ "version": "12.0.1.0.0",
+ "license": "AGPL-3",
+ "author": "ACSONE SA/NV,Odoo Community Association (OCA)",
+ "website": "https://github.com/OCA/brand",
+ "depends": ["account_brand"],
+ "data": ["views/res_brand.xml"],
+}
diff --git a/account_invoice_bank_brand/models/__init__.py b/account_invoice_bank_brand/models/__init__.py
new file mode 100644
index 000000000..e9fc97a2a
--- /dev/null
+++ b/account_invoice_bank_brand/models/__init__.py
@@ -0,0 +1,2 @@
+from . import account_invoice
+from . import res_brand
diff --git a/account_invoice_bank_brand/models/account_invoice.py b/account_invoice_bank_brand/models/account_invoice.py
new file mode 100644
index 000000000..b2acc5526
--- /dev/null
+++ b/account_invoice_bank_brand/models/account_invoice.py
@@ -0,0 +1,27 @@
+# Copyright 2023 ACSONE SA/NV
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+from collections import OrderedDict
+
+from odoo import api, models
+
+
+class AccountInvoice(models.Model):
+
+ _inherit = "account.invoice"
+
+ def _get_onchange_create(self):
+ res = super()._get_onchange_create()
+ return OrderedDict(
+ [("_onchange_brand", ["partner_bank_id"])] + list(res.items())
+ )
+
+ @api.onchange("brand_id")
+ def _onchange_brand(self):
+ invoice_type = self.type or self.env.context.get("type", "out_invoice")
+ if (
+ invoice_type in ("out_invoice", "in_refund")
+ and self.brand_id
+ and self.brand_id.partner_bank_id
+ ):
+ self.partner_bank_id = self.brand_id.partner_bank_id
diff --git a/account_invoice_bank_brand/models/res_brand.py b/account_invoice_bank_brand/models/res_brand.py
new file mode 100644
index 000000000..70512e6c1
--- /dev/null
+++ b/account_invoice_bank_brand/models/res_brand.py
@@ -0,0 +1,33 @@
+# Copyright 2023 ACSONE SA/NV
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+from odoo import _, api, fields, models
+from odoo.exceptions import ValidationError
+
+
+class ResBrand(models.Model):
+
+ _inherit = "res.brand"
+
+ partner_bank_id = fields.Many2one(
+ comodel_name="res.partner.bank",
+ domain="[('partner_id.ref_company_ids', 'in', [company_id])]",
+ string="Bank Account",
+ description="Company Bank Account Number to which the invoices of this "
+ "brand will be paid (for Customer Invoice and Vendor Credit Note)",
+ )
+
+ @api.constrains("company_id", "partner_bank_id")
+ def validate_partner_bank_id(self):
+ for record in self:
+ if (
+ record.partner_bank_id
+ and not record.company_id
+ in record.partner_bank_id.partner_id.ref_company_ids
+ ):
+ raise ValidationError(
+ _(
+ "The account selected for invoices payment does not "
+ "belong to the same company as this brand."
+ )
+ )
diff --git a/account_invoice_bank_brand/readme/CONTRIBUTORS.rst b/account_invoice_bank_brand/readme/CONTRIBUTORS.rst
new file mode 100644
index 000000000..5914f5529
--- /dev/null
+++ b/account_invoice_bank_brand/readme/CONTRIBUTORS.rst
@@ -0,0 +1 @@
+* Quentin Groulard
diff --git a/account_invoice_bank_brand/readme/DESCRIPTION.rst b/account_invoice_bank_brand/readme/DESCRIPTION.rst
new file mode 100644
index 000000000..c320ede2f
--- /dev/null
+++ b/account_invoice_bank_brand/readme/DESCRIPTION.rst
@@ -0,0 +1 @@
+This addon allows to set partner_bank_id on invoices depending on the brand.
diff --git a/account_invoice_bank_brand/readme/USAGE.rst b/account_invoice_bank_brand/readme/USAGE.rst
new file mode 100644
index 000000000..499446612
--- /dev/null
+++ b/account_invoice_bank_brand/readme/USAGE.rst
@@ -0,0 +1,10 @@
+To use this module, you need to:
+
+#. Go to Settings > Users & Companies > Brands
+#. Select a brand
+#. Define bank account
+#. Create a new invoice
+ #. Select the brand
+ #. Save
+
+The bank account is filled with the brand bank account.
diff --git a/account_invoice_bank_brand/static/description/icon.png b/account_invoice_bank_brand/static/description/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d
GIT binary patch
literal 9455
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
z
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
Xviia!U7SGha1wx#SCgwmn*{w2TRX*I
literal 0
HcmV?d00001
diff --git a/account_invoice_bank_brand/static/description/index.html b/account_invoice_bank_brand/static/description/index.html
new file mode 100644
index 000000000..d86b2fc16
--- /dev/null
+++ b/account_invoice_bank_brand/static/description/index.html
@@ -0,0 +1,439 @@
+
+
+
+
+
+
+Account Invoice Bank Brand
+
+
+
+
+
Account Invoice Bank Brand
+
+
+

+
This addon allows to set partner_bank_id on invoices depending on the brand.
+
Table of contents
+
+
+
+
To use this module, you need to:
+
+- Go to Settings > Users & Companies > Brands
+- Select a brand
+- Define bank account
+
+- Create a new invoice
+
+- Select the brand
+- Save
+
+
+
+
+
+
The bank account is filled with the brand bank account.
+
+
+
+
Bugs are tracked on GitHub Issues.
+In case of trouble, please check there if your issue has already been reported.
+If you spotted it first, help us smashing it by providing a detailed and welcomed
+feedback.
+
Do not contact contributors directly about support or help with technical issues.
+
+
+
+
+
+
+
+
This module is maintained by the OCA.
+

+
OCA, or the Odoo Community Association, is a nonprofit organization whose
+mission is to support the collaborative development of Odoo features and
+promote its widespread use.
+
This module is part of the OCA/brand project on GitHub.
+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
+
+
+
+
+
diff --git a/account_invoice_bank_brand/tests/__init__.py b/account_invoice_bank_brand/tests/__init__.py
new file mode 100644
index 000000000..d7555d021
--- /dev/null
+++ b/account_invoice_bank_brand/tests/__init__.py
@@ -0,0 +1 @@
+from . import test_account_invoice
diff --git a/account_invoice_bank_brand/tests/test_account_invoice.py b/account_invoice_bank_brand/tests/test_account_invoice.py
new file mode 100644
index 000000000..c1080ee5e
--- /dev/null
+++ b/account_invoice_bank_brand/tests/test_account_invoice.py
@@ -0,0 +1,41 @@
+# Copyright 2023 ACSONE SA/NV
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+from odoo.tests.common import SavepointCase
+
+
+class TestAccountInvoice(SavepointCase):
+ def setUp(self):
+ super(TestAccountInvoice, self).setUp()
+ self.partner_id = self.env.ref("base.res_partner_12")
+ self.invoice = self.env["account.invoice"].create(
+ {"partner_id": self.partner_id.id, "type": "out_invoice"}
+ )
+ company_id = self.env["res.company"].browse(1)
+ self.partner_bank_id = self.env["res.partner.bank"].create(
+ {"acc_number": "123456", "partner_id": company_id.partner_id.id}
+ )
+ self.brand_id = self.env["res.brand"].create(
+ {
+ "name": "Brand",
+ "partner_bank_id": self.partner_bank_id.id,
+ "company_id": 1,
+ }
+ )
+
+ def test_on_change_brand_id(self):
+ self.invoice._onchange_brand()
+ self.assertNotEqual(self.invoice.partner_bank_id, self.partner_bank_id)
+ self.invoice.brand_id = self.brand_id
+ self.invoice._onchange_brand()
+ self.assertEqual(self.invoice.partner_bank_id, self.partner_bank_id)
+
+ def test_create_invoice(self):
+ invoice = self.env["account.invoice"].create(
+ {
+ "partner_id": self.partner_id.id,
+ "type": "out_invoice",
+ "brand_id": self.brand_id.id,
+ }
+ )
+ self.assertEqual(invoice.partner_bank_id, self.partner_bank_id)
diff --git a/account_invoice_bank_brand/views/res_brand.xml b/account_invoice_bank_brand/views/res_brand.xml
new file mode 100644
index 000000000..ab235b43b
--- /dev/null
+++ b/account_invoice_bank_brand/views/res_brand.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+ res.brand.form (in account_invoice_bank_brand)
+ res.brand
+
+
+
+
+
+
+
+
+
+
+
From d6a33811bc91bc4fb0591d76d46b05786849bbdc Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Wed, 1 Jan 2025 16:34:20 +0000
Subject: [PATCH 02/13] [UPD] README.rst
---
account_invoice_bank_brand/README.rst | 15 +++---
.../static/description/index.html | 46 ++++++++++---------
2 files changed, 34 insertions(+), 27 deletions(-)
diff --git a/account_invoice_bank_brand/README.rst b/account_invoice_bank_brand/README.rst
index 39e440ec8..11b30bb97 100644
--- a/account_invoice_bank_brand/README.rst
+++ b/account_invoice_bank_brand/README.rst
@@ -2,10 +2,13 @@
Account Invoice Bank Brand
==========================
-.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+..
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! source digest: sha256:c778d60ce1f2b569b7a333850aec3dd4ce7ae11e64e7ccf6f1f910dbc57f738e
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
@@ -19,11 +22,11 @@ Account Invoice Bank Brand
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/brand-12-0/brand-12-0-account_invoice_bank_brand
:alt: Translate me on Weblate
-.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/284/12.0
- :alt: Try me on Runbot
+.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
+ :target: https://runboat.odoo-community.org/builds?repo=OCA/brand&target_branch=12.0
+ :alt: Try me on Runboat
-|badge1| |badge2| |badge3| |badge4| |badge5|
+|badge1| |badge2| |badge3| |badge4| |badge5|
This addon allows to set partner_bank_id on invoices depending on the brand.
@@ -51,7 +54,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues `_.
In case of trouble, please check there if your issue has already been reported.
-If you spotted it first, help us smashing it by providing a detailed and welcomed
+If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback `_.
Do not contact contributors directly about support or help with technical issues.
diff --git a/account_invoice_bank_brand/static/description/index.html b/account_invoice_bank_brand/static/description/index.html
index d86b2fc16..33ba48b0f 100644
--- a/account_invoice_bank_brand/static/description/index.html
+++ b/account_invoice_bank_brand/static/description/index.html
@@ -1,20 +1,20 @@
-
-
+
Account Invoice Bank Brand
-
-
Account Invoice Bank Brand
+
+
+
+
+
+
-
+
To use this module, you need to:
- Go to Settings > Users & Companies > Brands
@@ -404,7 +409,7 @@
-
+
Bugs are tracked on GitHub Issues.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
@@ -412,21 +417,21 @@
Do not contact contributors directly about support or help with technical issues.
+
From 5b726282a1c4d3ee7f484e56d492dcf0d2c4ed75 Mon Sep 17 00:00:00 2001
From: mymage
Date: Wed, 30 Jul 2025 11:40:52 +0000
Subject: [PATCH 07/13] Added translation using Weblate (Italian)
---
account_invoice_bank_brand/i18n/it.po | 50 +++++++++++++++++++++++++++
1 file changed, 50 insertions(+)
create mode 100644 account_invoice_bank_brand/i18n/it.po
diff --git a/account_invoice_bank_brand/i18n/it.po b/account_invoice_bank_brand/i18n/it.po
new file mode 100644
index 000000000..44b892fc3
--- /dev/null
+++ b/account_invoice_bank_brand/i18n/it.po
@@ -0,0 +1,50 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * account_invoice_bank_brand
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 18.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: it\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#. module: account_invoice_bank_brand
+#: model:ir.model.fields,field_description:account_invoice_bank_brand.field_res_brand__partner_bank_id
+msgid "Bank Account"
+msgstr ""
+
+#. module: account_invoice_bank_brand
+#: model:ir.model.fields,help:account_invoice_bank_brand.field_res_brand__partner_bank_id
+msgid ""
+"Bank Account Number to which the invoices of this brand will be paid (for "
+"Customer Invoice and Vendor Credit Note)"
+msgstr ""
+
+#. module: account_invoice_bank_brand
+#: model:ir.model,name:account_invoice_bank_brand.model_res_brand
+msgid "Brand"
+msgstr ""
+
+#. module: account_invoice_bank_brand
+#: model_terms:ir.ui.view,arch_db:account_invoice_bank_brand.res_brand_form_view
+msgid "Invoices"
+msgstr ""
+
+#. module: account_invoice_bank_brand
+#: model:ir.model,name:account_invoice_bank_brand.model_account_move
+msgid "Journal Entry"
+msgstr ""
+
+#. module: account_invoice_bank_brand
+#. odoo-python
+#: code:addons/account_invoice_bank_brand/models/res_brand.py:0
+msgid ""
+"The account selected for invoices payment does not belong to the same "
+"partner as this brand."
+msgstr ""
From a26016cd729e882e40c5010fdcc15bcb26dc042b Mon Sep 17 00:00:00 2001
From: mymage
Date: Wed, 30 Jul 2025 11:41:30 +0000
Subject: [PATCH 08/13] Translated using Weblate (Italian)
Currently translated at 100.0% (6 of 6 strings)
Translation: brand-18.0/brand-18.0-account_invoice_bank_brand
Translate-URL: https://translation.odoo-community.org/projects/brand-18-0/brand-18-0-account_invoice_bank_brand/it/
---
account_invoice_bank_brand/i18n/it.po | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/account_invoice_bank_brand/i18n/it.po b/account_invoice_bank_brand/i18n/it.po
index 44b892fc3..65e3c2ae4 100644
--- a/account_invoice_bank_brand/i18n/it.po
+++ b/account_invoice_bank_brand/i18n/it.po
@@ -6,18 +6,20 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2025-07-30 12:05+0000\n"
+"Last-Translator: mymage \n"
"Language-Team: none\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 5.10.4\n"
#. module: account_invoice_bank_brand
#: model:ir.model.fields,field_description:account_invoice_bank_brand.field_res_brand__partner_bank_id
msgid "Bank Account"
-msgstr ""
+msgstr "Conto bancario"
#. module: account_invoice_bank_brand
#: model:ir.model.fields,help:account_invoice_bank_brand.field_res_brand__partner_bank_id
@@ -25,21 +27,23 @@ msgid ""
"Bank Account Number to which the invoices of this brand will be paid (for "
"Customer Invoice and Vendor Credit Note)"
msgstr ""
+"Numero del conto bancario su cui verranno pagate le fatture di questa marca ("
+"per fattura cliente e note di credito fornitore)"
#. module: account_invoice_bank_brand
#: model:ir.model,name:account_invoice_bank_brand.model_res_brand
msgid "Brand"
-msgstr ""
+msgstr "Marca"
#. module: account_invoice_bank_brand
#: model_terms:ir.ui.view,arch_db:account_invoice_bank_brand.res_brand_form_view
msgid "Invoices"
-msgstr ""
+msgstr "Fatture"
#. module: account_invoice_bank_brand
#: model:ir.model,name:account_invoice_bank_brand.model_account_move
msgid "Journal Entry"
-msgstr ""
+msgstr "Registrazione contabile"
#. module: account_invoice_bank_brand
#. odoo-python
@@ -48,3 +52,5 @@ msgid ""
"The account selected for invoices payment does not belong to the same "
"partner as this brand."
msgstr ""
+"Il conto selezionato per il pagamento delle fatture non appartiene allo "
+"stesso partner della marca."
From c4b459db4d2db94870cd1a28c4a1325db8b52b5d Mon Sep 17 00:00:00 2001
From: Bosd
Date: Sat, 9 Aug 2025 13:22:11 +0000
Subject: [PATCH 09/13] Added translation using Weblate (Dutch)
---
account_invoice_bank_brand/i18n/nl.po | 50 +++++++++++++++++++++++++++
1 file changed, 50 insertions(+)
create mode 100644 account_invoice_bank_brand/i18n/nl.po
diff --git a/account_invoice_bank_brand/i18n/nl.po b/account_invoice_bank_brand/i18n/nl.po
new file mode 100644
index 000000000..5b2edd479
--- /dev/null
+++ b/account_invoice_bank_brand/i18n/nl.po
@@ -0,0 +1,50 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * account_invoice_bank_brand
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 18.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#. module: account_invoice_bank_brand
+#: model:ir.model.fields,field_description:account_invoice_bank_brand.field_res_brand__partner_bank_id
+msgid "Bank Account"
+msgstr ""
+
+#. module: account_invoice_bank_brand
+#: model:ir.model.fields,help:account_invoice_bank_brand.field_res_brand__partner_bank_id
+msgid ""
+"Bank Account Number to which the invoices of this brand will be paid (for "
+"Customer Invoice and Vendor Credit Note)"
+msgstr ""
+
+#. module: account_invoice_bank_brand
+#: model:ir.model,name:account_invoice_bank_brand.model_res_brand
+msgid "Brand"
+msgstr ""
+
+#. module: account_invoice_bank_brand
+#: model_terms:ir.ui.view,arch_db:account_invoice_bank_brand.res_brand_form_view
+msgid "Invoices"
+msgstr ""
+
+#. module: account_invoice_bank_brand
+#: model:ir.model,name:account_invoice_bank_brand.model_account_move
+msgid "Journal Entry"
+msgstr ""
+
+#. module: account_invoice_bank_brand
+#. odoo-python
+#: code:addons/account_invoice_bank_brand/models/res_brand.py:0
+msgid ""
+"The account selected for invoices payment does not belong to the same "
+"partner as this brand."
+msgstr ""
From de44b5ae9c9af13bb2e06cec2364a6e49701c913 Mon Sep 17 00:00:00 2001
From: Bosd
Date: Sat, 9 Aug 2025 13:22:47 +0000
Subject: [PATCH 10/13] Translated using Weblate (Dutch)
Currently translated at 100.0% (6 of 6 strings)
Translation: brand-18.0/brand-18.0-account_invoice_bank_brand
Translate-URL: https://translation.odoo-community.org/projects/brand-18-0/brand-18-0-account_invoice_bank_brand/nl/
---
account_invoice_bank_brand/i18n/nl.po | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/account_invoice_bank_brand/i18n/nl.po b/account_invoice_bank_brand/i18n/nl.po
index 5b2edd479..5d91b86e5 100644
--- a/account_invoice_bank_brand/i18n/nl.po
+++ b/account_invoice_bank_brand/i18n/nl.po
@@ -6,18 +6,20 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2025-08-09 15:25+0000\n"
+"Last-Translator: Bosd \n"
"Language-Team: none\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 5.10.4\n"
#. module: account_invoice_bank_brand
#: model:ir.model.fields,field_description:account_invoice_bank_brand.field_res_brand__partner_bank_id
msgid "Bank Account"
-msgstr ""
+msgstr "Bankrekening"
#. module: account_invoice_bank_brand
#: model:ir.model.fields,help:account_invoice_bank_brand.field_res_brand__partner_bank_id
@@ -25,21 +27,23 @@ msgid ""
"Bank Account Number to which the invoices of this brand will be paid (for "
"Customer Invoice and Vendor Credit Note)"
msgstr ""
+"Bankrekeningnummer waarop de facturen van dit merk betaald zullen worden ("
+"voor Klantfactuur en Leverancierscreditnota)"
#. module: account_invoice_bank_brand
#: model:ir.model,name:account_invoice_bank_brand.model_res_brand
msgid "Brand"
-msgstr ""
+msgstr "Merk"
#. module: account_invoice_bank_brand
#: model_terms:ir.ui.view,arch_db:account_invoice_bank_brand.res_brand_form_view
msgid "Invoices"
-msgstr ""
+msgstr "Facturen"
#. module: account_invoice_bank_brand
#: model:ir.model,name:account_invoice_bank_brand.model_account_move
msgid "Journal Entry"
-msgstr ""
+msgstr "Journaalpost"
#. module: account_invoice_bank_brand
#. odoo-python
@@ -48,3 +52,5 @@ msgid ""
"The account selected for invoices payment does not belong to the same "
"partner as this brand."
msgstr ""
+"De geselecteerde rekening voor factuurbetaling behoort niet toe aan dezelfde "
+"partner als dit merk."
From f8b959c391213d6d76ec06a16e49b69d24a83277 Mon Sep 17 00:00:00 2001
From: Bhavesh Heliconia
Date: Mon, 25 May 2026 17:34:22 +0530
Subject: [PATCH 11/13] [IMP] account_invoice_bank_brand: pre-commit auto fixes
---
account_invoice_bank_brand/models/res_brand.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/account_invoice_bank_brand/models/res_brand.py b/account_invoice_bank_brand/models/res_brand.py
index 400285c94..6699dbbbd 100644
--- a/account_invoice_bank_brand/models/res_brand.py
+++ b/account_invoice_bank_brand/models/res_brand.py
@@ -1,7 +1,7 @@
# Copyright 2023 ACSONE SA/NV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-from odoo import _, api, fields, models
+from odoo import api, fields, models
from odoo.exceptions import ValidationError
@@ -24,7 +24,7 @@ def validate_partner_bank_id(self):
and record.partner_id != record.partner_bank_id.partner_id
):
raise ValidationError(
- _(
+ self.env._(
"The account selected for invoices payment does not "
"belong to the same partner as this brand."
)
From fbcee9fedee12d80bee4062bc633e2b68062c0ac Mon Sep 17 00:00:00 2001
From: Bhavesh Heliconia
Date: Mon, 25 May 2026 17:44:10 +0530
Subject: [PATCH 12/13] [MIG] account_invoice_bank_brand: Migration to 19.0
---
account_invoice_bank_brand/README.rst | 13 +++++---
account_invoice_bank_brand/__manifest__.py | 2 +-
.../models/account_move.py | 28 +++++++----------
.../readme/CONTRIBUTORS.md | 2 ++
.../static/description/index.html | 10 ++++--
.../tests/test_account_move.py | 31 ++++++++++---------
6 files changed, 46 insertions(+), 40 deletions(-)
diff --git a/account_invoice_bank_brand/README.rst b/account_invoice_bank_brand/README.rst
index b6ab123ef..335350d9c 100644
--- a/account_invoice_bank_brand/README.rst
+++ b/account_invoice_bank_brand/README.rst
@@ -21,13 +21,13 @@ Account Invoice Bank Brand
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fbrand-lightgray.png?logo=github
- :target: https://github.com/OCA/brand/tree/18.0/account_invoice_bank_brand
+ :target: https://github.com/OCA/brand/tree/19.0/account_invoice_bank_brand
:alt: OCA/brand
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/brand-18-0/brand-18-0-account_invoice_bank_brand
+ :target: https://translation.odoo-community.org/projects/brand-19-0/brand-19-0-account_invoice_bank_brand
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
- :target: https://runboat.odoo-community.org/builds?repo=OCA/brand&target_branch=18.0
+ :target: https://runboat.odoo-community.org/builds?repo=OCA/brand&target_branch=19.0
:alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -66,7 +66,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues `_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
-`feedback `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -82,6 +82,9 @@ Contributors
------------
- Quentin Groulard
+- `Heliconia Solutions Pvt. Ltd. `__
+
+ - Bhavesh Heliconia
Maintainers
-----------
@@ -96,6 +99,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-This module is part of the `OCA/brand `_ project on GitHub.
+This module is part of the `OCA/brand `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/account_invoice_bank_brand/__manifest__.py b/account_invoice_bank_brand/__manifest__.py
index e458e343f..3ebf327a0 100644
--- a/account_invoice_bank_brand/__manifest__.py
+++ b/account_invoice_bank_brand/__manifest__.py
@@ -5,7 +5,7 @@
"name": "Account Invoice Bank Brand",
"summary": "Enables the automatic selection of the partner's"
"bank account on invoices based on the brand.",
- "version": "18.0.1.0.0",
+ "version": "19.0.1.0.0",
"license": "AGPL-3",
"author": "ACSONE SA/NV,Odoo Community Association (OCA)",
"website": "https://github.com/OCA/brand",
diff --git a/account_invoice_bank_brand/models/account_move.py b/account_invoice_bank_brand/models/account_move.py
index d06a8bc74..faf2894d5 100644
--- a/account_invoice_bank_brand/models/account_move.py
+++ b/account_invoice_bank_brand/models/account_move.py
@@ -1,26 +1,20 @@
# Copyright 2023 ACSONE SA/NV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-from collections import OrderedDict
-
from odoo import api, models
class AccountMove(models.Model):
_inherit = "account.move"
- def _get_onchange_create(self):
- res = super()._get_onchange_create()
- return OrderedDict(
- [("_onchange_brand", ["partner_bank_id"])] + list(res.items())
- )
-
- @api.onchange("brand_id")
- def _onchange_brand(self):
- move_type = self.move_type or self.env.context.get("move_type", "out_invoice")
- if (
- move_type in ("out_invoice", "in_refund")
- and self.brand_id
- and self.brand_id.partner_bank_id
- ):
- self.partner_bank_id = self.brand_id.partner_bank_id
+ @api.depends("brand_id")
+ def _compute_partner_bank_id(self):
+ res = super()._compute_partner_bank_id()
+ for move in self:
+ if (
+ move.move_type in ("out_invoice", "in_refund")
+ and move.brand_id
+ and move.brand_id.partner_bank_id
+ ):
+ move.partner_bank_id = move.brand_id.partner_bank_id
+ return res
diff --git a/account_invoice_bank_brand/readme/CONTRIBUTORS.md b/account_invoice_bank_brand/readme/CONTRIBUTORS.md
index 01f3219a1..02d7c14f8 100644
--- a/account_invoice_bank_brand/readme/CONTRIBUTORS.md
+++ b/account_invoice_bank_brand/readme/CONTRIBUTORS.md
@@ -1 +1,3 @@
- Quentin Groulard \<\>
+- [Heliconia Solutions Pvt. Ltd.](https://www.heliconia.io)
+ - Bhavesh Heliconia
diff --git a/account_invoice_bank_brand/static/description/index.html b/account_invoice_bank_brand/static/description/index.html
index bbe559653..71cdb82d2 100644
--- a/account_invoice_bank_brand/static/description/index.html
+++ b/account_invoice_bank_brand/static/description/index.html
@@ -374,7 +374,7 @@ Account Invoice Bank Brand
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:b06e0a7df5086664d24412deaa56546afbb59c6f1657e49549e1af20e5e04d32
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-

+

This module addresses the need to specify different receiving bank
accounts based on brand. When generating invoices, the module
automatically populates the invoice’s bank account field with the
@@ -413,7 +413,7 @@
Bugs are tracked on GitHub Issues.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
-feedback.
+feedback.
Do not contact contributors directly about support or help with technical issues.
@@ -439,7 +443,7 @@
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-
This module is part of the OCA/brand project on GitHub.
+
This module is part of the OCA/brand project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/account_invoice_bank_brand/tests/test_account_move.py b/account_invoice_bank_brand/tests/test_account_move.py
index cd59decc3..1391c5558 100644
--- a/account_invoice_bank_brand/tests/test_account_move.py
+++ b/account_invoice_bank_brand/tests/test_account_move.py
@@ -2,15 +2,23 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo.exceptions import ValidationError
-from odoo.tests.common import TransactionCase
+from odoo.addons.base.tests.common import BaseCommon
-class TestAccountInvoiceBankBrand(TransactionCase):
+
+class TestAccountInvoiceBankBrand(BaseCommon):
@classmethod
def setUpClass(cls):
super().setUpClass()
- cls.partner = cls.env.ref("base.res_partner_12") # A customer partner
cls.company = cls.env.ref("base.main_company")
+ cls.journal = cls.env["account.journal"].create(
+ {
+ "name": "Sale Journal",
+ "code": "SALE",
+ "type": "sale",
+ "company_id": cls.company.id,
+ }
+ )
cls.invoice = cls.env["account.move"].create(
{
"partner_id": cls.partner.id,
@@ -34,17 +42,13 @@ def setUpClass(cls):
}
)
- def test_onchange_brand(self):
- # 1. Initially, partner_bank_id should be False
- self.assertFalse(self.invoice.partner_bank_id)
- # 2. Set brand_id on invoice
+ def test_brand_compute_partner_bank_id(self):
+ # 1. Set brand_id on invoice
self.invoice.brand_id = self.brand
- # 3. Trigger onchange
- self.invoice._onchange_brand()
- # 4. Assert partner_bank_id is set if brand has it
+ # 2. Assert partner_bank_id is set if brand has it
self.brand.partner_bank_id = self.partner_bank
- self.invoice.brand_id = self.brand
- self.invoice._onchange_brand()
+ # Trigger recompute
+ self.invoice._compute_partner_bank_id()
self.assertEqual(self.invoice.partner_bank_id, self.brand.partner_bank_id)
def test_create_invoice_with_brand(self):
@@ -55,14 +59,13 @@ def test_create_invoice_with_brand(self):
"move_type": "out_invoice",
"brand_id": self.brand.id,
"company_id": self.company.id,
- "partner_bank_id": self.partner_bank.id,
}
)
self.assertEqual(invoice.partner_bank_id, self.brand.partner_bank_id)
def test_validate_partner_bank_id_constraint(self):
# 1. Create a bank account for a different partner
- another_partner = self.env.ref("base.res_partner_2")
+ another_partner = self.env["res.partner"].create({"name": "Another Partner"})
another_partner_bank = self.env["res.partner.bank"].create(
{
"partner_id": another_partner.id,
From 5735503308feebeb3ce59c0b521443a647808dfe Mon Sep 17 00:00:00 2001
From: Bhavesh Heliconia
Date: Mon, 25 May 2026 17:46:45 +0530
Subject: [PATCH 13/13] [DON'T MERGE] test-requirements.txt
---
test-requirements.txt | 1 +
1 file changed, 1 insertion(+)
create mode 100644 test-requirements.txt
diff --git a/test-requirements.txt b/test-requirements.txt
new file mode 100644
index 000000000..2616819c2
--- /dev/null
+++ b/test-requirements.txt
@@ -0,0 +1 @@
+odoo-addon-account_brand @ git+https://github.com/OCA/brand.git@refs/pull/303/head#subdirectory=account_brand