This commit is contained in:
夜未央
2025-07-18 17:42:00 +08:00
109 changed files with 1845 additions and 62 deletions
@@ -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):
@@ -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)
@@ -42,6 +42,7 @@
<field name="salary_group_id" options="{'no_create': True}"/>
<field name="is_internship" invisible="1"/>
<field name="is_probation"/>
<field name="is_annual_salary"/>
<field name="start_date" invisible="not is_probation"/>
<field name="end_date" invisible="not is_probation"/>
</xpath>
+17
View File
@@ -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):
@@ -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):
@@ -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):
@@ -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 = '明细表'
@@ -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
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
11 access_vacation_meal_line vacation_meal_line model_vacation_meal_line base.group_user 1 1 1 1
12 access_vacation_over_line vacation_over_line model_vacation_over_line base.group_user 1 1 1 1
13 access_details_tree details_tree model_details_tree base.group_user 1 1 1 1
14 access_vacation_medical_line vacation_medical_line model_vacation_medical_line base.group_user 1 1 1 1
@@ -4,7 +4,7 @@
<field name="name">yuthon.vacation.reports.tree</field>
<field name="model">yuthon.vacation.reports</field>
<field name="arch" type="xml">
<tree string="假期额度日志" editable="bottom">
<tree string="假期额度日志" editable="bottom" edit="0">
<field name="employee_id" options="{'no_create': True}"/>
<field name="leave"/>
<field name="working_overtime"/>
@@ -43,6 +43,8 @@
<field name="update_type" readonly="1"/>
<field name="update_date" readonly="1"/>
<field name="update_lines"/>
<field name="valid_date"/>
<field name="adjust_date"/>
<field name="allocation_type" optional="hide"/>
<field name="is_void" optional="hide"/>
<field name="text"/>
@@ -62,6 +64,8 @@
<field name="workday"/>
<field name="legal_day"/>
<field name="public_holidays"/>
<field name="valid_date"/>
<field name="adjust_date"/>
<field name="meal_number" column_invisible="1"/>
<field name="is_void" optional="hide"/>
<field name="text"/>
@@ -78,22 +82,49 @@
<field name="update_type" readonly="1"/>
<field name="update_date" readonly="1"/>
<field name="update_lines"/>
<field name="valid_date"/>
<field name="adjust_date"/>
<field name="is_void" optional="hide"/>
<field name="text"/>
<button name="unlink" string="删除" invisible="workflow_record_id" type="object" class="btn-primary"/>
</tree>
</field>
</page>
<page string="体检费">
<field name="medical_fee_ids" context="{'default_employee_id': employee_id}">
<tree editable="bottom" delete="false" decoration-muted="is_void">
<field name="employee_id" column_invisible="1"/>
<field name="vacation_id" column_invisible="1"/>
<field name="workflow_record_id" domain="[('workflow_id.name', '=', '外出'), ('create_uid.employee_id', '=', employee_id)]"/>
<field name="update_type" readonly="1"/>
<field name="update_date" readonly="1"/>
<field name="lines"/>
<field name="valid_date"/>
<field name="adjust_date"/>
<field name="is_void" optional="hide"/>
<field name="text"/>
</tree>
</field>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="view_yuthon_vacation_reports_search" model="ir.ui.view">
<field name="name">yuthon.vacation.reports.search</field>
<field name="model">yuthon.vacation.reports</field>
<field name="arch" type="xml">
<search>
<field name="employee_id"/>
</search>
</field>
</record>
<record id="view_yuthon_vacation_reports_form1" model="ir.ui.view">
<field name="name">yuthon.vacation.reports.form</field>
<field name="model">yuthon.vacation.reports</field>
<field name="arch" type="xml">
<form string="我的假期额度记录" create="1" edit="1" delete="1">
<form string="我的假期额度记录" create="0" edit="0" delete="0">
<sheet>
<field name="employee_id" invisible="1"/>
<group col="3">
@@ -157,6 +188,22 @@
</tree>
</field>
</page>
<page string="体检费">
<field name="medical_fee_ids" context="{'default_employee_id': employee_id}">
<tree editable="bottom" delete="false" decoration-muted="is_void" edit="false" create="false">
<field name="employee_id" column_invisible="1"/>
<field name="vacation_id" column_invisible="1"/>
<field name="workflow_record_id" domain="[('workflow_id.name', '=', '外出'), ('create_uid.employee_id', '=', employee_id)]"/>
<field name="update_type" readonly="1"/>
<field name="update_date" readonly="1"/>
<field name="lines"/>
<field name="valid_date"/>
<field name="adjust_date"/>
<field name="is_void" optional="hide"/>
<field name="text"/>
</tree>
</field>
</page>
</notebook>
</sheet>
</form>
@@ -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')})]"/>
</record>
<record id="view_yuthon_vacation_reports_my_action" model="ir.actions.act_window">
<field name="name">我的假期额度</field>
<field name="res_model">yuthon.vacation.reports</field>
<field name="view_mode">form</field>
<field name="domain">[('employee_id.user_id', '=', uid)]</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_holiday.view_yuthon_vacation_reports_form1')})]"/>
<record id="action_server_open_my_vacation_form" model="ir.actions.server">
<field name="name">我的假期额度表单</field>
<field name="model_id" ref="model_yuthon_vacation_reports"/>
<field name="state">code</field>
<field name="code">
action = model.action_open_my_form()
</field>
</record>
<record id="all_update_employee" model="ir.actions.server">
<field name="name">更新报表</field>
+1
View File
@@ -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',
+1 -1
View File
@@ -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
@@ -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):
@@ -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):
@@ -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):
@@ -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
@@ -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)
@@ -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:
@@ -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):
@@ -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):
@@ -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):
@@ -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):
@@ -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):
@@ -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)
@@ -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
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
59
60
61
62
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="view_medical_rules_setting_tree" model="ir.ui.view">
<field name="name">medical.rules.setting.tree</field>
<field name="model">medical.rules.setting</field>
<field name="arch" type="xml">
<tree string="体检费规则" editable="bottom">
<field name="select_year"/>
<field name="base"/>
<field name="every_few_years"/>
<field name="increasing"/>
<field name="woman_unmarried"/>
<field name="woman_married"/>
<field name="max"/>
<field name="company_id"/>
</tree>
</field>
</record>
<record id="view_medical_rules_setting_action" model="ir.actions.act_window">
<field name="name">体检费规则</field>
<field name="res_model">medical.rules.setting</field>
<field name="view_mode">tree</field>
</record>
</odoo>
@@ -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="结束")
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
@@ -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):
@@ -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):
@@ -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="结束")
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
@@ -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
@@ -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:
@@ -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):
@@ -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
@@ -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):
@@ -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="异动类型")
@@ -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):
@@ -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='请选择适用本人主岗的试用考核方案,或直接在下方填写')
@@ -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
@@ -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):
@@ -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):
@@ -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
@@ -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
@@ -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):
+32 -1
View File
@@ -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):
@@ -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):
+17
View File
@@ -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):
@@ -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):
@@ -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):
@@ -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)
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
@@ -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
@@ -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
@@ -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):
@@ -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
@@ -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'
@@ -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):
@@ -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):
@@ -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 {
@@ -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):
@@ -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):
@@ -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):
@@ -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
@@ -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
@@ -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):
@@ -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:
@@ -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'
@@ -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
@@ -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
@@ -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)
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
@@ -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):
@@ -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):
@@ -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):
@@ -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:
@@ -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):
@@ -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
#类型
@@ -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):
@@ -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="关联议题")
@@ -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):
@@ -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):
@@ -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):
@@ -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)
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
@@ -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)
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
@@ -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):
@@ -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)
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
@@ -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):
@@ -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'
@@ -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):
@@ -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
@@ -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 = []
@@ -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'
@@ -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'
@@ -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):
@@ -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):
@@ -63,7 +63,6 @@
<field name="property_floor_id"/>
<field name="asset_type_id"/>
<field name="split_quantity"/>
<button name="property_split_button" type="object" string="拆分" class="btn-primary"/>
</group>
<group>
<field name="building_area"/>
@@ -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 == '上年年度清算':
@@ -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 == '天河物管':
@@ -265,10 +265,10 @@
<field name="bank_account_id" optional="show" column_invisible="1"/>
<field name="actual_salary" decoration-danger="1" decoration-bf="1" column_invisible="1"/>
<field name="total_before_tax" decoration-danger="1" decoration-bf="1" optional="show"/>
<field name="three_one" optional="show"/>
<field name="b_year" decoration-danger="1" decoration-bf="1" optional="show"/>
<field name="tax_payable" decoration-danger="1" decoration-bf="1" readonly="1" column_invisible="1"/>
<field name="union_dues" decoration-danger="1" decoration-bf="1" optional="show"/>
<field name="three_one" optional="show"/>
<field name="base_salary" required="1" optional="show"/>
<field name="rank_salary" required="1" optional="show" groups="yuthon_salary.group_jtbb_user"/>
<field name="position_subsidy" groups="yuthon_salary.group_wg_user, yuthon_salary.group_lc_user" optional="show" decoration-success="1"/>
@@ -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):
@@ -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
@@ -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'
@@ -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):

Some files were not shown because too many files have changed in this diff Show More