@@ -27,6 +27,27 @@ class HrPayrollStructure(models.Model):
|
||||
integrated_subsidy = fields.Monetary(string="综合补贴", currency_field="currency_id")
|
||||
advance_performance_bonuses = fields.Monetary(string="月绩效奖金", currency_field="currency_id")
|
||||
renk_log_ids = fields.One2many("rank.log.line", "structure_id", string="职级日志明细行")
|
||||
is_company = fields.Boolean(string="本公司", default=True, compute='_compute_is_company',
|
||||
search='_search_part_of_company')
|
||||
|
||||
@api.depends_context('uid', 'company')
|
||||
@api.depends('company_id')
|
||||
def _compute_is_company(self):
|
||||
active_company_ids = self.env.companies
|
||||
for employee in self:
|
||||
employee.is_company = employee.company_id in active_company_ids
|
||||
|
||||
def _search_part_of_company(self, operator, value):
|
||||
company_ids = self.env.companies.ids # 获取公司ID列表
|
||||
# 处理反向操作符
|
||||
if not value:
|
||||
operator = '!=' if operator == '=' else '='
|
||||
# 使用company_id in company_ids的结构
|
||||
if operator == '=':
|
||||
return [('company_id', 'in', company_ids)]
|
||||
else: # operator == '!='
|
||||
return [('company_id', 'not in', company_ids)]
|
||||
|
||||
|
||||
@api.depends('create_time', 'end_time')
|
||||
def _compute_is_enable(self):
|
||||
|
||||
@@ -45,11 +45,6 @@
|
||||
<field name="model_id" ref="model_yuthon_payroll_insurances"/>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
|
||||
</record>
|
||||
<record model="ir.rule" id="hr_payroll_structure_rule">
|
||||
<field name="name">职级多公司</field>
|
||||
<field name="model_id" ref="model_hr_payroll_structure"/>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
|
||||
</record>
|
||||
<record model="ir.rule" id="hr_payroll_labor_rule">
|
||||
<field name="name">劳务多公司</field>
|
||||
<field name="model_id" ref="model_yuthon_payroll_labor"/>
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='name']" position="after">
|
||||
<field name="base_salary"/>
|
||||
<field name="is_company" column_invisible="1"/>
|
||||
<field name="rank_salary" groups="yuthon_salary.group_jtbb_user,yuthon_salary.group_lc_user"/>
|
||||
<field name="position_subsidy" column_invisible="1"/>
|
||||
<field name="integrated_subsidy" groups="yuthon_salary.group_wg_user"/>
|
||||
@@ -47,6 +48,7 @@
|
||||
<field name="arch" type="xml">
|
||||
<tree string="历史职级">
|
||||
<field name="name"/>
|
||||
<field name="is_company" column_invisible="1"/>
|
||||
<field name="base_salary"/>
|
||||
<field name="rank_salary" groups="yuthon_salary.group_jtbb_user"/>
|
||||
<field name="position_subsidy" groups="yuthon_salary.group_lc_user"/>
|
||||
@@ -132,14 +134,14 @@
|
||||
<field name="name">职级</field>
|
||||
<field name="res_model">hr.payroll.structure</field>
|
||||
<field name="view_mode">tree,form,search</field>
|
||||
<field name="domain">[('is_enable', '=', True)]</field>
|
||||
<field name="domain">[('is_enable', '=', True), ('is_company', '=', True)]</field>
|
||||
<field name="view_id" ref="hr_payroll_structure_inherit"/>
|
||||
</record>
|
||||
<record id="action_view_hr_payroll_structure_list_form1" model="ir.actions.act_window">
|
||||
<field name="name">历史职级</field>
|
||||
<field name="res_model">hr.payroll.structure</field>
|
||||
<field name="view_mode">tree,form,search</field>
|
||||
<field name="domain">[('is_enable', '=', False)]</field>
|
||||
<field name="domain">[('is_enable', '=', False), ('is_company', '=', True)]</field>
|
||||
<field name="context">{'search_default_group_lv_id': 1}</field>
|
||||
<field name="view_id" ref="hr_payroll_structure_history_tree"/>
|
||||
</record>
|
||||
|
||||
Reference in New Issue
Block a user