!2334 添加功能

Merge pull request !2334 from 李鹏宇/dev_zhou
This commit is contained in:
李鹏宇
2025-04-03 11:00:51 +00:00
committed by Gitee
8 changed files with 77 additions and 30 deletions
@@ -104,6 +104,15 @@ class HrJob(models.Model):
if department_id:
job.sudo().write({'department_id': department_id.id if len(department_id) == 1 else department_id[0].id})
def f6_new(self):
job_ids = self.env["hr.job"].browse(self._context.get('active_ids', self._context.get('active_id')))
for job in job_ids:
if job.department_id:
company_id = job.department_id.company_id
if company_id:
job.sudo().write(
{'company_id': company_id})
def write(self, vals):
res = super(HrJob, self).write(vals)
if 'job_personnel_ids' in vals:
@@ -5,6 +5,11 @@
<field name="model_id" ref="model_hr_department"/>
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
</record>
<record model="ir.rule" id="yuthon_job_rule">
<field name="name">岗位多公司</field>
<field name="model_id" ref="model_hr_job"/>
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
</record>
<record model="ir.rule" id="yuthon_salary_group_rule">
<field name="name">工资单分组多公司</field>
<field name="model_id" ref="model_yuthon_salary_group"/>
@@ -7,7 +7,13 @@
<field name="state">code</field>
<field name="code">action = model.f5_new()</field>
</record>
<record id="all_hr_job_company_user" model="ir.actions.server">
<field name="name">同步公司</field>
<field name="model_id" ref="hr.model_hr_job"/>
<field name="binding_model_id" ref="hr.model_hr_job"/>
<field name="state">code</field>
<field name="code">action = model.f6_new()</field>
</record>
<record id="hr_job_inherit" model="ir.ui.view">
<field name="name">hr.job.inherit</field>
<field name="model">hr.job</field>
@@ -9,6 +9,8 @@ class InheritHrPayslip(models.Model):
employee_id = fields.Many2one('hr.employee', string="姓名")
base_salary = fields.Float(string='基本工资', compute='_compute_salary', store=True)
bank_account = fields.Char(string='银行账号', related='employee_id.bank_account', store=True)
tax_payable = fields.Float(string='应补(退)税额', store=True)
actual_salary = fields.Float(string='实发工资', store=True, compute='_compute_actual_salary')
identification_id = fields.Char(string='证件号码', related='employee_id.identification_id', store=True)
card_type = fields.Char(string='证件类型', store=True, default="居民身份证")
salary_group_id = fields.Many2one('yuthon.salary.group', string="工资组", store=True, index=True)
@@ -75,6 +77,7 @@ class InheritHrPayslip(models.Model):
performance_deduction = fields.Float(string='扣发绩效奖金', compute='_compute_deduction', store=True)
commuting_deduction = fields.Float(string='扣发通信补贴', compute='_compute_deduction', store=True)
base_salary_deduction = fields.Float(string='扣发基本工资', compute='_compute_deduction', store=True)
specialized_deduction = fields.Float(string='累计专项扣除')
def action_refresh_from_work_entries(self):
if any(p.state not in ['draft', 'verify'] for p in self):
@@ -219,6 +222,25 @@ class InheritHrPayslip(models.Model):
record.base_salary_deduction
)
@api.depends('total_before_tax', 'basic_endowment_insurance', 'basic_medical_insurance',
'unemployment_insurance', 'housing_provident_fund', 'b_year', 'tax_payable',
'union_dues', 'meal_misunderstanding_fee', 'temporary_performance_bonus',
'reimburse_performance_bonus', 'life_salary')
def _compute_actual_salary(self):
for record in self:
record.actual_salary = (record.total_before_tax -
record.basic_endowment_insurance -
record.basic_medical_insurance -
record.unemployment_insurance -
record.housing_provident_fund -
record.b_year -
record.tax_payable -
record.union_dues -
record.meal_misunderstanding_fee -
record.temporary_performance_bonus -
record.reimburse_performance_bonus -
record.life_salary)
def put_button(self):
for record in self:
record.write({'is_push': True})
Binary file not shown.
@@ -92,7 +92,7 @@
<field name="name">职级</field>
<field name="res_model">hr.payroll.structure</field>
<field name="view_mode">tree,form,search</field>
<field name="context">{'group_by_no_leaf':1,'group_by':[]}</field>
<!-- <field name="context">{'group_by_no_leaf':1,'group_by':[]}</field>-->
</record>
<record id="all_paroll_write_salary" model="ir.actions.server">
<field name="name">批量更新职级类型</field>
@@ -24,36 +24,46 @@
<xpath expr="//field[@name='number']" position="attributes">
<attribute name="column_invisible">1</attribute>
</xpath>
<xpath expr="//field[@name='company_id']" position="attributes">
<attribute name="optional">hide</attribute>
</xpath>
<xpath expr="//field[@name='net_wage']" position="after">
<field name="struct_id" string="职级"/>
<field name="struct_id" string="职级"/>
<field name="bank_account"/>
<field name="actual_salary" decoration-danger="1"/>
<field name="base_salary"/>
<field name="rank_salary"/>
<field name="post_salary"/>
<field name="performance_bonuses"/>
<field name="commuting_allowance"/>
<field name="seniority_salary"/>
<field name="overtime_pay"/>
<field name="full_attendance_award"/>
<field name="performance_deduction"/>
<field name="commuting_deduction"/>
<field name="base_salary_deduction"/>
<field name="assessment_reserved_amount"/>
<field name="study_on"/>
<field name="jing_te"/>
<field name="overtime_pay"/>
<field name="high_temperature_allowance"/>
<field name="total_before_tax"/>
<field name="basic_medical_insurance"/>
<field name="temporary_performance_bonus"/>
<field name="year_compute" decoration-danger="1"/>
<field name="year_jie" decoration-danger="1"/>
<field name="jing_te" decoration-danger="1"/>
<field name="year_gong" decoration-danger="1"/>
<field name="study_on" decoration-danger="1"/>
<field name="base_salary_deduction" decoration-success="1"/>
<field name="commuting_deduction" decoration-success="1"/>
<field name="performance_deduction" decoration-success="1"/>
<field name="total_before_tax" decoration-danger="1" decoration-bf="1"/>
<field name="basic_endowment_insurance"/>
<field name="basic_medical_insurance"/>
<field name="unemployment_insurance"/>
<field name="tax"/>
<field name="housing_provident_fund"/>
<field name="year_compute"/>
<field name="year_jie"/>
<field name="year_gong"/>
<field name="reimburse_performance_bonus"/>
<field name="b_year"/>
<field name="union_dues"/>
<field name="based_pay"/>
<field name="tax_payable" decoration-danger="1" decoration-bf="1"/>
<field name="deduction_standard"/>
<field name="specialized_deduction"/>
<field name="child_education"/>
<field name="elderly_support"/>
<field name="housing_loan_interest"/>
<field name="housing_rent"/>
<field name="continuing_education"/>
<field name="infant_care"/>
<field name="meal_misunderstanding_fee"/>
<field name="is_salary_push" column_invisible="1"/>
</xpath>
@@ -162,7 +172,7 @@
<field name="arch" type="xml">
<tree string="薪资计算" default_order="employee_id" js_class="custom_salary_button" editable="bottom">
<field name="employee_id" string="姓名"/>
<field name="total_before_tax" decoration-danger="1"/>
<field name="total_before_tax" decoration-danger="1" decoration-bf="1"/>
<field name="company_id" optional="hide" required="1"/>
<field name="base_salary"/>
<field name="rank_salary"/>
@@ -202,6 +212,7 @@
<field name="arch" type="xml">
<tree string="个税计算" default_order="employee_id" js_class="custom_salary_payslip_button">
<field name="employee_id" string="姓名"/>
<field name="tax_payable" decoration-danger="1" decoration-bf="1"/>
<field name="struct_id" string="职级"/>
<field name="post_salary"/>
<field name="card_type"/>
@@ -262,22 +273,15 @@
</xpath>
</field>
</record>
<record id="inherit_view_hr_payslip_tree" model="ir.ui.view">
<field name="name">inherit.view.hr.payslip.tree</field>
<field name="model">hr.payslip</field>
<field name="inherit_id" ref="hr_payroll.view_hr_payslip_tree"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='employee_id']" position="attributes">
<field name="bank_account"/>
</xpath>
</field>
</record>
<record id="hr_payroll.action_view_hr_payslip_month_form" model="ir.actions.act_window">
<field name="name">薪资审定</field>
<field name="res_model">hr.payslip</field>
<field name="view_mode">tree,form,search</field>
<field name="domain">[('is_salary_push', '=', True)]</field>
<field name="context">{'search_default_group_by_employee': 1}</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('hr_payroll.view_hr_payslip_tree')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('hr_payroll.view_hr_payslip_form')})]"/>
</record>
<record id="action_view_hr_payslip_month_form1" model="ir.actions.act_window">
<field name="name">薪资计算</field>
@@ -10,6 +10,7 @@ from datetime import datetime
class SalaryPayslipWizard(models.Model):
_name = 'salary.payslip.wizard'
_description = '个税计算导入'
excel_file = fields.Binary(string="上传Excel表")
excel_name = fields.Char(string="文件名")