From 31f199597fc0dbefc6b875dc5a196fbe132e1c4d Mon Sep 17 00:00:00 2001 From: wan Date: Tue, 26 Feb 2019 15:16:20 +0000 Subject: [PATCH] [IMP] account: add option to group journals It can be useful to be able to select several journals in 1 click in the financial reports Task: 1857934 closes odoo/odoo#26711 Signed-off-by: Cedric Snauwaert (csn) --- addons/account/models/account.py | 14 ++++++- addons/account/security/account_security.xml | 7 ++++ addons/account/security/ir.model.access.csv | 2 + addons/account/views/account_view.xml | 43 ++++++++++++++++++++ 4 files changed, 65 insertions(+), 1 deletion(-) diff --git a/addons/account/models/account.py b/addons/account/models/account.py index 27ee060aeeb..8cb2b4f4225 100644 --- a/addons/account/models/account.py +++ b/addons/account/models/account.py @@ -70,7 +70,7 @@ class AccountAccount(models.Model): result = self.read_group([('user_type_id', '=', data_unaffected_earnings.id)], ['company_id'], ['company_id']) for res in result: if res.get('company_id_count', 0) >= 2: - account_unaffected_earnings = self.search([('company_id', '=', res['company_id'][0]), + account_unaffected_earnings = self.search([('company_id', '=', res['company_id'][0]), ('user_type_id', '=', data_unaffected_earnings.id)]) raise ValidationError(_('You cannot have more than one account with "Current Year Earnings" as type. (accounts: %s)') % [a.code for a in account_unaffected_earnings]) @@ -385,6 +385,16 @@ class AccountGroup(models.Model): return self.browse(group_ids).name_get() +class AccountJournalGroup(models.Model): + _name = 'account.journal.group' + _description = "Account Journal Group" + + name = fields.Char(required=True, translate=True) + company_id = fields.Many2one('res.company', required=True, default=lambda self: self.env['res.company']._company_default_get('account.account')) + account_journal_ids = fields.Many2many('account.journal', string="Journals") + sequence = fields.Integer(default=10) + + class AccountJournal(models.Model): _name = "account.journal" _description = "Journal" @@ -479,6 +489,8 @@ class AccountJournal(models.Model): alias_domain = fields.Char('Alias domain', compute='_compute_alias_domain', default=lambda self: self.env["ir.config_parameter"].sudo().get_param("mail.catchall.domain")) alias_name = fields.Char('Alias Name for Vendor Bills', related='alias_id.alias_name', help="It creates draft vendor bill by sending an email.", readonly=False) + journal_group_ids = fields.Many2many('account.journal.group', string="Journal Groups") + _sql_constraints = [ ('code_company_uniq', 'unique (code, name, company_id)', 'The code and name of the journal must be unique per company !'), ] diff --git a/addons/account/security/account_security.xml b/addons/account/security/account_security.xml index df21d0861d1..5e5a63f120f 100644 --- a/addons/account/security/account_security.xml +++ b/addons/account/security/account_security.xml @@ -98,6 +98,13 @@ ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + + Journal multi-company + + + ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + + Journal multi-company diff --git a/addons/account/security/ir.model.access.csv b/addons/account/security/ir.model.access.csv index a091adbd8b8..2f74ad224ae 100644 --- a/addons/account/security/ir.model.access.csv +++ b/addons/account/security/ir.model.access.csv @@ -84,3 +84,5 @@ access_account_fiscal_year_user,account.fiscal.year.user,model_account_fiscal_ye access_account_fiscal_year_manager,account.fiscal.year.manager,model_account_fiscal_year,account.group_account_manager,1,1,1,1 access_account_incoterms_all,account.incoterms all,model_account_incoterms,,1,0,0,0 access_account_incoterms_manager,account.incoterms manager,model_account_incoterms,account.group_account_manager,1,1,1,1 +access_account_journal_group_all,account.journal.group all,model_account_journal_group,,1,0,0,0 +access_account_journal_group_manager,account.journal.group manager,model_account_journal_group,account.group_account_manager,1,1,1,1 diff --git a/addons/account/views/account_view.xml b/addons/account/views/account_view.xml index bb7ba9796ec..018d21ffbaf 100644 --- a/addons/account/views/account_view.xml +++ b/addons/account/views/account_view.xml @@ -129,6 +129,7 @@ + @@ -173,6 +174,34 @@ + + account.journal.group.tree + account.journal.group + 1 + + + + + + + + + + account.journal.group.form + account.journal.group + 1 + +
+ + + + + + + +
+
+
account.journal.form account.journal @@ -192,6 +221,7 @@ + @@ -409,6 +439,19 @@ + + Journal Groups + account.journal.group + +

+ Add a journal group +

+ Journal group are used in reporting to display relevant data together. +

+
+
+ +