B
    ?bW                 @   s   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
 G dd dejZG dd	 d	ejZG d
d dejZG dd dejZdS )    )serializers)gettext_lazy)Leave)util_serializers)Employeec               @   s   e Zd ZejedddZejedd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 Ze Zejeddd
dZejeddZdd ZG dd dZdS )LeaveSerializerZemp_field_employeeCodezemployee.emp_code)labelsourceZemp_field_firstNamezemployee.first_nameZemp_field_lastNamezemployee.last_nameZstaff_leave_leaveCategoryzcategory.category_nameT)r   r	   Z
allow_nullZstaff_leave_leavesymbolzcategory.report_symbolZstaff_approval_approvalStateZget_audit_status_displayZleave_field_leavepayment_type)r   c             C   s"   |j }|dkrdS |dkrdS dS )Nr   z
Paid Leave   zUnpaid Leave )leave_payment_type)selfobjr    r   GG:\easytimepro\master/mysite/staff\api\serializers\leave_serializers.pyget_leave_payment   s    z!LeaveSerializer.get_leave_paymentc               @   sD   e Zd ZeZddddddddd	d
ddddddddddddddgZdS )zLeaveSerializer.Metaidemployeecategory
start_timeend_timeapply_reasonZ
apply_timeZaudit_reasonZ
audit_timeZapproval_levelZaudit_statuslast_approverworkflow_current_state_nameZapproveremp_code
first_name	last_namecategory_namecategory_symbolaudit_status_stringdaysleave_paymentleave_scheduleN)__name__
__module____qualname__r   modelfieldsr   r   r   r   Meta"   s   

r(   N)r#   r$   r%   r   Z	CharField_r   r   r   r   r   ZReadOnlyFieldr   r   r   ZSerializerMethodFieldr!   r   r(   r   r   r   r   r      s   

r   c               @   s"   e Zd Zdd ZG dd dZdS )LeaveCreateSerializerc             C   s4   | j d j}t|ts(tdtdi||d< |S )NZrequestZdetailZuser_not_a_employeer   )contextuser
isinstancer   r   ZValidationErrorr)   )r   Zattrsr,   r   r   r   validate/   s    
zLeaveCreateSerializer.validatec               @   s$   e Zd ZeZddddddddgZd	S )
zLeaveCreateSerializer.Metar   r   r   r   r    r   r"   Zleave_applied_dataN)r#   r$   r%   r   r&   r'   r   r   r   r   r(   8   s   r(   N)r#   r$   r%   r.   r(   r   r   r   r   r*   -   s   	r*   c               @   s   e Zd ZG dd dZdS )LeaveEditSerializerc               @   s"   e Zd ZeZdddddddgZdS )	zLeaveEditSerializer.Metar   r   r   r   r    r   r"   N)r#   r$   r%   r   r&   r'   r   r   r   r   r(   ?   s   r(   N)r#   r$   r%   r(   r   r   r   r   r/   >   s   r/   c               @   s   e Zd ZG dd dZdS )LeaveActionSerializerc               @   s   e Zd ZeZdZdS )zLeaveActionSerializer.Meta))deleter1   N)r#   r$   r%   r   r&   Zaction_type_choicesr   r   r   r   r(   F   s   r(   N)r#   r$   r%   r(   r   r   r   r   r0   E   s   r0   N)Zrest_frameworkr   Zdjango.utils.translationr   r)   Zmysite.att.models.model_leaver   Zmysite.staff.api.serializersr   Zmysite.personnel.modelsr   ZModelSerializerr   r*   r/   ZObjectActionSerializerr0   r   r   r   r   <module>   s   !