B
    bN                 @   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 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)render)gettext_lazy)Q)db_const)formsZKModelAction)AdminRuntimeWarning)	ManualLog)PUNCH_STATESAPPLICATIONAUDIT_STATUSAUDIT_SUCCESSREFUSECANCEL_AUDIT_SUCCESS)Employeec               @   sj   e Zd ZejedddZejeddZej	ede
dZejeddd	d
Zejeddejd
ZdS )AddManualLogFormZmanualLog_field_employeeF)labelrequiredZmanualLog_field_punchTime)r   ZmanualLog_field_punchState)r   choicesZmanualLog_field_workCode
   )r   r   
max_lengthZmanualLog_field_applyReasonN)__name__
__module____qualname__r   ZEmployeeManyToManyField_empZDateTimeField
punch_timeChoiceFieldr
   punch_stateZ	CharField	work_code	TextFieldr   MAX_APPLY_REASONreason r#   r#   =G:\easytimepro\master/mysite/att\actions\manuallog_actions.pyr      s   r   c               @   s6   e Zd ZejedeedZej	edde
jdZdS )ApproveFormZmanualLog_field_approvalState)r   initialr   ZmanualLog_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 )AddManualLogZmanualLog_Action_newZmanualLog_Action_newDescriptionZmanualLog_Action_newHelpTxtc          	   O   sN  ddl m} ddlm} d}| jjd}| jj}|r4|dd }|dd }	|dd }
|d	d }t	j	
 t	j	|d
k rtd}ntjj|d}x|D ]}|jr|jt	j	|d
 krtd| }qtjj||dttdttdB }|rtd| }qt|t	j	|d
|	|
|d d}|  qW ntd}|rJt|d S )Nr   )settings)save_to_transaction employeer   r   r   r"   z%Y-%m-%d %H:%M:%SZmanual_log_time_greater_now)Zid__inZ"leave_time_invalid_range_hire_date)r-   r   )r'   Zmanual_log_repeat)r-   r   r   r   Zapply_reason
audit_timeZselect_employee)Zdjango.confr*   Z!mysite.att.models.model_manuallogr+   requestPOSTZgetlistusergetdatetimenowstrptimer   r   objectsfilterZ	hire_datedater	   Zexcluder   r   r   saver   )selfargskwargsr*   r+   messageZempsZ	requestorr   r   r   r"   Z	employeesr   tmpobjr#   r#   r$   action,   s>    

	zAddManualLog.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 )ManualLogApproveTZ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manuallog_approver(   r'   )r/   r0   r2   GETr   action_templater6   r(   intr'   r1   usernameapproverr3   r4   r.   _approve_userr9   )r:   r;   r<   r?   r#   r#   r$   r@   c   s    

zManualLogApprove.actionN)r   r   r   batch_selectr   rA   rC   rB   r%   rD   r@   r#   r#   r#   r$   rE   \   s   rE   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   o   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 )ManualLogRevokeTZ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 )NrF   r,   rG   Zmanuallog_revoker(   Z$only_approved_records_can_be_revoked)r/   r0   r2   rH   r   rI   r6   r'   r   r(   r   r1   rK   rL   r3   r4   r.   rM   r9   r   r   )r:   r;   r<   r?   r#   r#   r$   r@   z   s    



zManualLogRevoke.actionN)r   r   r   rN   r   rA   rC   rB   rO   rD   r@   r#   r#   r#   r$   rP   s   s   rP   )!r3   Zdjango.shortcutsr   Zdjango.utils.translationr   r   Zdjango.db.modelsr   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   ZZKActionFormr   r%   r)   rE   rO   rP   r#   r#   r#   r$   <module>   s    	6