mirror of
https://gitlab.com/sonalarora/tra_backend.git
synced 2025-12-17 18:29:08 +02:00
227 lines
8.0 KiB
Python
227 lines
8.0 KiB
Python
# -*- coding: utf-8 -*-
|
|
from datetime import datetime
|
|
from odoo import models, api, fields, _
|
|
from odoo.exceptions import UserError
|
|
|
|
|
|
class DepartmentDetails(models.Model):
|
|
_inherit = 'hr.employee'
|
|
|
|
@api.onchange('department_id')
|
|
def _onchange_department(self):
|
|
employee_id = self.env['hr.employee'].search([('id', '=', self._origin.id)])
|
|
vals = {
|
|
'employee_id': self._origin.id,
|
|
'employee_name': employee_id.name,
|
|
'updated_date': datetime.now(),
|
|
'changed_field': 'Department',
|
|
'current_value': self.department_id.name
|
|
|
|
}
|
|
self.env['department.history'].sudo().create(vals)
|
|
|
|
@api.onchange('job_id')
|
|
def onchange_job_id(self):
|
|
employee_id = self.env['hr.employee'].search([('id', '=', self._origin.id)])
|
|
vals = {
|
|
'employee_id': self._origin.id,
|
|
'employee_name': employee_id.name,
|
|
'updated_date': datetime.today(),
|
|
'changed_field': 'Job Position',
|
|
'current_value': self.job_id.name
|
|
|
|
}
|
|
self.env['department.history'].sudo().create(vals)
|
|
|
|
@api.onchange('timesheet_cost')
|
|
def _onchange_timesheet_cost(self):
|
|
employee_id = self.env['hr.employee'].search([('id', '=', self._origin.id)])
|
|
vals = {
|
|
'employee_id': self._origin.id,
|
|
'employee_name': employee_id.name,
|
|
'updated_date': datetime.now(),
|
|
'current_value': self.timesheet_cost
|
|
}
|
|
self.env['timesheet.cost'].sudo().create(vals)
|
|
|
|
|
|
def department_details(self):
|
|
res_user = self.env['res.users'].search([('id', '=', self._uid)])
|
|
if res_user.has_group('hr.group_hr_manager'):
|
|
return {
|
|
'name': _("Department History"),
|
|
'view_mode': 'tree',
|
|
'res_model': 'department.history',
|
|
'type': 'ir.actions.act_window',
|
|
'target': 'new',
|
|
'domain': [('employee_id', '=', self.id)],
|
|
}
|
|
elif self.id == self.env.user.employee_id.id:
|
|
return {
|
|
'name': _("Department History"),
|
|
'view_mode': 'tree',
|
|
'res_model': 'department.history',
|
|
'type': 'ir.actions.act_window',
|
|
'target': 'new',
|
|
}
|
|
else:
|
|
raise UserError('You cannot access this field!!!!')
|
|
|
|
|
|
def time_sheet(self):
|
|
res_user = self.env['res.users'].search([('id', '=', self._uid)])
|
|
if res_user.has_group('hr.group_hr_manager'):
|
|
return {
|
|
'name': _("Timesheet Cost Details"),
|
|
'view_mode': 'tree',
|
|
'res_model': 'timesheet.cost',
|
|
'type': 'ir.actions.act_window',
|
|
'target': 'new',
|
|
'domain': [('employee_id', '=', self.id)]
|
|
}
|
|
elif self.id == self.env.user.employee_id.id:
|
|
return {
|
|
'name': _("Timesheet Cost Details"),
|
|
'view_mode': 'tree',
|
|
'res_model': 'timesheet.cost',
|
|
'type': 'ir.actions.act_window',
|
|
'target': 'new'
|
|
}
|
|
else:
|
|
raise UserError('You cannot access this field!!!!')
|
|
|
|
|
|
def salary_history(self):
|
|
res_user = self.env['res.users'].search([('id', '=', self._uid)])
|
|
if res_user.has_group('hr.group_hr_manager'):
|
|
return {
|
|
'name': _("Salary History"),
|
|
'view_mode': 'tree',
|
|
'res_model': 'salary.history',
|
|
'type': 'ir.actions.act_window',
|
|
'target': 'new',
|
|
'domain': [('employee_id', '=', self.id)]
|
|
}
|
|
elif self.id == self.env.user.employee_id.id:
|
|
return {
|
|
'name': _("Salary History"),
|
|
'view_mode': 'tree',
|
|
'res_model': 'salary.history',
|
|
'type': 'ir.actions.act_window',
|
|
'target': 'new'
|
|
}
|
|
else:
|
|
raise UserError('You cannot access this field!!!!')
|
|
|
|
|
|
def contract_history(self):
|
|
res_user = self.env['res.users'].search([('id', '=', self._uid)])
|
|
if res_user.has_group('hr.group_hr_manager'):
|
|
return {
|
|
'name': _("Contract History"),
|
|
'view_mode': 'tree',
|
|
'res_model': 'contract.history',
|
|
'type': 'ir.actions.act_window',
|
|
'target': 'new',
|
|
'domain': [('employee_id', '=', self.id)]
|
|
}
|
|
if self.id == self.env.user.employee_id.id:
|
|
return {
|
|
'name': _("Contract History"),
|
|
'view_mode': 'tree',
|
|
'res_model': 'contract.history',
|
|
'type': 'ir.actions.act_window',
|
|
'target': 'new'
|
|
}
|
|
else:
|
|
raise UserError('You cannot access this field!!!!')
|
|
|
|
|
|
class WageDetails(models.Model):
|
|
_inherit = 'hr.contract'
|
|
|
|
@api.onchange('wage')
|
|
def onchange_wage(self):
|
|
vals = {
|
|
'employee_id': self.employee_id.id,
|
|
'employee_name': self.employee_id,
|
|
'updated_date': datetime.today(),
|
|
'current_value': self.wage,
|
|
|
|
}
|
|
self.env['salary.history'].sudo().create(vals)
|
|
|
|
@api.onchange('name')
|
|
def onchange_name(self):
|
|
vals = {
|
|
'employee_id': self.employee_id.id,
|
|
'employee_name': self.employee_id,
|
|
'updated_date': datetime.today(),
|
|
'changed_field': 'Contract Reference',
|
|
'current_value': self.name,
|
|
|
|
}
|
|
self.env['contract.history'].create(vals)
|
|
|
|
@api.onchange('date_start')
|
|
def onchange_datestart(self):
|
|
vals = {
|
|
'employee_id': self.employee_id.id,
|
|
'employee_name': self.employee_id,
|
|
'updated_date': datetime.today(),
|
|
'changed_field': 'Start Date',
|
|
'current_value': self.date_start,
|
|
|
|
}
|
|
self.env['contract.history'].create(vals)
|
|
|
|
@api.onchange('date_end')
|
|
def onchange_dateend(self):
|
|
vals = {
|
|
'employee_id': self.employee_id.id,
|
|
'employee_name': self.employee_id,
|
|
'updated_date': datetime.today(),
|
|
'changed_field': 'End Date',
|
|
'current_value': self.date_end,
|
|
|
|
}
|
|
self.env['contract.history'].create(vals)
|
|
|
|
|
|
class DepartmentHistory(models.Model):
|
|
_name = 'department.history'
|
|
|
|
employee_id = fields.Char(string='Employee Id', help="Employee")
|
|
employee_name = fields.Char(string='Employee Name', help="Name")
|
|
changed_field = fields.Char(string='Job position', help="Displays the changed department/job position")
|
|
updated_date = fields.Date(string='Date', help="Display the date on which department or job position changed")
|
|
current_value = fields.Char(string='Designation', help="Display the designation")
|
|
|
|
|
|
class TimesheetCost(models.Model):
|
|
_name = 'timesheet.cost'
|
|
|
|
employee_id = fields.Char(string='Employee Id', help="Employee")
|
|
employee_name = fields.Char(string='Employee Name', help="Name")
|
|
updated_date = fields.Date(string='Updated On', help="Updated Date of Time Sheet")
|
|
current_value = fields.Char(string='Current Cost', help="Updated Value of Time Sheet")
|
|
|
|
|
|
class SalaryHistory(models.Model):
|
|
_name = 'salary.history'
|
|
|
|
employee_id = fields.Char(string='Employee Id', help="Employee")
|
|
employee_name = fields.Char(string='Employee Name', help="Name")
|
|
updated_date = fields.Date(string='Updated On', help="Salary Updated Date")
|
|
current_value = fields.Char(string='Current Salary', help="Updated Salary")
|
|
|
|
|
|
class ContractHistory(models.Model):
|
|
_name = 'contract.history'
|
|
|
|
employee_id = fields.Char(string='Employee Id', help="Employee")
|
|
employee_name = fields.Char(string='Employee Name', help="Name")
|
|
updated_date = fields.Date(string='Updated On', help="Contract Updated Date")
|
|
changed_field = fields.Char(string='Changed Field', help="Updated Field's")
|
|
current_value = fields.Char(string='Current Contract', help="Updated Value of Contract")
|