diff --git a/soong_workflow/models/soong_workflow_inspector.py b/soong_workflow/models/soong_workflow_inspector.py
index b49beb00f..d9440137a 100644
--- a/soong_workflow/models/soong_workflow_inspector.py
+++ b/soong_workflow/models/soong_workflow_inspector.py
@@ -33,6 +33,23 @@ class SoongWorkflowInspector(models.Model):
inspector_line2_ids = fields.One2many('soong.workflow.inspector.line2', 'workflow_inspector_id', string='督办明细')
relevancy_type = fields.Selection([('none', '无')], string="关联流程类型")
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
class SoongWorkflowInspectorLine(models.Model):
diff --git a/yuthon_contract/models/inherit_hr_contract.py b/yuthon_contract/models/inherit_hr_contract.py
index c842310f1..56e8f9937 100644
--- a/yuthon_contract/models/inherit_hr_contract.py
+++ b/yuthon_contract/models/inherit_hr_contract.py
@@ -11,6 +11,7 @@ class HrContract(models.Model):
code = fields.Char(string="编号", default=lambda self: self.env['ir.sequence'].next_by_code('contract_code'))
name = fields.Char(string="合同名称", compute='_compute_name', readonly=False)
+ is_annual_salary = fields.Boolean(string="是否年薪")
resource_calendar_id = fields.Many2one('resource.calendar', string='考勤时间表')
state = fields.Selection([
('draft', '草稿'),
@@ -205,6 +206,15 @@ class HrContract(models.Model):
else:
employee.salary_group_id = False
+ @api.onchange('is_annual_salary')
+ def _compute_is_annual_salary(self):
+ for contract_id in self:
+ employee = self.env['hr.employee'].search([('id', '=', contract_id.employee_id.id)], limit=1)
+ if employee:
+ employee.is_annual_salary = contract_id.is_annual_salary
+ else:
+ employee.is_annual_salary = False
+
@api.model
def create(self, vals):
contract = super(HrContract, self).create(vals)
diff --git a/yuthon_contract/views/inherit_hr_contract_views.xml b/yuthon_contract/views/inherit_hr_contract_views.xml
index 07758935b..668819f43 100644
--- a/yuthon_contract/views/inherit_hr_contract_views.xml
+++ b/yuthon_contract/views/inherit_hr_contract_views.xml
@@ -42,6 +42,7 @@
+
diff --git a/yuthon_holiday/models/inherit_hr_leave.py b/yuthon_holiday/models/inherit_hr_leave.py
index 25b77f17a..c7b9cddc8 100644
--- a/yuthon_holiday/models/inherit_hr_leave.py
+++ b/yuthon_holiday/models/inherit_hr_leave.py
@@ -452,6 +452,23 @@ class HolidaysRequestBatch(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('is_day')
def _onchange_is_day(self):
diff --git a/yuthon_holiday/models/inherit_hr_leave_allocation.py b/yuthon_holiday/models/inherit_hr_leave_allocation.py
index 8c7e107ac..0fbe1c86e 100644
--- a/yuthon_holiday/models/inherit_hr_leave_allocation.py
+++ b/yuthon_holiday/models/inherit_hr_leave_allocation.py
@@ -171,7 +171,7 @@ class HrLeaveAllocation(models.Model):
if lines_to_delete:
lines_to_delete.is_void = True
- return super(HrLeaveAllocation, self).unlink()
+ return super(HrLeaveAllocation, self).unlink()
def update_vacation(self):
diff --git a/yuthon_holiday/models/yuthon_fixes_approval.py b/yuthon_holiday/models/yuthon_fixes_approval.py
index 6ea69653d..837b059b2 100644
--- a/yuthon_holiday/models/yuthon_fixes_approval.py
+++ b/yuthon_holiday/models/yuthon_fixes_approval.py
@@ -39,6 +39,23 @@ class YuthonFixesApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('holiday_status')
def _onchange_holiday_status(self):
diff --git a/yuthon_holiday/models/yuthon_vacation_reports.py b/yuthon_holiday/models/yuthon_vacation_reports.py
index 14f4ca568..d0014be33 100644
--- a/yuthon_holiday/models/yuthon_vacation_reports.py
+++ b/yuthon_holiday/models/yuthon_vacation_reports.py
@@ -7,17 +7,35 @@ from odoo.exceptions import ValidationError
class YuthonVacationReports(models.Model):
_name = 'yuthon.vacation.reports'
_description = '假期额度记录'
+ _rec_name = "employee_id"
employee_id = fields.Many2one('hr.employee', string='员工')
company_id = fields.Many2one(related="employee_id.company_id", string="公司")
leave_ids = fields.One2many('vacation.leave.line', 'vacation_id', string='年假明细')
overtime_ids = fields.One2many('vacation.over.line', 'vacation_id', string='加班明细')
meal_fee_ids = fields.One2many('vacation.meal.line', 'vacation_id', string='误餐明细')
+ medical_fee_ids = fields.One2many('vacation.medical.line', 'vacation_id', string='体检费明细')
leave = fields.Float(string='年假', compute='_compute_leave', store=True)
working_overtime = fields.Float(string='加班时', compute='_compute_working_overtime', store=True)
meal_fee = fields.Integer(string="误餐次数", compute='_compute_meal_fee', store=True)
+ def action_open_my_form(self):
+ employee = self.env.user.employee_id
+ vacation_report = self.env['yuthon.vacation.reports'].search(
+ [('employee_id', '=', employee.id)], limit=1)
+ return {
+ 'name': '我的假期额度',
+ 'type': 'ir.actions.act_window',
+ 'res_model': 'yuthon.vacation.reports',
+ 'view_mode': 'form',
+ 'res_id': vacation_report.id,
+ 'view_id': self.env.ref('yuthon_holiday.view_yuthon_vacation_reports_form1').id,
+ 'context': {
+ 'default_employee_id': employee.id,
+ },
+ }
+
def overtime_allocation(self):
form_id = self.env.ref('hr_holidays.hr_leave_allocation_view_form_manager').id
holiday_status_id = self.env['hr.leave.type'].search([('name', '=', '补休')])
@@ -66,43 +84,47 @@ class YuthonVacationReports(models.Model):
}
}
- @api.depends('leave_ids.update_lines', 'leave_ids.update_type')
+ @api.depends('leave_ids.update_lines', 'leave_ids.update_type', 'leave_ids.is_void')
def _compute_leave(self):
for record in self:
leave_total = 0.0
for line in record.leave_ids:
- if line.update_type == 'add':
- leave_total += line.update_lines or 0
- elif line.update_type == 'reduce':
- leave_total -= line.update_lines or 0
+ if not line.is_void:
+ if line.update_type == 'add':
+ leave_total += line.update_lines or 0
+ elif line.update_type == 'reduce':
+ leave_total -= line.update_lines or 0
record.leave = leave_total
@api.depends(
'overtime_ids.workday',
'overtime_ids.legal_day',
'overtime_ids.public_holidays',
- 'overtime_ids.update_type'
+ 'overtime_ids.update_type',
+ 'overtime_ids.is_void'
)
def _compute_working_overtime(self):
for record in self:
overtime_total = 0.0
for line in record.overtime_ids:
- line_total = (line.workday or 0) + (line.legal_day or 0) + (line.public_holidays or 0)
- if line.update_type == 'add':
- overtime_total += line_total
- elif line.update_type == 'reduce':
- overtime_total -= line_total
+ if not line.is_void:
+ line_total = (line.workday or 0) + (line.legal_day or 0) + (line.public_holidays or 0)
+ if line.update_type == 'add':
+ overtime_total += line_total
+ elif line.update_type == 'reduce':
+ overtime_total -= line_total
record.working_overtime = overtime_total
- @api.depends('meal_fee_ids.update_lines', 'meal_fee_ids.update_type')
+ @api.depends('meal_fee_ids.update_lines', 'meal_fee_ids.update_type', 'meal_fee_ids.is_void')
def _compute_meal_fee(self):
for record in self:
meal_total = 0
for line in record.meal_fee_ids:
- if line.update_type == 'add':
- meal_total += int(line.update_lines or 0)
- elif line.update_type == 'reduce':
- meal_total -= int(line.update_lines or 0)
+ if not line.is_void:
+ if line.update_type == 'add':
+ meal_total += int(line.update_lines or 0)
+ elif line.update_type == 'reduce':
+ meal_total -= int(line.update_lines or 0)
record.meal_fee = meal_total
def button_fixes_approval(self):
@@ -197,6 +219,8 @@ class VacationLeaveLine(models.Model):
update_lines = fields.Float(string='更新额度')
is_void = fields.Boolean(string='是否作废')
allocation_type = fields.Selection([('vacation', '休假'), ('allocation', '分配')], string='分配类型')
+ valid_date = fields.Date(string='有效期至')
+ adjust_date = fields.Date(string='调整至')
text = fields.Text(string='备注')
@api.model
@@ -237,6 +261,8 @@ class VacationOverline(models.Model):
meal_number = fields.Integer(string='误餐次数')
update_date = fields.Date(string='更新时间')
is_void = fields.Boolean(string='是否作废')
+ valid_date = fields.Date(string='有效期至')
+ adjust_date = fields.Date(string='调整至')
text = fields.Text(string='备注')
# def _sync_to_employee(self, reverse=False):
@@ -283,6 +309,8 @@ class VacationMealLine(models.Model):
update_lines = fields.Float(string='更新额度')
is_soon = fields.Boolean(string="流程修改")
is_void = fields.Boolean(string='是否作废', default=False)
+ valid_date = fields.Date(string='有效期至')
+ adjust_date = fields.Date(string='调整至')
is_manual = fields.Boolean(string="手动修改")
text = fields.Text(string='备注')
@@ -312,6 +340,51 @@ class VacationMealLine(models.Model):
self._sync_to_employee(reverse=True)
return super(VacationMealLine, self).unlink()
+
+class VacationMedicalLine(models.Model):
+ _name = 'vacation.medical.line'
+ _description = '体检费明细'
+
+ vacation_id = fields.Many2one('yuthon.vacation.reports', string='关联假期额度记录')
+ employee_id = fields.Many2one('hr.employee', string='员工')
+ workflow_record_id = fields.Many2one('soong.workflow.record', string='流程')
+ update_type = fields.Char(string='更新类型')
+ update_date = fields.Date(string='更新时间')
+ valid_date = fields.Date(string='有效期至')
+ adjust_date = fields.Date(string='调整至')
+ lines = fields.Float(string='额度')
+ is_void = fields.Boolean(string='是否作废', default=False)
+ text = fields.Text(string='备注')
+
+ @api.model
+ def create(self, vals):
+ record = super(VacationMedicalLine, self).create(vals)
+ if record.employee_id and record.valid_date:
+ employee = record.employee_id
+ medical_rule = self.env['medical.rules.setting'].search([
+ ('company_id', '=', employee.company_id.id),
+ ('select_year', '<=', str(record.valid_date.year))
+ ], order='select_year DESC', limit=1)
+ if medical_rule:
+ age_diff = max(0, employee.old - 20)
+ increase_times = age_diff // medical_rule.every_few_years
+ base_amount = medical_rule.base
+
+ # 根据性别和婚姻状况调整额度
+ if employee.gender == 'female':
+ if employee.marital in ['single', 'divorced', 'widower', 'cohabitant']:
+ base_amount += medical_rule.woman_unmarried
+ else:
+ base_amount += medical_rule.woman_unmarried + medical_rule.woman_married
+
+ # 计算最终额度(基础额度 + 递增额度)
+ final_amount = base_amount + (increase_times * medical_rule.increasing)
+ final_amount = min(final_amount, medical_rule.max)
+ record.write({'lines': final_amount})
+ return record
+
+
+
class DetailsTree(models.Model):
_name = 'details.tree'
_description = '明细表'
diff --git a/yuthon_holiday/security/ir.model.access.csv b/yuthon_holiday/security/ir.model.access.csv
index 07834f674..2b531e9b0 100644
--- a/yuthon_holiday/security/ir.model.access.csv
+++ b/yuthon_holiday/security/ir.model.access.csv
@@ -11,3 +11,4 @@ access_vacation_leave_line,vacation_leave_line,model_vacation_leave_line,base.gr
access_vacation_meal_line,vacation_meal_line,model_vacation_meal_line,base.group_user,1,1,1,1
access_vacation_over_line,vacation_over_line,model_vacation_over_line,base.group_user,1,1,1,1
access_details_tree, details_tree,model_details_tree,base.group_user,1,1,1,1
+access_vacation_medical_line,vacation_medical_line,model_vacation_medical_line,base.group_user,1,1,1,1
diff --git a/yuthon_holiday/views/yuthon_vacation_reports_views.xml b/yuthon_holiday/views/yuthon_vacation_reports_views.xml
index 33f6c0fcb..7e0a046d0 100644
--- a/yuthon_holiday/views/yuthon_vacation_reports_views.xml
+++ b/yuthon_holiday/views/yuthon_vacation_reports_views.xml
@@ -4,7 +4,7 @@
yuthon.vacation.reports.tree
yuthon.vacation.reports
-
+
@@ -43,6 +43,8 @@
+
+
@@ -62,6 +64,8 @@
+
+
@@ -78,22 +82,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ yuthon.vacation.reports.search
+ yuthon.vacation.reports
+
+
+
+
+
+
yuthon.vacation.reports.form
yuthon.vacation.reports
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -170,13 +217,13 @@
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_holiday.view_yuthon_vacation_reports_tree')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_holiday.view_yuthon_vacation_reports_form')})]"/>
-
- 我的假期额度
- yuthon.vacation.reports
- form
- [('employee_id.user_id', '=', uid)]
-
+
+ 我的假期额度表单
+
+ code
+
+ action = model.action_open_my_form()
+
更新报表
diff --git a/yuthon_hr_attendance/__manifest__.py b/yuthon_hr_attendance/__manifest__.py
index dabd24209..c5aab41fb 100644
--- a/yuthon_hr_attendance/__manifest__.py
+++ b/yuthon_hr_attendance/__manifest__.py
@@ -45,6 +45,7 @@
'views/yuthon_duty_plan_views.xml',
'views/yuthon_abnormal_approval_views.xml',
'views/yuthon_abnormal_setting_views.xml',
+ 'views/medical_rules_setting_viwes.xml',
'views/yuthon_adjustments_approval_views.xml',
'views/yuthon_shift_approval_views.xml',
'views/plan_views.xml',
diff --git a/yuthon_hr_attendance/models/__init__.py b/yuthon_hr_attendance/models/__init__.py
index 71735c45c..62c95b095 100644
--- a/yuthon_hr_attendance/models/__init__.py
+++ b/yuthon_hr_attendance/models/__init__.py
@@ -24,7 +24,7 @@ from . import yuthon_customer_planning
# from . import inherit_hr_employee
from . import hr_attendance_wechat
from . import hr_attendance_detail_wechat
-
+from . import medical_rules_setting
from . import hr_attendance_month
diff --git a/yuthon_hr_attendance/models/card_approval.py b/yuthon_hr_attendance/models/card_approval.py
index a655fcf06..8e41c84a2 100644
--- a/yuthon_hr_attendance/models/card_approval.py
+++ b/yuthon_hr_attendance/models/card_approval.py
@@ -35,6 +35,23 @@ class CardApprovals(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('attendance_id')
def onchange_replacement_time(self):
diff --git a/yuthon_hr_attendance/models/duty_approval.py b/yuthon_hr_attendance/models/duty_approval.py
index 169a4d2e1..98123b044 100644
--- a/yuthon_hr_attendance/models/duty_approval.py
+++ b/yuthon_hr_attendance/models/duty_approval.py
@@ -29,6 +29,23 @@ class DutyApprovals(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.depends('date_start', 'date_end')
def _compute_duration(self):
diff --git a/yuthon_hr_attendance/models/go_approval.py b/yuthon_hr_attendance/models/go_approval.py
index d8978b8c5..849bb2023 100644
--- a/yuthon_hr_attendance/models/go_approval.py
+++ b/yuthon_hr_attendance/models/go_approval.py
@@ -47,6 +47,23 @@ class GoApprovals(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('start_day_selection', 'end_day_selection')
def _onchange_selection_fields(self):
diff --git a/yuthon_hr_attendance/models/leave_approval.py b/yuthon_hr_attendance/models/leave_approval.py
index d456d81ac..e496ac3a6 100644
--- a/yuthon_hr_attendance/models/leave_approval.py
+++ b/yuthon_hr_attendance/models/leave_approval.py
@@ -25,6 +25,23 @@ class LeaveApprovals(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
def leave_approval(self):
pass
\ No newline at end of file
diff --git a/yuthon_hr_attendance/models/medical_rules_setting.py b/yuthon_hr_attendance/models/medical_rules_setting.py
new file mode 100644
index 000000000..f11c0e0d1
--- /dev/null
+++ b/yuthon_hr_attendance/models/medical_rules_setting.py
@@ -0,0 +1,18 @@
+# -*- coding: utf-8 -*-
+from odoo import api, fields, models, tools, _
+from datetime import datetime, time, timedelta
+
+
+class MedicalRulesSetting(models.Model):
+ _name = 'medical.rules.setting'
+ _description = '体检费规则'
+
+ select_year = fields.Selection(selection=[(str(i), str(i)) for i in range(2024, 2040)], string='生效年',
+ default=lambda self: str(datetime.now().year))
+ base = fields.Float(string='基数')
+ every_few_years = fields.Integer(string='每几年')
+ increasing = fields.Float(string='递增')
+ woman_unmarried = fields.Float(string='女性未婚')
+ woman_married = fields.Float(string='女性已婚')
+ max = fields.Float(string='最大值')
+ company_id = fields.Many2one("res.company", string="公司", required=True)
\ No newline at end of file
diff --git a/yuthon_hr_attendance/models/overtime_approval.py b/yuthon_hr_attendance/models/overtime_approval.py
index a0e4353f8..48c8be862 100644
--- a/yuthon_hr_attendance/models/overtime_approval.py
+++ b/yuthon_hr_attendance/models/overtime_approval.py
@@ -41,10 +41,28 @@ class OvertimeApprovals(models.Model):
active = fields.Boolean('Active', default=True, tracking=True)
work_end = fields.Boolean(string="结束")
+
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
def open_record(self):
if self.start_time and self.end_time and self.employee_ids:
diff --git a/yuthon_hr_attendance/models/remove_holiday_approval.py b/yuthon_hr_attendance/models/remove_holiday_approval.py
index 7174dbc65..515429a49 100644
--- a/yuthon_hr_attendance/models/remove_holiday_approval.py
+++ b/yuthon_hr_attendance/models/remove_holiday_approval.py
@@ -31,6 +31,23 @@ class RemoveHolidayApprovals(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('is_issues')
def _onchange_is_issues(self):
diff --git a/yuthon_hr_attendance/models/yuthon_abnormal_approval.py b/yuthon_hr_attendance/models/yuthon_abnormal_approval.py
index e53235d73..7c5d2db39 100644
--- a/yuthon_hr_attendance/models/yuthon_abnormal_approval.py
+++ b/yuthon_hr_attendance/models/yuthon_abnormal_approval.py
@@ -27,6 +27,23 @@ class YuthonAbnormalApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('is_issues')
def _onchange_is_issues(self):
diff --git a/yuthon_hr_attendance/models/yuthon_adjustments_approval.py b/yuthon_hr_attendance/models/yuthon_adjustments_approval.py
index c6da79d7f..b3fee0ac7 100644
--- a/yuthon_hr_attendance/models/yuthon_adjustments_approval.py
+++ b/yuthon_hr_attendance/models/yuthon_adjustments_approval.py
@@ -29,6 +29,23 @@ class YuthonAdjustmentsApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('is_issues')
def _onchange_is_issues(self):
diff --git a/yuthon_hr_attendance/models/yuthon_customer_approval.py b/yuthon_hr_attendance/models/yuthon_customer_approval.py
index aa7935283..95717f212 100644
--- a/yuthon_hr_attendance/models/yuthon_customer_approval.py
+++ b/yuthon_hr_attendance/models/yuthon_customer_approval.py
@@ -28,6 +28,23 @@ class YuthonCustomerApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('is_issues')
def _onchange_is_issues(self):
diff --git a/yuthon_hr_attendance/models/yuthon_shift_approval.py b/yuthon_hr_attendance/models/yuthon_shift_approval.py
index 465e062c3..56c7f7776 100644
--- a/yuthon_hr_attendance/models/yuthon_shift_approval.py
+++ b/yuthon_hr_attendance/models/yuthon_shift_approval.py
@@ -36,6 +36,23 @@ class YuthonShiftApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('is_issues')
def _onchange_is_issues(self):
diff --git a/yuthon_hr_attendance/models/yuthon_special_approval.py b/yuthon_hr_attendance/models/yuthon_special_approval.py
index bde5691de..89e938c1a 100644
--- a/yuthon_hr_attendance/models/yuthon_special_approval.py
+++ b/yuthon_hr_attendance/models/yuthon_special_approval.py
@@ -32,6 +32,23 @@ class YuthonSpecialApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
def button_special_approval(self):
role_a = self.env['planning.role'].search([('name', '=', '联安粮库')], limit=1)
diff --git a/yuthon_hr_attendance/security/ir.model.access.csv b/yuthon_hr_attendance/security/ir.model.access.csv
index f65d0f6f2..5040c969e 100644
--- a/yuthon_hr_attendance/security/ir.model.access.csv
+++ b/yuthon_hr_attendance/security/ir.model.access.csv
@@ -59,3 +59,4 @@ access_yuthon_integrated_wizard,yuthon.integrated.wizard,model_yuthon_integrated
access_applet_address,applet.address,model_applet_address,base.group_user,1,1,1,1
access_applet_security,applet.security,model_applet_security,base.group_user,1,1,1,1
access_applet_security_setting,applet.security.setting,model_applet_security_setting,base.group_user,1,1,1,1
+access_medical_rules_setting, medical.rules.setting,model_medical_rules_setting,base.group_user,1,1,1,1
diff --git a/yuthon_hr_attendance/views/medical_rules_setting_viwes.xml b/yuthon_hr_attendance/views/medical_rules_setting_viwes.xml
new file mode 100644
index 000000000..1d3dad9a4
--- /dev/null
+++ b/yuthon_hr_attendance/views/medical_rules_setting_viwes.xml
@@ -0,0 +1,24 @@
+
+
+
+ medical.rules.setting.tree
+ medical.rules.setting
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 体检费规则
+ medical.rules.setting
+ tree
+
+
\ No newline at end of file
diff --git a/yuthon_hr_employee_approval/models/yuthon_account_approval.py b/yuthon_hr_employee_approval/models/yuthon_account_approval.py
index 9460f48bd..a333c8062 100644
--- a/yuthon_hr_employee_approval/models/yuthon_account_approval.py
+++ b/yuthon_hr_employee_approval/models/yuthon_account_approval.py
@@ -9,4 +9,21 @@ class YuthonAccountApproval(models.Model):
name = fields.Char(string='名称')
code = fields.Char(string="编号", default=lambda self: self.env['ir.sequence'].next_by_code('yuthon_account_approval_code'))
active = fields.Boolean('Active', default=True, tracking=True)
- work_end = fields.Boolean(string="结束")
\ No newline at end of file
+ work_end = fields.Boolean(string="结束")
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
\ No newline at end of file
diff --git a/yuthon_hr_employee_approval/models/yuthon_appointment_approval.py b/yuthon_hr_employee_approval/models/yuthon_appointment_approval.py
index 2b3079018..cc620ffb8 100644
--- a/yuthon_hr_employee_approval/models/yuthon_appointment_approval.py
+++ b/yuthon_hr_employee_approval/models/yuthon_appointment_approval.py
@@ -30,6 +30,23 @@ class YuthonAppointmentApproval(models.Model):
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('is_issues')
def _onchange_is_issues(self):
diff --git a/yuthon_hr_employee_approval/models/yuthon_department_change.py b/yuthon_hr_employee_approval/models/yuthon_department_change.py
index 1378595b5..54b2d4dcd 100644
--- a/yuthon_hr_employee_approval/models/yuthon_department_change.py
+++ b/yuthon_hr_employee_approval/models/yuthon_department_change.py
@@ -31,6 +31,23 @@ class YuthonDepartmentChange(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('is_issues')
def _onchange_is_issues(self):
diff --git a/yuthon_hr_employee_approval/models/yuthon_enrollment_approval.py b/yuthon_hr_employee_approval/models/yuthon_enrollment_approval.py
index 18800b858..7d8079293 100644
--- a/yuthon_hr_employee_approval/models/yuthon_enrollment_approval.py
+++ b/yuthon_hr_employee_approval/models/yuthon_enrollment_approval.py
@@ -11,4 +11,21 @@ class YuthonEnrollmentApproval(models.Model):
code = fields.Char(string="编号",
default=lambda self: self.env['ir.sequence'].next_by_code('yuthon_enrollment_approval_code'))
active = fields.Boolean('Active', default=True, tracking=True)
- work_end = fields.Boolean(string="结束")
\ No newline at end of file
+ work_end = fields.Boolean(string="结束")
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
\ No newline at end of file
diff --git a/yuthon_hr_employee_approval/models/yuthon_interview_approval.py b/yuthon_hr_employee_approval/models/yuthon_interview_approval.py
index cb833cdaf..3f9f2ba71 100644
--- a/yuthon_hr_employee_approval/models/yuthon_interview_approval.py
+++ b/yuthon_hr_employee_approval/models/yuthon_interview_approval.py
@@ -29,6 +29,23 @@ class YuthonInterviewApproval(models.Model):
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
def scheduling_of_meetings(self):
form_id = self.env.ref("room.room_booking_view_form").id
diff --git a/yuthon_hr_employee_approval/models/yuthon_leaving_approval.py b/yuthon_hr_employee_approval/models/yuthon_leaving_approval.py
index aa7c450ac..cb2fac9ed 100644
--- a/yuthon_hr_employee_approval/models/yuthon_leaving_approval.py
+++ b/yuthon_hr_employee_approval/models/yuthon_leaving_approval.py
@@ -37,6 +37,23 @@ class YuthonLeavingApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
active = fields.Boolean('Active', default=True, tracking=True)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
def put_leaving(self):
for record in self:
diff --git a/yuthon_hr_employee_approval/models/yuthon_message_login.py b/yuthon_hr_employee_approval/models/yuthon_message_login.py
index c2ceb8a4f..8a6046fa7 100644
--- a/yuthon_hr_employee_approval/models/yuthon_message_login.py
+++ b/yuthon_hr_employee_approval/models/yuthon_message_login.py
@@ -120,6 +120,23 @@ class YuthonMessageLogin(models.Model):
part_time_ids = fields.One2many('education.details.line1', 'diploma_id', string="学历证(非全日制)")
degree_id_ids = fields.One2many('education.details.line2', 'degree_id', string="学位证")
certificate_ids = fields.One2many('certificates.detail.line', 'certificate_id', string="专业证书")
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('is_issues')
def _onchange_is_issues(self):
diff --git a/yuthon_hr_employee_approval/models/yuthon_onboard_approval.py b/yuthon_hr_employee_approval/models/yuthon_onboard_approval.py
index fdf646874..e4c2c6514 100644
--- a/yuthon_hr_employee_approval/models/yuthon_onboard_approval.py
+++ b/yuthon_hr_employee_approval/models/yuthon_onboard_approval.py
@@ -69,6 +69,23 @@ class YuthonOnboardApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
def button_office_supply(self):
form_id = self.env.ref('yuthon_sps_approval.view_yuthon_office_supplies_form').id
diff --git a/yuthon_hr_employee_approval/models/yuthon_prepare_approval.py b/yuthon_hr_employee_approval/models/yuthon_prepare_approval.py
index e11c22fa5..1f310a948 100644
--- a/yuthon_hr_employee_approval/models/yuthon_prepare_approval.py
+++ b/yuthon_hr_employee_approval/models/yuthon_prepare_approval.py
@@ -27,6 +27,23 @@ class YuthonPrepareApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('adjust_information_ids')
def onchange_change_index_library_ids(self):
diff --git a/yuthon_hr_employee_approval/models/yuthon_reassignment_approval.py b/yuthon_hr_employee_approval/models/yuthon_reassignment_approval.py
index 3057f88f8..d3421d60b 100644
--- a/yuthon_hr_employee_approval/models/yuthon_reassignment_approval.py
+++ b/yuthon_hr_employee_approval/models/yuthon_reassignment_approval.py
@@ -34,6 +34,23 @@ class YuthonReassignmentApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
#异动信息
change_kind = fields.Char(string="异动类型")
diff --git a/yuthon_hr_employee_approval/models/yuthon_recruitment_approval.py b/yuthon_hr_employee_approval/models/yuthon_recruitment_approval.py
index 89d035bd1..70ce52d14 100644
--- a/yuthon_hr_employee_approval/models/yuthon_recruitment_approval.py
+++ b/yuthon_hr_employee_approval/models/yuthon_recruitment_approval.py
@@ -28,6 +28,23 @@ class YuthonRecruitmentApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('is_issues')
def _onchange_is_issues(self):
diff --git a/yuthon_hr_employee_approval/models/yuthon_regularization_approval.py b/yuthon_hr_employee_approval/models/yuthon_regularization_approval.py
index fc0489662..e04f2e7a1 100644
--- a/yuthon_hr_employee_approval/models/yuthon_regularization_approval.py
+++ b/yuthon_hr_employee_approval/models/yuthon_regularization_approval.py
@@ -50,6 +50,23 @@ class YuthonRegularizationPrepareApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
#试用信息明细行
trial_assessment_ids = fields.One2many('yuthon.trial.scenario.detail.line', 'regularization_login_id', string="试用期考核方案",help='请选择适用本人主岗的试用考核方案,或直接在下方填写')
diff --git a/yuthon_hr_employee_approval/models/yuthon_renewal_approval.py b/yuthon_hr_employee_approval/models/yuthon_renewal_approval.py
index 77eaf587c..0239e45cb 100644
--- a/yuthon_hr_employee_approval/models/yuthon_renewal_approval.py
+++ b/yuthon_hr_employee_approval/models/yuthon_renewal_approval.py
@@ -37,4 +37,21 @@ class YuthonRenewalApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
diff --git a/yuthon_hr_employee_approval/models/yuthon_retired_approval.py b/yuthon_hr_employee_approval/models/yuthon_retired_approval.py
index 40699de1b..b7410eb76 100644
--- a/yuthon_hr_employee_approval/models/yuthon_retired_approval.py
+++ b/yuthon_hr_employee_approval/models/yuthon_retired_approval.py
@@ -37,6 +37,23 @@ class YuthonRetiredApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
class YuthonHandoverLine(models.Model):
diff --git a/yuthon_hr_employee_approval/models/yuthon_reward_approval.py b/yuthon_hr_employee_approval/models/yuthon_reward_approval.py
index 61c7871f5..3c4d97ad5 100644
--- a/yuthon_hr_employee_approval/models/yuthon_reward_approval.py
+++ b/yuthon_hr_employee_approval/models/yuthon_reward_approval.py
@@ -29,6 +29,23 @@ class YuthonRewardApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('is_issues')
def _onchange_is_issues(self):
diff --git a/yuthon_hr_employee_approval/models/yuthon_service_approval.py b/yuthon_hr_employee_approval/models/yuthon_service_approval.py
index 2391687fc..f144cb7b9 100644
--- a/yuthon_hr_employee_approval/models/yuthon_service_approval.py
+++ b/yuthon_hr_employee_approval/models/yuthon_service_approval.py
@@ -26,6 +26,23 @@ class YuthonServiceApproval(models.Model):
default='normal')
active = fields.Boolean('Active', default=True, tracking=True)
work_end = fields.Boolean(string="结束")
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
def _get_default_name_title(self):
return self._description if self._description else self._name
diff --git a/yuthon_hr_employee_approval/models/yuthon_social_files_approval.py b/yuthon_hr_employee_approval/models/yuthon_social_files_approval.py
index da6c2a1c7..c015e1893 100644
--- a/yuthon_hr_employee_approval/models/yuthon_social_files_approval.py
+++ b/yuthon_hr_employee_approval/models/yuthon_social_files_approval.py
@@ -40,4 +40,21 @@ class YuthonSocialFilesApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
diff --git a/yuthon_hr_employee_approval/models/yuthon_transfer_approval.py b/yuthon_hr_employee_approval/models/yuthon_transfer_approval.py
index aa5a03111..60699a699 100644
--- a/yuthon_hr_employee_approval/models/yuthon_transfer_approval.py
+++ b/yuthon_hr_employee_approval/models/yuthon_transfer_approval.py
@@ -41,6 +41,23 @@ class YutransferApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('is_issues')
def _onchange_is_issues(self):
diff --git a/yuthon_notice/models/yuthon_notice.py b/yuthon_notice/models/yuthon_notice.py
index dbe26f328..09db43683 100644
--- a/yuthon_notice/models/yuthon_notice.py
+++ b/yuthon_notice/models/yuthon_notice.py
@@ -38,11 +38,42 @@ class YuthonNotice(models.Model):
approval_user_id = fields.Many2one('res.users', string="审核人")
approval_date = fields.Datetime(string="审核日期")
is_sticky = fields.Boolean(string="是否置顶")
- users_ids = fields.Many2many('res.users', string='用户')
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度', default='normal')
active = fields.Boolean('Active', default=True, tracking=True)
work_end = fields.Boolean(string="结束")
+ users_ids = fields.Many2many(
+ 'res.users',
+ relation='yuthon_notice_users_rel',
+ column1='notice_id',
+ column2='user_id',
+ string='用户'
+ )
+ users_ids1 = fields.Many2many(
+ 'res.users',
+ relation='yuthon_notice_current_users_rel',
+ column1='notice_id',
+ column2='user_id',
+ string="当前经办人",
+ store=True,
+ compute='_compute_users_ids'
+ )
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids1 = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids1 = [(6, 0, user_ids)]
+ else:
+ record.users_ids1 = False
@api.model_create_multi
def create(self, vals_list):
diff --git a/yuthon_official/models/yuthon_offficial_incoming_party.py b/yuthon_official/models/yuthon_offficial_incoming_party.py
index 22f45109d..f7f4ea630 100644
--- a/yuthon_official/models/yuthon_offficial_incoming_party.py
+++ b/yuthon_official/models/yuthon_offficial_incoming_party.py
@@ -43,6 +43,23 @@ class YuthonOfficialIncomingParty(models.Model):
active = fields.Boolean('Active', default=True, tracking=True)
work_end = fields.Boolean(string="结束")
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('is_issues')
def _onchange_is_issues(self):
diff --git a/yuthon_official/models/yuthon_official.py b/yuthon_official/models/yuthon_official.py
index b0484926e..118d168f4 100644
--- a/yuthon_official/models/yuthon_official.py
+++ b/yuthon_official/models/yuthon_official.py
@@ -53,6 +53,23 @@ class YuthonOfficial(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
def supervising_button(self):
diff --git a/yuthon_official/models/yuthon_official_incoming_labor.py b/yuthon_official/models/yuthon_official_incoming_labor.py
index 144317272..1499c7aed 100644
--- a/yuthon_official/models/yuthon_official_incoming_labor.py
+++ b/yuthon_official/models/yuthon_official_incoming_labor.py
@@ -43,6 +43,23 @@ class YuthonOfficialIncomingLabor(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('is_issues')
def _onchange_is_issues(self):
diff --git a/yuthon_official/models/yuthon_official_incoming_normal.py b/yuthon_official/models/yuthon_official_incoming_normal.py
index f344374a5..4eca9bf40 100644
--- a/yuthon_official/models/yuthon_official_incoming_normal.py
+++ b/yuthon_official/models/yuthon_official_incoming_normal.py
@@ -46,6 +46,23 @@ class YuthonOfficialIncomingNormal(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('is_issues')
def _onchange_is_issues(self):
diff --git a/yuthon_official/models/yuthon_official_labor.py b/yuthon_official/models/yuthon_official_labor.py
index 6a05c2cca..1ea0fa9f8 100644
--- a/yuthon_official/models/yuthon_official_labor.py
+++ b/yuthon_official/models/yuthon_official_labor.py
@@ -34,4 +34,21 @@ class YuthonOfficialLabor(models.Model):
def _get_default_name_title(self):
return self._description if self._description else self._name
- name_title = fields.Char(default=_get_default_name_title)
\ No newline at end of file
+ name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
\ No newline at end of file
diff --git a/yuthon_official/models/yuthon_official_party.py b/yuthon_official/models/yuthon_official_party.py
index fa02b3c87..508fee65e 100644
--- a/yuthon_official/models/yuthon_official_party.py
+++ b/yuthon_official/models/yuthon_official_party.py
@@ -40,3 +40,20 @@ class YuthonOfficialParty(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
diff --git a/yuthon_performance/models/yuthon_employee_approval.py b/yuthon_performance/models/yuthon_employee_approval.py
index c518fb5ac..7154abbd2 100644
--- a/yuthon_performance/models/yuthon_employee_approval.py
+++ b/yuthon_performance/models/yuthon_employee_approval.py
@@ -23,6 +23,23 @@ class YuthonEmployeeApproval(models.Model):
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
work_end = fields.Boolean(string="结束")
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
def _get_default_name_title(self):
return self._description if self._description else self._name
diff --git a/yuthon_performance/models/yuthon_index_approval.py b/yuthon_performance/models/yuthon_index_approval.py
index aad04c9c6..f5762a331 100644
--- a/yuthon_performance/models/yuthon_index_approval.py
+++ b/yuthon_performance/models/yuthon_index_approval.py
@@ -17,6 +17,23 @@ class YuthonIndexApproval(models.Model):
new_index_library_ids = fields.One2many("new.index.management.line",'new_change_index_library_id',string="新组织指标库变更明细")
work_end = fields.Boolean(string="结束")
active = fields.Boolean('Active', default=True, tracking=True)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('change_index_library_ids')
def onchange_change_index_library_ids(self):
diff --git a/yuthon_performance/models/yuthon_tissue_duty_approval.py b/yuthon_performance/models/yuthon_tissue_duty_approval.py
index f2389577a..b44778e04 100644
--- a/yuthon_performance/models/yuthon_tissue_duty_approval.py
+++ b/yuthon_performance/models/yuthon_tissue_duty_approval.py
@@ -26,6 +26,23 @@ class YuthonTissueDutyApproval(models.Model):
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
work_end = fields.Boolean(string="结束")
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
def _get_default_name_title(self):
return self._description if self._description else self._name
diff --git a/yuthon_property_approval/models/perperty_claim_approval.py b/yuthon_property_approval/models/perperty_claim_approval.py
index 1b985578e..61238f298 100644
--- a/yuthon_property_approval/models/perperty_claim_approval.py
+++ b/yuthon_property_approval/models/perperty_claim_approval.py
@@ -30,6 +30,23 @@ class PropertyClaimApproval(models.Model):
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
class PropertyClaimLine(models.Model):
_name = 'property.claim.line'
diff --git a/yuthon_property_approval/models/property_accounting_approval.py b/yuthon_property_approval/models/property_accounting_approval.py
index 4f287f2ec..8ea930da7 100644
--- a/yuthon_property_approval/models/property_accounting_approval.py
+++ b/yuthon_property_approval/models/property_accounting_approval.py
@@ -38,6 +38,23 @@ class PropertyAccountingApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
class AccountingWayLine(models.Model):
diff --git a/yuthon_property_approval/models/property_accounts_approval.py b/yuthon_property_approval/models/property_accounts_approval.py
index 0c59bd7b0..83d6c91c0 100644
--- a/yuthon_property_approval/models/property_accounts_approval.py
+++ b/yuthon_property_approval/models/property_accounts_approval.py
@@ -31,6 +31,23 @@ class PropertyAccountsApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
# 流程结束触发方法
def put_button(self):
diff --git a/yuthon_property_approval/models/property_approval.py b/yuthon_property_approval/models/property_approval.py
index 1b8d51087..4b090e188 100644
--- a/yuthon_property_approval/models/property_approval.py
+++ b/yuthon_property_approval/models/property_approval.py
@@ -34,6 +34,23 @@ class PropertyApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
def put_message_in(self): # 导入按钮
return {
diff --git a/yuthon_property_approval/models/property_borrowing_approval.py b/yuthon_property_approval/models/property_borrowing_approval.py
index cd43f99a8..6fef69fe4 100644
--- a/yuthon_property_approval/models/property_borrowing_approval.py
+++ b/yuthon_property_approval/models/property_borrowing_approval.py
@@ -26,6 +26,23 @@ class PropertyBorrowingApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
active = fields.Boolean('Active', default=True, tracking=True)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
class YuthonBorrowingLine(models.Model):
diff --git a/yuthon_property_approval/models/property_capacity.py b/yuthon_property_approval/models/property_capacity.py
index d728ceca0..90881ad75 100644
--- a/yuthon_property_approval/models/property_capacity.py
+++ b/yuthon_property_approval/models/property_capacity.py
@@ -33,6 +33,23 @@ class PropertyCapacity(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('is_issues')
def _onchange_is_issues(self):
diff --git a/yuthon_property_approval/models/property_construction_approval.py b/yuthon_property_approval/models/property_construction_approval.py
index 8a82345cb..567ae4c91 100644
--- a/yuthon_property_approval/models/property_construction_approval.py
+++ b/yuthon_property_approval/models/property_construction_approval.py
@@ -38,6 +38,23 @@ class PropertyConstructionApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
class ConstructionWayLine(models.Model):
diff --git a/yuthon_property_approval/models/property_current_approval.py b/yuthon_property_approval/models/property_current_approval.py
index b95b8ce6a..4df4ab35b 100644
--- a/yuthon_property_approval/models/property_current_approval.py
+++ b/yuthon_property_approval/models/property_current_approval.py
@@ -62,3 +62,20 @@ class PropertyCurrentApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
diff --git a/yuthon_property_approval/models/property_delegated_agent.py b/yuthon_property_approval/models/property_delegated_agent.py
index e13df6dd4..d40139120 100644
--- a/yuthon_property_approval/models/property_delegated_agent.py
+++ b/yuthon_property_approval/models/property_delegated_agent.py
@@ -28,5 +28,22 @@ class PropertyDelegatedAgent(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
diff --git a/yuthon_property_approval/models/property_design_approval.py b/yuthon_property_approval/models/property_design_approval.py
index 0cc0e1267..3450051a4 100644
--- a/yuthon_property_approval/models/property_design_approval.py
+++ b/yuthon_property_approval/models/property_design_approval.py
@@ -35,6 +35,23 @@ class PropertyDesignApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
class DesignWayLine(models.Model):
diff --git a/yuthon_property_approval/models/property_early_quitting.py b/yuthon_property_approval/models/property_early_quitting.py
index e6d3c610f..23f69f9ed 100644
--- a/yuthon_property_approval/models/property_early_quitting.py
+++ b/yuthon_property_approval/models/property_early_quitting.py
@@ -37,6 +37,23 @@ class PropertyEarlyQuitting(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
def button_approval(self):
for rec in self:
diff --git a/yuthon_property_approval/models/property_eligibility.py b/yuthon_property_approval/models/property_eligibility.py
index b2835ef42..63d636ac1 100644
--- a/yuthon_property_approval/models/property_eligibility.py
+++ b/yuthon_property_approval/models/property_eligibility.py
@@ -32,6 +32,23 @@ class PropertyEligibility(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
class PropertyEligibilityLine(models.Model):
_name = 'property.eligibility.line'
diff --git a/yuthon_property_approval/models/property_engineering_approval.py b/yuthon_property_approval/models/property_engineering_approval.py
index 0b8ad8963..63dad088c 100644
--- a/yuthon_property_approval/models/property_engineering_approval.py
+++ b/yuthon_property_approval/models/property_engineering_approval.py
@@ -58,3 +58,20 @@ class PropertyEngineeringApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
diff --git a/yuthon_property_approval/models/property_evaluate_application.py b/yuthon_property_approval/models/property_evaluate_application.py
index 84f8d57da..81c6a0ddc 100644
--- a/yuthon_property_approval/models/property_evaluate_application.py
+++ b/yuthon_property_approval/models/property_evaluate_application.py
@@ -36,6 +36,23 @@ class PropertyEvaluateApplication(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
def put_property_record(self):
form_id = self.env.ref('yuthon_property_approval.views_property_record_form').id
diff --git a/yuthon_property_approval/models/property_fitment.py b/yuthon_property_approval/models/property_fitment.py
index 51d20321b..d53f37970 100644
--- a/yuthon_property_approval/models/property_fitment.py
+++ b/yuthon_property_approval/models/property_fitment.py
@@ -36,4 +36,21 @@ class PropertyFitment(models.Model):
def _get_default_name_title(self):
return self._description if self._description else self._name
- name_title = fields.Char(default=_get_default_name_title)
\ No newline at end of file
+ name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
\ No newline at end of file
diff --git a/yuthon_property_approval/models/property_handover.py b/yuthon_property_approval/models/property_handover.py
index 98c4ad0f0..940aaabae 100644
--- a/yuthon_property_approval/models/property_handover.py
+++ b/yuthon_property_approval/models/property_handover.py
@@ -30,6 +30,23 @@ class PropertyHandover(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('is_issues')
def _onchange_is_issues(self):
diff --git a/yuthon_property_approval/models/property_intention_approval.py b/yuthon_property_approval/models/property_intention_approval.py
index 0ba12e4f7..ffaed4db6 100644
--- a/yuthon_property_approval/models/property_intention_approval.py
+++ b/yuthon_property_approval/models/property_intention_approval.py
@@ -28,6 +28,23 @@ class PropertyIntentionApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('is_issues')
def _onchange_is_issues(self):
diff --git a/yuthon_property_approval/models/property_lease_contract.py b/yuthon_property_approval/models/property_lease_contract.py
index 45333fdf8..b2f459044 100644
--- a/yuthon_property_approval/models/property_lease_contract.py
+++ b/yuthon_property_approval/models/property_lease_contract.py
@@ -212,6 +212,23 @@ class PropertyLeaseContract(models.Model):
store=True)
responsibility_book_name = fields.Char(string="安全生产责任书(住宅)名称", compute='_compute_attachment_names',
store=True)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.depends()
def _compute_not_received(self):
diff --git a/yuthon_property_approval/models/property_lease_extension.py b/yuthon_property_approval/models/property_lease_extension.py
index bf46cacaa..1980aca42 100644
--- a/yuthon_property_approval/models/property_lease_extension.py
+++ b/yuthon_property_approval/models/property_lease_extension.py
@@ -37,6 +37,23 @@ class PropertyLeaseExtension(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
def button_approval(self):
for rec in self:
diff --git a/yuthon_property_approval/models/property_management.py b/yuthon_property_approval/models/property_management.py
index 486ff412c..09034086d 100644
--- a/yuthon_property_approval/models/property_management.py
+++ b/yuthon_property_approval/models/property_management.py
@@ -41,6 +41,23 @@ class PropertyManagement(models.Model):
name_title = fields.Char(default=_get_default_name_title)
document_ids = fields.Many2many('ir.attachment', string="附件")
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('precinct_id')
def _onchange_precinct_id(self):
diff --git a/yuthon_property_approval/models/property_management_fee.py b/yuthon_property_approval/models/property_management_fee.py
index a6376098a..ac13d37ff 100644
--- a/yuthon_property_approval/models/property_management_fee.py
+++ b/yuthon_property_approval/models/property_management_fee.py
@@ -26,6 +26,23 @@ class PropertyManagementFee(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
#类型
diff --git a/yuthon_property_approval/models/property_meeting_approval.py b/yuthon_property_approval/models/property_meeting_approval.py
index 5e5cd2a2e..4698a2533 100644
--- a/yuthon_property_approval/models/property_meeting_approval.py
+++ b/yuthon_property_approval/models/property_meeting_approval.py
@@ -29,6 +29,23 @@ class PropertyMeetingApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('is_issues')
def _onchange_is_issues(self):
diff --git a/yuthon_property_approval/models/property_merge_approval.py b/yuthon_property_approval/models/property_merge_approval.py
index 7b762e57b..4ee856623 100644
--- a/yuthon_property_approval/models/property_merge_approval.py
+++ b/yuthon_property_approval/models/property_merge_approval.py
@@ -33,6 +33,24 @@ class PropertyMergeApproval(models.Model):
def _get_default_name_title(self):
return self._description if self._description else self._name
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
+
name_title = fields.Char(default=_get_default_name_title)
related_issues_id = fields.Many2one('issue.library', string="关联议题")
diff --git a/yuthon_property_approval/models/property_offline_registration.py b/yuthon_property_approval/models/property_offline_registration.py
index 7a665b594..0d03fd6bf 100644
--- a/yuthon_property_approval/models/property_offline_registration.py
+++ b/yuthon_property_approval/models/property_offline_registration.py
@@ -34,6 +34,23 @@ class PropertyOfflineRegistration(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('is_issues')
def _onchange_is_issues(self):
diff --git a/yuthon_property_approval/models/property_open_rent.py b/yuthon_property_approval/models/property_open_rent.py
index 135005d57..f9e37c603 100644
--- a/yuthon_property_approval/models/property_open_rent.py
+++ b/yuthon_property_approval/models/property_open_rent.py
@@ -24,6 +24,23 @@ class PropertyOpenRent(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
#
#
# class PropertyOpenRentLine(models.Model):
diff --git a/yuthon_property_approval/models/property_penalty_relief.py b/yuthon_property_approval/models/property_penalty_relief.py
index 62c1ca85b..aef268fb1 100644
--- a/yuthon_property_approval/models/property_penalty_relief.py
+++ b/yuthon_property_approval/models/property_penalty_relief.py
@@ -35,6 +35,23 @@ class PropertyPenaltyRelief(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('is_issues')
def _onchange_is_issues(self):
diff --git a/yuthon_property_approval/models/property_project_approval.py b/yuthon_property_approval/models/property_project_approval.py
index 420c62cc7..a2fa2c2cf 100644
--- a/yuthon_property_approval/models/property_project_approval.py
+++ b/yuthon_property_approval/models/property_project_approval.py
@@ -26,4 +26,21 @@ class PropertyProjectApproval(models.Model):
def _get_default_name_title(self):
return self._description if self._description else self._name
- name_title = fields.Char(default=_get_default_name_title)
\ No newline at end of file
+ name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
\ No newline at end of file
diff --git a/yuthon_property_approval/models/property_project_works.py b/yuthon_property_approval/models/property_project_works.py
index 976fa40bf..5e6091289 100644
--- a/yuthon_property_approval/models/property_project_works.py
+++ b/yuthon_property_approval/models/property_project_works.py
@@ -27,4 +27,21 @@ class PropertyProjectWorks(models.Model):
def _get_default_name_title(self):
return self._description if self._description else self._name
- name_title = fields.Char(default=_get_default_name_title)
\ No newline at end of file
+ name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
\ No newline at end of file
diff --git a/yuthon_property_approval/models/property_record.py b/yuthon_property_approval/models/property_record.py
index 0ef0fa7b3..68c64de40 100644
--- a/yuthon_property_approval/models/property_record.py
+++ b/yuthon_property_approval/models/property_record.py
@@ -35,6 +35,23 @@ class PropertyRecord(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('is_issues')
def _onchange_is_issues(self):
diff --git a/yuthon_property_approval/models/property_renamed.py b/yuthon_property_approval/models/property_renamed.py
index 463cf2e7a..8edd0b551 100644
--- a/yuthon_property_approval/models/property_renamed.py
+++ b/yuthon_property_approval/models/property_renamed.py
@@ -29,4 +29,21 @@ class PropertyRenamed(models.Model):
def _get_default_name_title(self):
return self._description if self._description else self._name
- name_title = fields.Char(default=_get_default_name_title)
\ No newline at end of file
+ name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
\ No newline at end of file
diff --git a/yuthon_property_approval/models/property_rent_relief.py b/yuthon_property_approval/models/property_rent_relief.py
index 5fbb56e08..bb98ad525 100644
--- a/yuthon_property_approval/models/property_rent_relief.py
+++ b/yuthon_property_approval/models/property_rent_relief.py
@@ -34,6 +34,23 @@ class PropertyRentRelief(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('is_issues')
def _onchange_is_issues(self):
diff --git a/yuthon_property_approval/models/property_rental_conditions.py b/yuthon_property_approval/models/property_rental_conditions.py
index f31ebe90d..0db059499 100644
--- a/yuthon_property_approval/models/property_rental_conditions.py
+++ b/yuthon_property_approval/models/property_rental_conditions.py
@@ -30,6 +30,23 @@ class PropertyRentalConditions(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
class NowRentalConditionsLine(models.Model):
_name = 'now.rental.conditions.line'
diff --git a/yuthon_property_approval/models/property_rental_form.py b/yuthon_property_approval/models/property_rental_form.py
index 3ae26b273..96f7f2a49 100644
--- a/yuthon_property_approval/models/property_rental_form.py
+++ b/yuthon_property_approval/models/property_rental_form.py
@@ -28,6 +28,23 @@ class PropertyRentalForm(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
class PropertyRentalFormLine(models.Model):
diff --git a/yuthon_property_approval/models/property_service_approval.py b/yuthon_property_approval/models/property_service_approval.py
index 32e0094f7..c10ea44e4 100644
--- a/yuthon_property_approval/models/property_service_approval.py
+++ b/yuthon_property_approval/models/property_service_approval.py
@@ -66,3 +66,20 @@ class PropertyServiceApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
diff --git a/yuthon_property_approval/models/property_split_approval.py b/yuthon_property_approval/models/property_split_approval.py
index cb1cd7c1f..bfca986cd 100644
--- a/yuthon_property_approval/models/property_split_approval.py
+++ b/yuthon_property_approval/models/property_split_approval.py
@@ -35,19 +35,36 @@ class PropertySplitApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
- def property_split_button(self):
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
+
+ @api.onchange('split_quantity', 'property_id')
+ def _onchange_split_quantity(self):
+ self.property_split_approval_line_ids = [(5, 0, 0)]
if self.split_quantity < 2:
raise UserError('拆分数量必须是大于2')
- if self.id and self.property_id:
- lines_to_create = []
- for i in range(self.split_quantity):
- lines_to_create.append({
- 'property_split_approval_id': self.id,
- 'split_property': f"{self.property_id.name}-{i + 1}"
- })
- self.property_split_approval_line_ids.unlink()
- self.env['property.split.approval.line'].create(lines_to_create)
+ lines_to_create = []
+ for i in range(self.split_quantity):
+ lines_to_create.append({
+ 'property_split_approval_id': self.id,
+ 'split_property': f"{self.property_id.name}-{i + 1}"
+ })
+ self.property_split_approval_line_ids = [(0, 0, line) for line in lines_to_create]
def put_split_message(self):
property_list = []
diff --git a/yuthon_property_approval/models/property_sporadic_works.py b/yuthon_property_approval/models/property_sporadic_works.py
index 34cfd490e..1b0c88416 100644
--- a/yuthon_property_approval/models/property_sporadic_works.py
+++ b/yuthon_property_approval/models/property_sporadic_works.py
@@ -27,6 +27,23 @@ class PropertySporadicWorks(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
class PaymentMethodsLine(models.Model):
_name = 'payment.methods.line'
diff --git a/yuthon_property_approval/models/property_supervising_approval.py b/yuthon_property_approval/models/property_supervising_approval.py
index af0daf66f..10c5160d0 100644
--- a/yuthon_property_approval/models/property_supervising_approval.py
+++ b/yuthon_property_approval/models/property_supervising_approval.py
@@ -35,6 +35,23 @@ class PropertySupervisingApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
class SupervisingWayLine(models.Model):
_name = 'supervising.way.line'
diff --git a/yuthon_property_approval/models/property_transaction_confirmed.py b/yuthon_property_approval/models/property_transaction_confirmed.py
index 4fc70f963..56b075ad1 100644
--- a/yuthon_property_approval/models/property_transaction_confirmed.py
+++ b/yuthon_property_approval/models/property_transaction_confirmed.py
@@ -31,6 +31,23 @@ class PropertyTransactionConfirmed(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('is_issues')
def _onchange_is_issues(self):
diff --git a/yuthon_property_approval/models/property_transfer_approval.py b/yuthon_property_approval/models/property_transfer_approval.py
index fadc021cc..78b9147e6 100644
--- a/yuthon_property_approval/models/property_transfer_approval.py
+++ b/yuthon_property_approval/models/property_transfer_approval.py
@@ -41,6 +41,23 @@ class PropertyTransferApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('is_issues')
def _onchange_is_issues(self):
diff --git a/yuthon_property_approval/views/property_split_approval_views.xml b/yuthon_property_approval/views/property_split_approval_views.xml
index 38ac65ac3..38df6ab2d 100644
--- a/yuthon_property_approval/views/property_split_approval_views.xml
+++ b/yuthon_property_approval/views/property_split_approval_views.xml
@@ -63,7 +63,6 @@
-
diff --git a/yuthon_salary/models/inherit_hr_payslip.py b/yuthon_salary/models/inherit_hr_payslip.py
index 61613c440..77dde5d1f 100644
--- a/yuthon_salary/models/inherit_hr_payslip.py
+++ b/yuthon_salary/models/inherit_hr_payslip.py
@@ -255,12 +255,20 @@ class InheritHrPayslip(models.Model):
for rec in self:
if rec.line_ids:
for line in rec.line_ids:
+ if line.name == '学习进步奖':
+ rec.study_on = line.total
+ if line.name == '临时绩效奖':
+ rec.temporary_performance_bonus = line.total
+ if line.name == '上年安全生产工作奖':
+ rec.last_year_safety = line.total
if line.name == '生育津贴':
rec.allowance = line.total
if line.name == '儿童节慰问金':
rec.condolence_fund = line.total
if line.name == '春节福利':
rec.spring_festival = line.total
+ if line.name == '上年绩效评优':
+ rec.last_year_performance_evaluation = line.total
if line.name == '上年社保补缴':
rec.social_security = line.total
if line.name == '上年年度清算':
diff --git a/yuthon_salary/models/yuthon_payroll_project.py b/yuthon_salary/models/yuthon_payroll_project.py
index de33d6479..18b6e3545 100644
--- a/yuthon_salary/models/yuthon_payroll_project.py
+++ b/yuthon_salary/models/yuthon_payroll_project.py
@@ -64,17 +64,17 @@ class YuthonPayrollCommon(models.Model):
if ins.name == '工龄工资' and ins.company_id.name == '天河物管':
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 = (employee.company_old_year) * 10"
+ 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)"
if ins.name == '误餐费':
formula_salary = "result = employee.meal_number * 40 + employee.meal_supplement"
if ins.name == '通讯补贴':
- formula_salary = "result = 300"
+ 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 = 200 if employee.last_attendance else 0"
+ 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 == '天河物管':
formula_salary = "result = 100 if employee.last_attendance else 0"
if ins.name == '加班费':
- formula_salary = "result = round(((employee.all_overtime_hours - 40) * (payslip.base_salary /21.75 / 8) * 1.5), 0) if employee.all_overtime_hours > 40 else 0"
+ formula_salary = "result = 0 if (employee.is_annual_salary or employee.contract_id.structure_type_id.name == '工勤返聘') else (round(((employee.all_overtime_hours - 40) * (payslip.base_salary / 21.75 / 8) * 1.5), 0) if employee.all_overtime_hours > 40 else 0)"
if ins.name == '安全生产管理补贴':
formula_salary = "result = employee.security_amount "
if ins.name == '工龄补贴' and ins.company_id.name == '天河物管':
diff --git a/yuthon_salary/views/inherit_hr_payslip_views.xml b/yuthon_salary/views/inherit_hr_payslip_views.xml
index ce841dbee..43556d5ae 100644
--- a/yuthon_salary/views/inherit_hr_payslip_views.xml
+++ b/yuthon_salary/views/inherit_hr_payslip_views.xml
@@ -265,10 +265,10 @@
+
-
diff --git a/yuthon_trade/models/yuthon_business_approval.py b/yuthon_trade/models/yuthon_business_approval.py
index 463783ef2..1cdd4bbca 100644
--- a/yuthon_trade/models/yuthon_business_approval.py
+++ b/yuthon_trade/models/yuthon_business_approval.py
@@ -27,6 +27,23 @@ class YuthonBusinessApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('is_issues')
def _onchange_is_issues(self):
diff --git a/yuthon_trade/models/yuthon_care_condolences.py b/yuthon_trade/models/yuthon_care_condolences.py
index acfdacb46..3255974d0 100644
--- a/yuthon_trade/models/yuthon_care_condolences.py
+++ b/yuthon_trade/models/yuthon_care_condolences.py
@@ -31,6 +31,23 @@ class YuthonCareCondolences(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
diff --git a/yuthon_trade/models/yuthon_message_approval.py b/yuthon_trade/models/yuthon_message_approval.py
index eb6b0355d..40334e708 100644
--- a/yuthon_trade/models/yuthon_message_approval.py
+++ b/yuthon_trade/models/yuthon_message_approval.py
@@ -28,6 +28,23 @@ class YuthonMessageApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
class YuthonPublishType(models.Model):
_name = 'yuthon.publish.type'
diff --git a/yuthon_trade/models/yuthon_mutual_approval.py b/yuthon_trade/models/yuthon_mutual_approval.py
index 20b255444..e6fff7b52 100644
--- a/yuthon_trade/models/yuthon_mutual_approval.py
+++ b/yuthon_trade/models/yuthon_mutual_approval.py
@@ -18,6 +18,23 @@ class YuthonMutualApproval(models.Model):
insurance_ids = fields.One2many('yuthon.mutual.line', 'mutual_id', string="保单名称")
work_end = fields.Boolean(string="结束")
active = fields.Boolean('Active', default=True, tracking=True)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('users_id', 'insurance_ids')
def _onchange_set_employee_id(self):
diff --git a/yuthon_trade/models/yuthon_personal_condolences.py b/yuthon_trade/models/yuthon_personal_condolences.py
index 24e15e5ea..6b54f105c 100644
--- a/yuthon_trade/models/yuthon_personal_condolences.py
+++ b/yuthon_trade/models/yuthon_personal_condolences.py
@@ -10,4 +10,21 @@ class YuthonPersonalCondolences(models.Model):
code = fields.Char(string="编号",
default=lambda self: self.env['ir.sequence'].next_by_code('property_personal_condolences_code_sequence'))
work_end = fields.Boolean(string="结束")
- active = fields.Boolean('Active', default=True, tracking=True)
\ No newline at end of file
+ active = fields.Boolean('Active', default=True, tracking=True)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
\ No newline at end of file
diff --git a/yuthon_trade/models/yuthon_seals_approval.py b/yuthon_trade/models/yuthon_seals_approval.py
index 769ae8728..1bac2510e 100644
--- a/yuthon_trade/models/yuthon_seals_approval.py
+++ b/yuthon_trade/models/yuthon_seals_approval.py
@@ -27,3 +27,20 @@ class YuthonSealsApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
diff --git a/yuthon_trade/models/yuthon_task_approval.py b/yuthon_trade/models/yuthon_task_approval.py
index a720b09d4..20dd8b7a1 100644
--- a/yuthon_trade/models/yuthon_task_approval.py
+++ b/yuthon_trade/models/yuthon_task_approval.py
@@ -36,6 +36,23 @@ class YuthonTaskApproval(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.onchange('employee_ids', 'task_id')
def _onchange_employee_task(self):
diff --git a/yuthon_trade/models/yuthon_trade_activities.py b/yuthon_trade/models/yuthon_trade_activities.py
index 17e84c959..92ca435b1 100644
--- a/yuthon_trade/models/yuthon_trade_activities.py
+++ b/yuthon_trade/models/yuthon_trade_activities.py
@@ -23,4 +23,21 @@ class YuthonTradeActivities(models.Model):
host_id = fields.Many2one("hr.department", string="主办")
joint_office_ids = fields.Many2many("hr.department", string="联办")
work_end = fields.Boolean(string="结束")
- active = fields.Boolean('Active', default=True, tracking=True)
\ No newline at end of file
+ active = fields.Boolean('Active', default=True, tracking=True)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
\ No newline at end of file
diff --git a/yuthon_trade/models/yuthon_trade_premium.py b/yuthon_trade/models/yuthon_trade_premium.py
index 60a25ce6b..638dabc30 100644
--- a/yuthon_trade/models/yuthon_trade_premium.py
+++ b/yuthon_trade/models/yuthon_trade_premium.py
@@ -30,6 +30,23 @@ class YuthonTradePremium(models.Model):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
@api.depends('employee_ids')
def _compute_employee_ids(self):
diff --git a/yuthon_trade/models/yuthon_work_condolences.py b/yuthon_trade/models/yuthon_work_condolences.py
index 702e2d644..c9eb6fc19 100644
--- a/yuthon_trade/models/yuthon_work_condolences.py
+++ b/yuthon_trade/models/yuthon_work_condolences.py
@@ -25,4 +25,21 @@ class YuthonWorkCondolences(models.Model):
def _get_default_name_title(self):
return self._description if self._description else self._name
- name_title = fields.Char(default=_get_default_name_title)
\ No newline at end of file
+ name_title = fields.Char(default=_get_default_name_title)
+ users_ids = fields.Many2many('res.users', string="当前经办人", store=True, compute='_compute_users_ids')
+
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids = [(6, 0, user_ids)]
+ else:
+ record.users_ids = False
\ No newline at end of file
diff --git a/yuthon_trade/views/yuthon_business_approval_viwes.xml b/yuthon_trade/views/yuthon_business_approval_viwes.xml
index 6ffd60c6f..78d8e2107 100644
--- a/yuthon_trade/views/yuthon_business_approval_viwes.xml
+++ b/yuthon_trade/views/yuthon_business_approval_viwes.xml
@@ -42,6 +42,7 @@
+
diff --git a/yuthon_will_task/models/yuthon_will_task.py b/yuthon_will_task/models/yuthon_will_task.py
index 5d9f2452d..98dbb34fa 100644
--- a/yuthon_will_task/models/yuthon_will_task.py
+++ b/yuthon_will_task/models/yuthon_will_task.py
@@ -77,7 +77,6 @@ class YuthonWillTask(models.Model):
string='人员', store=True, index=True)
employee_ids2 = fields.Many2many('hr.employee', 'will_task_employee_rel2', 'custom_id', 'employee_id',
string='司机', store=True, index=True)
- users_ids = fields.Many2many('res.users', string='用户', store=True, index=True, default=lambda self: self.env.user)
user_role_ids = fields.Many2many('soong.user.role', string='角色', store=True, index=True)
task_time_ids = fields.Many2many('yuthon.task.time', string='提醒')
document_ids = fields.Many2many('ir.attachment', string="附件")
@@ -86,6 +85,42 @@ class YuthonWillTask(models.Model):
is_this_company = fields.Boolean(string='本公司', default=True)
task_state = fields.Selection([('will', '待办'), ('done', '已办'), ('cancel', '取消')], default='will', string='状态', store=True)
+ users_ids = fields.Many2many(
+ 'res.users',
+ relation='yuthon_will_task_users_rel', #
+ column1='task_id',
+ column2='user_id',
+ string='用户',
+ store=True,
+ index=True,
+ default=lambda self: self.env.user
+ )
+
+ users_ids1 = fields.Many2many(
+ 'res.users',
+ relation='yuthon_will_task_current_users_rel',
+ column1='task_id',
+ column2='user_id',
+ string="当前经办人",
+ store=True,
+ compute='_compute_users_ids'
+ )
+ @api.depends('code')
+ def _compute_users_ids(self):
+ for record in self:
+ if not record.code:
+ record.users_ids1 = False
+ continue
+ workflow_records = self.env['soong.workflow.record'].search([
+ ('code', '=', record.code),
+ ], limit=1)
+ if workflow_records:
+ employee_ids = workflow_records.employee_ids
+ user_ids = employee_ids.mapped('user_id').ids
+ record.users_ids1 = [(6, 0, user_ids)]
+ else:
+ record.users_ids1 = False
+
@api.onchange('employee_ids', 'user_id')
def _onchange_employee_ids(self):
user_ids = []
diff --git a/yuthon_work_brand/views/hr_menus.xml b/yuthon_work_brand/views/hr_menus.xml
index d7bf90a0d..7509c2307 100644
--- a/yuthon_work_brand/views/hr_menus.xml
+++ b/yuthon_work_brand/views/hr_menus.xml
@@ -223,6 +223,11 @@
parent="attendance_resources_setting_root_board"
action="yuthon_holiday.action_leave_type_form"
sequence="9"/>
+