Skip to content

Commit ed63110

Browse files
[16.0][ADD] account_invoice_analytic_header: Allows you to assign an analytical account to the purchase invoice header and drag it to the lines.
1 parent d8c353a commit ed63110

File tree

10 files changed

+183
-0
lines changed

10 files changed

+183
-0
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
2+
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
3+
:alt: License: AGPL-3
4+
5+
===============================
6+
Account invoice analytic header
7+
===============================
8+
9+
* Allows you to assign an analytical account to the purchase invoice header and
10+
drag it to the lines.
11+
12+
Bug Tracker
13+
===========
14+
15+
Bugs are tracked on `GitHub Issues
16+
<https://github.com/avanzosc/odoo-addons/issues>`_. In case of trouble, please
17+
check there if your issue has already been reported. If you spotted it first,
18+
help us smash it by providing detailed and welcomed feedback.
19+
20+
Credits
21+
=======
22+
23+
Contributors
24+
------------
25+
* Ana Juaristi <anajuaristi@avanzosc.es>
26+
* Alfredo de la Fuente <alfredodelafuente@avanzosc.es>
27+
28+
Do not contact contributors directly about support or help with technical issues.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from . import models
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Copyright 2025 Alfredo de la Fuente - AvanzOSC
2+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
3+
{
4+
"name": "Account Invoice Analytic Header",
5+
"version": "16.0.1.0.0",
6+
"license": "AGPL-3",
7+
"author": "AvanzOSC",
8+
"website": "https://github.com/avanzosc/odoo-addons",
9+
"category": "Accounting",
10+
"summary": "Allows you to assign an analytical account to the purchase invoice header and drag it to the lines.",
11+
"depends": ["account", "analytic"],
12+
"data": [],
13+
"installable": True,
14+
"application": False,
15+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# Translation of Odoo Server.
2+
# This file contains the translation of the following modules:
3+
# * account_invoice_analytic_header
4+
#
5+
msgid ""
6+
msgstr ""
7+
"Project-Id-Version: Odoo Server 16.0\n"
8+
"Report-Msgid-Bugs-To: \n"
9+
"POT-Creation-Date: 2025-10-28 11:55+0000\n"
10+
"PO-Revision-Date: 2025-10-28 11:55+0000\n"
11+
"Last-Translator: \n"
12+
"Language-Team: \n"
13+
"MIME-Version: 1.0\n"
14+
"Content-Type: text/plain; charset=UTF-8\n"
15+
"Content-Transfer-Encoding: \n"
16+
"Plural-Forms: \n"
17+
18+
#. module: account_invoice_analytic_header
19+
#: model:ir.model.fields,field_description:account_invoice_analytic_header.field_account_move_line__analytic_account_id
20+
msgid "Analytic account"
21+
msgstr ""
22+
23+
#. module: account_invoice_analytic_header
24+
#: model:ir.model.fields,field_description:account_invoice_analytic_header.field_account_bank_statement_line__analytic_account_id
25+
#: model:ir.model.fields,field_description:account_invoice_analytic_header.field_account_move__analytic_account_id
26+
#: model:ir.model.fields,field_description:account_invoice_analytic_header.field_account_payment__analytic_account_id
27+
msgid "Analytic account (Header)"
28+
msgstr ""
29+
30+
#. module: account_invoice_analytic_header
31+
#: model:ir.model.fields,help:account_invoice_analytic_header.field_account_bank_statement_line__analytic_account_id
32+
#: model:ir.model.fields,help:account_invoice_analytic_header.field_account_move__analytic_account_id
33+
#: model:ir.model.fields,help:account_invoice_analytic_header.field_account_payment__analytic_account_id
34+
msgid "Analytical account applied by default to invoice lines."
35+
msgstr ""
36+
37+
#. module: account_invoice_analytic_header
38+
#: model:ir.model,name:account_invoice_analytic_header.model_account_move
39+
msgid "Journal Entry"
40+
msgstr ""
41+
42+
#. module: account_invoice_analytic_header
43+
#: model:ir.model,name:account_invoice_analytic_header.model_account_move_line
44+
msgid "Journal Item"
45+
msgstr ""
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# Translation of Odoo Server.
2+
# This file contains the translation of the following modules:
3+
# * account_invoice_analytic_header
4+
#
5+
msgid ""
6+
msgstr ""
7+
"Project-Id-Version: Odoo Server 16.0\n"
8+
"Report-Msgid-Bugs-To: \n"
9+
"POT-Creation-Date: 2025-10-28 11:55+0000\n"
10+
"PO-Revision-Date: 2025-10-28 11:55+0000\n"
11+
"Last-Translator: \n"
12+
"Language-Team: \n"
13+
"MIME-Version: 1.0\n"
14+
"Content-Type: text/plain; charset=UTF-8\n"
15+
"Content-Transfer-Encoding: \n"
16+
"Plural-Forms: \n"
17+
18+
#. module: account_invoice_analytic_header
19+
#: model:ir.model.fields,field_description:account_invoice_analytic_header.field_account_move_line__analytic_account_id
20+
msgid "Analytic account"
21+
msgstr "Cuenta analítica"
22+
23+
#. module: account_invoice_analytic_header
24+
#: model:ir.model.fields,field_description:account_invoice_analytic_header.field_account_bank_statement_line__analytic_account_id
25+
#: model:ir.model.fields,field_description:account_invoice_analytic_header.field_account_move__analytic_account_id
26+
#: model:ir.model.fields,field_description:account_invoice_analytic_header.field_account_payment__analytic_account_id
27+
msgid "Analytic account (Header)"
28+
msgstr "Cuenta analítica (cabecera)"
29+
30+
#. module: account_invoice_analytic_header
31+
#: model:ir.model.fields,help:account_invoice_analytic_header.field_account_bank_statement_line__analytic_account_id
32+
#: model:ir.model.fields,help:account_invoice_analytic_header.field_account_move__analytic_account_id
33+
#: model:ir.model.fields,help:account_invoice_analytic_header.field_account_payment__analytic_account_id
34+
msgid "Analytical account applied by default to invoice lines."
35+
msgstr "Cuenta analítica aplicada por defecto a las líneas de factura."
36+
37+
#. module: account_invoice_analytic_header
38+
#: model:ir.model,name:account_invoice_analytic_header.model_account_move
39+
msgid "Journal Entry"
40+
msgstr "Entradas diario"
41+
42+
#. module: account_invoice_analytic_header
43+
#: model:ir.model,name:account_invoice_analytic_header.model_account_move_line
44+
msgid "Journal Item"
45+
msgstr "Apunte contable"
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
from . import account_move
2+
from . import account_move_line
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Copyright 2025 Alfredo de la Fuente - AvanzOSC
2+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
3+
from odoo import api, fields, models
4+
5+
6+
class AccountMove(models.Model):
7+
_inherit = "account.move"
8+
9+
analytic_account_id = fields.Many2one(
10+
comodel_name="account.analytic.account",
11+
string="Analytic account (Header)",
12+
help="Analytical account applied by default to invoice lines.",
13+
)
14+
15+
@api.onchange("analytic_account_id")
16+
def _onchange_analytic_account_id(self):
17+
for move in self:
18+
for line in move.invoice_line_ids:
19+
if not line.analytic_account_id:
20+
line.analytic_account_id = move.analytic_account_id
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Copyright 2025 Alfredo de la Fuente - AvanzOSC
2+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
3+
from odoo import api, fields, models
4+
5+
6+
class AccountMoveLine(models.Model):
7+
_inherit = "account.move.line"
8+
9+
analytic_account_id = fields.Many2one(
10+
string="Analytic account",
11+
comodel_name="account.analytic.account",
12+
)
13+
14+
@api.model
15+
def create(self, vals):
16+
if not vals.get("analytic_account_id") and vals.get("move_id"):
17+
move = self.env["account.move"].browse(vals["move_id"])
18+
if move.analytic_account_id:
19+
vals["analytic_account_id"] = move.analytic_account_id.id
20+
return super().create(vals)
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../../../account_invoice_analytic_header
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import setuptools
2+
3+
setuptools.setup(
4+
setup_requires=['setuptools-odoo'],
5+
odoo_addon=True,
6+
)

0 commit comments

Comments
 (0)