Merge branch 'dev' of https://gitee.com/jinan-pengyusen-data/gzth into dev_wang
This commit is contained in:
@@ -429,6 +429,11 @@ class SoongWorkflowCommentWizard(models.TransientModel):
|
||||
is_admin = self.env.user.has_group('soong_workflow.group_soong_workflow_manager')
|
||||
log_done_by_ids = [log.done_by.id for log in record_id.log_ids if log.done_by]
|
||||
if self.node_btn_name == '转交':
|
||||
if self.res_model == 'issue.approval':
|
||||
if self.trans_link_id.name != '申请人':
|
||||
if record_id.issue_approval_ids:
|
||||
for issue_library in record_id.issue_approval_ids:
|
||||
issue_library.issue_library_id.issue_state = 'to_draft'
|
||||
has_comment_note = bool(self.comment_note_id)
|
||||
has_comment = bool(self.comment and self.comment.strip())
|
||||
if not has_comment_note and not has_comment:
|
||||
@@ -646,6 +651,11 @@ class SoongWorkflowCommentWizard(models.TransientModel):
|
||||
if self.node_btn_name == '退回':
|
||||
if not self.return_link_id:
|
||||
raise UserError('请选择退回节点')
|
||||
if self.res_model == 'issue.approval':
|
||||
if self.return_link_id.name == '申请人':
|
||||
if record_id.issue_approval_ids:
|
||||
for issue_library in record_id.issue_approval_ids:
|
||||
issue_library.issue_library_id.issue_state = 'draft'
|
||||
record_id.write({'state': self.return_link_id.name})
|
||||
next_node_id = record_id.workflow_id.node_ids.search([('name', '=', self.return_link_id.name), ('workflow_id', '=', record_id.workflow_id.id)])
|
||||
for next_link in record_id.workflow_id.link_ids:
|
||||
|
||||
@@ -27,12 +27,14 @@ class RoomBooking(models.Model):
|
||||
meet.issue_library_id.party_char = str(
|
||||
record.start_datetime.date()) + record.meeting_type_id.name
|
||||
meet.issue_library_id.issue_state_party = 'meeting'
|
||||
meet.issue_library_id.issue_state = False
|
||||
|
||||
if '班子' in meeting_type_name:
|
||||
if meet.issue_library_id.is_class and (meet.issue_library_id.is_class_passed == 'reject' or not meet.issue_library_id.is_class_passed):
|
||||
meet.issue_library_id.class_char = str(
|
||||
record.start_datetime.date()) + f'第{record.number_of_meetings}' + record.meeting_type_id.name
|
||||
meet.issue_library_id.issue_state_class = 'meeting'
|
||||
meet.issue_library_id.issue_state = False
|
||||
|
||||
if '董事' in meeting_type_name:
|
||||
if meet.issue_library_id.is_boss and (
|
||||
@@ -40,16 +42,19 @@ class RoomBooking(models.Model):
|
||||
meet.issue_library_id.boss_char = str(
|
||||
record.start_datetime.date()) + record.meeting_type_id.name
|
||||
meet.issue_library_id.issue_state_boss = 'meeting'
|
||||
meet.issue_library_id.issue_state = False
|
||||
|
||||
elif '套' in meeting_type_name:
|
||||
if meet.issue_library_id.is_party and (meet.issue_library_id.is_party_passed == 'reject' or not meet.issue_library_id.is_party_passed):
|
||||
meet.issue_library_id.party_char = str(
|
||||
record.start_datetime.date()) + record.meeting_type_id.name
|
||||
meet.issue_library_id.issue_state_party = 'meeting'
|
||||
meet.issue_library_id.issue_state = False
|
||||
elif meet.issue_library_id.is_class and (meet.issue_library_id.is_class_passed == 'r eject' or not meet.issue_library_id.is_class_passed):
|
||||
meet.issue_library_id.class_char = str(
|
||||
record.start_datetime.date()) + f'第{record.number_of_meetings}' + record.meeting_type_id.name
|
||||
meet.issue_library_id.issue_state_class = 'meeting'
|
||||
meet.issue_library_id.issue_state = False
|
||||
|
||||
if self.code:
|
||||
self.env['issue.library.approval.line'].create({
|
||||
@@ -365,3 +370,33 @@ class IssueMeetingLine(models.Model):
|
||||
self.issue_library_id.issue_state_class = 'on_meet'
|
||||
else:
|
||||
self.issue_library_id.issue_state_class = 'will'
|
||||
|
||||
def unlink(self):
|
||||
delete_lines = self.filtered(lambda l: l.issue_library_id and l.meeting_booking_id)
|
||||
for line in delete_lines:
|
||||
self._reset_issue_library_fields(line)
|
||||
return super(IssueMeetingLine, self).unlink()
|
||||
|
||||
def _reset_issue_library_fields(self, line):
|
||||
lib_record = line.issue_library_id
|
||||
booking_record = line.meeting_booking_id
|
||||
meeting_type_name = str(booking_record.meeting_type_id.name or "").strip()
|
||||
|
||||
# 根据会议类型重置对应字段
|
||||
if '党' in meeting_type_name or '套' in meeting_type_name:
|
||||
lib_record.write({
|
||||
'party_char': False,
|
||||
'issue_state_party': 'will'
|
||||
})
|
||||
|
||||
if '班子' in meeting_type_name or '套' in meeting_type_name:
|
||||
lib_record.write({
|
||||
'class_char': False,
|
||||
'issue_state_class': 'will'
|
||||
})
|
||||
|
||||
if '董事' in meeting_type_name:
|
||||
lib_record.write({
|
||||
'boss_char': False,
|
||||
'issue_state_boss': 'will'
|
||||
})
|
||||
|
||||
@@ -77,7 +77,6 @@ class IssueApproval(models.Model):
|
||||
for issue_library in rec.issue_approval_ids:
|
||||
name_val = issue_library.issue_library_id.name or ""
|
||||
issue_names.append(str(name_val))
|
||||
|
||||
decision_sequences = []
|
||||
for issue_library in rec.issue_approval_ids:
|
||||
seq_val = issue_library.approval_decision_sequence
|
||||
@@ -118,6 +117,16 @@ class IssueApprovalLine(models.Model):
|
||||
is_boss = fields.Boolean(related='issue_library_id.is_boss', string="董事会")
|
||||
is_note = fields.Boolean(related='issue_library_id.is_note', string="上级单位")
|
||||
|
||||
def unlink(self):
|
||||
delete_lines = self.filtered(lambda l: l.issue_library_id.exists())
|
||||
issue_library_records = self.env['issue.library']
|
||||
for line in delete_lines:
|
||||
issue_library_records |= line.issue_library_id
|
||||
if issue_library_records:
|
||||
issue_library_records.write({'issue_state': 'draft'})
|
||||
issue_library_records.issue_approval_id = False
|
||||
return super(IssueApprovalLine, self).unlink()
|
||||
|
||||
def open_record(self):
|
||||
self.ensure_one()
|
||||
is_modify = False
|
||||
|
||||
@@ -475,27 +475,48 @@ class IssueLibrary(models.Model):
|
||||
self.issue_approval_id.unlink()
|
||||
|
||||
def all_issue_pull(self):
|
||||
# 1. 获取选中的议题库记录
|
||||
issue_active_ids = self.env["issue.library"].browse(
|
||||
self._context.get('active_ids', self._context.get('active_id'))
|
||||
)
|
||||
# 校验选中记录的状态(非草稿不允许提交)
|
||||
for i in issue_active_ids:
|
||||
if i.issue_state != 'draft':
|
||||
raise UserError("当前状态不允许提交")
|
||||
|
||||
# 2. 查找已存在的关联 issue.approval 记录
|
||||
existing_approval = self.env['issue.approval'].search([
|
||||
('issue_approval_ids.issue_library_id', 'in', issue_active_ids.ids),
|
||||
], limit=1)
|
||||
|
||||
# 3. 拼接审批单名称
|
||||
specifics_list = [rec.name for rec in issue_active_ids]
|
||||
name = ','.join(specifics_list) if len(specifics_list) > 1 else (
|
||||
self.name or specifics_list[0] if specifics_list else "")
|
||||
|
||||
if existing_approval:
|
||||
issue_approval_id = existing_approval
|
||||
# 获取已有审批单中已关联的议题库 ID
|
||||
existing_issue_ids = issue_approval_id.issue_approval_ids.mapped('issue_library_id').ids
|
||||
# 筛选出选中但未关联的议题库记录
|
||||
new_issue_records = issue_active_ids.filtered(lambda r: r.id not in existing_issue_ids)
|
||||
if new_issue_records:
|
||||
new_lines = []
|
||||
for issue_record in new_issue_records:
|
||||
new_lines.append((0, 0, {
|
||||
'issue_library_id': issue_record.id,
|
||||
'approval_decision_sequence': issue_record.approval_decision_sequence,
|
||||
'employee_id': issue_record.employee_id.id
|
||||
}))
|
||||
# 追加新行到已有审批单
|
||||
issue_approval_id.write({
|
||||
'issue_approval_ids': new_lines,
|
||||
'name': name
|
||||
})
|
||||
self.issue_approval_id = issue_approval_id
|
||||
else:
|
||||
issue_decision_lines = []
|
||||
for issue_record in issue_active_ids:
|
||||
issue_record.write({"issue_state": "to_draft"})
|
||||
issue_decision_lines.append((0, 0, {
|
||||
'issue_library_id': issue_record.id,
|
||||
'approval_decision_sequence': issue_record.approval_decision_sequence,
|
||||
@@ -507,7 +528,6 @@ class IssueLibrary(models.Model):
|
||||
'name': name,
|
||||
})
|
||||
self.issue_approval_id = issue_approval_id
|
||||
|
||||
form_id = self.env.ref("yuthon_issue.issue_library_approval_form").id
|
||||
return {
|
||||
"type": "ir.actions.act_window",
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
<field name="creart_datetime" column_invisible="1"/>
|
||||
<field name="member_of_department" column_invisible="1"/>
|
||||
<field name="is_push_depart" column_invisible="1"/>
|
||||
<field name="issue_approval_id" column_invisible="1"/>
|
||||
<field name="is_admin" column_invisible="1"/>
|
||||
<button name="depart_push" string="推送" type="object" class="btn btn-blue"
|
||||
invisible="issue_state != 'to_do'"/>
|
||||
@@ -40,7 +41,7 @@
|
||||
<button name="unlink" string="删除" type="object" class="btn btn-blue"
|
||||
invisible="is_push_depart == True"/>
|
||||
<button name="approval_details" string="审批详情" type="object" class="btn btn-blue"
|
||||
invisible="issue_state in ['draft', 'to_do']"/>
|
||||
invisible="not issue_approval_id"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -82,6 +83,7 @@
|
||||
<field name="is_push_depart" column_invisible="1"/>
|
||||
<field name="push_invisible" column_invisible="1"/>
|
||||
<field name="is_admin" column_invisible="1"/>
|
||||
<field name="issue_approval_id" column_invisible="1"/>
|
||||
<!-- <button name="single_issue_pull" string="提交" type="object" class="oe_highlight"/>-->
|
||||
<button name="library_push" string="推送" type="object" class="btn btn-blue"
|
||||
invisible="push_invisible"/>
|
||||
@@ -90,7 +92,7 @@
|
||||
<button name="unlink" string="删除" type="object" class="btn btn-blue"/>
|
||||
<button name="correction" string="修正提醒" type="object" class="btn btn-blue"/>
|
||||
<button name="approval_details" string="审批详情" type="object" class="btn btn-blue"
|
||||
invisible="issue_state in ['draft', 'to_do']"/>
|
||||
invisible="not issue_approval_id"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -128,10 +130,11 @@
|
||||
<field name="creart_datetime" column_invisible="1"/>
|
||||
<field name="member_of_department" column_invisible="1"/>
|
||||
<field name="is_push_depart" column_invisible="1"/>
|
||||
<field name="issue_approval_id" column_invisible="1"/>
|
||||
<field name="is_admin" column_invisible="1"/>
|
||||
<!-- <button name="single_issue_pull" string="提交" type="object" class="oe_highligh"/>-->
|
||||
<button name="approval_details" string="审批详情" type="object" class="btn btn-blue"
|
||||
invisible="issue_state in ['draft', 'to_do']"/>
|
||||
invisible="not issue_approval_id"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
Reference in New Issue
Block a user