Merge pull request !734 from 李鹏宇/dev_zhou
This commit is contained in:
李鹏宇
2024-12-12 06:28:45 +00:00
committed by Gitee
10 changed files with 70 additions and 39 deletions
@@ -1,3 +1,5 @@
from datetime import timedelta
from odoo import api, fields, models, tools
from odoo.exceptions import ValidationError
@@ -34,3 +36,12 @@ class InheritPlanningSlot(models.Model):
_inherit = 'planning.slot'
department_id = fields.Many2one('hr.department', string="部门")
@api.depends('start_datetime', 'end_datetime', 'template_id')
def _compute_display_name(self):
for slot in self:
start_str = (slot.start_datetime + timedelta(hours=8)).strftime("%Y/%m/%d %H:%M") if slot.start_datetime else ""
end_str = (slot.end_datetime + timedelta(hours=8)).strftime("%Y/%m/%d %H:%M") if slot.end_datetime else ""
planning_name = slot.template_id.planning_name if slot.template_id and slot.template_id.planning_name else ""
slot.display_name = f"{start_str}-{end_str}-{planning_name}"
@@ -5,14 +5,18 @@ from odoo.exceptions import UserError
class YuthonShiftApproval(models.Model):
_name = 'yuthon.shift.approval'
_inherit = ['soong.workflow.mixin', 'mail.thread.main.attachment', 'mail.activity.mixin']
# _inherit = ['soong.workflow.mixin', 'mail.thread.main.attachment', 'mail.activity.mixin']
_description = '值班换班审批'
yuthon_company = fields.Selection(related='users_id.employee_id.yuthon_company', string="公司")
users_id = fields.Many2one('res.users', string="申请人", default=lambda self: self.env.user.id)
name = fields.Char(string="标题")
code = fields.Char(string="编号", default=lambda self: self.env['ir.sequence'].next_by_code('adjustments_approval'))
users_id = fields.Many2one('res.users', string="申请人", default=lambda self: self.env.user.id)
department_id = fields.Many2one(related='users_id.employee_id.department_id', string="部门")
resource_id = fields.Many2one('resource.resource', string="申请人", default=lambda self: self.env.user.employee_id.resource_id.id)
transferees_id = fields.Many2one('resource.resource', string="调班对象")
shift_id = fields.Many2one('planning.slot', string="班次")
return_id = fields.Many2one('planning.slot', string="班次")
department_id = fields.Many2one(string="部门", related='users_id.department_id')
is_issues = fields.Boolean(string='是否上会')
related_issues_id = fields.Many2one('issue.library', string="关联议题")
reason_application = fields.Html(string="申请事由")
@@ -34,4 +38,15 @@ class YuthonShiftApproval(models.Model):
'approval_date': fields.Datetime.now(),
})
elif self.related_issues_id:
raise UserError("已经创建了相关的上会记录,不能取消勾选")
raise UserError("已经创建了相关的上会记录,不能取消勾选")
def button_shift_approval(self):
shift_id = self.shift_id
return_id = self.return_id
original_shift_template_id = shift_id.template_id.id
shift_id.write({
'template_id': return_id.template_id.id,
})
return_id.write({
'template_id':original_shift_template_id,
})
+5 -6
View File
@@ -1,13 +1,12 @@
<odoo>
<record id="duty_approval_tree" model="ir.ui.view">
<field name="name">duty.approval.tree</field>
<field name="model">duty.approval</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="yuthon_company"/>
<field name="department_id"/>
<field name="yuthon_company" optional="hide"/>
<field name="department_id" optional="hide"/>
<field name="users_id"/>
</tree>
</field>
@@ -27,14 +26,14 @@
<group>
<group>
<field name="users_id"/>
<field name="yuthon_company"/>
<field name="yuthon_company" invisible="1"/>
</group>
<group>
<field name="code"/>
<field name="department_id"/>
<field name="department_id" invisible="1"/>
</group>
<group>
<field name="reason_application"/>
<field name="reason_application" />
<field name="is_issues"/>
<field name="related_issues_id" invisible="not is_issues"/>
</group>
+2 -3
View File
@@ -7,8 +7,6 @@
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="yuthon_company"/>
<field name="department_id"/>
<field name="users_id"/>
</tree>
</field>
@@ -30,6 +28,7 @@
<group>
<field name="users_id"/>
<field name="yuthon_company" invisible="1"/>
<field name="yuthon_company" invisible="1"/>
<field name="date_start" required="1"/>
<field name="date_end" required="1"/>
<field name="days"/>
@@ -38,7 +37,7 @@
<group>
<field name="employee_ids" widget="many2many_tags"/>
<field name="code"/>
<field name="department_id"/>
<field name="department_id" invisible="1"/>
</group>
</group>
<group string="审批事项">
@@ -7,8 +7,8 @@
<tree>
<field name="name"/>
<field name="users_id"/>
<field name="yuthon_company"/>
<field name="department_id"/>
<field name="yuthon_company" optional="hide"/>
<field name="department_id" optional="hide"/>
</tree>
</field>
</record>
@@ -30,7 +30,7 @@
<group>
<group>
<field name="users_id"/>
<field name="yuthon_company"/>
<field name="yuthon_company" invisible="1"/>
<field name="code"/>
<field name="duration"/>
<field name="type_overtime"/>
@@ -39,7 +39,7 @@
</group>
<group>
<field name="employee_ids" widget="many2many_tags"/>
<field name="department_id"/>
<field name="department_id" invisible="1"/>
<field name="start_time"/>
<field name="end_time"/>
<field name="hours"/>
@@ -4,7 +4,7 @@
<field name="name">yuthon.duty.plan.tree</field>
<field name="model">yuthon.duty.plan</field>
<field name="arch" type="xml">
<tree string="排班安排">
<tree string="排版规则">
<field name="name"/>
<field name="start_index_time"/>
<field name="end_index_time"/>
@@ -16,7 +16,7 @@
<field name="name">yuthon.duty.plan.form</field>
<field name="model">yuthon.duty.plan</field>
<field name="arch" type="xml">
<form string="排班安排">
<form string="排版规则">
<header>
<button name="auto_duty_plan" type="object" string="安排值班" class="oe_highlight"/>
</header>
@@ -57,7 +57,7 @@
</field>
</record>
<record id="view_yuthon_duty_plan_action" model="ir.actions.act_window">
<field name="name">排班安排</field>
<field name="name">排版规则</field>
<field name="res_model">yuthon.duty.plan</field>
<field name="view_mode">tree,form</field>
</record>
@@ -4,7 +4,7 @@
<field name="name">yuthon.run.planning.tree</field>
<field name="model">yuthon.run.planning</field>
<field name="arch" type="xml">
<tree string="排班安排">
<tree string="排版规则">
<field name="name"/>
<field name="illustrate"/>
</tree>
@@ -15,7 +15,7 @@
<field name="name">yuthon.run.planning.form</field>
<field name="model">yuthon.run.planning</field>
<field name="arch" type="xml">
<form string="排班安排">
<form string="排版规则">
<sheet>
<header>
<button name="run_confirm" type="object" string="排班" class="oe_highlight"/>
@@ -53,7 +53,7 @@
<field name="name">yuthon.integrated.planning.tree</field>
<field name="model">yuthon.run.planning</field>
<field name="arch" type="xml">
<tree string="排班安排">
<tree string="排版规则">
<field name="name"/>
<field name="illustrate"/>
</tree>
@@ -63,7 +63,7 @@
<field name="name">yuthon.integrated.planning.form</field>
<field name="model">yuthon.run.planning</field>
<field name="arch" type="xml">
<form string="排班安排">
<form string="排版规则">
<sheet>
<header>
<button name="integrated_confirm" type="object" string='排班' class="oe_highlight"/>
@@ -91,7 +91,7 @@
<field name="name">yuthon.high.planning.tree</field>
<field name="model">yuthon.run.planning</field>
<field name="arch" type="xml">
<tree string="排班安排">
<tree string="排版规则">
<field name="name"/>
<field name="illustrate"/>
</tree>
@@ -101,7 +101,7 @@
<field name="name">yuthon.high.planning.form</field>
<field name="model">yuthon.run.planning</field>
<field name="arch" type="xml">
<form string="排班安排">
<form string="排版规则">
<sheet>
<header>
<button name="high_confirm" type="object" string="排班" class="oe_highlight"/>
@@ -7,8 +7,8 @@
<tree string="值班换班审批">
<field name="name"/>
<field name="users_id"/>
<field name="yuthon_company"/>
<field name="department_id"/>
<field name="yuthon_company" optional="hide"/>
<field name="department_id" optional="hide"/>
</tree>
</field>
</record>
@@ -18,15 +18,22 @@
<field name="arch" type="xml">
<form string="值班调休审批">
<sheet>
<header>
<button name="button_shift_approval" type="object" string="批准" class="oe_highlight"/>
</header>
<group string="个人信息" col="2">
<group>
<field name="users_id"/>
<field name="is_issues"/>
<field name="related_issues_id" invisible="not is_issues"/>
<field name="resource_id"/>
<field name="transferees_id"/>
<field name="users_id" invisible="1"/>
<field name="is_issues" invisible="1"/>
<field name="related_issues_id" invisible="not is_issues" />
<field name="yuthon_company" invisible="1"/>
<field name="department_id" invisible="1"/>
</group>
<group>
<field name="yuthon_company"/>
<field name="department_id"/>
<field name="shift_id" domain="[('resource_id', '=', resource_id)]"/>
<field name="return_id" domain="[('resource_id', '=', transferees_id)]"/>
</group>
</group>
<group string="审批事项">
@@ -4,7 +4,7 @@
<field name="name">yuthon.shift.planning.tree</field>
<field name="model">yuthon.shift.planning</field>
<field name="arch" type="xml">
<tree string="排班安排">
<tree string="排版规则">
<field name="name"/>
<field name="illustrate"/>
<field name="number_of_shifts"/>
@@ -15,7 +15,7 @@
<field name="name">yuthon.shift.planning.form</field>
<field name="model">yuthon.shift.planning</field>
<field name="arch" type="xml">
<form string="排班安排">
<form string="排版规则">
<sheet>
<header>
<button name="confirm" type="object" string="排班" class="oe_highlight"/>
@@ -75,7 +75,7 @@
</field>
</record>
<record id="yuthon_shift_planning_view_action" model="ir.actions.act_window">
<field name="name">排班安排</field>
<field name="name">排版规则</field>
<field name="res_model">yuthon.shift.planning</field>
<field name="view_mode">tree,form</field>
</record>
+3 -3
View File
@@ -20,7 +20,7 @@
parent="hr_attendance_root_board"
sequence="5"/>
<menuitem id="menu_hr_plan_sources_arrange_board1"
name="排班安排"
name="排版规则"
parent="menu_hr_attendance_security_record_board"
action="yuthon_hr_attendance.yuthon_shift_planning_view_action"
sequence="1"/>
@@ -76,7 +76,7 @@
parent="hr_attendance_root_board"
sequence="7"/>
<menuitem id="menu_hr_attendance_all_board"
name="排班安排"
name="排版规则"
parent="menu_hr_attendance_engineering_record_board"
sequence="1"/>
<menuitem id="menu_hr_attendance_planning_all_record_board"
@@ -176,7 +176,7 @@
parent="hr_attendance_root_board"
sequence="9"/>
<menuitem id="menu_hr_attendance_duty_plan_board"
name="排班安排"
name="排版规则"
parent="menu_hr_attendance_duty_summary_menu_board"
action="yuthon_hr_attendance.view_yuthon_duty_plan_action"
sequence="1"/>