[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) <csn@openerp.com>
This commit is contained in:
@@ -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 !'),
|
||||
]
|
||||
|
||||
@@ -98,6 +98,13 @@
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
||||
</record>
|
||||
|
||||
<record id="journal_comp_rule" model="ir.rule">
|
||||
<field name="name">Journal multi-company</field>
|
||||
<field name="model_id" ref="model_account_journal_group"/>
|
||||
<field name="global" eval="True"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
||||
</record>
|
||||
|
||||
<record id="journal_comp_rule" model="ir.rule">
|
||||
<field name="name">Journal multi-company</field>
|
||||
<field name="model_id" ref="model_account_journal"/>
|
||||
|
||||
@@ -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
|
||||
|
||||
|
@@ -129,6 +129,7 @@
|
||||
<field name='sequence' widget='handle'/>
|
||||
<field name="name"/>
|
||||
<field name="type"/>
|
||||
<field name="journal_group_ids" widget="many2many_tags"/>
|
||||
<field name="belongs_to_company" invisible="1"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
</tree>
|
||||
@@ -173,6 +174,34 @@
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_account_journal_group_tree" model="ir.ui.view">
|
||||
<field name="name">account.journal.group.tree</field>
|
||||
<field name="model">account.journal.group</field>
|
||||
<field name="priority">1</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="name"/>
|
||||
<field name="account_journal_ids" widget="many2many_tags"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_account_journal_group_form" model="ir.ui.view">
|
||||
<field name="name">account.journal.group.form</field>
|
||||
<field name="model">account.journal.group</field>
|
||||
<field name="priority">1</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Journal Groups">
|
||||
<sheet>
|
||||
<group>
|
||||
<field name="name"/>
|
||||
<field name="account_journal_ids" widget="many2many_tags" options="{'no_create': True}"/>
|
||||
<field name="sequence"/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_account_journal_form" model="ir.ui.view">
|
||||
<field name="name">account.journal.form</field>
|
||||
<field name="model">account.journal</field>
|
||||
@@ -192,6 +221,7 @@
|
||||
<group>
|
||||
<group>
|
||||
<field name="type"/>
|
||||
<field name="journal_group_ids" widget="many2many_tags" domain="['|', ('company_id', '=', company_id), ('company_id', '=', False)]" options="{'no_create': True}"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="company_id" options="{'no_create': True}" groups="base.group_multi_company"/>
|
||||
@@ -409,6 +439,19 @@
|
||||
</record>
|
||||
<menuitem action="action_account_journal_form" id="menu_action_account_journal_form" parent="account_account_menu" groups="account.group_account_manager"/>
|
||||
|
||||
<record id="action_account_journal_group_list" model="ir.actions.act_window">
|
||||
<field name="name">Journal Groups</field>
|
||||
<field name="res_model">account.journal.group</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Add a journal group
|
||||
</p><p>
|
||||
Journal group are used in reporting to display relevant data together.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
<menuitem action="action_account_journal_group_list" id="menu_action_account_journal_group_list" parent="account_account_menu"/>
|
||||
|
||||
<act_window
|
||||
id="act_account_journal_2_account_bank_statement"
|
||||
name="Bank statements"
|
||||
|
||||
Reference in New Issue
Block a user