From 83791770f72d129dbf0f1a79f299f8e0770f874c 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: Wed, 2 Sep 2026 12:01:32 +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_holiday/models/inherit_hr_leave.py | 2 +- .../models/inherit_hr_leave_allocation.py | 2 +- yuthon_holiday/wizard/leave_allocation_wizard.py | 2 +- .../models/hr_attendance_detail_wechat.py | 2 +- .../models/message_reminder_tasks.py | 3 +-- yuthon_hr_attendance/models/overtime_approval.py | 8 ++++---- .../models/yuthon_vacation_reports.py | 12 ++++++------ yuthon_hr_employee/models/yuthon_hr_employee.py | 13 ++++++------- yuthon_official/models/yuthon_file_processing.py | 4 ++-- .../models/yuthon_offficial_incoming_party.py | 3 +-- yuthon_official/models/yuthon_official.py | 10 +++++----- .../models/yuthon_official_branch_party.py | 4 ++-- yuthon_official/models/yuthon_official_labor.py | 4 ++-- yuthon_official/models/yuthon_official_party.py | 7 +++---- yuthon_property/models/property_bank_statements.py | 2 +- .../wizard/property_statements_wizard.py | 4 ++-- .../models/inherit_yuthon_property.py | 2 +- .../models/property_lease_contract.py | 2 +- .../models/property_lease_renewal.py | 2 +- yuthon_property_approval/wizard/refund_wizard.py | 2 +- yuthon_salary/models/yuthon_payroll_project.py | 12 ++++++------ yuthon_salary/models/yuthon_salary_year.py | 4 ++-- yuthon_salary/wizard/salary_year_wizard.py | 2 +- yuthon_salary/wizard/salary_year_wizard.xml | 2 +- yuthon_stock/models/Inherit_stock_picking_type.py | 4 +--- 25 files changed, 54 insertions(+), 60 deletions(-) diff --git a/yuthon_holiday/models/inherit_hr_leave.py b/yuthon_holiday/models/inherit_hr_leave.py index 0e6344348..6df000bed 100644 --- a/yuthon_holiday/models/inherit_hr_leave.py +++ b/yuthon_holiday/models/inherit_hr_leave.py @@ -1046,7 +1046,7 @@ class HolidaysRequestBatch(models.Model): raise ValidationError(_("添加了按天请假记录,必须选择'按天请假'选项!")) if record.hour_leave_ids and not record.is_hour: raise ValidationError(_("添加了按小时请假记录,必须选择'按小时请假'选项!")) - if record.hour_leave_ids and record.company_id.name == '天河物管': + if record.hour_leave_ids and record.company_id.id == 3: for line in record.hour_leave_ids: if not line.request_date_from or not line.request_hour_to: continue diff --git a/yuthon_holiday/models/inherit_hr_leave_allocation.py b/yuthon_holiday/models/inherit_hr_leave_allocation.py index 6c04ebf1d..06c4f0b4e 100644 --- a/yuthon_holiday/models/inherit_hr_leave_allocation.py +++ b/yuthon_holiday/models/inherit_hr_leave_allocation.py @@ -154,7 +154,7 @@ class HrLeaveAllocation(models.Model): target_year = start_dt.year + 1 end_dt = date(target_year, 6, 30) - elif company_name == '天河物管': + elif leave.employee_id.company_id.id == 3: target_year = start_dt.year + 1 feb_last_day = calendar.monthrange(target_year, 2)[1] end_dt = date(target_year, 2, feb_last_day) diff --git a/yuthon_holiday/wizard/leave_allocation_wizard.py b/yuthon_holiday/wizard/leave_allocation_wizard.py index 59b193e7d..7e49fe468 100644 --- a/yuthon_holiday/wizard/leave_allocation_wizard.py +++ b/yuthon_holiday/wizard/leave_allocation_wizard.py @@ -32,7 +32,7 @@ class LeaveAllocationWizard(models.Model): employee_id = self.env['hr.employee'].search([('name', '=', row[0].value)], limit=1) if not employee_id: raise ValidationError(f'员工姓名{row[0].value}不存在,请检查。') - holiday_status_id = self.env['hr.leave.type'].search([('name', '=', '年假'), ('company_id', '=', '天河物管')], limit=1) + holiday_status_id = self.env['hr.leave.type'].search([('name', '=', '年假'), ('company_id', '=', 3)], limit=1) holiday_status_id1 = self.env['hr.leave.type'].search([('name', '=', '补休')], limit=1) accrual_plan_id = self.env['hr.leave.accrual.plan'].search([('name', '=', '年假(天河物管)')], limit=1) if row[1].value and int(row[1].value) != 0: diff --git a/yuthon_hr_attendance/models/hr_attendance_detail_wechat.py b/yuthon_hr_attendance/models/hr_attendance_detail_wechat.py index b8c2ca150..1ba51dd5d 100644 --- a/yuthon_hr_attendance/models/hr_attendance_detail_wechat.py +++ b/yuthon_hr_attendance/models/hr_attendance_detail_wechat.py @@ -602,7 +602,7 @@ class HrAttendanceDetail(models.Model): if not self._process_shift_days(current_data): return is_early_card, is_late_card, is_abnormal, is_warning, absenteeism_card, is_no_card - is_tianhe_property = employee.company_id.name == "天河物管" + is_tianhe_property = employee.company_id.id == 3 # 只要是旷工 就不算早退 或者迟到 # 迟到判断 diff --git a/yuthon_hr_attendance/models/message_reminder_tasks.py b/yuthon_hr_attendance/models/message_reminder_tasks.py index 326139e16..e19f2c20e 100644 --- a/yuthon_hr_attendance/models/message_reminder_tasks.py +++ b/yuthon_hr_attendance/models/message_reminder_tasks.py @@ -58,8 +58,7 @@ class MessageReminderTasks(models.Model): def _generate_reminder_tasks_by_date(self, current_date): """按指定日期生成提醒任务(每日/批量共用逻辑)""" - target_company_names = ['天河物管', '天河粮储', '集团本部'] - target_companies = self.env['res.company'].search([('name', 'in', target_company_names)]) + target_companies = self.env['res.company'].search(['|', ('name', 'in', ['天河粮储', '集团本部']), ('id', '=', 3)]) target_calendars = self.env['resource.calendar'].search([ ('company_id', 'in', target_companies.ids) ]) diff --git a/yuthon_hr_attendance/models/overtime_approval.py b/yuthon_hr_attendance/models/overtime_approval.py index 9fbf654f9..3aedc856a 100644 --- a/yuthon_hr_attendance/models/overtime_approval.py +++ b/yuthon_hr_attendance/models/overtime_approval.py @@ -114,7 +114,7 @@ class OvertimeApprovals(models.Model): for employee in rec.employee_ids: holiday_status_id = self.env['hr.leave.type'].search([('name', '=', '补休')]) start_year = rec.start_time.date().year - if rec.company_id.name == "天河物管": + if rec.company_id.id == 3: start_date = datetime(start_year, 3, 1).date() valid_date = datetime(start_year + 1, 3, 1).date() + relativedelta(months=1) - relativedelta(days=1) elif rec.company_id.name == "天河粮储": @@ -171,7 +171,7 @@ class OvertimeApprovals(models.Model): def _compute_is_thwg(self): for rec in self: if rec.users_id: - rec.is_thwg = rec.users_id.company_id.name == '天河物管' + rec.is_thwg = rec.users_id.company_id.id == 3 @api.depends('users_id') def _compute_is_lc(self): @@ -387,7 +387,7 @@ class OvertimeApprovals(models.Model): records = super(OvertimeApprovals, self).create(vals_list) records._compute_duration() for rec in records: - if rec.company_id.name == '天河物管': + if rec.company_id.id == 3: duration = rec.duration if duration < 1: raise ValidationError(f"时长不能小于1!当前填写的是{duration}") @@ -427,7 +427,7 @@ class OvertimeApprovals(models.Model): for record in self: for employee_id in record.employee_ids: start_year = record.start_time.date().year - if record.company_id.name == "天河物管": + if record.company_id.id == 3: start_date = datetime(start_year, 9, 1).date() valid_date = datetime(start_year + 1, 9, 1).date() + relativedelta(months=1) - relativedelta(days=1) elif record.company_id.name == "天河粮储": diff --git a/yuthon_hr_attendance/models/yuthon_vacation_reports.py b/yuthon_hr_attendance/models/yuthon_vacation_reports.py index 4dd0dfbfb..e886a5409 100644 --- a/yuthon_hr_attendance/models/yuthon_vacation_reports.py +++ b/yuthon_hr_attendance/models/yuthon_vacation_reports.py @@ -253,7 +253,7 @@ class YuthonVacationReports(models.Model): def _compute_late_allowed_fields(self): for record in self: # 每月发放:天河物管员工 3 次允许迟到次数,其余公司 0 - if record.employee_id and record.employee_id.company_id.name == "天河物管": + if record.employee_id and record.employee_id.company_id.id == 3: grant = 3 else: grant = 0 @@ -613,7 +613,7 @@ class YuthonVacationReports(models.Model): allocation_valid_date = None # 2. 天河物管:默认2月底 - elif "天河物管" in company_name: + elif rec.employee_id.company_id.id == 3: # 主表有效期:当年2月底 vacation_valid_date = date(current_year, 2, 28) overtime_valid_date = date(current_year, 2, 28) @@ -649,7 +649,7 @@ class YuthonVacationReports(models.Model): line_valid_date = None if company_name == "集团本部": line_valid_date = None - elif "天河物管" in company_name: + elif rec.employee_id.company_id.id == 3: if leave_line.text == "上月额度继承": line_valid_date = inherit_valid_date # 当年2月底 elif leave_line.text == "年假分配": @@ -670,7 +670,7 @@ class YuthonVacationReports(models.Model): line_valid_date = None if company_name == "集团本部": line_valid_date = None - elif "天河物管" in company_name: # 修正:从"物管"改为"天河物管" + elif rec.employee_id.company_id.id == 3: # 修正:从"物管"改为"天河物管" if over_line.text == "上月额度继承": line_valid_date = inherit_valid_date elif over_line.update_type == "add": @@ -1325,7 +1325,7 @@ class YuthonVacationReports(models.Model): [('name', 'ilike', '天河物管')], limit=1 ) if leave_name == '年假': - leave_type = self.env['hr.leave.type'].search([('display_name', 'ilike', leave_name), ('company_id.name', '=', '天河物管')], limit=1) + leave_type = self.env['hr.leave.type'].search([('display_name', 'ilike', leave_name), ('company_id', '=', 3)], limit=1) else: leave_type = self.env['hr.leave.type'].search([('name', '=', leave_name)]) vals = { @@ -1927,7 +1927,7 @@ class YuthonVacationReports(models.Model): if company_name == "集团本部": vacation_valid_date = None overtime_valid_date = None - elif "天河物管" in company_name: + elif rec.employee_id.company_id.id == 3: vacation_valid_date = date(valid_year, 2, 28) overtime_valid_date = date(valid_year, 2, 28) elif "天河粮储" in company_name: diff --git a/yuthon_hr_employee/models/yuthon_hr_employee.py b/yuthon_hr_employee/models/yuthon_hr_employee.py index 01dc9d2a7..c9b44bc2a 100644 --- a/yuthon_hr_employee/models/yuthon_hr_employee.py +++ b/yuthon_hr_employee/models/yuthon_hr_employee.py @@ -295,10 +295,9 @@ class YuthonHrEmployee(models.Model): today = fields.Date.today() contract_employees = self.search([('end_comparison', 'in', ['red', 'yellow', 'blue'])]) menu_id = self.env['ir.ui.menu'].search([('name', '=', '合同')], limit=1) - target_companies = ['集团本部', '天河物管', '天河粮储'] hr_specialists = self.env['soong.user.role'].search([ - ('company_id.name', 'in', target_companies), - ('name', '=', '人事专员') + ('name', '=', '人事专员'), + '|', ('company_id.name', 'in', ['集团本部', '天河粮储']), ('company_id', '=', 3) ]) # 构建「公司名称: 人事专员wecom_userid」映射 company_hr_map = {} @@ -640,7 +639,7 @@ class YuthonHrEmployee(models.Model): } def compute_late_allowed(self): - employee = self.env["hr.employee"].search([('company_id.name', '=', '天河物管')]) + employee = self.env["hr.employee"].search([('company_id', '=', 3)]) for employee_id in employee: employee_id.late_allowed = 3 @@ -894,7 +893,7 @@ class YuthonHrEmployee(models.Model): def action_batch_fix_resource_calendar(self): """根据所属公司批量修复员工工作时间""" company_calendar_map = { - '天河物管': '行政考勤-物管', + 3: '行政考勤-物管', '集团本部': '行政考勤-本部', '天河粮储': '行政考勤-粮储', } @@ -909,11 +908,11 @@ class YuthonHrEmployee(models.Model): for employee in self: company_name = employee.company_id.name if employee.company_id else False - if not company_name or company_name not in company_calendar_map: + if not employee.company_id or (employee.company_id.id not in company_calendar_map and company_name not in company_calendar_map): skipped_count += 1 continue - calendar_name = company_calendar_map[company_name] + calendar_name = company_calendar_map.get(company_name) or company_calendar_map.get(employee.company_id.id) calendar = calendar_map.get(calendar_name) if not calendar: diff --git a/yuthon_official/models/yuthon_file_processing.py b/yuthon_official/models/yuthon_file_processing.py index 92c64443d..1257b911c 100644 --- a/yuthon_official/models/yuthon_file_processing.py +++ b/yuthon_official/models/yuthon_file_processing.py @@ -193,9 +193,9 @@ class YuthonFileProcessing(models.Model): prefix_map = { '集团本部': '穗天投', '天河粮储': '天粮储司', - '天河物管': '穗天物' + 3: '穗天物' } - prefix = prefix_map.get(company_name) + prefix = prefix_map.get(company_name) or prefix_map.get(self.company_id1.id) if not prefix: return # 构建查询条件:同公司 + 同一年份的文号 diff --git a/yuthon_official/models/yuthon_offficial_incoming_party.py b/yuthon_official/models/yuthon_offficial_incoming_party.py index 7c1dd0217..00f5b9956 100644 --- a/yuthon_official/models/yuthon_offficial_incoming_party.py +++ b/yuthon_official/models/yuthon_offficial_incoming_party.py @@ -58,8 +58,7 @@ class YuthonOfficialIncomingParty(models.Model): def _get_default_name_title(self): company = self.env.user.company_id - special_companies = ['天河物管', '天河粮储'] - if any(name in company.name for name in special_companies): + if company.id == 3 or any(name in company.name for name in ['天河粮储']): return '党支部收文' return self._description if self._description else self._name diff --git a/yuthon_official/models/yuthon_official.py b/yuthon_official/models/yuthon_official.py index 9ff42d7bb..87ae4a427 100644 --- a/yuthon_official/models/yuthon_official.py +++ b/yuthon_official/models/yuthon_official.py @@ -153,7 +153,7 @@ class YuthonOfficial(models.Model): if self.company_id.name == '集团本部': official_partner_id = self.env['official.partner'].search([('name', '=', '广州市天河投资集团有限公司')]) - elif self.company_id.name == '天河物管': + elif self.company_id.id == 3: official_partner_id = self.env['official.partner'].search([('name', '=', '广州市天河物业管理有限公司')]) else: official_partner_id = self.env['official.partner'].search([('name', '=', '广州天河粮食储备管理有限公司')]) @@ -227,9 +227,9 @@ class YuthonOfficial(models.Model): prefix_map = { '集团本部': '穗天投', '天河粮储': '天粮储司', - '天河物管': '穗天物' + 3: '穗天物' } - prefix = prefix_map.get(company_name) + prefix = prefix_map.get(company_name) or prefix_map.get(self.company_id1.id) if not prefix: return @@ -486,9 +486,9 @@ class YuthonPropertyOfficial(models.Model): prefix_map = { '集团本部': '穗天投', '天河粮储': '天粮储司', - '天河物管': '穗天物' + 3: '穗天物' } - prefix = prefix_map.get(company_name) + prefix = prefix_map.get(company_name) or prefix_map.get(self.company_id1.id) if not prefix: return diff --git a/yuthon_official/models/yuthon_official_branch_party.py b/yuthon_official/models/yuthon_official_branch_party.py index 4a72baa56..70a615f78 100644 --- a/yuthon_official/models/yuthon_official_branch_party.py +++ b/yuthon_official/models/yuthon_official_branch_party.py @@ -90,9 +90,9 @@ class YuthonOfficialBranchParty(models.Model): prefix_map = { '集团本部': '穗天投', '天河粮储': '天粮储司', - '天河物管': '穗天物' + 3: '穗天物' } - prefix = prefix_map.get(company_name) + prefix = prefix_map.get(company_name) or prefix_map.get(self.company_id1.id) if not prefix: return # 构建查询条件:同公司 + 同一年份的文号 diff --git a/yuthon_official/models/yuthon_official_labor.py b/yuthon_official/models/yuthon_official_labor.py index 257fca1fb..49de8f830 100644 --- a/yuthon_official/models/yuthon_official_labor.py +++ b/yuthon_official/models/yuthon_official_labor.py @@ -90,9 +90,9 @@ class YuthonOfficialLabor(models.Model): prefix_map = { '集团本部': '穗天投', '天河粮储': '天粮储司', - '天河物管': '穗天物' + 3: '穗天物' } - prefix = prefix_map.get(company_name) + prefix = prefix_map.get(company_name) or prefix_map.get(self.company_id1.id) if not prefix: return year_str = f"〔{current_year}〕" diff --git a/yuthon_official/models/yuthon_official_party.py b/yuthon_official/models/yuthon_official_party.py index dc989bbd5..4c68c538c 100644 --- a/yuthon_official/models/yuthon_official_party.py +++ b/yuthon_official/models/yuthon_official_party.py @@ -74,8 +74,7 @@ class YuthonOfficialParty(models.Model): def _get_default_name_title(self): company = self.env.user.company_id - special_companies = ['天河物管', '天河粮储'] - if any(name in company.name for name in special_companies): + if company.id == 3 or any(name in company.name for name in ['天河粮储']): return '党支部发文' return self._description if self._description else self._name @@ -98,9 +97,9 @@ class YuthonOfficialParty(models.Model): prefix_map = { '集团本部': '穗天投', '天河粮储': '天粮储司', - '天河物管': '穗天物' + 3: '穗天物' } - prefix = prefix_map.get(company_name) + prefix = prefix_map.get(company_name) or prefix_map.get(self.company_id1.id) if not prefix: return # 构建查询条件:同公司 + 同一年份的文号 diff --git a/yuthon_property/models/property_bank_statements.py b/yuthon_property/models/property_bank_statements.py index 27ac56a7f..040033113 100644 --- a/yuthon_property/models/property_bank_statements.py +++ b/yuthon_property/models/property_bank_statements.py @@ -70,7 +70,7 @@ class PropertyBankStatements(models.Model): if record.your_own_unit in ['天河投资', '天投城建']: record.company_id = self.env['res.company'].search([('name', '=', '集团本部')], limit=1) elif record.your_own_unit in ['天河物管']: - record.company_id = self.env['res.company'].search([('name', '=', '天河物管')], limit=1) + record.company_id = self.env['res.company'].browse(3) elif record.your_own_unit in ['天河粮储']: record.company_id = self.env['res.company'].search([('name', '=', '天河粮储')], limit=1) diff --git a/yuthon_property/wizard/property_statements_wizard.py b/yuthon_property/wizard/property_statements_wizard.py index 1b66e5d07..872ecf77a 100644 --- a/yuthon_property/wizard/property_statements_wizard.py +++ b/yuthon_property/wizard/property_statements_wizard.py @@ -199,7 +199,7 @@ class PropertyStatementsWizard(models.Model): purpose = row[6].value extract = row[7].value remake = row[8].value - company_id = self.env['res.company'].search([('name', '=', '天河物管')], limit=1) + company_id = self.env['res.company'].browse(3) pass def property_bank_statements_zc_data(self, row, your_own_account, bank_branch_own): @@ -501,7 +501,7 @@ class PropertyStatementsWizard(models.Model): def _get_company_by_unit(self, unit_name): if unit_name == '天河物管': - return self.env['res.company'].sudo().search([('name', '=', '天河物管')], limit=1) + return self.env['res.company'].sudo().browse(3) elif unit_name == '天河粮储': return self.env['res.company'].sudo().search([('name', '=', '天河粮储')], limit=1) else: diff --git a/yuthon_property_approval/models/inherit_yuthon_property.py b/yuthon_property_approval/models/inherit_yuthon_property.py index d4e1a0a24..a14da64c9 100644 --- a/yuthon_property_approval/models/inherit_yuthon_property.py +++ b/yuthon_property_approval/models/inherit_yuthon_property.py @@ -979,7 +979,7 @@ class PropertyAccountsReceivable(models.Model): continue if rec.company_id: if rec.company_id.referred == '天河物管': - company = self.env['res.company'].search([('name', '=', '天河物管')], limit=1) + company = self.env['res.company'].browse(3) rec.company_id2 = company.id if company else False elif rec.company_id.referred in ('天河投资', '天投城建'): company = self.env['res.company'].search([('name', '=', '集团本部')], limit=1) diff --git a/yuthon_property_approval/models/property_lease_contract.py b/yuthon_property_approval/models/property_lease_contract.py index 7e525f885..3af605cfc 100644 --- a/yuthon_property_approval/models/property_lease_contract.py +++ b/yuthon_property_approval/models/property_lease_contract.py @@ -971,7 +971,7 @@ class PropertyLeaseContract(models.Model): if lessor_id.referred in ['天河投资', '天投城建']: company_id = self.env['res.company'].search([('name', '=', '集团本部')], limit=1) elif lessor_id.referred in ['天河物管']: - company_id = self.env['res.company'].search([('name', '=', '天河物管')], limit=1) + company_id = self.env['res.company'].browse(3) elif lessor_id.referred in ['天河粮储']: company_id = self.env['res.company'].search([('name', '=', '天河粮储')], limit=1) bank_accounts = self.env['property.bank.line'].search([ diff --git a/yuthon_property_approval/models/property_lease_renewal.py b/yuthon_property_approval/models/property_lease_renewal.py index 84f9b70b4..464fa35ff 100644 --- a/yuthon_property_approval/models/property_lease_renewal.py +++ b/yuthon_property_approval/models/property_lease_renewal.py @@ -209,7 +209,7 @@ class PropertyLeaseRenewal(models.Model): if lessor_id.referred in ['天河投资', '天投城建']: company_id = self.env['res.company'].search([('name', '=', '集团本部')], limit=1) elif lessor_id.referred in ['天河物管']: - company_id = self.env['res.company'].search([('name', '=', '天河物管')], limit=1) + company_id = self.env['res.company'].browse(3) elif lessor_id.referred in ['天河粮储']: company_id = self.env['res.company'].search([('name', '=', '天河粮储')], limit=1) diff --git a/yuthon_property_approval/wizard/refund_wizard.py b/yuthon_property_approval/wizard/refund_wizard.py index d1ef89528..5d55219bf 100644 --- a/yuthon_property_approval/wizard/refund_wizard.py +++ b/yuthon_property_approval/wizard/refund_wizard.py @@ -41,7 +41,7 @@ class RefundWizard(models.TransientModel): lessor_id = line.contract_id.lessor_id company_id = self.env['res.company'].search([('name', '=', '集团本部')], limit=1) if lessor_id.referred in ['天河物管']: - company_id = self.env['res.company'].search([('name', '=', '天河物管')], limit=1) + company_id = self.env['res.company'].browse(3) elif lessor_id.referred in ['天河粮储']: company_id = self.env['res.company'].search([('name', '=', '天河粮储')], limit=1) diff --git a/yuthon_salary/models/yuthon_payroll_project.py b/yuthon_salary/models/yuthon_payroll_project.py index 5eea117fd..3dc4772be 100644 --- a/yuthon_salary/models/yuthon_payroll_project.py +++ b/yuthon_salary/models/yuthon_payroll_project.py @@ -61,7 +61,7 @@ class YuthonPayrollCommon(models.Model): formula_salary = "result = (employee.last_month_commuting_deduction) * -1" if ins.name == '扣发基本工资': formula_salary = "result = (employee.last_month_base_salary_deduction) * -1" - if ins.name == '工龄工资' and ins.company_id.name == '天河物管': + if ins.name == '工龄工资' and ins.company_id.id == 3: formula_salary = "result = employee.company_old_year * 10 if employee.company_old_year >= 1 and employee.department_id.name != '领导班子' else 0" if ins.name == '工龄工资' and ins.company_id.name == '集团本部': formula_salary = "result = 0 if (employee.is_annual_salary or '劳务' in (employee.contract_id.structure_type_id.name or '') or '工勤返聘' in (employee.contract_id.structure_type_id.name or '')) else (employee.company_old_year * 10)" @@ -71,7 +71,7 @@ class YuthonPayrollCommon(models.Model): formula_salary = "result = 0 if (employee.is_annual_salary or '劳务' in (employee.contract_id.structure_type_id.name or '') or '工勤返聘' in (employee.contract_id.structure_type_id.name or '')) else 300" if ins.name == '全勤奖' and ins.company_id.name == '集团本部': formula_salary = "result = 0 if (employee.is_annual_salary or '劳务' in (employee.contract_id.structure_type_id.name or '') or '工勤返聘' in (employee.contract_id.structure_type_id.name or '')) else (200 if employee.last_attendance else 0)" - if ins.name == '全勤奖' and ins.company_id.name == '天河物管': + if ins.name == '全勤奖' and ins.company_id.id == 3: formula_salary = "result = 100 if employee.last_attendance else 0" if ins.name == '加班费': formula_salary = "result = 0 if (employee.is_annual_salary or employee.contract_id.structure_type_id.name == '工勤返聘') else (round(((employee.last_month_overtime - 40) * (payslip.base_salary / 21.75 / 8) * 1.5), 0) if employee.last_month_overtime > 40 else 0)" @@ -79,7 +79,7 @@ class YuthonPayrollCommon(models.Model): formula_salary = "result = 0" if ins.name == '安全生产管理补贴': formula_salary = "result = employee.security_amount " - if ins.name == '工龄补贴' and ins.company_id.name == '天河物管': + if ins.name == '工龄补贴' and ins.company_id.id == 3: formula_salary = "result = min(400, max(0, ((employee.entry_date - employee.open_start_time).days // 30.4375 - employee.interrupt_work_month) // 12) * 10 + employee.salary_year * 20) if employee.department_id.name != '领导班子' else 0" if ins.name == '岗位绩效': formula_salary = "result = 0" @@ -97,11 +97,11 @@ class YuthonPayrollCommon(models.Model): formula_salary = "result = 0" if ins.name == '儿童节慰问金': formula_salary = "result = 0" - if ins.name == '春节福利' and ins.company_id.name == '天河物管': + if ins.name == '春节福利' and ins.company_id.id == 3: formula_salary = "result = 680 if employee.salary_month == '1' and employee.department_id.name != '领导班子' else 0" if ins.name == '质检员津贴': formula_salary = "result = employee.quality_inspector_amount" - if ins.name == '工会会费' and ins.company_id.name in ['集团本部', '天河物管']: + if ins.name == '工会会费' and (ins.company_id.id == 3 or ins.company_id.name == '集团本部'): formula_salary = "result = round(abs(payslip.base_salary * 0.005) * -1, 2)" if ins.name == '工会会费' and ins.company_id.name == '天河粮储': formula_salary = "result = abs(20 if employee.user_role_id.name in ['总经理', '副总经理'] else \ @@ -234,7 +234,7 @@ class YuthonPayrollInsurances (models.Model): code = 'ZFGJJ' formula_salary = "result = (round((employee.salary_housing_fund * " + str(number) + "), 0)) if employee.is_accum_salary else 0" if ins.name == '企业(职业)年金': - if ins.company_id.name == '天河物管': + if ins.company_id.id == 3: code = 'WGQYNJ' formula_salary = "result = 0.0 if employee.total_coefficients == 0 else round(abs((employee.converted/employee.total_coefficients * employee.calculation_totals * 0.08 * 0.5)/12) * -1, 2)" elif ins.company_id.name == '集团本部': diff --git a/yuthon_salary/models/yuthon_salary_year.py b/yuthon_salary/models/yuthon_salary_year.py index 220d27dd1..5acecf98b 100644 --- a/yuthon_salary/models/yuthon_salary_year.py +++ b/yuthon_salary/models/yuthon_salary_year.py @@ -64,7 +64,7 @@ class YuthonSalaryYear(models.Model): 'on_year_balance', 'former_year_balance', 'on_year_liquidation', 'former_year_liquidation' ], - '天河物管': [ + 3: [ 'one_three_salary', 'job_salary', 'test_salary', 'software_salary', 'safe_salary', 'outstanding_salary', 'leadership_salary' @@ -76,7 +76,7 @@ class YuthonSalaryYear(models.Model): for record in self: company_name = record.company_id.name sum_value = Decimal('0.00') # 使用 Decimal 类型 - fields_to_sum = company_rules.get(company_name, []) + fields_to_sum = company_rules.get(company_name) or company_rules.get(record.company_id.id) or [] for field_name in fields_to_sum: # 获取字段值并转换为 Decimal field_value = getattr(record, field_name, 0.0) diff --git a/yuthon_salary/wizard/salary_year_wizard.py b/yuthon_salary/wizard/salary_year_wizard.py index a793e155b..2721213a6 100644 --- a/yuthon_salary/wizard/salary_year_wizard.py +++ b/yuthon_salary/wizard/salary_year_wizard.py @@ -27,7 +27,7 @@ class SalaryYearWizard(models.Model): row = sh.row(rx) if self.company_id.name == '集团本部': self.salary_year_ttjt_data(row) - elif self.company_id.name == '天河物管': + elif self.company_id.id == 3: self.salary_year_thwg_data(row) else: self.salary_year_thlc_data(row) diff --git a/yuthon_salary/wizard/salary_year_wizard.xml b/yuthon_salary/wizard/salary_year_wizard.xml index 56397ed62..f2618a200 100644 --- a/yuthon_salary/wizard/salary_year_wizard.xml +++ b/yuthon_salary/wizard/salary_year_wizard.xml @@ -29,7 +29,7 @@