| Server IP : 65.108.144.40 / Your IP : 216.73.217.165 Web Server : Apache/2.4.52 (Ubuntu) System : Linux ubuntu-8gb-hel1-1 5.15.0-173-generic #183-Ubuntu SMP Fri Mar 6 13:29:34 UTC 2026 x86_64 User : dev ( 1000) PHP Version : 8.2.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/erp/horilla_api/api_views/attendance/__pycache__/ |
Upload File : |
o
hͦh� � @ s� d dl mZm Z mZmZ d dlmZ d dlmZ d dlm Z d dl
mZmZm
Z
mZmZ d dlmZ d dlmZ d dlmZ d d lmZ d d
lmZ d dlmZ d dlmZ d d
lmZm Z m!Z! d dl"T d dl"m#Z# d dl$m%Z%m&Z&m'Z' d dl(T d dl)m*Z* d dl+m,Z,m-Z- d dl.m/Z/ d dl0m1Z1 ddl2m3Z3m4Z4 ddl5m6Z6m7Z7 ddl8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z> dd� Z?G dd� de�Z@G dd� de�ZAG dd � d e�ZBG d!d"� d"e�ZCG d#d$� d$e�ZDG d%d&� d&e�ZEG d'd(� d(e�ZFG d)d*� d*e�ZGG d+d,� d,e�ZHG d-d.� d.e�ZIG d/d0� d0e�ZJG d1d2� d2e�ZKG d3d4� d4e�ZLG d5d6� d6e�ZMG d7d8� d8e�ZNG d9d:� d:e�ZOG d;d<� d<e�ZPG d=d>� d>e�ZQd?S )@� )�date�datetime� timedelta�timezone)�template)�settings)�EmailMessage)�Case� CharField�F�Value�When)� QueryDict)�get_object_or_404)�method_decorator)�PageNumberPagination)�IsAuthenticated)�Response)�APIView)�
Attendance�AttendanceActivity�EmployeeShiftDay)�*)� clock_out)�find_expected_attendances�find_late_come�find_on_time)�ConfiguredEmailBackend)�generate_pdf�is_reportingmanager)�EmployeeFilter)�RecruitmentMailTemplate� )�manager_permission_required�permission_required)�groupby_queryset�permission_based_queryset)�AttendanceActivitySerializer�$AttendanceLateComeEarlyOutSerializer�AttendanceOverTimeSerializer�AttendanceRequestSerializer�AttendanceSerializer�MailTemplateSerializerc C sR t ddd�}| �� D ]\}}t|t�r|D ]}|�||� qq
|�||i� q
|S )N� T)�mutable)r �items�
isinstance�list�
appendlist�update)�data�
query_dict�key�value�item� r9 �6/var/www/erp/horilla_api/api_views/attendance/views.pyr5 . s
�r5 c @ � e Zd ZdZegZdd� ZdS )�ClockInAPIViewz�
Allows authenticated employees to clock in, determining the correct shift and attendance date, including handling night shifts.
Methods:
post(request): Processes and records the clock-in time.
c C sF t |�\}}t�� }|j�d�r|j}|r�|d ur�|j}t�� }|j�d�r)|j}|}|�d�� � }t
jj|d�}t�� �d�} |j�d�rL|j�d�} t
| �}
t
d�}t||d�\}}
}|
|kr�||
kr�|td d
� }|�d�� � }t
jj|d�}t||d�\}}
}|}|}t||||| |||
||d�
tdd
idd�S tddi�S )Nr r �%A)�dayz%H:%M�timez12:00)r>