B
    b@
                 @   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
 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)	force_str)gettext_lazy)Overtime)util_serializers)Employee)OVERTIME_TYPEc               @   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	Z
e Ze Zejed
dddZdd ZG dd dZdS )OvertimeSerializerZemp_field_employeeCodezemployee.emp_code)labelsourceZemp_field_firstNamezemployee.first_nameZemp_field_lastNamezemployee.last_nameZstaff_overtime_overtimeType)r
   Zstaff_approval_approvalStateZget_audit_status_displayT)r
   r   Z
allow_nullc             C   s.   x&t D ]}|d |jkrt|d S qW |jS )Nr      )r   overtime_typer   )selfobjs r   JG:\easytimepro\master/mysite/staff\api\serializers\overtime_serializers.pyget_overtime_type_name   s    
z)OvertimeSerializer.get_overtime_type_namec               @   s<   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gZdS )zOvertimeSerializer.Metaidemployeeovertime_type_namer   
start_timeend_timeapply_reasonZ
apply_timeZaudit_reasonZ
audit_timeZapproval_levelZaudit_user_idlast_approverZaudit_statusworkflow_current_state_nameZapproveremp_code
first_name	last_nameaudit_status_stringN)__name__
__module____qualname__r   modelfieldsr   r   r   r   Meta   s
   r%   N)r    r!   r"   r   Z	CharField_r   r   r   ZSerializerMethodFieldr   ZReadOnlyFieldr   r   r   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 )OvertimeCreateSerializerc             C   s0   | j d j}t|ts$tddi||d< |S )NZrequestZdetailzUser not a Employeer   )contextuser
isinstancer   r   ZValidationError)r   Zattrsr)   r   r   r   validate'   s    

z!OvertimeCreateSerializer.validatec               @   s   e Zd ZeZddddgZdS )zOvertimeCreateSerializer.Metar   r   r   r   N)r    r!   r"   r   r#   r$   r   r   r   r   r%   0   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 )OvertimeEditSerializerc               @   s   e Zd ZeZddddgZdS )zOvertimeEditSerializer.Metar   r   r   r   N)r    r!   r"   r   r#   r$   r   r   r   r   r%   6   s   r%   N)r    r!   r"   r%   r   r   r   r   r,   5   s   r,   c               @   s   e Zd ZG dd dZdS )OvertimeActionSerializerc               @   s   e Zd ZeZdZdS )zOvertimeActionSerializer.Meta))deleter.   N)r    r!   r"   r   r#   Zaction_type_choicesr   r   r   r   r%   <   s   r%   N)r    r!   r"   r%   r   r   r   r   r-   ;   s   r-   N)Zrest_frameworkr   Zdjango.utils.encodingr   Zdjango.utils.translationr   r&   Z mysite.att.models.model_overtimer   Zmysite.staff.api.serializersr   Zmysite.personnel.modelsr   Zmysite.att.models_choicesr   ZModelSerializerr	   r'   r,   ZObjectActionSerializerr-   r   r   r   r   <module>   s   