B
    b                 @   s   d dl mZmZ d dlmZmZ d dl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mZ G d	d
 d
ejZG dd deje
ZdS )    )gettext_lazyactivate)mixinsserializers)NoneSerializer)ReportUtilGenericViewSetReportGenericFilter)PayloadBase)Q)
C_ATT_RULE)STATUS_VALIDSTATUS_RESIGN_PENDINGc               @   s  e Zd ZejedddZejeddddZejedd	ddZejed
dddZ	ejeddddZ
ejeddddZejeddddZejeddddZejeddddZejeddddZejeddddZejeddddZejeddddZejeddddZejed d!ddZejed"d#ddZejed$d%ddZejed&d'ddZejed(d)ddZejed*d+ddZejed,d-ddZG d.d/ d/Zd0S )1AbsentReportSerializerZreport_column_empCodezemp.emp_code)labelsourceZreport_column_firstNamezemp.first_nameT)r   r   Z
allow_nullZreport_column_lastNamezemp.last_nameZemp_field_localizedNamezemp.nicknameZreport_column_genderzemp.get_gender_displayZdepartment_field_codezemp.department.dept_codeZemployee_field_departmentzemp.department.dept_nameZposition_field_codezemp.position.position_codeZemployee_field_positionzemp.position.position_nameZreport_column_timeIntervalNameztimetable.aliasZreport_column_attendanceWeekdayZget_weekday_displayZreport_column_checkInTimeZget_check_in_displayZreport_column_checkOutTimeZget_check_out_displayZreport_column_clockInTimeZget_clock_in_displayZreport_column_clockOutTimeZget_clock_out_displayZreport_column_absentDurationZget_absent_displayreport_column_lateDurationZget_late_display report_column_earlyLeaveDurationZget_early_leave_displayZreport_column_attendanceDateZget_att_date_displayZreport_column_totalTimeDurationZget_total_time_displayZStatusZdisplay_absentc               @   s   e Zd ZeZdZdS )zAbsentReportSerializer.Meta)Zuuidemp_code
first_name	last_name	nick_namegender	dept_name	dept_codeposition_codeposition_namer   r   att_dateweekdaystatus	timetablecheck_in	check_outclock_in	clock_out
total_timelateearly_leaveabsentN)__name__
__module____qualname__r	   modelZfields r,   r,   @G:\easytimepro\master/mysite/att\api\views\view_report_absent.pyMeta8   s   r.   N)r(   r)   r*   r   Z	CharField_r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r'   r%   r&   r   r$   r   r.   r,   r,   r,   r-   r      sJ   r   c                   sr   e Zd ZeZejjdd dZ	e
ZdZeedZededdZd	gZd
d Zdd Z fddZ  ZS )AbsentReportViewSetr   )Z
absent__gtr   )r$   r%   r&   r'   )listZexportr   r   )r%   r&   ZRemarksc             C   s   | j | jtS )N)serializer_dictgetactionr   )selfr,   r,   r-   get_serializer_classT   s    z(AbsentReportViewSet.get_serializer_classc             C   s   t d tdS )NZenzAbsent Report)r   r/   )r5   r,   r,   r-   get_file_titleX   s    z"AbsentReportViewSet.get_file_titlec                s   | j jj}d|i}tt|  jf |}| j jjs| j jj}| j jj	}| j jj
}| rh|j| d}| r|j| d }| r|j| d}tt|d}|dkr|ttdtd dB ttdB }|S )NZemp__company_id)Zemp__department__in)Zemp__area__in)Zemp__position__in
resign_emp0)Zemp__status)ZrequestuserZcurrent_companysuperr0   get_querysetfilterZis_superuserZget_auth_deptZget_auth_areaZget_auth_posexistsallZdistinctstrr   r3   r
   r   r   )r5   Z
company_idZbase_filterquerysetZ	auth_deptZ	auth_areaZauth_posr8   )	__class__r,   r-   r<   \   s$    




 z AbsentReportViewSet.get_queryset)r(   r)   r*   r	   r+   Zobjectsr=   Zselect_relatedZorder_byrA   r   Zfilter_classZsummary_fieldsr   r2   r/   Zextra_headers_translation_dictZexport_headers_pror6   r7   r<   __classcell__r,   r,   )rB   r-   r0   A   s   r0   N)Zdjango.utils.translationr   r/   r   Zrest_frameworkr   r   Zmysite.att.api.serializersr   Zmysite.att.api.utils_classr   r   Zmysite.att.modelsr	   Zdjango.db.modelsr
   Zmysite.att.global_cacher   Zmysite.admin.modelsr   r   ZModelSerializerr   ZListModelMixinr0   r,   r,   r,   r-   <module>   s   /