添加功能
This commit is contained in:
@@ -35,10 +35,10 @@ class RoomBooking(models.Model):
|
||||
meeting_type = fields.Selection([('up', '线上'), ('down', '线下'), ('exterior', '外部')], default='down', string="会议形式",
|
||||
required=True)
|
||||
meeting_type_id = fields.Many2one('room.meeting.type', string="会议类型")
|
||||
room_users_ids = fields.Many2many('res.users', string="出席人员")
|
||||
room_users_ids = fields.Many2many('hr.employee', string="出席人员")
|
||||
room_users_names = fields.Char(string="出席人员char", compute="_compute_room_users", store=True)
|
||||
other_company_id = fields.Many2one('res.partner', string="外部公司")
|
||||
host = fields.Many2one('res.users', string="主持人")
|
||||
host = fields.Many2one('hr.employee', string="主持人")
|
||||
stationed_group = fields.Boolean(string="驻组参会")
|
||||
other_company_user_ids = fields.Many2many('other.meet.employee', string="其他人员")
|
||||
fleet_id = fields.Many2one('fleet.vehicle', string="车辆")
|
||||
@@ -52,7 +52,7 @@ class RoomBooking(models.Model):
|
||||
right_user = fields.Integer(string="实到")
|
||||
driver = fields.Many2one('hr.employee', string="司机")
|
||||
partner_ids = fields.Many2many('res.partner', string="日程安排人员")
|
||||
is_this_company = fields.Boolean(string='是否为本公司', default=True)
|
||||
is_this_company = fields.Boolean(string='本公司', default=True)
|
||||
|
||||
# 关联流程
|
||||
relevancy_type = fields.Selection([('none', '无')], string="关联流程类型")
|
||||
|
||||
@@ -169,7 +169,7 @@
|
||||
</group>
|
||||
<group col="4">
|
||||
<group>
|
||||
<field name="host" domain = "[('company_id', '=', company_id), ('user_id.name', '!=', 'Administrator' )] if is_this_company else []"/>
|
||||
<field name="host" domain = "[('company_id', '=', company_id), ('user_id.name', '!=', 'Administrator')] if is_this_company else []"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="stationed_group"/>
|
||||
@@ -178,7 +178,7 @@
|
||||
<group/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="room_users_ids" widget="many2many_tags"/>
|
||||
<field name="room_users_ids" widget="many2many_tags" domain = "[('company_id', '=', company_id), ('user_id.name', '!=', 'Administrator')] if is_this_company else []"/>
|
||||
<field name="other_company_user_ids" widget="many2many_tags" readonly="0"/>
|
||||
</group>
|
||||
<group col="5">
|
||||
|
||||
@@ -20,7 +20,7 @@ class SoongWorkflowLog(models.Model):
|
||||
workflow_id = fields.Many2one(comodel_name="soong.workflow")
|
||||
node_id = fields.Many2one(comodel_name="soong.workflow.node")
|
||||
node_btn_id = fields.Many2one(comodel_name="soong.workflow.node.button", string="动作名称")
|
||||
node_btn_name = fields.Selection([('0', ' '), ('1', '退回'), ('2', '加签')], string='节点功能', default='0')
|
||||
node_btn_name = fields.Selection([('0', ' '), ('1', '退回'), ('2', '加签'), ('3', '串'), ('4', '并')], string='节点功能', default='0')
|
||||
done_by = fields.Many2one(comodel_name="res.users", string="审批人")
|
||||
lase_click_date = fields.Datetime(string="操作时间")
|
||||
approval_state = fields.Selection([('0', '待办'), ('1', '办理中'), ('2', '已办结'), ('3', '结束')], string='状态', default='0')
|
||||
|
||||
@@ -178,7 +178,7 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
"workflow_id": btn_rec.workflow_id.id,
|
||||
"node_btn_id": btn_rec.id,
|
||||
"done_by": self.env.uid,
|
||||
"node_btn_name": "0",
|
||||
"node_btn_name": "",
|
||||
"lase_click_date": fields.Datetime.now(),
|
||||
})
|
||||
record_obj.write({"node_btn_id": btn_rec.id, "done_by": self.env.uid, "approval_state": "2"})
|
||||
|
||||
@@ -130,7 +130,7 @@ class SoongWorkflowCommentWizard(models.TransientModel):
|
||||
continue
|
||||
link_users_id = button.users_role_id
|
||||
link_users_group_ids = button.users_role_group_ids
|
||||
# 获取六个布尔字段的值(假设只有一个为True)
|
||||
# 获取六个布尔字段的值
|
||||
is_automatic = button.is_automatic
|
||||
is_automatic_company = button.is_automatic_company
|
||||
is_automatic_group = button.is_automatic_group
|
||||
@@ -240,15 +240,17 @@ class SoongWorkflowCommentWizard(models.TransientModel):
|
||||
"lase_click_date": fields.Datetime.now()})
|
||||
next_node_id = record_id.workflow_id.node_ids.search([('name', 'ilike', self.trans_link_id.name),
|
||||
('workflow_id', '=', record_id.workflow_id.id)])
|
||||
self.sudo().env["soong.workflow.log"].create({
|
||||
"code": self.code,
|
||||
"model": self.res_model,
|
||||
"res_id": self.res_id,
|
||||
"node_id": next_node_id.id,
|
||||
"workflow_id": self.node_btn_id.workflow_id.id,
|
||||
"done_by": self.employee_ids.user_id.id,
|
||||
"node_btn_name": "0",
|
||||
})
|
||||
for employee in self.employee_ids:
|
||||
self.sudo().env["soong.workflow.log"].create({
|
||||
"code": self.code,
|
||||
"model": self.res_model,
|
||||
"res_id": self.res_id,
|
||||
"node_id": next_node_id.id,
|
||||
"workflow_id": self.node_btn_id.workflow_id.id,
|
||||
"done_by":employee.user_id.id,
|
||||
""
|
||||
"node_btn_name": "0",
|
||||
})
|
||||
workflow_record_id = self.env['soong.workflow.record'].search([('code', '=', record_id.code)])
|
||||
workflow_record_id.users_ids = [(4, self.employee_ids.user_id.id)]
|
||||
workflow_record_id.employee_ids = self.employee_ids
|
||||
|
||||
@@ -16,6 +16,7 @@ class YuthonNotice(models.Model):
|
||||
name = fields.Char(string='标题')
|
||||
code = fields.Char(string="编号", default=lambda self: self.env['ir.sequence'].next_by_code('notice_code'))
|
||||
users_id = fields.Many2one('res.users', string="发布人", default=lambda self: self.env.user)
|
||||
company_id = fields.Many2one(related="users_id.employee_id.company_id", string="公司", store=True)
|
||||
department_id = fields.Many2one(related='users_id.employee_id.department_id', string="部门")
|
||||
notice_type_id = fields.Many2one('yuthon.notice.type', string="类型")
|
||||
create_date1 = fields.Date(string="发布日期", default=fields.Date.today())
|
||||
@@ -33,7 +34,7 @@ class YuthonNotice(models.Model):
|
||||
attn_notice = fields.Html(string="经办人意见")
|
||||
notice_text = fields.Html(string="正文")
|
||||
read_number = fields.Integer(string='阅读量', compute="_compute_read_number", store=True)
|
||||
is_this_company = fields.Boolean(string='是否为本公司', default=True)
|
||||
is_this_company = fields.Boolean(string='本公司', default=True)
|
||||
approval_user_id = fields.Many2one('res.users', string="审核人")
|
||||
approval_date = fields.Datetime(string="审核日期")
|
||||
is_sticky = fields.Boolean(string="是否置顶")
|
||||
|
||||
@@ -37,14 +37,19 @@
|
||||
invisible="urgency_level != 'urgent'"/>
|
||||
<widget name="web_ribbon" title="特级" bg_color="text-bg-danger"
|
||||
invisible="urgency_level != 'emergency'"/>
|
||||
<group col="3">
|
||||
<group col="4">
|
||||
<group>
|
||||
<field name="code" string="流水号" readonly="1"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="urgency_level" readonly="1"/>
|
||||
</group>
|
||||
<group/>
|
||||
<group>
|
||||
<field name="is_this_company"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="start_date"/>
|
||||
</group>
|
||||
</group>
|
||||
<div class="col-12 text-center">
|
||||
<h1>
|
||||
@@ -59,6 +64,7 @@
|
||||
<field name="users_id"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="company_id" invisible="1"/>
|
||||
<field name="work_end" invisible="1"/>
|
||||
<field name="department_id" string="发布部门" invisible="1"/>
|
||||
<field name="create_date1"/>
|
||||
@@ -72,16 +78,16 @@
|
||||
</group>
|
||||
<group col="4" string="发布范围">
|
||||
<group>
|
||||
<field name="department_ids" widget="many2many_tags" context="{'tree_view_ref':'yuthon_notice.view_yuthon_cs_tree'}"/>
|
||||
<field name="department_ids" widget="many2many_tags" context="{'tree_view_ref':'yuthon_notice.view_yuthon_cs_tree'}" domain = "[('company_id', '=', company_id)] if is_this_company else []"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="users_role_group_ids" widget="many2many_tags"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="users_role_ids" widget="many2many_tags"/>
|
||||
<field name="users_role_ids" widget="many2many_tags" domain = "[('company_id', '=', company_id)] if is_this_company else []"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="employee_ids" widget="many2many_tags" context="{'tree_view_ref':'yuthon_notice.view_yuthon_cs_tree'}" options="{'no_create': True}"/>
|
||||
<field name="employee_ids" widget="many2many_tags" context="{'tree_view_ref':'yuthon_notice.view_yuthon_cs_tree'}" options="{'no_create': True}" domain = "[('company_id', '=', company_id), ('user_id.name', '!=', 'Administrator')] if is_this_company else []"/>
|
||||
<field name="users_ids" invisible="1" widget="many2many_tags"/>
|
||||
</group>
|
||||
</group>
|
||||
|
||||
@@ -14,27 +14,27 @@ class PayslipSendWizard(models.Model):
|
||||
|
||||
def button_send(self):
|
||||
self.ensure_one()
|
||||
for employee_id in self.env['hr.employee'].search([('id', '=', self.employee_id.id)]):
|
||||
if not employee_id.wecom_userid:
|
||||
raise UserError("请同步{}的企业微信".format(employee_id.name))
|
||||
menu_id = self.env['ir.ui.menu'].search([('name', '=', '我的薪资')])
|
||||
url = f'https://oa.thtzjt.com/web?login={employee_id.user_id.login}#id={self.id}&cids=2&action={menu_id.action.id}&model=hr.payslip&view_type=form&menu_id={menu_id.id}'
|
||||
self.sudo().env["wecom.apps"].sync_send_message_textcard(category='task',
|
||||
user_id=employee_id.wecom_userid,
|
||||
title="薪资确认",
|
||||
url=url, btntxt="详细信息")
|
||||
# for employee_id in self.env['hr.employee'].search([('id', '=', self.employee_id.id)]):
|
||||
# if not employee_id.wecom_userid:
|
||||
# raise UserError("请同步{}的企业微信".format(employee_id.name))
|
||||
# menu_id = self.env['ir.ui.menu'].search([('name', '=', '我的薪资')])
|
||||
# url = f'https://oa.thtzjt.com/web?login={employee_id.user_id.login}#id={self.id}&cids=2&action={menu_id.action.id}&model=hr.payslip&view_type=form&menu_id={menu_id.id}'
|
||||
# self.sudo().env["wecom.apps"].sync_send_message_textcard(category='task',
|
||||
# user_id=employee_id.wecom_userid,
|
||||
# title="薪资确认",
|
||||
# url=url, btntxt="详细信息")
|
||||
|
||||
def button_all_send(self):
|
||||
self.ensure_one()
|
||||
for employee_id in self.env['hr.employee'].search([('id', '=', self.employee_ids.ids)]):
|
||||
if not employee_id.wecom_userid:
|
||||
raise UserError("请同步{}的企业微信".format(employee_id.name))
|
||||
menu_id = self.env['ir.ui.menu'].search([('name', '=', '我的薪资')])
|
||||
url = f'https://oa.thtzjt.com/web?login={employee_id.user_id.login}#id={self.id}&cids=2&action={menu_id.action.id}&model=hr.payslip&view_type=form&menu_id={menu_id.id}'
|
||||
self.sudo().env["wecom.apps"].sync_send_message_textcard(category='task',
|
||||
user_id=employee_id.wecom_userid,
|
||||
title="薪资确认",
|
||||
url=url, btntxt="详细信息")
|
||||
# for employee_id in self.env['hr.employee'].search([('id', '=', self.employee_ids.ids)]):
|
||||
# if not employee_id.wecom_userid:
|
||||
# raise UserError("请同步{}的企业微信".format(employee_id.name))
|
||||
# menu_id = self.env['ir.ui.menu'].search([('name', '=', '我的薪资')])
|
||||
# url = f'https://oa.thtzjt.com/web?login={employee_id.user_id.login}#id={self.id}&cids=2&action={menu_id.action.id}&model=hr.payslip&view_type=form&menu_id={menu_id.id}'
|
||||
# self.sudo().env["wecom.apps"].sync_send_message_textcard(category='task',
|
||||
# user_id=employee_id.wecom_userid,
|
||||
# title="薪资确认",
|
||||
# url=url, btntxt="详细信息")
|
||||
self.payslip_run_id.run_stage = 'issued'
|
||||
run_payslips = self.env["hr.payslip"].search([
|
||||
('payslip_run_id', '=', self.payslip_run_id.id)
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
<field name="model">payslip.send.wizard</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<div>确定要推送吗?</div>
|
||||
<sheet>
|
||||
<group>
|
||||
<group>
|
||||
|
||||
@@ -83,7 +83,7 @@ class YuthonWillTask(models.Model):
|
||||
document_ids = fields.Many2many('ir.attachment', string="附件")
|
||||
address = fields.Char(string='地点')
|
||||
start_date = fields.Date(string='开始日期', default=fields.Date.today)
|
||||
is_this_company = fields.Boolean(string='是否为本公司', default=True)
|
||||
is_this_company = fields.Boolean(string='本公司', default=True)
|
||||
task_state = fields.Selection([('will', '待办'), ('done', '已办'), ('cancel', '取消')], default='will', string='状态', store=True)
|
||||
|
||||
@api.onchange('employee_ids', 'user_id')
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
<field name="user_id"/>
|
||||
<field name="task_state" invisible="1"/>
|
||||
<field name="company_id" invisible="1"/>
|
||||
<field name="employee_ids" widget="many2many_tags" options="{'no_create': True}" domain="[('company_id', '=', company_id)] if is_this_company else []"/>
|
||||
<field name="employee_ids" widget="many2many_tags" options="{'no_create': True}" domain = "[('company_id', '=', company_id), ('user_id.name', '!=', 'Administrator')] if is_this_company else []"/>
|
||||
<field name="user_role_ids" widget="many2many_tags" invisible="1"/>
|
||||
<field name="users_ids" widget="many2many_tags" invisible="1"/>
|
||||
</group>
|
||||
|
||||
Reference in New Issue
Block a user