B
    b                 @   s
  d dl 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 d dlmZ d d	lmZmZmZmZmZmZ d d
lmZ d dlmZ d dl Z G dd dejZG dd dejZG dd deZG dd deZG dd dejZ G dd deZ!dS )    N)Q)render)gettext_lazy)db_const)formsZKModelAction)AdminRuntimeWarning)Overtime)OVERTIME_TYPEAPPLICATIONAUDIT_STATUSAUDIT_SUCCESSREFUSECANCEL_AUDIT_SUCCESS)Employee)Resignc               @   sh   e Zd ZejedddZejeddZejeddZ	ej
edded	Zejed
dejdZdS )AddOvertimeFormZovertime_field_employeeF)labelrequiredZovertime_field_startTime)r   Zovertime_field_endTimeZovertime_field_overtimeType   )r   initialchoicesZovertime_field_applyReason)r   r   
max_lengthN)__name__
__module____qualname__r   ZEmployeeManyToManyField_empZDateTimeField
start_timeend_timeChoiceFieldr
   overtime_type	TextFieldr   MAX_APPLY_REASONreason r%   r%   <G:\easytimepro\master/mysite/att\actions\overtime_actions.pyr      s   r   c               @   s6   e Zd ZejedeedZej	ede
jddZdS )ApproveFormZovertime_field_approvalState)r   r   r   Zovertime_field_approvalRemarkF)r   r   r   N)r   r   r   r   r    r   r   r   audit_statusr"   r   r#   audit_reasonr%   r%   r%   r&   r'   !   s   r'   c               @   s0   e Zd ZedZedZedZeZdd Z	dS )AddOvertimeZovertime_action_newZovertime_action_newDescriptionZovertime_action_newHelpTxtc             O   sT  ddl m} d}|dd }|dd }||krDtd}|rDt|| jjd}|r:t|dd }|d	d }	t	j
j|d
}
x|
D ]}|jr|jtj|d krtd| }qtj
j|dt|dt|dB ttdttdB }|rtd| }qt|tj|dtj|d||	d}|  qW ntd}|rPt|d S )Nr   )settings r   r   Z"leave_time_invalid_range_start_endemployeer!   r$   )Zid__inz%Y-%m-%d %H:%M:%SZ!leave_time_invalid_range_hiredate)r-   )Zstart_time__gt)Zend_time__lt)r(   Zovertime_time_overlap)r-   r   r   r!   Zapply_reasonZselect_employee)Zdjango.confr+   getr   r   requestPOSTZgetlistintr   objectsfilterZ	hire_datedatetimestrptimedater	   Zexcluder   r   r   save)selfargskwargsr+   messager   r   Zempsr!   r$   Z	employeesr   tmpobjr%   r%   r&   action-   s>    
zAddOvertime.actionN)
r   r   r   r   verbose_nameshort_descriptionhelp_txtr   action_formr>   r%   r%   r%   r&   r*   '   s
   r*   c               @   s4   e Zd ZdZedZedZedZeZ	dd Z
dS )OvertimeApproveTZatt_action_approvec             O   s   | j jd| j jddr0t| j | jddiS xP| jD ]F}|d |_t|d |_	| j j
j|_tj |_| j j
|_|  q8W d S )Npopupr,   
form_titleZovertime_approver)   r(   )r/   r0   r.   GETr   action_templater2   r)   r1   r(   userusernameapproverr4   now
audit_time_approve_userr7   )r8   r9   r:   r=   r%   r%   r&   r>   \   s    

zOvertimeApprove.actionN)r   r   r   batch_selectr   r?   rA   r@   r'   rB   r>   r%   r%   r%   r&   rC   U   s   rC   c               @   s   e Zd ZejedddZdS )
RevokeFormZrevoke_reasonT)r   r   N)r   r   r   r   r"   r   r)   r%   r%   r%   r&   rO   h   s   rO   c               @   s4   e Zd ZdZedZedZedZeZ	dd Z
dS )OvertimeRevokeTZatt_action_revokec             O   s   | j jd| j jddr0t| j | jddiS x`| jD ]V}|jtkr|d |_	t
|_| j jj|_tj |_| j j|_|  q8ttdq8W d S )NrD   r,   rE   Zovertime_revoker)   Z$only_approved_records_can_be_revoked)r/   r0   r.   rF   r   rG   r2   r(   r   r)   r   rH   rI   rJ   r4   rK   rL   rM   r7   r   r   )r8   r9   r:   r=   r%   r%   r&   r>   s   s    



zOvertimeRevoke.actionN)r   r   r   rN   r   r?   rA   r@   rO   rB   r>   r%   r%   r%   r&   rP   l   s   rP   )"r4   Zdjango.db.modelsr   Zdjango.shortcutsr   Zdjango.utils.translationr   r   Z
mysite.attr   Zmysite.adminr   r   Zmysite.admin.exceptionsr   Zmysite.att.modelsr	   Zmysite.att.models_choicesr
   r   r   r   r   r   Zmysite.personnel.modelsr   r   ZZKActionFormr   r'   r*   rC   rO   rP   r%   r%   r%   r&   <module>   s"    	.