B
    Dvb>7                 @   s`  d dl Z d dl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 d d
lmZ d dlmZmZ d dl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 m!Z! e
dd Z"e
dd Z#dEddZ$e
dFddZ%e
dGddZ&edd Z'edej(ed d!d"ed#ej)ed d$d"ed%ej*ed&d'd"ed(ej+ed&d)d"ed*ej,ed+ej-ed,ej.ed-ej/ed.ej0ed/ej1ed0ej2d1d"ed2ej3ed3ed4d5d6ed7ed8ed9ej4d:d"ed;e"dd"ed<e#ed=e$dd"ed>e%dd"ed?e&dd"ed@e'dd"edAe dBd"edCe!dDd"gZ5dS )H    N)includeurl)HttpResponse)JsonResponse)TemplateResponse)login_required)csrf_exempt)gettext_lazy)views)insert_non_model_permission)ShiftDetailHoliday)TempScheduleTimeInterval)Employee)ClientDetails)OutdoorSchedulePlanner)OutdoorEmployeeSchedule)OutdoorTrack)get_verification_photoget_unregistered_user_photoc             C   s   | j dd}t| d|S )NZleavedetailsReport)userZ
model_namez"att/report/leavedetailsreport.html)r   r   )requestcontext r   (G:\easytimepro\master/mysite/att\urls.pyatt_leavedetails   s    r   c             C   s0  i }i }i }dd l }| jd }|d}|t|d t|d t|d }| jj}|g}tjj	|d
ddd	}	|	d d }
dd
lm}m} ddl m}m }m}m} ytjj	||	d d d}W n$   tjj	||	d d	 d}Y nX |rttdS ||||}|rtjdj	|t|
 d d djdd}|r||d jjdd}|||d jjd d }|d jj|d< | |d< |d jj|d< |d jj|d< ||||}|r^tjdj	|| d d djdd}|r^||d jjdd}|||d jjd d }|d jj|d< | |d< |d jj|d< |d jj|d< tjj	|||d}|rtjj	|d j d}|r||d jdd}|||d jd d }|d j|d< | |d< |d j|d< |d j|d< |rt!|S |rt!|S |r t!|S ttdS d S )Nr   date-      )idZdepartment_idlocation_id
company_id)department_scheduleemployee_schedule)r   datetimetime	timedelta)
start_dater"   )r)   r#   Z"att_leave_apply_holiday_validationtime_intervalshift_id)r+   T)Ztime_interval_id__isnullz%H:%M:%S<   )Zhoursin_timeZout_timeZfirsthalf_out_timeZsecondhalf_in_time)employee_idZstart_time__date__gteZend_time__date__lteZatt_schedule_not_found)"r&   GETsplitr   intr   r!   r   objectsfiltervaluesZmysite.att.calc.utilsr$   r%   r'   r(   r   r   _r   Zselect_relatedstrZexcludestrptimer*   r-   strftimeZdurationZfirst_half_out_timeZsecond_half_in_timer   r   Ztime_interval_idr   )r   Zall_Temp_schedule_timingsZall_emp_schedule_timingsZall_dept_schedule_timingsr&   ZCdater)   r.   Zemp_idsZemployeeZ
departmentr$   r%   r   r'   r(   Zholiday_queryZall_department_scheduleZdept_querysetZdtime_conversionZdtime_conversion1Zall_scheduleZemp_querysetZetime_conversionZetime_conversion1ZquerysetZ	queryset1Ztime_conversionZtime_conversion1r   r   r   get_in_out_timings$   sx    

& 
r9   c             C   sn   | j d rVt| j d }tjj|dddd}|d d |d d |d d d}ndd	d
d}t| d|S )Nr!   )r!   	longitudelatitudeaddressr   )r:   r;   r<   g *fDkS@gVP
*@ZIndiaz#att/outdoorscheduleplanner/map.html)r/   r1   r   r2   r3   r4   r   )r   r   r!   datar   r   r   get_locationn   s    
&r>   c             C   s&  t | jd }t | jd }|dkrXtjj|dd}tjj|d d dd}n&|dkrjtjj|d}|j	r|j	
d	}nd
}|jr|j
d	}nd
}g }|dkr||jjd | |j|jd}	||	 n&||jd | |j|jd}	||	 |dkr0||jjd | |j|jd}
||
 n&||jd | |j|jd}
||
 d|i}t| d|S tjj|dd}g }d}xt|d d D ]t}tjj|d ddddd}	|	d d |	d d |	d d dt| d |	d d  d}
||
 |d7 }qW d|i}t| d|S )Nr!   typer   )r!   schedule_planner_idr   schedule_details   z%H:%M:%S r    z In )inclientr:   r;   z Out )outrE   r:   r;   mapplotdetailsz+att/outdoorscheduleplanner/schedulemap.html	client_idr:   r;   r<   company_namezClient  )r:   r;   r<   rE   )r1   r/   r   r2   r3   r4   r   r   getcheckinr8   checkoutrE   rI   Zcheckin_longitudeZcheckin_latitudeappendclient_nameZcheckout_longitudeZcheckout_latituder   jsonloadsr   r6   )r   r   r!   type_employeeDatar=   check_in	check_outmap_detailsdata1data2Z
mapdetailsixr   r   r   get_location_mappointery   s^    



 
r[   c             C   s  t | jd }t | jd }|dkrVtjj|dd}tjj|d d dd}n|dkrtjj|d}g }|j	r|j	
d	}nd
}|jr|j
d	}nd
}y|jj}	W n tk
r   |j}	Y nX |||	d}
||
 d|i}t| d|S tjj|dd}g }xlt|d d D ]V}tjj|d ddd}|d |d |d |d d |d d d}
||
 qW d|i}t| d|S )Nr!   r?   r   )r!   r@   r   rA   rB   z%H:%M:%SrC   )rD   rF   companyrG   z,att/outdoorscheduleplanner/scheduletext.htmlrH   r<   rI   ZdatesZinclockZoutclock)r   rD   rF   r<   r\   )r1   r/   r   r2   r3   r4   r   r   rK   rL   r8   rM   rE   rI   	ExceptionrO   rN   r   rP   rQ   r   )r   r   r!   rR   rS   r=   rV   rT   rU   rI   rX   rZ   rW   r   r   r   get_location_textpointer   sB    

r^   c          	   C   s0  ddl m} ddlm} | jj}|jj|dd}t	
|d d }i }xX|D ]P}y4|d r|d dkrv|d |d	< |d
 ||d < W qP tk
r   wPY qPX qPW |jjd|dd}| rt	
|d d }|d |d< |d |d< |d dkrd|d< n|d |d< nd|d< d|d< td|iS )Nr   )AttReportSetting)SystemSetting)r#   Zatt_itemZsymbolnameZreport_column_weekendZweekendZreport_colorZcompany_setting)ra   r#   valuerI   Zlogo_posZcompany_logo_pos0rC   Zcompany_logoZlogo_imgresult)mysite.att.modelsr_   Zmysite.base.modelsr`   r   Zcurrent_companyr2   r3   r4   rP   rQ   r]   existsr   )r   r_   r`   r#   r=   Z
color_datarZ   Zcompany_datar   r   r   color_report   s2    


rg   z^att_rule_page/$Zatt_settingatt_rule_page)ra   z^report_setting_page/$report_setting_pagez^calculation_view/$Zreportcalculation_viewz
^reports/$Zall_reportsz^calculate_progressbar/$z^calculate_revoke/$z^leaveCategory/$z^getShiftList/$z^getShiftDetail/$z^showShiftDetail/$z^get_break_time_list/$Zatt_breaktime_listz^app_report_data/$z^api/zmysite.att.api.urlsZbiotime_att_api)	namespacez^report/zmysite.att.report_routerz^attendance_display_view/$attendance_display_viewz^att_leavedetails/$z^getInOutTimes/$z^get_location/$zget_location_mappointer/$zget_location_textpointer/$zcolor_report/$z^get_verification_photo/$r   z^get_unregistered_user_photo/$r   )N)N)N)6rP   Zdjango.conf.urlsr   r   Zdjango.http.responser   r   Zdjango.template.responser   Zdjango.contrib.auth.viewsr   Zdjango.views.decorators.csrfr   Zdjango.utils.translationr	   r5   Z
mysite.attr
   Zmysite.admin.utilsr   re   r   r   r   r   Zmysite.personnel.modelsr   r   r   r   r   Z/mysite.att.views_folder.verification_photo_viewr   r   r   r9   r>   r[   r^   rg   rh   ri   rj   ZreportsZcalculate_progressbarZcalculate_revokeZget_leave_categoryZget_shift_listZget_shift_detailZshift_detailZbreaktime_listZgenerate_app_reportrl   Zurlpatternsr   r   r   r   <module>   sb   	J
8' 






