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 @@
-
+