添加功能
This commit is contained in:
@@ -559,6 +559,22 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
comment_note_id = btn_rec.node_id.comment_id.id
|
||||
else:
|
||||
comment_note_id = False
|
||||
# 加签人员过滤
|
||||
if self.log_ids:
|
||||
log_node_ids = self.log_ids.mapped('node_id.id')
|
||||
log_nodes = self.env['soong.workflow.node'].browse(log_node_ids)
|
||||
all_node_employees = log_nodes.mapped('employee_ids')
|
||||
else:
|
||||
current_node = node_list[state_list.index(state)]
|
||||
all_node_employees = current_node.employee_ids
|
||||
|
||||
log_done_by_users = self.log_ids.mapped('done_by')
|
||||
log2_done_by_users = self.log_ids2.mapped('done_by')
|
||||
all_done_by_users = log_done_by_users | log2_done_by_users
|
||||
done_by_employees = self.env['hr.employee'].search([
|
||||
('user_id', 'in', all_done_by_users.ids)
|
||||
])
|
||||
all_filter_employees = all_node_employees | done_by_employees
|
||||
return {
|
||||
"name": _("评论"),
|
||||
"type": "ir.actions.act_window",
|
||||
@@ -572,6 +588,7 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
'default_comment_note_id': comment_note_id,
|
||||
"default_code": self.code,
|
||||
"default_res_model": self._name,
|
||||
"default_filter_personnel_ids": [(6, 0, all_filter_employees.ids)],
|
||||
"default_node_btn_id": btn_rec.id,
|
||||
"default_is_supervising": is_supervising,
|
||||
"default_trans_link_id": self.env['trans.link'].search(trans_domain, limit=1).id if btn_rec.name == '转交' else False,
|
||||
|
||||
@@ -95,16 +95,9 @@ class SoongWorkflowNode(models.Model):
|
||||
)
|
||||
user_role_ids = fields.Many2many("soong.user.role", string="抄送角色", )
|
||||
users_role_group_ids = fields.Many2many('soong.user.role.group', string='抄送角色组')
|
||||
employee1_ids = fields.Many2many(
|
||||
'hr.employee',
|
||||
string='抄送人员',
|
||||
relation="soong_workflow_node_employee1_rel",
|
||||
column1="node_id",
|
||||
column2="employee1_id"
|
||||
)
|
||||
employee_ids = fields.Many2many(
|
||||
'hr.employee',
|
||||
string='抄送/传阅人员(总和)',
|
||||
string='抄送/传阅人员',
|
||||
relation="soong_workflow_node_employee_total_rel",
|
||||
column1="node_id",
|
||||
column2="employee_total_id"
|
||||
@@ -142,10 +135,6 @@ class SoongWorkflowNode(models.Model):
|
||||
('department_id', 'in', record.department1_ids.ids)
|
||||
])
|
||||
final_employees |= dept_employees
|
||||
|
||||
if record.employee1_ids:
|
||||
final_employees |= record.employee1_ids
|
||||
|
||||
record.employee_ids = final_employees if final_employees else [(5, 0, 0)]
|
||||
|
||||
@api.onchange("is_apostille")
|
||||
|
||||
@@ -43,9 +43,8 @@
|
||||
options="{'no_create': True}"/>
|
||||
<field name="department1_ids" widget="many2many_tags" invisible="not is_carbon_copy"
|
||||
options="{'no_create': True}"/>
|
||||
<field name="employee1_ids" widget="many2many_tags" invisible="not is_carbon_copy"
|
||||
<field name="employee_ids" widget="many2many_tags" invisible="not is_carbon_copy"
|
||||
options="{'no_create': True}"/>
|
||||
<field name="employee_ids" widget="many2many_tags" invisible="1"/>
|
||||
<field name="is_apostille"/>
|
||||
<field name="is_end"/>
|
||||
<field name="is_confirm"/>
|
||||
|
||||
@@ -43,9 +43,9 @@ class SoongWorkflowCommentWizard(models.TransientModel):
|
||||
)
|
||||
|
||||
employee_trans_domain_ids = fields.Many2many('hr.employee', 'employee_trans_domain_ids_rel', string="传阅人员", store=True)
|
||||
|
||||
filter_personnel_ids = fields.Many2many('hr.employee', 'filter_personnel_rel', 'custom_id', 'employee_id', string="过滤人员", store=True)
|
||||
employee_ids = fields.Many2many('hr.employee', 'employee_ids_rel', 'custom_id', 'employee_id', string="传阅人员", store=True)
|
||||
circulated_employee_ids = fields.Many2many('hr.employee', 'circulated_employee_rel', 'custom_id', 'employee_id', help='只可以看不可以评论,看过以后状态自动变为已阅', string="抄送/传阅人员", store=True)
|
||||
circulated_employee_ids = fields.Many2many('hr.employee', 'circulated_employee_rel', 'custom_id', 'employee_id', help='只可以看不可以评论,看过以后状态自动变为已阅', string="加签人员", store=True)
|
||||
dep_manager_employee_ids = fields.Many2many('hr.employee', 'dep_manager_employee_rel', 'custom_id', 'employee_id', string="承办", store=True)
|
||||
add_employee_ids = fields.Many2many('hr.employee', 'add_employee_rel', 'custom_id', 'employee_id', string="加签人员", help='点击确认以后评论的人员', store=True)
|
||||
supervising_employee_ids = fields.Many2many('hr.employee', 'supervising_employee_rel', 'custom_id', 'employee_id', string="督办人员", store=True)
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
<group invisible="1">
|
||||
<field name="approval_concatenation" widget="radio"/>
|
||||
<field name="invalid_link_ids" widget="many2many_tags"/>
|
||||
<field name="filter_personnel_ids" widget="many2many_tags"/>
|
||||
<field name="user_role_ids"/>
|
||||
<field name="comment"/>
|
||||
</group>
|
||||
@@ -34,7 +35,7 @@
|
||||
<group>
|
||||
<!-- 归档弹窗新增“本公司”勾选,控制抄送人员是否限定当前公司 -->
|
||||
<field name="is_this_company"/>
|
||||
<field name="circulated_employee_ids" widget="many2many_tags" options="{'no_create': True}" domain="[('company_id', '=', company_id)] if is_this_company else []"/>
|
||||
<field name="circulated_employee_ids" widget="many2many_tags" options="{'no_create': True}" domain="[('company_id', '=', company_id), ('id', 'not in' , filter_personnel_ids)] if is_this_company else [('id', 'not in' , filter_personnel_ids)]"/>
|
||||
<field name="document_ids" string="附件" widget="preview_many2many" force_save="1"/>
|
||||
</group>
|
||||
</group>
|
||||
@@ -48,7 +49,7 @@
|
||||
<field name="comment_note" placeholder="请输入意见内容..." style="width: 100%;"/>
|
||||
</div>
|
||||
<group>
|
||||
<field name="circulated_employee_ids" widget="many2many_tags" options="{'no_create': True}" domain = "[('company_id', '=', company_id)]"/>
|
||||
<field name="circulated_employee_ids" widget="many2many_tags" options="{'no_create': True}" domain = "[('company_id', '=', company_id),('id', 'not in' , filter_personnel_ids)]"/>
|
||||
</group>
|
||||
</group>
|
||||
<group invisible="node_btn_name != '确认'">
|
||||
@@ -58,7 +59,7 @@
|
||||
<field name="comment_note" placeholder="请输入意见内容..." style="width: 100%;"/>
|
||||
</div>
|
||||
<group>
|
||||
<field name="circulated_employee_ids" widget="many2many_tags" options="{'no_create': True}" domain = "[('company_id', '=', company_id)]"/>
|
||||
<field name="circulated_employee_ids" widget="many2many_tags" options="{'no_create': True}" domain = "[('company_id', '=', company_id), ('id', 'not in' , filter_personnel_ids)]"/>
|
||||
</group>
|
||||
</group>
|
||||
<group invisible="node_btn_name != '分发'">
|
||||
@@ -94,7 +95,7 @@
|
||||
<field name="company_id" invisible="1"/>
|
||||
<field name="employee_ids1" widget="many2many_tags" string="人员范围" invisible="1"/>
|
||||
<field name="employee_ids" widget="many2many_tags" string="人员范围" domain = "[('company_id', '=', company_id), ('id', 'in', employee_ids1)] if is_this_company else [('id', 'in', employee_ids1)]" options="{'no_create': True}"/>
|
||||
<field name="circulated_employee_ids" invisible="node_btn_name == '退回'" widget="many2many_tags" options="{'no_create': True}" domain = "[('company_id', '=', company_id)]"/>
|
||||
<field name="circulated_employee_ids" invisible="node_btn_name == '退回'" widget="many2many_tags" options="{'no_create': True}" domain = "[('company_id', '=', company_id),('id', 'not in' , filter_personnel_ids)]"/>
|
||||
<!-- <field name="add_employee_ids" invisible="node_btn_name == '退回'" widget="many2many_tags" options="{'no_create': True}"/>-->
|
||||
</group>
|
||||
</group>
|
||||
@@ -108,7 +109,7 @@
|
||||
<field name="employee_ids" widget="many2many_tags" string="董事长" domain="[('user_role_id.name', '=', '董事长')]" options="{'no_create': True}" groups="yuthon_salary.group_jtbb_user"/>
|
||||
|
||||
<field name="dep_manager_employee_ids" widget="many2many_tags" string="承办" options="{'no_create': True}"/>
|
||||
<field name="circulated_employee_ids" widget="many2many_tags" options="{'no_create': True}"/>
|
||||
<field name="circulated_employee_ids" widget="many2many_tags" options="{'no_create': True}" domain = "[('id', 'not in' , filter_personnel_ids)]"/>
|
||||
<field name="supervising_employee_ids" widget="many2many_tags" invisible="not is_supervising" options="{'no_create': True}"/>
|
||||
</group>
|
||||
<footer>
|
||||
|
||||
@@ -15,6 +15,25 @@ class InheritHrLeave(models.Model):
|
||||
is_filing = fields.Boolean(string="归档")
|
||||
application_reason = fields.Char(string="申请原因", compute="_compute_application_reason")
|
||||
|
||||
def confirm(self):
|
||||
now = datetime.now()
|
||||
current_month = now.month
|
||||
current_year = now.year
|
||||
if current_month == 1:
|
||||
last_month = 12
|
||||
last_month_year = current_year - 1
|
||||
else:
|
||||
last_month = current_month - 1
|
||||
last_month_year = current_year
|
||||
last_month_first_day = datetime(last_month_year, last_month, 1)
|
||||
current_month_first_day = datetime(current_year, current_month, 1)
|
||||
valid_leaves = self.filtered(lambda l:
|
||||
fields.Datetime.to_datetime(l.date_from) >= last_month_first_day and
|
||||
fields.Datetime.to_datetime(l.date_from) < current_month_first_day
|
||||
)
|
||||
if valid_leaves:
|
||||
valid_leaves.write({'is_filing': True})
|
||||
|
||||
@api.depends('batch_id', 'hour_batch_id')
|
||||
def _compute_application_reason(self):
|
||||
for rec in self:
|
||||
|
||||
@@ -1228,6 +1228,25 @@ class VacationMealLine(models.Model):
|
||||
rec._compute_employee_id()
|
||||
rec._compute_overtime()
|
||||
|
||||
def confirm(self):
|
||||
now = datetime.now()
|
||||
current_month = now.month
|
||||
current_year = now.year
|
||||
if current_month == 1:
|
||||
last_month = 12
|
||||
last_month_year = current_year - 1
|
||||
else:
|
||||
last_month = current_month - 1
|
||||
last_month_year = current_year
|
||||
last_month_first_day = datetime(last_month_year, last_month, 1)
|
||||
current_month_first_day = datetime(current_year, current_month, 1)
|
||||
valid_leaves = self.filtered(lambda l:
|
||||
fields.Datetime.to_datetime(l.start_date) >= last_month_first_day and
|
||||
fields.Datetime.to_datetime(l.start_date) < current_month_first_day
|
||||
)
|
||||
if valid_leaves:
|
||||
valid_leaves.write({'is_filing': True})
|
||||
|
||||
@api.depends('workflow_record_id')
|
||||
def _compute_overtime(self):
|
||||
for rec in self:
|
||||
|
||||
Reference in New Issue
Block a user