B
    b                 @   s   d dl Z d dl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 d dlmZ G d	d
 d
eZG dd de	ZdS )    N)gettext_lazy)	ModelForm)formsZKModelAction)Employee)LeaveSchedule)LeaveCategoryLeaveSettings)AdminRuntimeWarningc               @   s,   e Zd ZejedddZG dd dZdS )AddLeaveScheduleFormZleave_field_employeeF)labelrequiredc               @   s   e Zd ZeZdZdS )zAddLeaveScheduleForm.Meta__all__N)__name__
__module____qualname__r   ZmodelZfields r   r   AG:\easytimepro\master/mysite/att\actions\leaveschedule_actions.pyMeta   s   r   N)r   r   r   r   ZEmployeeManyToManyField_empr   r   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 )AddLeaveScheduleZleaveSchedule_action_addZ#leaveSchedule_action_addDescriptionZleaveSchedule_action_addHelpTxtc             O   sd  d}| j jd}i }i }tj j| j jjd	 }d}d}	x|D ]}
| j j
|
d rt| j j
|
d ||
d < ||
d  d dkrttd|
d  |t| j j
|
d 7 }nd||
d < | j j
|
d d	 rPt| j j
|
d d	 ||
d < ||
d  d dkr0ttd|
d  |	t| j j
|
d d	 7 }	qFd||
d < qFW |rJtjj|d
}x|D ]}tjj|d	dd}|r|d d }||krttd|j |	|d d krttd|j nttd|j tjj|d}|r ttd|j t|t|t|d}|  qzW ntd}|r`t|d S )N employee)Zcompanyr   Zcategory_nameg      ?g        Z!att_leave_schedule_category_limitm)Zid__in)Zemployee_idZdaysZmax_leave_per_monthZ.att_leave_allotted_and_schedule_count_mismatchZ6att_monthly_leave_allotted_and_schedule_count_mismatchZatt_leave_settings_validation)r   Z#att_leave_schedule_exist_validation)r   leave_detailsmonthly_leave_detailsZselect_employee)ZrequestZPOSTZgetlistr   ZobjectsallfilteruserZcurrent_companyvaluesgetfloatr
   r   r   r	   Zemp_codeZ
first_namer   jsondumpsZsave)selfargskwargsmessageZempsr   r   Z
leave_typeZallowed_leavesZmonthly_allowed_leavesxZ	employeesr   Zleave_settings_detailsZtotal_allowed_leavesZemployee_dataobjr   r   r   action!   sN    " 

zAddLeaveSchedule.actionN)
r   r   r   r   Zverbose_nameZshort_descriptionZhelp_txtr   Zaction_formr+   r   r   r   r   r      s
   r   )Zdatetimer#   Zdjango.utils.translationr   r   Zdjango.formsr   Zmysite.adminr   r   Zmysite.personnel.modelsr   Zmysite.att.modelsr   r   r	   Zmysite.admin.exceptionsr
   r   r   r   r   r   r   <module>   s   