[IMP] pre-commit: first run on whole repo
This commit is contained in:
@@ -2,58 +2,66 @@
|
||||
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from odoo import fields, models, _
|
||||
from odoo import _, fields, models
|
||||
from odoo.exceptions import UserError
|
||||
|
||||
|
||||
class AccountGroupGenerate(models.TransientModel):
|
||||
_name = 'account.group.generate'
|
||||
_description = 'Generate Account Groups'
|
||||
_name = "account.group.generate"
|
||||
_description = "Generate Account Groups"
|
||||
|
||||
name_prefix = fields.Char(string='Prefix', required=True, default='Comptes')
|
||||
name_prefix = fields.Char(string="Prefix", required=True, default="Comptes")
|
||||
level = fields.Integer(default=2, required=True)
|
||||
|
||||
def run(self):
|
||||
if self.level < 1:
|
||||
raise UserError(_("The level must be >= 1."))
|
||||
ago = self.env['account.group']
|
||||
aao = self.env['account.account']
|
||||
ago = self.env["account.group"]
|
||||
aao = self.env["account.account"]
|
||||
company = self.env.company
|
||||
groups = ago.search([('company_id', '=', company.id)])
|
||||
groups = ago.search([("company_id", "=", company.id)])
|
||||
if groups:
|
||||
raise UserError(_(
|
||||
"%d account groups already exists in company '%s'. This wizard is "
|
||||
"designed to generate account groups from scratch.")
|
||||
% (len(groups), company.display_name))
|
||||
accounts = aao.search([('company_id', '=', company.id)])
|
||||
struct = {'childs': {}}
|
||||
raise UserError(
|
||||
_(
|
||||
"%d account groups already exists in company '%s'. This wizard is "
|
||||
"designed to generate account groups from scratch."
|
||||
)
|
||||
% (len(groups), company.display_name)
|
||||
)
|
||||
accounts = aao.search([("company_id", "=", company.id)])
|
||||
struct = {"childs": {}}
|
||||
for account in accounts:
|
||||
if len(account.code) <= self.level:
|
||||
raise UserError(_(
|
||||
"The code of account '%s' is %d caracters. "
|
||||
"It cannot be inferior to level (%d).")
|
||||
% (account.display_name, len(account.code), self.level))
|
||||
raise UserError(
|
||||
_(
|
||||
"The code of account '%s' is %d caracters. "
|
||||
"It cannot be inferior to level (%d)."
|
||||
)
|
||||
% (account.display_name, len(account.code), self.level)
|
||||
)
|
||||
n = 1
|
||||
parent = struct
|
||||
gparent = False
|
||||
while n <= self.level:
|
||||
group_code = account.code[:n]
|
||||
if group_code not in parent['childs']:
|
||||
new_group = ago.create({
|
||||
'name': '%s %s' % (self.name_prefix or '', group_code),
|
||||
'code_prefix_start': group_code,
|
||||
'parent_id': gparent and gparent.id or False,
|
||||
'company_id': company.id,
|
||||
})
|
||||
parent['childs'][group_code] = {'obj': new_group, 'childs': {}}
|
||||
parent = parent['childs'][group_code]
|
||||
gparent = parent['obj']
|
||||
if group_code not in parent["childs"]:
|
||||
new_group = ago.create(
|
||||
{
|
||||
"name": "%s %s" % (self.name_prefix or "", group_code),
|
||||
"code_prefix_start": group_code,
|
||||
"parent_id": gparent and gparent.id or False,
|
||||
"company_id": company.id,
|
||||
}
|
||||
)
|
||||
parent["childs"][group_code] = {"obj": new_group, "childs": {}}
|
||||
parent = parent["childs"][group_code]
|
||||
gparent = parent["obj"]
|
||||
n += 1
|
||||
account.write({'group_id': gparent.id})
|
||||
account.write({"group_id": gparent.id})
|
||||
action = {
|
||||
'type': 'ir.actions.act_window',
|
||||
'name': _('Account Groups'),
|
||||
'view_mode': 'tree,form',
|
||||
'res_model': 'account.group',
|
||||
}
|
||||
"type": "ir.actions.act_window",
|
||||
"name": _("Account Groups"),
|
||||
"view_mode": "tree,form",
|
||||
"res_model": "account.group",
|
||||
}
|
||||
return action
|
||||
|
||||
Reference in New Issue
Block a user