o
    mi!                     @   s   d dl mZ d dlmZ d dlmZmZ d dlmZmZm	Z	m
Z
mZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZmZ d dlmZ G dd deZG dd deZdS )    )ListAPIView)Response)datedatetime)SumCaseWhenQBooleanField)	TruncDate)
monthrange)Activity)generate_excel_file)format_amount_with_currency)get_activities_by_week)SummaryActivitySerializer!SummaryActivityDurationSerializer)defaultdictc                   @      e Zd Zej Zdd ZdS )SummaryAPIViewc                 O   s  |j dt }|j dt }|j d}|j d}|j d}|j d}	| jj d}
tjj||gdd	d
dj	t
ttddtdd@ tdd@ dddt ddd}|
dkrtj j||gdd	d
dj	t
ttddtdd@ tdd@ dddt ddd}| jjr| jjjr| jjjjdkr|j|	d}|r|j|d}|r|j|d}|r|j|d}|	r|j|	d}|j	tdddj	tddd}t|dd}| |j}t|ddj}t||}| |d d d  S )!N
start_dateend_date
project_id	client_idactivity_type_iduser_idwith_trashedZstart_date_time__date__rangeprojectactivity_typeuserTZactivity_type__is_activeZproject__deleted_at__isnullZ#project__client__deleted_at__isnullthenFdefaultoutput_fieldZis_resumable_activitystart_date_timetrueadminr   r   Zproject__client_idr   )r   r   total_duration)Ztotal_duration_sum)many)query_paramsgetr   todayrequestr   objectsfilterselect_relatedannotater   r   r	   r
   order_byr   r    rolenamer   valuesr   r   paginate_querysetdatar   r   get_paginated_response)selfr7   argskwargsr   r   r   r   r   r   r   
activitiesZtotal_sum_data_queryset
serializerrA   Ztotal_sum_dataZactivities_by_week rH   F/var/www/html/kuke-dev/django-kuke/apps/employee/views/SummaryViews.pylist   s\   
$

$"
(
zSummaryAPIView.listN__name__
__module____qualname__r   r8   allquerysetrJ   rH   rH   rH   rI   r          
r   c                   @   r   )SummaryExcelAPIViewc                    sh  |j dt }|j dt }|j d}|j d}|j d}|j d}	| jj d}
tjj||gdd	d
dj	t
ttddtdd@ tdd@ dddt ddddd}|
dkrtj j||gdd	d
dj	t
ttddtdd@ tdd@ dddt ddddd}| jjr| jjjr| jjjjdkr|j|	d}|r|j|d}|r|j|d}|r|j|d}|	r|j|	d}g }tt}|D ] }|jr|jr|j d }||j|j f  ||j 7  < qd }|D ]}|jrt|jnd}d}d}|jr |jr |j d }||j }t|}|jr*|jd nd|jr4|j nd|jr=|jjnd|jrF|jjnd|j pLd|jrV|jd!nd|j!ra|j!d!nd||d"	}|j|j f | krt" fd#d$|D }|d%8 }|dkrt|  |d&< |#|  }qg d'}d(| d)| d*t$% d+ }t&|||}|S ),Nr   r   r   r   r   r   r   r   r   r   r    Tr!   r"   r#   r$   Fr&   r)   start_date_time__dateZuser__idr*   r+   r,   r-   r.   r/   r0   i   r   z%d-%m-%Yz%H:%M)	DateEmployee NameProjectActivity TypeDescription
Start TimeEnd TimeZTotalCostc                    s$   g | ]}|j |j f kr|qS rH   )r   r*   r   ).0acurrent_keyrH   rI   
<listcomp>   s   $ z,SummaryExcelAPIView.list.<locals>.<listcomp>   
Total Cost)
rU   rV   rW   rX   rY   rZ   r[   zTotal Durationr\   rc   zSummary Report - z to z #z%d-%m-%Y %H:%M)'r4   r5   r   r6   r7   r   r8   r9   r:   r;   r   r   r	   r
   r<   r   r    r=   r>   r   floatr1   pay_per_hourtotal_secondsr   r*   strr   strftimeget_full_namer   r   descriptionend_date_timelenappendr   nowr   )rC   r7   rD   rE   r   r   r   r   r   r   r   rF   rA   Zdaily_totalsactivitytotal_hoursZprev_keyr1   Zrow_costZnumeric_costrow	remainingcolumn_names	file_nameresponserH   r_   rI   rJ   X   s   
$


$
"





 zSummaryExcelAPIView.listNrK   rH   rH   rH   rI   rR   U   rQ   rR   N)rest_framework.genericsr   rest_framework.responser   r   r   django.db.modelsr   r   r   r	   r
   django.db.models.functionsr   calendarr   Zapps.employee.modelsr   Z core.utils.convert_json_to_excelr   core.utils.helperr   Z'apps.employee.services.summary_servicesr   Z-apps.employee.serializers.summary_serializersr   r   collectionsr   r   rR   rH   rH   rH   rI   <module>   s    =