!3696 添加功能

Merge pull request !3696 from 李鹏宇/dev_zhou
This commit is contained in:
李鹏宇
2025-07-07 02:09:00 +00:00
committed by Gitee
2 changed files with 101 additions and 71 deletions
+97 -66
View File
@@ -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:
@@ -197,7 +197,6 @@
<field name="unemployment_insurance" invisible="1"/>
<field name="work_injury_insurance" invisible="1"/>
<field name="housing_provident_fund" invisible="1"/>
<field name="assessment_reserved_amount" invisible="1"/>
<field name="year_compute" invisible="1"/>
<field name="year_jie" invisible="1"/>
<field name="year_gong" invisible="1"/>
@@ -237,10 +236,10 @@
<field name="date_of_entry" optional="show"/>
<field name="struct_id" string="职级" optional="show" column_invisible="1"/>
<field name="bank_account_id" optional="show" column_invisible="1"/>
<field name="actual_salary" decoration-danger="1" decoration-bf="1" optional="show"/>
<field name="actual_salary" decoration-danger="1" decoration-bf="1" column_invisible="1"/>
<field name="total_before_tax" decoration-danger="1" decoration-bf="1" optional="show"/>
<field name="b_year" decoration-danger="1" decoration-bf="1" optional="show"/>
<field name="tax_payable" decoration-danger="1" decoration-bf="1" readonly="1" optional="show"/>
<field name="tax_payable" decoration-danger="1" decoration-bf="1" readonly="1" column_invisible=""/>
<field name="union_dues" decoration-danger="1" decoration-bf="1" optional="show"/>
<field name="three_one" optional="show"/>
<field name="base_salary" required="1" optional="show"/>
@@ -254,7 +253,6 @@
<field name="comprehensive_subsidy" decoration-success="1" groups="yuthon_salary.group_wg_user" optional="show"/>
<field name="job_performance" decoration-success="1" groups="yuthon_salary.group_wg_user" optional="show"/>
<field name="duty" decoration-success="1" groups="yuthon_salary.group_wg_user" optional="show"/>
<field name="leave_allowance" decoration-success="1" groups="yuthon_salary.group_wg_user" optional="show"/>
<field name="environmental_allowance" decoration-success="1" groups="yuthon_salary.group_lc_user" optional="show"/>
<field name="quality_allowance" decoration-success="1" groups="yuthon_salary.group_lc_user" optional="show"/>
<field name="high_subsidy" decoration-success="1" groups="yuthon_salary.group_lc_user" optional="show"/>
@@ -298,6 +296,7 @@
<field name="year_gong" decoration-danger="1" optional="show" groups="yuthon_salary.group_jtbb_user"/>
<field name="study_on" decoration-danger="1" optional="show" groups="yuthon_salary.group_jtbb_user"/>
<field name="excellent_employees" decoration-danger="1" groups="yuthon_salary.group_wg_user" optional="show"/>
<field name="last_year_jie" decoration-danger="1" optional="show"/>
<field name="medical_fee" decoration-danger="1" groups="yuthon_salary.group_lc_user" optional="show"/>
<field name="retroactive_insurance" decoration-danger="1" groups="yuthon_salary.group_lc_user" optional="show"/>
<field name="distribution_part" decoration-danger="1" groups="yuthon_salary.group_lc_user" optional="show"/>
@@ -332,7 +331,7 @@
<field name="position_salary" optional="show"/>
<field name="card_type" optional="show"/>
<field name="identification_id" optional="show"/>
<field name="tax_payable" decoration-danger="1" decoration-bf="1"/>
<field name="tax_payable" decoration-danger="1" decoration-bf="1" column_invisible=""/>
<field name="total_before_tax" string="本期收入" optional="show"/>
<field name="basic_endowment_insurance" optional="show"/>
<field name="basic_medical_insurance" optional="show"/>