From 59c235fee1499a472765f563073a8e32a8a42fa4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= <9664676+pengyuthon@user.noreply.gitee.com> Date: Thu, 16 Oct 2025 19:29:19 +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 --- .../views/yuthon_payroll_labor_views.xml | 2 +- yuthon_salary/wizard/payroll_labor_wizard.py | 60 +++++++++++++------ 2 files changed, 42 insertions(+), 20 deletions(-) diff --git a/yuthon_salary/views/yuthon_payroll_labor_views.xml b/yuthon_salary/views/yuthon_payroll_labor_views.xml index 96e8e3f11..79e3dfda9 100644 --- a/yuthon_salary/views/yuthon_payroll_labor_views.xml +++ b/yuthon_salary/views/yuthon_payroll_labor_views.xml @@ -23,7 +23,7 @@ - + diff --git a/yuthon_salary/wizard/payroll_labor_wizard.py b/yuthon_salary/wizard/payroll_labor_wizard.py index 7bc3b2503..6566c5573 100644 --- a/yuthon_salary/wizard/payroll_labor_wizard.py +++ b/yuthon_salary/wizard/payroll_labor_wizard.py @@ -42,22 +42,44 @@ class PayrollLaborWizard(models.Model): service_fee = row[14].value tiantou_payable = row[15].value company = row[16].value - self.env['yuthon.payroll.labor'].create({ - 'employee_id': employee_id.id, - 'current_year': current_year, - 'current_month': current_month, - 'basic_salary': basic_salary, - 'rank_salary': rank_salary, - 'meal_allowance': meal_allowance, - 'total_payable': total_payable, - 'social_security_personal': social_security_personal, - 'provident_fund_personal': provident_fund_personal, - 'individual_tax': individual_tax, - 'dispatched_actual_salary': dispatched_actual_salary, - 'social_security_company': social_security_company, - 'provident_fund_company': provident_fund_company, - 'disability_insurance': disability_insurance, - 'service_fee': service_fee, - 'tiantou_payable': tiantou_payable, - 'company': company, - }) \ No newline at end of file + payroll_id = self.env['yuthon.payroll'].search([('employee_id', '=', employee_id.id), + ('current_year', '=', current_year), + ('current_month', '=', current_month), + ]) + if not payroll_id: + self.env['yuthon.payroll.labor'].create({ + 'employee_id': employee_id.id, + 'current_year': current_year, + 'current_month': current_month, + 'basic_salary': basic_salary, + 'rank_salary': rank_salary, + 'meal_allowance': meal_allowance, + 'total_payable': total_payable, + 'social_security_personal': social_security_personal, + 'provident_fund_personal': provident_fund_personal, + 'individual_tax': individual_tax, + 'dispatched_actual_salary': dispatched_actual_salary, + 'social_security_company': social_security_company, + 'provident_fund_company': provident_fund_company, + 'disability_insurance': disability_insurance, + 'service_fee': service_fee, + 'tiantou_payable': tiantou_payable, + 'company': company, + }) + else: + payroll_id.write({ + 'basic_salary': basic_salary, + 'rank_salary': rank_salary, + 'meal_allowance': meal_allowance, + 'total_payable': total_payable, + 'social_security_personal': social_security_personal, + 'provident_fund_personal': provident_fund_personal, + 'individual_tax': individual_tax, + 'dispatched_actual_salary': dispatched_actual_salary, + 'social_security_company': social_security_company, + 'provident_fund_company': provident_fund_company, + 'disability_insurance': disability_insurance, + 'service_fee': service_fee, + 'tiantou_payable': tiantou_payable, + 'company': company, + }) \ No newline at end of file