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mZ d dlmZ d dlmZ d d	lmZ G d
d dejZeejeddd Zeejeddd Zeejeddd ZdS )    N)models)signals)receiver)gettext_lazy)STATUS_RESIGN_PENDINGSTATUS_RESIGNSTATUS_VALID)db_const)ModelOneToOneFieldWithCast)Employeec               @   s"  e Zd ZeeeddeiejdZ	ej
edejjdZej
edejjdZejeddejd	d
Zejedejdd	dZejeddejd	d	dZedd Zedej_edd Zedej_edd Zedej_edd Zedej_edd Z ede j_G d d! d!Z!d"S )#ResignZresign_field_employeestatus)verbose_nameZlimit_choices_toZ	on_deleteZresign_field_resignDate)defaultZ$resign_field_reportGenerationEndDateZresign_field_resignType   T)r   r   choicesnullZ&resign_field_disableAttendanceFunctionF)r   r   r   r   Zresign_field_resignReason )r   r   Z
max_lengthr   Zblankc             C   s   | j jS )N)employeeemp_code)self r   =G:\easytimepro\master/mysite/personnel\models\model_resign.pyr   !   s    zResign.emp_codeZemp_field_employeeCodec             C   s   | j jS )N)r   
first_name)r   r   r   r   r   '   s    zResign.first_nameZemp_field_firstNamec             C   s   | j jS )N)r   	last_name)r   r   r   r   r   -   s    zResign.last_nameZemp_field_lastNamec             C   s
   | j jjS )N)r   
departmentZ	dept_name)r   r   r   r   r   3   s    zResign.departmentZemployee_field_departmentc             C   s
   | j jjS )N)r   positionZposition_name)r   r   r   r   r   9   s    zResign.positionZemployee_field_positionc               @   s"   e Zd ZejZedZeZdZ	dS )zResign.MetaZpsnl_model_resign)deleteZchangeviewN)
__name__
__module____qualname__r	   Z	APP_LABELZ	app_label_r   Zverbose_name_pluralZdefault_permissionsr   r   r   r   Meta?   s   r#   N)"r   r    r!   r
   r   r"   r   r   ZCASCADEr   Z	DateFielddatetimenowresign_datereport_generation_end_dateZIntegerFieldr	   Z	LEAVETYPEZresign_typeZBooleanFieldZDISABLE_ATT
disableattZ	CharFieldZMAX_RESIGN_REASONreasonpropertyr   fgetZshort_descriptionr   r   r   r   r#   r   r   r   r   r      s.   

r   )senderc             K   sL   ddl m} |jj}|r.|j|k r.|td|rH|j|k rH|tdd S )Nr   )AdminRuntimeWarningZemployee_Resign_date_validationZ.employee_Report_generation_end_date_validation)Zmysite.admin.exceptionsr-   r   	hire_dater&   r"   r'   )r,   instancekwargsr-   r.   r   r   r   pre_saveF   s    r1   c             K   s   ddl m} |j}|jdkrxd}tjt|jd}| tj	  k rVt
|_d}nt|_d|_|  |r|| n\tjt|jd}| tj	  k rt
|_tj	 |_d|_nt|_d|_|jdd d S )	Nr   )delete_user_from_all_device)TTrueFz%Y-%m-%dTr   )Zforce_update)Zmysite.core.commr2   r   r(   r$   strptimestrr&   dater%   r   r   r   Z
enable_attsaveZupdate_timeZ	enroll_sn)r,   r/   Zcreatedr0   r2   empZneed_delete_from_all_devicer&   r   r   r   update_employee_statusP   s*    

r9   c             K   s.   |j }|jtfkr|  nt|_|  d S )N)r   r   r   r   r   r7   )r,   r/   r0   r8   r   r   r   delete_employeem   s
    
r:   )r$   Z	django.dbr   Zdjango.db.modelsr   Zdjango.dispatch.dispatcherr   Zdjango.utils.translationr   r"   Zmysite.admin.modelsr   r   r   Zmysite.personnelr	   Zmysite.personnel.fieldsr
   Zmysite.personnel.modelsr   ZModelr   r1   Z	post_saver9   Zpost_deleter:   r   r   r   r   <module>   s   3
