From efcfd73b5c1079c242d367169c105da3921cbf84 Mon Sep 17 00:00:00 2001 From: zhou <123@> Date: Mon, 7 Jul 2025 10:07:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yuthon_salary/models/inherit_hr_payslip.py | 163 +++++++++++------- .../views/inherit_hr_payslip_views.xml | 9 +- 2 files changed, 101 insertions(+), 71 deletions(-) diff --git a/yuthon_salary/models/inherit_hr_payslip.py b/yuthon_salary/models/inherit_hr_payslip.py index 1f03cef17..4627b15a8 100644 --- a/yuthon_salary/models/inherit_hr_payslip.py +++ b/yuthon_salary/models/inherit_hr_payslip.py @@ -59,14 +59,13 @@ class InheritHrPayslip(models.Model): b_year = fields.Float(string='企业(职业)年金', compute='_compute_salary', store=True) total_before_tax = fields.Float(string='本期应收', compute='_compute_total_before_tax', store=True) year_compute = fields.Float(string='前年年度清算', store=True) - year_jie = fields.Float(string='上年年度结余', store=True) + year_jie = fields.Float(string='前年年度结余', store=True) year_gong = fields.Float(string='年功奖', store=True) study_on = fields.Float(string='学习进步奖') jing_te = fields.Float(string='经营特别奖') temporary_performance_bonus = fields.Float(string='临时绩效奖') - attendance_deduction_total = fields.Float(string='考勤扣款合计') - assessment_reserved_amount = fields.Float(string='考核保留量') last_year_safety = fields.Float(string='上年安全生产工作奖') + last_year_jie = fields.Float(string='上年年度结余') last_year_performance_evaluation = fields.Float(string='上年绩效评优') retention_previous_year = fields.Float(string='上年考核保留量') social_security = fields.Float(string='上年社保补缴') @@ -168,6 +167,32 @@ class InheritHrPayslip(models.Model): for rec in self: if rec.line_ids: for line in rec.line_ids: + if line.name == '上年社保补缴': + rec.social_security = line.total + if line.name == '上年年度清算': + rec.liquidation_year = line.total + if line.name == '年功奖': + rec.year_gong = line.total + if line.name == '生活补贴': + rec.life_salary = line.total + if line.name == '安全生产奖': + rec.safety_incentives = line.total + if line.name == '前年年度清算': + rec.year_compute = line.total + if line.name == '前年年度结余': + rec.year_jie = line.total + if line.name == '上月多扣绩效补回': + rec.performance_up = line.total + if line.name == '上年考核保留量': + rec.retention_previous_year = line.total + if line.name == '上年年度结余': + rec.last_year_jie = line.total + if line.name == '上年个税退回': + rec.individual_tax_refund = line.total + if line.name == '经营特别奖': + rec.jing_te = line.total + if line.name == '补发津贴': + rec.retroactive_allowance = line.total if line.name == '个税扣发(减)': rec.individual_income_tax = line.total if line.name == '个税补发(加)': @@ -268,8 +293,6 @@ class InheritHrPayslip(models.Model): rec.distribution_part = line.total if line.name == '岗位绩效': rec.job_performance = line.total - if line.name == '请假扣发': - rec.leave_allowance = line.total if line.name == '值班(含节日加班)': rec.duty = line.total if line.name == '月加班': @@ -334,78 +357,86 @@ class InheritHrPayslip(models.Model): "target": "new", } - @api.depends('year_compute', 'year_jie', 'year_gong', 'jing_te', 'study_on', 'seniority_allowance', 'position_salary', - 'quality_allowance','high_subsidy', 'environmental_allowance', 'last_duty', 'seniority_salary', 'commuting_allowance','base_salary','performance_bonuses', 'comprehensive_subsidy', 'full_attendance_award', 'overtime_pay', 'based_pay', - 'january_performance','position_subsidy', 'safety_incentives', 'temporary_performance_bonus', 'performance_deduction','commuting_deduction', 'retroactive_insurance', - 'base_salary_deduction', 'last_year_performance_evaluation', 'safety_subsidy', 'job_performance','leave_allowance', 'distribution_part', 'minus_att', 'add_att', - 'duty', 'monthly_overtime', 'annuity', 'excellent_employees', 'leave_absence', 'retention_previous_year') + @api.depends('year_compute', 'year_jie', 'year_gong', 'jing_te', 'study_on', 'seniority_allowance', + 'position_salary', 'liquidation_year', + 'quality_allowance', 'high_subsidy', 'environmental_allowance', 'last_duty', 'seniority_salary', + 'commuting_allowance', 'base_salary', 'performance_bonuses', 'comprehensive_subsidy', + 'full_attendance_award', 'overtime_pay', 'based_pay', + 'january_performance', 'position_subsidy', 'safety_incentives', 'temporary_performance_bonus', + 'performance_deduction', 'commuting_deduction', 'retroactive_insurance', + 'base_salary_deduction', 'last_year_performance_evaluation', 'safety_subsidy', 'job_performance', + 'distribution_part', 'minus_att', 'add_att', + 'duty', 'monthly_overtime', 'annuity', 'excellent_employees', 'leave_absence', + 'retention_previous_year') def _compute_total_before_tax(self): for record in self: record.total_before_tax = ( - record.add_att + - record.minus_att + - record.retroactive_insurance + - record.distribution_part + - record.retention_previous_year + - record.position_salary + - record.high_subsidy + - record.last_duty + - record.environmental_allowance + - record.quality_allowance + - record.safety_incentives + - record.comprehensive_subsidy + - record.position_subsidy + - record.last_year_performance_evaluation + - record.temporary_performance_bonus + - record.performance_bonuses + - record.commuting_allowance + - record.january_performance + - record.based_pay + - record.base_salary + - record.seniority_salary + - record.rank_salary + - record.year_compute + - record.year_jie + - record.year_gong + - record.jing_te + - record.study_on + - record.full_attendance_award + - record.overtime_pay + - # 新增的物管常用项 - record.seniority_allowance + - record.safety_subsidy + - record.job_performance + - record.duty + - record.monthly_overtime + - record.annuity + - - - # 新增的物管临时项 - record.excellent_employees + - record.leave_absence - - # 扣除项 - - - record.performance_deduction - - record.commuting_deduction - - record.base_salary_deduction - - record.leave_allowance # 请假扣发 + record.liquidation_year + + record.add_att + + record.year_compute + + record.year_jie + + record.year_gong + + record.jing_te + + record.study_on + + record.safety_incentives + + record.temporary_performance_bonus + + record.last_year_performance_evaluation + + record.retention_previous_year + + record.based_pay + + record.january_performance - + record.distribution_part + + record.seniority_allowance + + record.position_salary + + record.quality_allowance + + record.high_subsidy + + record.environmental_allowance + + record.last_duty + + record.seniority_salary + + record.commuting_allowance + + record.base_salary + + record.performance_bonuses + + record.comprehensive_subsidy + + record.full_attendance_award + + record.overtime_pay + + record.position_subsidy + + record.safety_subsidy + + record.job_performance + + record.duty + + record.monthly_overtime + + record.excellent_employees - + record.performance_deduction - + record.commuting_deduction - + record.retroactive_insurance - + record.base_salary_deduction - + record.minus_att ) - # 本期应收 - 三险一金 - 年金 - 应补退税 - 工会会费 - 个税退回 # total_before_tax - three_one - b_year - union_dues - tax_payable - individual_tax_refund - @api.depends('total_before_tax', 'three_one', 'b_year', 'union_dues', 'tax_payable', 'individual_tax_refund', 'medical_fee', 'individual_income_tax', 'add_income_tax', 'minus_annuity_difference', 'add_annuity_difference') + @api.depends('total_before_tax', 'three_one', 'b_year', 'union_dues', 'tax_payable', 'individual_tax_refund', + 'medical_fee', 'individual_income_tax', 'add_income_tax', 'minus_annuity_difference', + 'add_annuity_difference') def _compute_actual_salary(self): for record in self: - record.actual_salary = (record.total_before_tax - record.three_one - record.b_year - record.union_dues - record.tax_payable + record.individual_tax_refund - record.medical_fee - record.individual_income_tax + record.add_income_tax - record.minus_annuity_difference - + record.add_annuity_difference) - + record.actual_salary = (record.total_before_tax - + record.three_one - + record.social_security - + record.medical_fee - + record.b_year - + record.union_dues - + record.tax_payable - + record.individual_income_tax - + record.add_income_tax - + record.minus_annuity_difference + + record.individual_tax_refund + + record.life_salary + + record.add_annuity_difference + ) if record.employee_id.name == '罗梦烨': - _logger.info("罗梦烨实发{} 本期应:{},31:{},年金:{}应补:{}工会{}个税{}".format(record.actual_salary, record.total_before_tax, - record.three_one, record.b_year, record.union_dues, - record.tax_payable, record.individual_tax_refund)) + _logger.info("罗梦烨实发{} 本期应:{},31:{},年金:{}应补:{}工会{}个税{}".format(record.actual_salary, record.total_before_tax, + record.three_one, record.b_year, record.union_dues, + record.tax_payable, record.individual_tax_refund)) def put_button(self): for record in self: diff --git a/yuthon_salary/views/inherit_hr_payslip_views.xml b/yuthon_salary/views/inherit_hr_payslip_views.xml index a9436b6d9..b815bcdbf 100644 --- a/yuthon_salary/views/inherit_hr_payslip_views.xml +++ b/yuthon_salary/views/inherit_hr_payslip_views.xml @@ -197,7 +197,6 @@ - @@ -237,10 +236,10 @@ - + - + @@ -254,7 +253,6 @@ - @@ -298,6 +296,7 @@ + @@ -332,7 +331,7 @@ - +