From 1f8e265e43626b7c40e00d7b3280ab9d078aa52f Mon Sep 17 00:00:00 2001 From: Damien Bouvy Date: Mon, 12 Sep 2022 08:31:59 +0000 Subject: [PATCH] [IMP] hr_expense: allow default for the company journal Revision 26a5653f48016d20f4bf050051a0844a760e4470 introduced the possibility to set up a default journal for accounting entries created by "employee-paid" expenses This commit adds the same possibility for the "company-paid" expenses (because why allow it for one and not the other?). closes odoo/odoo#99993 Signed-off-by: Kevin Baptiste --- addons/hr_expense/models/hr_expense.py | 6 +++++- addons/hr_expense/models/res_company.py | 17 +++++++++++++++-- .../hr_expense/models/res_config_settings.py | 1 + .../views/res_config_settings_views.xml | 18 +++++++++++++++--- 4 files changed, 36 insertions(+), 6 deletions(-) diff --git a/addons/hr_expense/models/hr_expense.py b/addons/hr_expense/models/hr_expense.py index a39efa59ab9..411700f6a72 100644 --- a/addons/hr_expense/models/hr_expense.py +++ b/addons/hr_expense/models/hr_expense.py @@ -848,8 +848,12 @@ class HrExpenseSheet(models.Model): @api.model def _default_bank_journal_id(self): + company_journal_id = self.env.company.company_expense_journal_id + if company_journal_id: + return company_journal_id default_company_id = self.default_get(['company_id'])['company_id'] - return self.env['account.journal'].search([('type', 'in', ['cash', 'bank']), ('company_id', '=', default_company_id)], limit=1) + journal = self.env['account.journal'].search([('type', 'in', ['cash', 'bank']), ('company_id', '=', default_company_id)], limit=1) + return journal name = fields.Char('Expense Report Summary', required=True, tracking=True) expense_line_ids = fields.One2many('hr.expense', 'sheet_id', string='Expense Lines', copy=False) diff --git a/addons/hr_expense/models/res_company.py b/addons/hr_expense/models/res_company.py index a7686f48774..b5c1909d462 100644 --- a/addons/hr_expense/models/res_company.py +++ b/addons/hr_expense/models/res_company.py @@ -2,8 +2,21 @@ from odoo import fields, models + class ResCompany(models.Model): _inherit = "res.company" - expense_journal_id = fields.Many2one('account.journal', string='Default Expense Journal', check_company=True, domain="[('type', '=', 'purchase'), ('company_id', '=', company_id)]", - help="The Default journal for the company used when the expense is done.") + expense_journal_id = fields.Many2one( + "account.journal", + string="Default Expense Journal", + check_company=True, + domain="[('type', '=', 'purchase'), ('company_id', '=', company_id)]", + help="The company's default journal used when an employee expense is created.", + ) + company_expense_journal_id = fields.Many2one( + "account.journal", + string="Default Company Expense Journal", + check_company=True, + domain="[('type', 'in', ['cash', 'bank']), ('company_id', '=', company_id)]", + help="The company's default journal used when a company expense is created.", + ) diff --git a/addons/hr_expense/models/res_config_settings.py b/addons/hr_expense/models/res_config_settings.py index 7bcbb559d8e..b9db4a03fdc 100644 --- a/addons/hr_expense/models/res_config_settings.py +++ b/addons/hr_expense/models/res_config_settings.py @@ -17,6 +17,7 @@ class ResConfigSettings(models.TransientModel): module_hr_payroll_expense = fields.Boolean(string='Reimburse Expenses in Payslip') module_hr_expense_extract = fields.Boolean(string='Send bills to OCR to generate expenses') expense_journal_id = fields.Many2one('account.journal', related='company_id.expense_journal_id', readonly=False) + company_expense_journal_id = fields.Many2one('account.journal', related='company_id.company_expense_journal_id', readonly=False) @api.model def get_values(self): diff --git a/addons/hr_expense/views/res_config_settings_views.xml b/addons/hr_expense/views/res_config_settings_views.xml index ba85a1ad6a8..f2b16ea85ca 100644 --- a/addons/hr_expense/views/res_config_settings_views.xml +++ b/addons/hr_expense/views/res_config_settings_views.xml @@ -61,22 +61,34 @@ -

Default Expense Journal

+

Default Journals

- Expense Journal + Employee Expense Journal
Default accounting journal for expenses paid by employees.
-
+
+
+
+ Company Expense Journal + +
+ Default accounting journal for expenses paid by the company. +
+
+ +
+
+