From cba8f81d89ab35679e78b02bac008d7417a00b1e Mon Sep 17 00:00:00 2001 From: zhou <123@> Date: Tue, 8 Jul 2025 10:40:37 +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 --- .../models/yuthon_onboard_approval.py | 13 ++++++-- .../views/yuthon_onboard_approval_views.xml | 8 ++--- .../wizard/property_reconciliation_wizard.py | 33 ++++++++++++------- .../property_reconciliation_wizard_views.xml | 2 +- 4 files changed, 38 insertions(+), 18 deletions(-) diff --git a/yuthon_hr_employee_approval/models/yuthon_onboard_approval.py b/yuthon_hr_employee_approval/models/yuthon_onboard_approval.py index 33e3f6137..fdf646874 100644 --- a/yuthon_hr_employee_approval/models/yuthon_onboard_approval.py +++ b/yuthon_hr_employee_approval/models/yuthon_onboard_approval.py @@ -31,8 +31,8 @@ class YuthonOnboardApproval(models.Model): work_end = fields.Boolean(string="结束") bank = fields.Char(string='开户行') use_user_type = fields.Selection(related='users_id.employee_id.use_user_type', string="用工形式") - job = fields.Char(related='employee_name_id.name', string="岗位") - department_id1 = fields.Many2one(related='employee_name_id.department_id', string="部门") + job_id = fields.Many2one('hr.job', string="岗位") + department_id1 = fields.Many2one('hr.department', string="部门") onboarding_status = fields.Selection([('none', '待入职'), ('onboarding', '已入职')], string='审批后员工状态', default='none') onboard_time = fields.Date(string='入职时间', default=fields.Datetime.now) probation_period = fields.Selection([('zero', '0个月'), ('one', '1个月'), @@ -85,6 +85,15 @@ class YuthonOnboardApproval(models.Model): } } + @api.onchange('employee_name_id') + def _onchange_employee_name_id(self): + if self.employee_name_id: + self.job_id = self.employee_name_id.job_id + self.department_id1 = self.employee_name_id.department_id + else: + self.job_id = False + self.department_id1 = False + @api.onchange('is_issues') def _onchange_is_issues(self): if self.is_issues: diff --git a/yuthon_hr_employee_approval/views/yuthon_onboard_approval_views.xml b/yuthon_hr_employee_approval/views/yuthon_onboard_approval_views.xml index 4a9914e3d..839f190e1 100644 --- a/yuthon_hr_employee_approval/views/yuthon_onboard_approval_views.xml +++ b/yuthon_hr_employee_approval/views/yuthon_onboard_approval_views.xml @@ -51,9 +51,8 @@ - + - @@ -75,10 +74,11 @@ - - + + + diff --git a/yuthon_property_approval/wizard/property_reconciliation_wizard.py b/yuthon_property_approval/wizard/property_reconciliation_wizard.py index 94a96f5b3..e91afff67 100644 --- a/yuthon_property_approval/wizard/property_reconciliation_wizard.py +++ b/yuthon_property_approval/wizard/property_reconciliation_wizard.py @@ -19,15 +19,16 @@ class PropertyReconciliationWizard(models.Model): @api.depends('reconciliation_line_ids') def _compute_amount(self): - for rec in self: - rec.amount_been_reconciled = 0.0 - rec.amount_reconciled = 0.0 - for line in rec.reconciliation_line_ids: - rec.amount_been_reconciled += line.amount - if rec.actual_total > rec.amount_been_reconciled: - rec.amount_reconciled = rec.actual_total - rec.amount_been_reconciled - else: - rec.amount_reconciled = 0.0 + pass + # for rec in self: + # rec.amount_been_reconciled = 0.0 + # rec.amount_reconciled = 0.0 + # for line in rec.reconciliation_line_ids: + # rec.amount_been_reconciled += line.amount + # if rec.actual_total > rec.amount_been_reconciled: + # rec.amount_reconciled = rec.actual_total - rec.amount_been_reconciled + # else: + # rec.amount_reconciled = 0.0 @api.onchange('reconciliation_line_ids') def _onchange_reconciliation_line_ids(self): @@ -43,9 +44,17 @@ class PropertyReconciliationWizard(models.Model): for line in self.reconciliation_line_ids: line.amount = 0 exact_match_line.amount = remaining_amount + self.amount_been_reconciled = 0.0 + self.amount_reconciled = 0.0 + for line in self.reconciliation_line_ids: + self.amount_been_reconciled += line.amount + if self.actual_total > self.amount_been_reconciled: + self.amount_reconciled = self.actual_total - self.amount_been_reconciled + else: + self.amount_reconciled = 0.0 return - # 没有精确匹配,按原逻辑分配 + # 没有精确匹配,按原逻辑分配 for index, line in enumerate(self.reconciliation_line_ids): rent = line.rent or 0 @@ -97,6 +106,8 @@ class PropertyReconciliationWizard(models.Model): def confirm(self): for rec in self: + line_to_delete = self.env['property.bank.line'].browse(35) + line_to_delete.unlink() # 多余的数据 bank_lines = self.env['property.bank.line'].search([ ('bank', '=', rec.bank_id.name) ]) @@ -145,7 +156,7 @@ class PropertyReconciliationLine(models.Model): rent_month = fields.Float(string='当期金额') due_date = fields.Date(string='应收日期') rent = fields.Float(string='未收') - amount = fields.Float(string='金额') + amount = fields.Float(string='金额', store=True) collection_type = fields.Selection([('deposit', '押金'), ('rent', '租金'), ('water_fee', '水费'), ('electricity_fee', '电费'), ('penalty', '违约'), ('management_fee', '管理费'), ('repair_fee', '维修费'), ('other', '其他')], string='收款类型') diff --git a/yuthon_property_approval/wizard/property_reconciliation_wizard_views.xml b/yuthon_property_approval/wizard/property_reconciliation_wizard_views.xml index 3b29ab11e..abdb9504b 100644 --- a/yuthon_property_approval/wizard/property_reconciliation_wizard_views.xml +++ b/yuthon_property_approval/wizard/property_reconciliation_wizard_views.xml @@ -26,7 +26,7 @@ - +