52 lines
2.1 KiB
Python
52 lines
2.1 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'
|
|
]) |