From 116d45633b7bcfe11a4368f185d043443b9f6492 Mon Sep 17 00:00:00 2001 From: eco-odoo Date: Mon, 1 Oct 2018 07:15:28 +0000 Subject: [PATCH] [ADD] account_analytic_default_hr_expense: default analytic account in hr.expense When a product is selected for an expense, an analytic account (and analytic tags) can now be automatically selected based on the settings. closes odoo/odoo#28673 --- .../__init__.py | 4 ++++ .../__manifest__.py | 16 ++++++++++++++++ .../models/__init__.py | 6 ++++++ .../models/hr_expense.py | 16 ++++++++++++++++ 4 files changed, 42 insertions(+) create mode 100644 addons/account_analytic_default_hr_expense/__init__.py create mode 100644 addons/account_analytic_default_hr_expense/__manifest__.py create mode 100644 addons/account_analytic_default_hr_expense/models/__init__.py create mode 100644 addons/account_analytic_default_hr_expense/models/hr_expense.py diff --git a/addons/account_analytic_default_hr_expense/__init__.py b/addons/account_analytic_default_hr_expense/__init__.py new file mode 100644 index 00000000000..dc5e6b693d1 --- /dev/null +++ b/addons/account_analytic_default_hr_expense/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import models diff --git a/addons/account_analytic_default_hr_expense/__manifest__.py b/addons/account_analytic_default_hr_expense/__manifest__.py new file mode 100644 index 00000000000..4657ac3806d --- /dev/null +++ b/addons/account_analytic_default_hr_expense/__manifest__.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +{ + 'name': 'Account Analytic Defaults for expenses.', + 'version': '1.0', + 'category': 'Accounting', + 'description': """ +Set default values for your analytic accounts on your hr expenses. +================================================================== + +Allows to automatically select analytic accounts based on Product + """, + 'depends': ['account_analytic_default', 'hr_expense'], + 'auto_install': True, +} diff --git a/addons/account_analytic_default_hr_expense/models/__init__.py b/addons/account_analytic_default_hr_expense/models/__init__.py new file mode 100644 index 00000000000..c468c6330d6 --- /dev/null +++ b/addons/account_analytic_default_hr_expense/models/__init__.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import api, fields, models, _ + +from . import hr_expense diff --git a/addons/account_analytic_default_hr_expense/models/hr_expense.py b/addons/account_analytic_default_hr_expense/models/hr_expense.py new file mode 100644 index 00000000000..fb782e5753c --- /dev/null +++ b/addons/account_analytic_default_hr_expense/models/hr_expense.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import api, fields, models, _ + + +class HrExpense(models.Model): + _inherit = 'hr.expense' + + @api.onchange('product_id', 'date') + def _onchange_product_id(self): + res = super(HrExpense, self)._onchange_product_id() + rec = self.env['account.analytic.default'].account_get(self.product_id.id, company_id=self.company_id.id, date=self.date) + self.analytic_account_id = rec.analytic_id.id + self.analytic_tag_ids = rec.analytic_tag_ids.ids + return res