diff --git a/yuthon_issue/__manifest__.py b/yuthon_issue/__manifest__.py
index 3f2af4574..ffb02e14c 100644
--- a/yuthon_issue/__manifest__.py
+++ b/yuthon_issue/__manifest__.py
@@ -21,6 +21,7 @@
'views/issue_approval_boss_views.xml',
'views/inherit_room_booking_views.xml',
'views/issue_approval_decision_views.xml',
+ 'views/issue_approval_decision_type_views.xml',
'views/menus.xml',
],
'installable': True,
diff --git a/yuthon_issue/models/__init__.py b/yuthon_issue/models/__init__.py
index a4d7598e5..c7e188d7e 100644
--- a/yuthon_issue/models/__init__.py
+++ b/yuthon_issue/models/__init__.py
@@ -7,3 +7,4 @@ from . import issue_approval_class
from . import issue_approval_boss
from . import inherit_room_booking
from . import issue_approval_decision
+from . import issue_approval_decision_type
diff --git a/yuthon_issue/models/issue_approval_decision.py b/yuthon_issue/models/issue_approval_decision.py
index 5bb39bdda..507d06050 100644
--- a/yuthon_issue/models/issue_approval_decision.py
+++ b/yuthon_issue/models/issue_approval_decision.py
@@ -7,37 +7,42 @@ class IssueApprovalDecision(models.Model):
_description = '决策清单'
_order = 'sequence asc'
- name = fields.Char(string='事项')
- sequence = fields.Char(string='序号', store=True)
- decision_id = fields.Many2one('issue.approval.decision', string='上级事项')
- child_ids = fields.One2many('issue.approval.decision', 'decision_id', string='下级事项')
+ decision_type_id = fields.Many2one('issue.approval.decision.type', string='事项类别')
+ sequence = fields.Char(related='decision_type_id.sequence', string='序号', store=True)
+ # decision_id = fields.Many2one('issue.approval.decision', string='上级事项')
+ # child_ids = fields.One2many('issue.approval.decision', 'decision_id', string='下级事项')
specifics = fields.Char(string='具体事项')
council = fields.Selection([('approval', '审'), ('decide', '决')], string='党总委员会')
team_meet = fields.Selection([('approval', '审'), ('decide', '决')], string='经营班子会')
board_meet = fields.Selection([('approval', '审'), ('decide', '决'), ('commission', '授权投决会')], string='董事会')
- district_bureau = fields.Char(string='区政府、区财政局')
+ district_bureau = fields.Selection([('record', '备案'), ('approved', '核准'), ('record_approved', '备案、核准')], string='区政府、区财政局')
+ yuthon_company = fields.Selection([('thtz', '天河投资集团'), ('thwg', '天河物管'),
+ ('thlc', '天河粮储'), ('tctj', '天投城建')], string="所属公司")
+ department_id = fields.Many2one('hr.department', string="部门")
+ start_date = fields.Date(string="生效日期")
+ end_date = fields.Date(string="失效日期")
remarks = fields.Char(string='备注')
- @api.onchange('sequence', 'decision_id')
- def _onchange_department_code(self):
- for code in self:
- if code.sequence and code.decision_id:
- code.sequence = code.decision_id.sequence + ('.' + code.sequence if code.sequence else '')
- else:
- code.sequence = code.sequence
- code._update_child_sequences()
-
- def _update_child_sequences(self):
- def recursive_update(parent, parent_sequence):
- # 遍历每个子记录
- for child in parent.child_ids:
- # 使用父级的 sequence 更新子级的 sequence
- new_sequence = parent_sequence + ('.' + child.sequence.split('.')[-1] if child.sequence else '')
- self.env['issue.approval.decision'].search([('id', '=', child.id.origin)]).write({'sequence': new_sequence})
- # 递归处理孙级
- recursive_update(child, new_sequence)
- # 从当前记录开始递归更新所有子孙级别
- recursive_update(self, self.sequence)
+ # @api.onchange('sequence', 'decision_id')
+ # def _onchange_department_code(self):
+ # for code in self:
+ # if code.sequence and code.decision_id:
+ # code.sequence = code.decision_id.sequence + ('.' + code.sequence if code.sequence else '')
+ # else:
+ # code.sequence = code.sequence
+ # code._update_child_sequences()
+ #
+ # def _update_child_sequences(self):
+ # def recursive_update(parent, parent_sequence):
+ # # 遍历每个子记录
+ # for child in parent.child_ids:
+ # # 使用父级的 sequence 更新子级的 sequence
+ # new_sequence = parent_sequence + ('.' + child.sequence.split('.')[-1] if child.sequence else '')
+ # self.env['issue.approval.decision'].search([('id', '=', child.id.origin)]).write({'sequence': new_sequence})
+ # # 递归处理孙级
+ # recursive_update(child, new_sequence)
+ # # 从当前记录开始递归更新所有子孙级别
+ # recursive_update(self, self.sequence)
diff --git a/yuthon_issue/models/issue_approval_decision_type.py b/yuthon_issue/models/issue_approval_decision_type.py
new file mode 100644
index 000000000..d03207656
--- /dev/null
+++ b/yuthon_issue/models/issue_approval_decision_type.py
@@ -0,0 +1,35 @@
+from odoo import api, fields, models, tools
+from odoo.exceptions import ValidationError
+
+
+class IssueApprovalDecisionType(models.Model):
+ _name = "issue.approval.decision.type"
+ _description = '决策清单事项类别配置'
+ _order = 'sequence asc'
+ _rec_name = 'name'
+
+ name = fields.Char(string="名称")
+ sequence = fields.Char(string='序号', store=True)
+ decision_type_id = fields.Many2one('issue.approval.decision.type', string='上级事项')
+ child_ids = fields.One2many('issue.approval.decision.type', 'decision_type_id', string='下级事项')
+
+ @api.onchange('sequence', 'decision_type_id')
+ def _onchange_department_code(self):
+ for code in self:
+ if code.sequence and code.decision_type_id:
+ code.sequence = code.decision_type_id.sequence + ('.' + code.sequence if code.sequence else '')
+ else:
+ code.sequence = code.sequence
+ code._update_child_sequences()
+
+ def _update_child_sequences(self):
+ def recursive_update(parent, parent_sequence):
+ # 遍历每个子记录
+ for child in parent.child_ids:
+ # 使用父级的 sequence 更新子级的 sequence
+ new_sequence = parent_sequence + ('.' + child.sequence.split('.')[-1] if child.sequence else '')
+ self.env['issue.approval.decision.type'].search([('id', '=', child.id.origin)]).write({'sequence': new_sequence})
+ # 递归处理孙级
+ recursive_update(child, new_sequence)
+ # 从当前记录开始递归更新所有子孙级别
+ recursive_update(self, self.sequence)
\ No newline at end of file
diff --git a/yuthon_issue/security/ir.model.access.csv b/yuthon_issue/security/ir.model.access.csv
index 50ae9e467..425094d18 100644
--- a/yuthon_issue/security/ir.model.access.csv
+++ b/yuthon_issue/security/ir.model.access.csv
@@ -4,4 +4,5 @@ access_issue_approval_boss,issue_approval_boss,model_issue_approval_boss,base.gr
access_issue_approval_class,issue_approval_class,model_issue_approval_class,base.group_user,1,1,1,1
access_issue_approval_party,issue_approval_party,model_issue_approval_party,base.group_user,1,1,1,1
access_issue_approval_decision,issue_approval_decision,model_issue_approval_decision,base.group_user,1,1,1,1
+access_issue_approval_decision_type,issue_approval_decision_type,model_issue_approval_decision_type,base.group_user,1,1,1,1
diff --git a/yuthon_issue/views/inherit_room_booking_views.xml b/yuthon_issue/views/inherit_room_booking_views.xml
index 7df798e55..9e36672fb 100644
--- a/yuthon_issue/views/inherit_room_booking_views.xml
+++ b/yuthon_issue/views/inherit_room_booking_views.xml
@@ -13,7 +13,6 @@