diff --git a/yuthon_hr_attendance/models/hr_attendance.py b/yuthon_hr_attendance/models/hr_attendance.py index 86f101e21..cccea873d 100644 --- a/yuthon_hr_attendance/models/hr_attendance.py +++ b/yuthon_hr_attendance/models/hr_attendance.py @@ -680,7 +680,7 @@ class HrAttendance(models.Model): "views": [[form_id, "form"]], "context": { 'default_is_day': True, - 'default_statr_date': self.current_data, + 'default_start_date': self.current_data, 'default_end_date': self.current_data, 'default_users_id': self.employee_id.user_id.id, } diff --git a/yuthon_hr_attendance/wizard/attendance_controls_wizard.py b/yuthon_hr_attendance/wizard/attendance_controls_wizard.py index ffb225c27..83925b5d3 100644 --- a/yuthon_hr_attendance/wizard/attendance_controls_wizard.py +++ b/yuthon_hr_attendance/wizard/attendance_controls_wizard.py @@ -56,7 +56,7 @@ class AttendanceControlsWizard(models.TransientModel): 'default_users_id': self.attendance_id.employee_id.user_id.id, 'default_is_day': True, 'reason_application': '事由', - 'default_statr_date': self.attendance_id.current_data, + 'default_start_date': self.attendance_id.current_data, 'default_end_date': self.attendance_id.current_data, } } diff --git a/yuthon_property_approval/wizard/binding_information_wizard.py b/yuthon_property_approval/wizard/binding_information_wizard.py index 9ee1d09f8..4cddf2c06 100644 --- a/yuthon_property_approval/wizard/binding_information_wizard.py +++ b/yuthon_property_approval/wizard/binding_information_wizard.py @@ -16,7 +16,7 @@ class BindingInformationWizard(models.Model): 'binding_information_wizard_available_contract_rel', 'wizard_id', 'contract_id', - string='可用合同ID', + string='已绑定合同', ) @api.onchange('contract_ids') @@ -25,13 +25,10 @@ class BindingInformationWizard(models.Model): return new_property_ids = [] for contract_id in self.contract_ids: - # 获取合同关联的物业明细行 for line in contract_id.lease_ids: if line.address_id: new_property_ids.append(line.address_id.id) - # 过滤掉已选择的物业,避免重复 new_property_ids = list(set(new_property_ids) - set(self.property_ids.ids)) - # 追加新物业(使用操作码4) if new_property_ids: self.property_ids = [(4, property_id) for property_id in new_property_ids] @@ -43,64 +40,88 @@ class BindingInformationWizard(models.Model): def confirm(self): if self.bank_id.name: - if self.contract_ids: - new_contracts = self.contract_ids - self.bank_id.contract_ids - if new_contracts: - self.bank_id.write({ - 'contract_ids': [(4, cont.id) for cont in new_contracts] - }) + current_bank_contracts = self.bank_id.contract_ids + new_contracts = self.contract_ids - current_bank_contracts + if new_contracts: + self.bank_id.write({ + 'contract_ids': [(4, cont.id) for cont in new_contracts] # 添加新增合同 + }) + removed_contracts = current_bank_contracts - self.available_contract_ids + removed_contract_ids = removed_contracts.ids + if removed_contracts: + self.bank_id.write({ + 'contract_ids': [(3, cont.id) for cont in removed_contracts] # 删除移除的合同 + }) - # 根据银行账号查找承租方信息 - bank_account = self.env['property.bank.line'].search([ - ('bank', '=', self.bank_id.name), - ('tenant_id.name', '!=', False), + bank_ids = self.env['property.bank.statements'].search([ + ('name', '=', self.bank_id.name), + ('your_own_unit', '=', self.bank_id.your_own_unit) + ]) + # 银行当前最新的合同(新增 + 未被移除的) + latest_contract_ids = self.bank_id.contract_ids.ids + for bank_id in bank_ids: + bank_id.write({ + 'contract_ids': [(6, 0, latest_contract_ids)] + }) + + # 根据银行账号查找承租方信息 + bank_account = self.env['property.bank.line'].search([ + ('bank', '=', self.bank_id.name), + ('tenant_id.name', '!=', False), + ]) + # 删除空记录 + invalid_bank_lines = self.env['property.bank.line'].search([ + ('name', '=', False), + ('user', '=', False), + ('bank', '=', False), + ]) + if invalid_bank_lines: + invalid_bank_lines.unlink() + + bank_ids = self.env['property.bank.statements'].search([('name', '=', self.bank_id.name), + ('your_own_unit', '=', + self.bank_id.your_own_unit)]) + for bank_id in bank_ids: + bank_id.write({ + 'contract_ids': [(6, 0, self.bank_id.contract_ids.ids)], + }) + + if bank_account: + # 获取已存在的合同明细行的合同ID + existing_contract_ids = bank_account.tenant_id.property_contract_ids.mapped('lease_contract_id.id') + all_contracts = self.contract_ids | self.bank_id.contract_ids + # 过滤出需要新增的合同(排除已存在的) + new_contracts = all_contracts.filtered(lambda c: c.id not in existing_contract_ids) + for contract in new_contracts: + self.env['property.tenant.line'].sudo().create({ + 'tenant_id': bank_account.tenant_id.id, + 'lease_contract_id': contract.id, + }) + # 删除已经移除的合同 + lines_to_delete = self.env['property.tenant.line'].search([ + ('tenant_id', '=', bank_account.tenant_id.id), + ('lease_contract_id', 'in', removed_contract_ids) ]) - # 删除空记录 - invalid_bank_lines = self.env['property.bank.line'].search([ - ('name', '=', False), - ('user', '=', False), - ('bank', '=', False), - ]) - if invalid_bank_lines: - invalid_bank_lines.unlink() - - bank_ids = self.env['property.bank.statements'].search([('name', '=', self.bank_id.name), - ('your_own_unit', '=', - self.bank_id.your_own_unit)]) - for bank_id in bank_ids: - bank_id.write({ - 'contract_ids': [(6, 0, self.bank_id.contract_ids.ids)], - }) - - if bank_account: - # 获取已存在的合同明细行的合同ID - existing_contract_ids = bank_account.tenant_id.property_contract_ids.mapped('lease_contract_id.id') - all_contracts = self.contract_ids | self.bank_id.contract_ids - # 过滤出需要新增的合同(排除已存在的) - new_contracts = all_contracts.filtered(lambda c: c.id not in existing_contract_ids) - for contract in new_contracts: - self.env['property.tenant.line'].sudo().create({ - 'tenant_id': bank_account.tenant_id.id, - 'lease_contract_id': contract.id, - }) - else: - tenant = self.env['property.tenant.information'].create({ - 'name': self.bank_id.name_account, - }) - self.env['property.bank.line'].create({ - 'bank': self.bank_id.name, - 'name': self.bank_id.bank_branch, - 'user': self.bank_id.name_account, + if lines_to_delete: + lines_to_delete.unlink() + else: + tenant = self.env['property.tenant.information'].create({ + 'name': self.bank_id.name_account, + }) + self.env['property.bank.line'].create({ + 'bank': self.bank_id.name, + 'name': self.bank_id.bank_branch, + 'user': self.bank_id.name_account, + 'tenant_id': tenant.id, + }) + existing_contract_ids = tenant.property_contract_ids.mapped('lease_contract_id.id') + # 过滤出需要新增的合同(排除已存在的) + new_contracts = self.contract_ids.filtered(lambda c: c.id not in existing_contract_ids) + for contract in new_contracts: + self.env['property.tenant.line'].sudo().create({ 'tenant_id': tenant.id, + 'lease_contract_id': contract.id, }) - existing_contract_ids = tenant.property_contract_ids.mapped('lease_contract_id.id') - # 过滤出需要新增的合同(排除已存在的) - new_contracts = self.contract_ids.filtered(lambda c: c.id not in existing_contract_ids) - for contract in new_contracts: - self.env['property.tenant.line'].sudo().create({ - 'tenant_id': tenant.id, - 'lease_contract_id': contract.id, - }) else: raise UserError('请先输入该户名银行账号,才能绑定') \ No newline at end of file diff --git a/yuthon_property_approval/wizard/binding_information_wizard_views.xml b/yuthon_property_approval/wizard/binding_information_wizard_views.xml index 5d0c0da22..0927d1f68 100644 --- a/yuthon_property_approval/wizard/binding_information_wizard_views.xml +++ b/yuthon_property_approval/wizard/binding_information_wizard_views.xml @@ -9,7 +9,7 @@ - + diff --git a/yuthon_property_approval/wizard/property_rental_wizard.py b/yuthon_property_approval/wizard/property_rental_wizard.py index fa14b8318..8fb086304 100644 --- a/yuthon_property_approval/wizard/property_rental_wizard.py +++ b/yuthon_property_approval/wizard/property_rental_wizard.py @@ -43,7 +43,7 @@ class PropertyRentalWizard(models.Model): ('contract_id', '=', record.id), ('management_type_id.name', '=', '租金'), ]) - if not receivable and record.term_start_time >= date(2025, 1, 1): + if not receivable and record.term_start_time >= date(2025, 1, 1) and record.term_end_time: acc_type = 'new' else: acc_type = None diff --git a/yuthon_trade/models/yuthon_task_approval.py b/yuthon_trade/models/yuthon_task_approval.py index 00314a654..22e07df58 100644 --- a/yuthon_trade/models/yuthon_task_approval.py +++ b/yuthon_trade/models/yuthon_task_approval.py @@ -29,7 +29,6 @@ class YuthonTaskApproval(models.Model): duration = fields.Float(string="时长", store=True, compute='_compute_duration') concentration = fields.Float( string="浓度") warning_value = fields.Float(string="警戒值") - is_outweigh_warning = fields.Boolean(string="是否大于警戒值") def _get_default_name_title(self): return self._description if self._description else self._name diff --git a/yuthon_trade/views/yuthon_task_approval_views.xml b/yuthon_trade/views/yuthon_task_approval_views.xml index 72b050eec..a0ec73379 100644 --- a/yuthon_trade/views/yuthon_task_approval_views.xml +++ b/yuthon_trade/views/yuthon_task_approval_views.xml @@ -61,17 +61,13 @@ 小时 - - - -