[IMP] Add manager_id hr models

This commit is contained in:
younes 2025-10-05 10:52:33 +01:00
parent cd0c838f19
commit 9b28daaf27
21 changed files with 47 additions and 3 deletions

View File

@ -748,6 +748,7 @@ msgstr "الوصف"
#: code:addons/attendances/models/hr_reasons_lateness.py:0 #: code:addons/attendances/models/hr_reasons_lateness.py:0
#: code:addons/odoo/STANDARD_MODULES/test/odex25_hr/odex25_hr/attendances/models/hr_attendance_register.py:0 #: code:addons/odoo/STANDARD_MODULES/test/odex25_hr/odex25_hr/attendances/models/hr_attendance_register.py:0
#: code:addons/odoo/STANDARD_MODULES/test/odex25_hr/odex25_hr/attendances/models/hr_reasons_lateness.py:0 #: code:addons/odoo/STANDARD_MODULES/test/odex25_hr/odex25_hr/attendances/models/hr_reasons_lateness.py:0
#: model:ir.model.fields,field_description:attendances.field_hr_reasons_lateness__manager_id
#: model_terms:ir.ui.view,arch_db:attendances.employee_lateness_reasons_form_view #: model_terms:ir.ui.view,arch_db:attendances.employee_lateness_reasons_form_view
#: model_terms:ir.ui.view,arch_db:attendances.hr_attendance_register_form_view #: model_terms:ir.ui.view,arch_db:attendances.hr_attendance_register_form_view
#, python-format #, python-format

View File

@ -16,6 +16,9 @@ class HrReasonsLateness(models.Model):
department_id = fields.Many2one(related="employee_id.department_id", readonly=True, store=True) department_id = fields.Many2one(related="employee_id.department_id", readonly=True, store=True)
job_id = fields.Many2one(related="employee_id.job_id", readonly=True) job_id = fields.Many2one(related="employee_id.job_id", readonly=True)
employee_id = fields.Many2one('hr.employee', 'Employee Id', default=lambda item: item.get_user_id()) employee_id = fields.Many2one('hr.employee', 'Employee Id', default=lambda item: item.get_user_id())
manager_id = fields.Many2one('hr.employee', string='Direct Manager', related='employee_id.parent_id', store=True,
readonly=True,
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]")
state = fields.Selection([('draft', _('Draft')), state = fields.Selection([('draft', _('Draft')),
('send', _('Waiting Direct Manager')), ('send', _('Waiting Direct Manager')),
('direct_manager', _('Waiting HR')), ('direct_manager', _('Waiting HR')),

View File

@ -69,6 +69,7 @@
attrs="{'readonly':[('state','!=','draft')]}"/> attrs="{'readonly':[('state','!=','draft')]}"/>
<field name="employee_id" string="Employee" <field name="employee_id" string="Employee"
attrs="{'readonly': ['|',('from_hr_depart','=',False),('state','!=','draft')],'required':True}"/> attrs="{'readonly': ['|',('from_hr_depart','=',False),('state','!=','draft')],'required':True}"/>
<field name="manager_id"/>
<field name="employee_no" string="Employee Number" readonly="1"/> <field name="employee_no" string="Employee Number" readonly="1"/>
<field name="department_id" string="Department" required="1" readonly="1"/> <field name="department_id" string="Department" required="1" readonly="1"/>
<field name="job_id" string="Job" required="1" readonly="1"/> <field name="job_id" string="Job" required="1" readonly="1"/>

View File

@ -4036,4 +4036,10 @@ msgstr "نوع الموظف الجديد"
msgid "You Can Not Choose The Same Employee Type" msgid "You Can Not Choose The Same Employee Type"
msgstr "لايمكن إختيار نفس نوع الموظف الحالي" msgstr "لايمكن إختيار نفس نوع الموظف الحالي"
#. module: employee_requests
#: model:ir.model.fields,field_description:employee_requests.field_employee_other_request__manager_id
#: model:ir.model.fields,field_description:employee_requests.field_employee_overtime_request__manager_id
#: model:ir.model.fields,field_description:employee_requests.field_hr_clearance_form__manager_id
#: model:ir.model.fields,field_description:employee_requests.field_hr_personal_permission__manager_id
msgid "Direct Manager"
msgstr "المدير المباشر"

View File

@ -44,6 +44,9 @@ class employee_overtime_request(models.Model):
department_id = fields.Many2one('hr.department') department_id = fields.Many2one('hr.department')
employee_id = fields.Many2one('hr.employee', 'Responsible', default=lambda item: item.get_user_id(), employee_id = fields.Many2one('hr.employee', 'Responsible', default=lambda item: item.get_user_id(),
domain=[('state', '=', 'open')]) domain=[('state', '=', 'open')])
manager_id = fields.Many2one('hr.employee', string='Direct Manager', related='employee_id.parent_id', store=True,
readonly=True,
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]")
employee_no = fields.Char(related='employee_id.emp_no', readonly=True,string='Employee Number', store=True) employee_no = fields.Char(related='employee_id.emp_no', readonly=True,string='Employee Number', store=True)
exception = fields.Boolean(string="Exception Hours", default=False, exception = fields.Boolean(string="Exception Hours", default=False,
help='Exceeding The Limit Of Overtime Hours Per Month') help='Exceeding The Limit Of Overtime Hours Per Month')

View File

@ -16,6 +16,9 @@ class HrClearanceForm(models.Model):
department_id = fields.Many2one(related='employee_id.department_id', readonly=True, store=True) department_id = fields.Many2one(related='employee_id.department_id', readonly=True, store=True)
employee_id = fields.Many2one('hr.employee', 'Employee Id', default=lambda item: item.get_user_id(), employee_id = fields.Many2one('hr.employee', 'Employee Id', default=lambda item: item.get_user_id(),
domain=[('state', '=', 'open')]) domain=[('state', '=', 'open')])
manager_id = fields.Many2one('hr.employee', string='Direct Manager', related='employee_id.parent_id', store=True,
readonly=True,
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]")
employee_no = fields.Char(related='employee_id.emp_no', readonly=True,string='Employee Number', store=True) employee_no = fields.Char(related='employee_id.emp_no', readonly=True,string='Employee Number', store=True)
clearance_type = fields.Selection(selection=[("vacation", _("Vacation Clearance")), clearance_type = fields.Selection(selection=[("vacation", _("Vacation Clearance")),

View File

@ -34,7 +34,8 @@ class HrPersonalPermission(models.Model):
approved_by = fields.Many2one(comodel_name='res.users') approved_by = fields.Many2one(comodel_name='res.users')
refused_by = fields.Many2one(comodel_name='res.users') refused_by = fields.Many2one(comodel_name='res.users')
employee_id = fields.Many2one('hr.employee', 'Employee Id', default=lambda item: item.get_user_id(),domain=[('state', '=', 'open')]) employee_id = fields.Many2one('hr.employee', 'Employee Id', default=lambda item: item.get_user_id(),domain=[('state', '=', 'open')])
state = fields.Selection([('draft', _('Draft')), ('send', _('Waiting Direct Manager')), manager_id = fields.Many2one('hr.employee', string='Direct Manager',related='employee_id.parent_id', store=True,readonly=True,domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]")
state = fields.Selection([('draft', _('Draft')), ('send', _('Waiting Direct Manager')),
('direct_manager', _('Wait HR Department')), ('direct_manager', _('Wait HR Department')),
('approve', _('Approved')), ('refused', _('Refused'))], default="draft", tracking=True) ('approve', _('Approved')), ('refused', _('Refused'))], default="draft", tracking=True)
type_exit = fields.Selection([('early_exit', _('Early Exit')), ('late entry', _('Late Entry')), ('during work', _('During Work'))],default="early_exit") type_exit = fields.Selection([('early_exit', _('Early Exit')), ('late entry', _('Late Entry')), ('during work', _('During Work'))],default="early_exit")

View File

@ -33,6 +33,9 @@ class EmployeeOtherRequest(models.Model):
# relational fields # relational fields
employee_id = fields.Many2one('hr.employee', default=lambda item: item.get_user_id(), employee_id = fields.Many2one('hr.employee', default=lambda item: item.get_user_id(),
domain=[('state', '=', 'open')]) domain=[('state', '=', 'open')])
manager_id = fields.Many2one('hr.employee', string='Direct Manager', related='employee_id.parent_id', store=True,
readonly=True,
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]")
employee_no = fields.Char(related='employee_id.emp_no', readonly=True,string='Employee Number', store=True) employee_no = fields.Char(related='employee_id.emp_no', readonly=True,string='Employee Number', store=True)
department_id = fields.Many2one(comodel_name='hr.department', related='employee_id.department_id', readonly=True,store=True) department_id = fields.Many2one(comodel_name='hr.department', related='employee_id.department_id', readonly=True,store=True)
job_id = fields.Many2one(comodel_name='hr.job', related='employee_id.job_id', readonly=True) job_id = fields.Many2one(comodel_name='hr.job', related='employee_id.job_id', readonly=True)

View File

@ -25,7 +25,7 @@
<field name="model">employee.overtime.request</field> <field name="model">employee.overtime.request</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<form> <form>
<header>f <header>
<button name="submit" string="Submit" class="oe_highlight" type="object" <button name="submit" string="Submit" class="oe_highlight" type="object"
states="draft" groups="base.group_user"/> states="draft" groups="base.group_user"/>
@ -67,6 +67,7 @@
<group> <group>
<field name="transfer_type" attrs="{'readonly':[('state','!=','financial_manager')], 'required': [('state', '=', 'financial_manager')]}"/> <field name="transfer_type" attrs="{'readonly':[('state','!=','financial_manager')], 'required': [('state', '=', 'financial_manager')]}"/>
<field name="employee_id" string="Responsible " required="1" attrs="{'readonly':[('state','!=','draft')]}"/> <field name="employee_id" string="Responsible " required="1" attrs="{'readonly':[('state','!=','draft')]}"/>
<field name="manager_id"/>
<field name="employee_no" string="Employee Number" readonly="1"/> <field name="employee_no" string="Employee Number" readonly="1"/>
<field name="date_from" string="Date From" <field name="date_from" string="Date From"

View File

@ -73,6 +73,7 @@
attrs="{'readonly':[('state','!=','draft')]}"/> attrs="{'readonly':[('state','!=','draft')]}"/>
<field name="employee_id" string="Employee Name" <field name="employee_id" string="Employee Name"
attrs="{'readonly':['|',('state','!=','draft'),('from_hr_department','!=',True)],'required':[('from_hr_department','=',True)]}"/> attrs="{'readonly':['|',('state','!=','draft'),('from_hr_department','!=',True)],'required':[('from_hr_department','=',True)]}"/>
<field name="manager_id"/>
<field name="employee_no" string="Employee Number" readonly="1"/> <field name="employee_no" string="Employee Number" readonly="1"/>
<field name="date" string="Date Request" required="1" <field name="date" string="Date Request" required="1"
attrs="{'readonly':[('state','!=','draft')]}"/> attrs="{'readonly':[('state','!=','draft')]}"/>

View File

@ -78,6 +78,7 @@
attrs="{'readonly':[('state','!=','draft')]}"/> attrs="{'readonly':[('state','!=','draft')]}"/>
<field name="employee_id" string="Employee" <field name="employee_id" string="Employee"
attrs="{'readonly': ['|',('from_hr_department','=',False),('state','!=','draft')],'required':True}"/> attrs="{'readonly': ['|',('from_hr_department','=',False),('state','!=','draft')],'required':True}"/>
<field name="manager_id"/>
<field name="employee_no" string="Employee Number" readonly="1"/> <field name="employee_no" string="Employee Number" readonly="1"/>
<field name="job_id" string="Job Title" readonly="1"/> <field name="job_id" string="Job Title" readonly="1"/>
<field name="department_id" string="Department" readonly="1"/> <field name="department_id" string="Department" readonly="1"/>

View File

@ -79,6 +79,7 @@
attrs="{'readonly':[('state','!=','draft')]}"/> attrs="{'readonly':[('state','!=','draft')]}"/>
<field name="employee_id" string="Employee Name" <field name="employee_id" string="Employee Name"
attrs="{'readonly': ['|',('from_hr','=',False),('state','!=','draft')],'required':True}"/> attrs="{'readonly': ['|',('from_hr','=',False),('state','!=','draft')],'required':True}"/>
<field name="manager_id"/>
<field name="employee_no" string="Employee Number" readonly="1"/> <field name="employee_no" string="Employee Number" readonly="1"/>
<field name="department_id" string="Department"/> <field name="department_id" string="Department"/>

View File

@ -2751,6 +2751,7 @@ msgid "Employee %s, The Mission %s Has No Account Setting Base On Employee Type.
msgstr "الموظف %s,لايوجد إعدادات بند الصرف لـ %s حسب نوع الموظف." msgstr "الموظف %s,لايوجد إعدادات بند الصرف لـ %s حسب نوع الموظف."
#. module: exp_official_mission #. module: exp_official_mission
#: model:ir.model.fields,field_description:exp_official_mission.field_hr_official_mission__manager_id
#: model:ir.model.fields.selection,name:exp_official_mission.selection__hr_official_mission_type__approve_by__direct_manager #: model:ir.model.fields.selection,name:exp_official_mission.selection__hr_official_mission_type__approve_by__direct_manager
msgid "Direct Manager" msgid "Direct Manager"
msgstr "المدير المباشر" msgstr "المدير المباشر"

View File

@ -88,6 +88,9 @@ class HrOfficialMission(models.Model):
employee_id = fields.Many2one('hr.employee', 'Responsible', default=lambda item: item.get_user_id(), employee_id = fields.Many2one('hr.employee', 'Responsible', default=lambda item: item.get_user_id(),
domain=[('state', '=', 'open')]) domain=[('state', '=', 'open')])
manager_id = fields.Many2one('hr.employee', string='Direct Manager', related='employee_id.parent_id', store=True,
readonly=True,
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]")
employee_no = fields.Char(related='employee_id.emp_no', readonly=True, string='Employee Number', store=True) employee_no = fields.Char(related='employee_id.emp_no', readonly=True, string='Employee Number', store=True)
reference = fields.Char(string="Reference Number") reference = fields.Char(string="Reference Number")

View File

@ -159,6 +159,7 @@
<field name="employee_id" <field name="employee_id"
string="Responsible" required="1" string="Responsible" required="1"
attrs="{'readonly':[('state','!=','draft')]}" /> attrs="{'readonly':[('state','!=','draft')]}" />
<field name="manager_id"/>
<field name="employee_no" <field name="employee_no"
string="Employee Number" readonly="1" /> string="Employee Number" readonly="1" />
<field name="department_id2" <field name="department_id2"

View File

@ -782,6 +782,7 @@ msgstr "فرق الايام"
#: code:addons/hr_holidays_public/models/return_from_leave.py:0 #: code:addons/hr_holidays_public/models/return_from_leave.py:0
#: model:ir.model.fields.selection,name:hr_holidays_public.selection__buy_vacation__state__d_manager #: model:ir.model.fields.selection,name:hr_holidays_public.selection__buy_vacation__state__d_manager
#: model:ir.model.fields.selection,name:hr_holidays_public.selection__return_from_leave__state__review #: model:ir.model.fields.selection,name:hr_holidays_public.selection__return_from_leave__state__review
#: model:ir.model.fields,field_description:hr_holidays_public.field_leave_cancellation__manager_id
#: model_terms:ir.ui.view,arch_db:hr_holidays_public.buy_vacation_form_view #: model_terms:ir.ui.view,arch_db:hr_holidays_public.buy_vacation_form_view
#: model_terms:ir.ui.view,arch_db:hr_holidays_public.return_from_leave_form_view #: model_terms:ir.ui.view,arch_db:hr_holidays_public.return_from_leave_form_view
#, python-format #, python-format

View File

@ -29,6 +29,9 @@ class LeaveCancellation(models.Model):
leave_date_to = fields.Datetime(string="Leave Date End", store=True) leave_date_to = fields.Datetime(string="Leave Date End", store=True)
attachment_ids = fields.One2many('ir.attachment', 'leave_cancel_id') attachment_ids = fields.One2many('ir.attachment', 'leave_cancel_id')
employee_id = fields.Many2one('hr.employee', 'Employee', default=lambda item: item.get_user_id()) employee_id = fields.Many2one('hr.employee', 'Employee', default=lambda item: item.get_user_id())
manager_id = fields.Many2one('hr.employee', string='Direct Manager', related='employee_id.parent_id', store=True,
readonly=True,
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]")
duration_canceled = fields.Float(store=1) duration_canceled = fields.Float(store=1)
salary_rule_id = fields.Many2one('hr.salary.rule', string='Benefits/Discounts') salary_rule_id = fields.Many2one('hr.salary.rule', string='Benefits/Discounts')
reconcile_leave = fields.Boolean(related='leave_request_id.reconcile_leave') reconcile_leave = fields.Boolean(related='leave_request_id.reconcile_leave')

View File

@ -44,6 +44,7 @@
<field name="from_hr_department" string="Another Employee" attrs="{'readonly':[('state','!=','draft')]}"/> <field name="from_hr_department" string="Another Employee" attrs="{'readonly':[('state','!=','draft')]}"/>
<field name="employee_id" string="Employee" <field name="employee_id" string="Employee"
attrs="{'readonly':['|',('from_hr_department' , '=' , False),('state','!=','draft')]}" required="1"/> attrs="{'readonly':['|',('from_hr_department' , '=' , False),('state','!=','draft')]}" required="1"/>
<field name="manager_id"/>
<field name="job_id" string="Job Title" readonly="1"/> <field name="job_id" string="Job Title" readonly="1"/>
<field name="department_id" string="Department" readonly="1"/> <field name="department_id" string="Department" readonly="1"/>

View File

@ -2130,3 +2130,8 @@ msgid ""
"You cannot terminate the employee \"%s\" because there are \"%s\" custody " "You cannot terminate the employee \"%s\" because there are \"%s\" custody "
"requests that exceeded the allowed amount and are not yet closed." "requests that exceeded the allowed amount and are not yet closed."
msgstr "لا يمكن إنهاء خدمة الموظف \"%s\" حيث توجد \"%s\" عهد تجاوزت المبلغ المسموح ولم تُغلق بعد." msgstr "لا يمكن إنهاء خدمة الموظف \"%s\" حيث توجد \"%s\" عهد تجاوزت المبلغ المسموح ولم تُغلق بعد."
#. module: hr_termination
#: model:ir.model.fields,field_description:hr_termination.field_hr_termination__manager_id
msgid "Direct Manager"
msgstr "المدير المباشر"

View File

@ -91,6 +91,9 @@ class HrTermination(models.Model):
employee_id = fields.Many2one(comodel_name='hr.employee', string="Employee", default=_get_employee_id, employee_id = fields.Many2one(comodel_name='hr.employee', string="Employee", default=_get_employee_id,
help='Name of the employee for whom the request is creating', help='Name of the employee for whom the request is creating',
domain=[('state', '=', 'open')]) domain=[('state', '=', 'open')])
manager_id = fields.Many2one('hr.employee', string='Direct Manager', related='employee_id.parent_id', store=True,
readonly=True,
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]")
employee_no = fields.Char(related='employee_id.emp_no', readonly=True,string='Employee Number', store=True) employee_no = fields.Char(related='employee_id.emp_no', readonly=True,string='Employee Number', store=True)
department_id = fields.Many2one(comodel_name='hr.department', string="Department", department_id = fields.Many2one(comodel_name='hr.department', string="Department",
related='employee_id.department_id', related='employee_id.department_id',

View File

@ -58,6 +58,7 @@
<field name="from_hr" string="Another Employee" attrs="{'readonly':[('state','!=','draft')]}"/> <field name="from_hr" string="Another Employee" attrs="{'readonly':[('state','!=','draft')]}"/>
<field name="employee_id" string="Employee" <field name="employee_id" string="Employee"
attrs="{'readonly': ['|',('from_hr','=',False),('state','!=','draft')],'required':True}"/> attrs="{'readonly': ['|',('from_hr','=',False),('state','!=','draft')],'required':True}"/>
<field name="manager_id"/>
<field name="employee_no" string="Employee Number" readonly="1"/> <field name="employee_no" string="Employee Number" readonly="1"/>
<field name="company_id" groups="base.group_multi_company" readonly="1"/> <field name="company_id" groups="base.group_multi_company" readonly="1"/>
</group> </group>