为每个现有公司动态创建记录和工资规则,并将它们链接到会计计划
Creating records and salary rules dynamically for each company existing, and linking them to the accounting plan
在 Odoo 13 中,我们遇到了一个 多公司问题,其中需要相同的薪资规则和薪资结构(属于OCA工资单模块)每个公司。
我们不想静态定义每个公司的记录:
我们想要创建的是一个 Odoo 函数,该函数 自动为每个公司创建记录 并链接到适当的帐户适当公司的会计计划:
@api.model
def create_rule_for_every_company(self):
"""
function that'll create the rule for each company, in the group_system
"""
(从 XML 数据文件安装模块时调用函数)
但很快意识到您需要对工资结构等做同样的事情,所以我想知道在 Odoo 逻辑中是否有更简单的方法来做到这一点,我不知道不知道.
这样做的目的是将每条规则链接到公司的适当:account.account
。
基本上,我想到了这个:
@api.model
def create_rule_for_every_company(self):
"""
function that'll create the rule for each company, in the group_system
"""
list_companies = self.env['res.company'].sudo().search([])
list_rules = self.env['hr.salary.rule'].sudo().search([('company_id', '=', 0)])
for rule in list_rules:
if rule.company_id is False:
for company in list_companies:
if rule.child_ids:
for child in rule.child_ids:
child_copy = child.copy()
child_copy.sudo().write({'company_id': company.id, 'parent_rule_id': rule.id, 'rubric_id': child.rubric_id})
rule_copy = rule.sudo().copy()
rule_copy.sudo().write({'company_id': company.id, 'rubric_id': rule.rubric_id})
else:
rule_copy = rule.sudo().copy()
rule_copy.sudo().write({'company_id': company.id, 'rubric_id': rule.rubric_id})
for rule in list_rules:
if rule.company_id is False:
self.sudo().unlink(rule.id)
仍在寻找更优的解决方案。
这个解决方案感觉不稳定。
在 Odoo 13 中,我们遇到了一个 多公司问题,其中需要相同的薪资规则和薪资结构(属于OCA工资单模块)每个公司。
我们不想静态定义每个公司的记录:
我们想要创建的是一个 Odoo 函数,该函数 自动为每个公司创建记录 并链接到适当的帐户适当公司的会计计划:
@api.model
def create_rule_for_every_company(self):
"""
function that'll create the rule for each company, in the group_system
"""
(从 XML 数据文件安装模块时调用函数)
但很快意识到您需要对工资结构等做同样的事情,所以我想知道在 Odoo 逻辑中是否有更简单的方法来做到这一点,我不知道不知道.
这样做的目的是将每条规则链接到公司的适当:account.account
。
基本上,我想到了这个:
@api.model
def create_rule_for_every_company(self):
"""
function that'll create the rule for each company, in the group_system
"""
list_companies = self.env['res.company'].sudo().search([])
list_rules = self.env['hr.salary.rule'].sudo().search([('company_id', '=', 0)])
for rule in list_rules:
if rule.company_id is False:
for company in list_companies:
if rule.child_ids:
for child in rule.child_ids:
child_copy = child.copy()
child_copy.sudo().write({'company_id': company.id, 'parent_rule_id': rule.id, 'rubric_id': child.rubric_id})
rule_copy = rule.sudo().copy()
rule_copy.sudo().write({'company_id': company.id, 'rubric_id': rule.rubric_id})
else:
rule_copy = rule.sudo().copy()
rule_copy.sudo().write({'company_id': company.id, 'rubric_id': rule.rubric_id})
for rule in list_rules:
if rule.company_id is False:
self.sudo().unlink(rule.id)
仍在寻找更优的解决方案。
这个解决方案感觉不稳定。