diff --git a/soong_workflow/models/soong_workflow_record.py b/soong_workflow/models/soong_workflow_record.py index 1afd6d98d..bdf21c93f 100644 --- a/soong_workflow/models/soong_workflow_record.py +++ b/soong_workflow/models/soong_workflow_record.py @@ -54,20 +54,44 @@ class SoongWorkflowRecord(models.Model): member_of_department = fields.Boolean("是否是本部门数据", compute='_compute_part_of_department', search='_search_part_of_department') # 人力资源流程的发生日期 - workflow_happen_date = fields.Date(string="发生日期", compute="_compute_happen_date", store=True, index=True) + workflow_happen_date = fields.Date(string="发生日期") - @api.depends('workflow_id') - def _compute_happen_date(self): - """ - 人力资源流程的发生日期 - :return: + @api.model + def create(self, vals_list): + res = super().create(vals_list) + res.append_date2(res) + return res - workflow_record_id = self.env["soong.workflow.record"].search( - [("res_model", "=", self._name), ("res_id", "=", self.id)]) - """ - for i in self.search([]): - workflow_happen_date = False + def append_date2(self, res): + res.workflow_happen_date = False + if res.approvals_group_id.name == '考勤': + record_id = self.env[res.res_model].search([('id', '=', res.res_id)]) + if res.workflow_id.name == '请假': + if record_id.is_day: + res.workflow_happen_date = record_id.leave_ids[0].request_date_from + else: + res.workflow_happen_date = record_id.hour_leave_ids[0].request_date_from + if res.workflow_id.name == '加班': + res.workflow_happen_date = record_id.start_time + if res.workflow_id.name == '外出': + res.workflow_happen_date = record_id.date_start + def append_date(self): + """请假,加班,外出,补卡""" + workflow_ids = self.env["soong.workflow.record"].browse(self._context.get('active_ids', self._context.get('active_id', []))) + for work in workflow_ids: + work.workflow_happen_date = False + if work.approvals_group_id.name == '考勤': + record_id = self.env[work.res_model].search([('id', '=', work.res_id)]) + if work.workflow_id.name == '请假': + if record_id.is_day: + work.workflow_happen_date = record_id.leave_ids[0].request_date_from + else: + work.workflow_happen_date = record_id.hour_leave_ids[0].request_date_from + if work.workflow_id.name == '加班': + work.workflow_happen_date = record_id.start_time + if work.workflow_id.name == '外出': + work.workflow_happen_date = record_id.date_start def admin_end(self): workflow_ids = self.env["soong.workflow.record"].browse( diff --git a/soong_workflow/views/soong_workflow_record.xml b/soong_workflow/views/soong_workflow_record.xml index fb83f3c5e..7aa8c09c2 100644 --- a/soong_workflow/views/soong_workflow_record.xml +++ b/soong_workflow/views/soong_workflow_record.xml @@ -74,8 +74,8 @@ - - + + @@ -85,6 +85,7 @@ +