commit
6516ee94ab
|
|
@ -5,10 +5,8 @@ from odoo import http, tools
|
|||
from odoo.http import request, Response
|
||||
from odoo.addons.auth_signup.models.res_users import SignupError
|
||||
from odoo.exceptions import UserError
|
||||
from datetime import datetime
|
||||
from datetime import datetime ,timedelta
|
||||
import base64
|
||||
# from odoo.addons.odex_mobile.validator import validator
|
||||
# from odoo.addons.odex_mobile.http_helper import http_helper
|
||||
from ...validator import validator
|
||||
from ...http_helper import http_helper
|
||||
import json
|
||||
|
|
@ -259,9 +257,45 @@ class AttendanceController(http.Controller):
|
|||
attendance = {
|
||||
'id':rec.id,
|
||||
'date':str(rec.date),
|
||||
'first_check_in':rec.sign_in,
|
||||
'last_check_out':rec.sign_out,
|
||||
'total_time':rec.office_hours,
|
||||
'tr_date':self.get_translation_field(rec,'date'),
|
||||
'first_check_in':self.convert_float_2time(rec.sign_in),
|
||||
'tr_sign_in':self.get_translation_field(rec,'sign_in'),
|
||||
'last_check_out':self.convert_float_2time(rec.sign_out),
|
||||
'tr_sign_out':self.get_translation_field(rec,'sign_out'),
|
||||
'total_time':self.convert_float_2time(rec.office_hours),
|
||||
'tr_office_hours':self.get_translation_field(rec,'office_hours'),
|
||||
|
||||
'total_lateness_hours':self.convert_float_2time(rec.lateness),
|
||||
'approve_lateness':rec.approve_lateness,
|
||||
'tr_approve_lateness':self.get_translation_field(rec,'approve_lateness'),
|
||||
|
||||
'total_early_exit_hours':self.convert_float_2time(rec.early_exit),
|
||||
'tr_total_early_exit_hours':self.get_translation_field(rec,'early_exit'),
|
||||
'early_exit':rec.approve_exit_out,
|
||||
'tr_early_exit':self.get_translation_field(rec,'approve_exit_out'),
|
||||
|
||||
'total_permission_hours':self.convert_float_2time(rec.total_permission_hours),
|
||||
'tr_total_permission_hours':self.get_translation_field(rec,'total_permission_hours'),
|
||||
'permission':rec.approve_personal_permission,
|
||||
'tr_permission':self.get_translation_field(rec,'approve_personal_permission'),
|
||||
|
||||
'total_mission_hours':self.convert_float_2time(rec.total_mission_hours),
|
||||
'tr_total_mission_hours':self.get_translation_field(rec,'total_mission_hours'),
|
||||
'mission':rec.is_official,
|
||||
'tr_mission':self.get_translation_field(rec,'is_official'),
|
||||
|
||||
'is_absent':rec.is_absent,
|
||||
'tr_is_absent':self.get_translation_field(rec,'is_absent'),
|
||||
|
||||
'normal_leave':rec.normal_leave,
|
||||
'tr_normal_leave':self.get_translation_field(rec,'normal_leave'),
|
||||
|
||||
'public_holiday':rec.public_holiday,
|
||||
'tr_public_holiday':self.get_translation_field(rec,'public_holiday'),
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
li.append(attendance)
|
||||
return http_helper.response(message="Data Found", data={'attendaces': li})
|
||||
|
|
@ -398,3 +432,10 @@ class AttendanceController(http.Controller):
|
|||
'longitude': longitude,
|
||||
'latitude':latitude,
|
||||
})
|
||||
def convert_float_2time(self,time):
|
||||
td = timedelta(hours=time)
|
||||
dt = datetime.min + td
|
||||
time = "{:%H:%M}".format(dt)
|
||||
return time
|
||||
def get_translation_field(self,rec,field):
|
||||
return request.env['ir.translation'].get_field_string(rec._name)[field]
|
||||
|
|
@ -12,6 +12,7 @@ import json
|
|||
import logging
|
||||
from odoo.exceptions import ValidationError, Warning
|
||||
from odoo.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT
|
||||
from datetime import datetime ,timedelta
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
import re
|
||||
|
|
@ -57,7 +58,9 @@ class PermissionController(http.Controller):
|
|||
"id": per.id,
|
||||
"date_from": str(per.date_from),
|
||||
"date_to": str(per.date_to),
|
||||
"duration": per.duration,
|
||||
"time_permission_from": self.convert_float_2time(per.time_permission_from),
|
||||
"time_permission_to": self.convert_float_2time(per.time_permission_to),
|
||||
"duration": self.convert_float_2time(per.duration),
|
||||
"date": str(per.date),
|
||||
"state": validator.get_state_name(per, per.state),
|
||||
"state_name": per.state,
|
||||
|
|
@ -97,6 +100,10 @@ class PermissionController(http.Controller):
|
|||
return http_helper.response(code=400, message="Enter Early Exit for Permission request", success=False)
|
||||
if not body.get('mission_purpose'):
|
||||
return http_helper.response(code=400, message="mission purpose for Permission request", success=False)
|
||||
if not body.get('time_float_from'):
|
||||
return http_helper.response(code=400, message="Time From for Permission request", success=False)
|
||||
if not body.get('time_float_to'):
|
||||
return http_helper.response(code=400, message="Time To for Permission request", success=False)
|
||||
employee = http.request.env['hr.employee'].search([('user_id', '=', user.id)], limit=1)
|
||||
if not employee:
|
||||
return http_helper.response(code=400,
|
||||
|
|
@ -104,22 +111,28 @@ class PermissionController(http.Controller):
|
|||
"You Have issue in your employee profile. please check with one of your team admins"),
|
||||
success=False)
|
||||
try:
|
||||
permission_number = self.permission_number_decrement(employee, body['date_from'], body['date_to'])
|
||||
permission = (
|
||||
http.request.env["hr.personal.permission"]
|
||||
.sudo()
|
||||
.create(
|
||||
date = body.get('date')
|
||||
date = datetime.strptime(str(date),DEFAULT_SERVER_DATETIME_FORMAT).date()
|
||||
time_float_from = float(body.get('time_float_from'))
|
||||
time_float_to = float(body.get('time_float_to'))
|
||||
obj_permission=http.request.env["hr.personal.permission"].sudo()
|
||||
date_from = str(obj_permission._combine_date_and_time(date,time_float_from))
|
||||
date_to = str(obj_permission._combine_date_and_time(date,time_float_to))
|
||||
permission_number = self.permission_number_decrement(employee, date_from, date_to)
|
||||
permission = obj_permission.create(
|
||||
{
|
||||
"employee_id": employee.id,
|
||||
"date_from": body["date_from"],
|
||||
"date_to": body["date_to"],
|
||||
# "date_from": body["date_from"],
|
||||
# "date_to": body["date_to"],
|
||||
"time_permission_from": time_float_from,
|
||||
"time_permission_to": time_float_to,
|
||||
"early_exit": body["early_exit"],
|
||||
"mission_purpose": body["mission_purpose"],
|
||||
"permission_number": permission_number,
|
||||
"date": body["date"],
|
||||
}
|
||||
)
|
||||
)
|
||||
|
||||
permission.permission_number_decrement()
|
||||
if 'attachment' in body and body['attachment']:
|
||||
attach = http.request.env['ir.attachment'].sudo().create({
|
||||
|
|
@ -136,9 +149,11 @@ class PermissionController(http.Controller):
|
|||
data = {
|
||||
"id": permission.id,
|
||||
"date": str(permission.date),
|
||||
"duration": permission.duration,
|
||||
"date_from": str(permission.date_from),
|
||||
"date_to": str(permission.date_to),
|
||||
"time_permission_from": self.convert_float_2time(permission.time_permission_from),
|
||||
"time_permission_to": self.convert_float_2time(permission.time_permission_to),
|
||||
"duration": self.convert_float_2time(permission.duration),
|
||||
"early_exit": permission.early_exit,
|
||||
"state": validator.get_state_name(permission, permission.state),
|
||||
"state_name": permission.state,
|
||||
|
|
@ -171,6 +186,10 @@ class PermissionController(http.Controller):
|
|||
success=False)
|
||||
if not body.get('early_exit'):
|
||||
return http_helper.response(code=400, message=_("Enter Early Exit for Permission request"), success=False)
|
||||
if not body.get('time_float_from'):
|
||||
return http_helper.response(code=400, message="Time From for Permission request", success=False)
|
||||
if not body.get('time_float_to'):
|
||||
return http_helper.response(code=400, message="Time To for Permission request", success=False)
|
||||
employee = http.request.env['hr.employee'].search([('user_id', '=', user.id)], limit=1)
|
||||
if not employee:
|
||||
return http_helper.response(code=400,
|
||||
|
|
@ -180,13 +199,27 @@ class PermissionController(http.Controller):
|
|||
try:
|
||||
permission = http.request.env['hr.personal.permission'].search([('id', '=', id)])
|
||||
if permission:
|
||||
date = body.get('date')
|
||||
date = datetime.strptime(str(date),DEFAULT_SERVER_DATETIME_FORMAT).date()
|
||||
time_float_from = float(body.get('time_float_from'))
|
||||
time_float_to = float(body.get('time_float_to'))
|
||||
obj_permission=http.request.env["hr.personal.permission"].sudo()
|
||||
date_from = str(obj_permission._combine_date_and_time(date,time_float_from))
|
||||
date_to = str(obj_permission._combine_date_and_time(date,time_float_to))
|
||||
permission_number = self.permission_number_decrement(employee, date_from, date_to)
|
||||
permission.write(
|
||||
{'employee_id': permission.employee_id.id, 'date_from': body['date_from'],
|
||||
'date_to': body['date_to'],
|
||||
'early_exit': body['early_exit'],
|
||||
'date': body['date'],
|
||||
'mission_purpose': body['mission_purpose'],
|
||||
})
|
||||
{
|
||||
"employee_id": permission.employee_id.id,
|
||||
# "date_from": body["date_from"],
|
||||
# "date_to": body["date_to"],
|
||||
"time_permission_from": time_float_from,
|
||||
"time_permission_to": time_float_to,
|
||||
"early_exit": body["early_exit"],
|
||||
"date": body["date"],
|
||||
"mission_purpose": body["mission_purpose"],
|
||||
"permission_number": permission_number,
|
||||
}
|
||||
)
|
||||
|
||||
if 'attachment' in body and body['attachment']:
|
||||
attach = http.request.env['ir.attachment'].sudo().create({
|
||||
|
|
@ -201,7 +234,9 @@ class PermissionController(http.Controller):
|
|||
data = {
|
||||
"id": permission.id,
|
||||
"date": str(permission.date),
|
||||
"duration": permission.duration,
|
||||
"time_permission_from": self.convert_float_2time(permission.time_permission_from),
|
||||
"time_permission_to": self.convert_float_2time(permission.time_permission_to),
|
||||
"duration": self.convert_float_2time(permission.duration),
|
||||
"date_from": str(permission.date_from),
|
||||
"date_to": str(permission.date_to),
|
||||
"early_exit": permission.early_exit,
|
||||
|
|
@ -250,7 +285,9 @@ class PermissionController(http.Controller):
|
|||
data = {
|
||||
"id": permission.id,
|
||||
"date": str(permission.date),
|
||||
"duration": permission.duration,
|
||||
"time_permission_from": self.convert_float_2time(permission.time_permission_from),
|
||||
"time_permission_to": self.convert_float_2time(permission.time_permission_to),
|
||||
"duration": self.convert_float_2time(permission.duration),
|
||||
"date_from": str(permission.date_from),
|
||||
"date_to": str(permission.date_to),
|
||||
"early_exit": permission.early_exit,
|
||||
|
|
@ -406,3 +443,9 @@ class PermissionController(http.Controller):
|
|||
url = url_base + "/api/content/%s" % (att.id)
|
||||
li.append(url)
|
||||
return li
|
||||
|
||||
def convert_float_2time(self,time):
|
||||
td = timedelta(hours=time)
|
||||
dt = datetime.min + td
|
||||
time = "{:%H:%M}".format(dt)
|
||||
return time
|
||||
|
|
|
|||
Loading…
Reference in New Issue