odoo18/addons_extensions/hr_emp_dashboard/models/emp_dashboard.py

53 lines
2.2 KiB
Python

import pandas as pd
from collections import defaultdict
from datetime import timedelta, datetime, date
from dateutil.relativedelta import relativedelta
from odoo import api, fields, models, _
from odoo.http import request
from odoo.tools import float_utils
from odoo.tools import format_duration
from pytz import utc
class HrEmployee(models.Model):
""" Inherit hr_employee to add birthday field and custom methods. """
_inherit = 'hr.employee'
def attendance_manual(self):
"""Create and update an attendance for the user employee"""
employee = request.env['hr.employee'].sudo().browse(
self.env.user.employee_id.id)
employee.sudo()._attendance_action_change({
'city': request.geoip.city.name or _('Unknown'),
'country_name': request.geoip.country.name or
request.geoip.continent.name or _('Unknown'),
'latitude': request.geoip.location.latitude or False,
'longitude': request.geoip.location.longitude or False,
'ip_address': request.geoip.ip,
'browser': request.httprequest.user_agent.browser,
'mode': 'kiosk'
})
return employee
@api.model
def get_user_employee_details(self):
uid = request.session.uid
"""To fetch the details of employee"""
return self.env["hr.employee"].sudo().search_read(
[("user_id", "=", uid)],
[
'name',
'image_1920',
'job_id',
'employee_id',
'current_company_exp',
'doj',
'birthday',
'mobile_phone',
'work_email',
'private_street',
'attendance_state',
'id',
'department_id'
])