B
    ObU	                 @   sh   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Zd
S )    )models)gettext_lazy)check_formula)db_const)AdminRuntimeWarning)LeaveCategory)AbstractCloudc                   s   e Zd ZejeddddZejeedej	dZ
ejedejddZejeddejd	d	d
Zdd Z fddZ fddZedd ZG dd dZ  ZS )LeaveFormulaZleaveFormula_field_name    )
max_lengthdefaultZleaveFormula_field_category)verbose_nameZ	on_deleteZleaveFormula_field_formulaZleaveFormula_field_remarkT)r   r   ZnullZblankc             C   s$   | j rd| j t| jf S t| jS )Nz%s|%s)categorystrname)self r   BG:\easytimepro\master/mysite/payroll\models\model_leave_formula.py__str__   s    zLeaveFormula.__str__c                s   | j }x(t|D ]\}}|dkrttdqW t| j \}}|sVtd|ddgitjj| j| j	j
dj| jd }|rttdtt| jf | d S )	Nz@#$%^&!~z.formula_should_not_contain_special_character'sformula)messagecode)r   Z
company_id)pkZ/leave_formula_with_the_same_name_already_exists)r   	enumerater   _r   r	   Zobjectsfilterr   ZcompanyidZexcluder   existssupersave)r   argsZfrmlaivresmsgZ
leave_name)	__class__r   r   r!      s    $zLeaveFormula.savec                sT   | j  }| r>ddd |D }ttd| j|d tt| j	f | d S )N,c             S   s   g | ]}t |jqS r   )r   Zemployee).0r#   r   r   r   
<listcomp>.   s    z'LeaveFormula.delete.<locals>.<listcomp>z6%(obj)s_is_already_used_in_%(objs)s_and_can_not_delete)objZobjs)
Zsalarystructure_setallr   joinr   r   r   r    r	   delete)r   r"   Zobj_setZemps)r'   r   r   r.   +   s    
zLeaveFormula.deletec             C   s   | j jS )N)r   category_name)r   r   r   r   r/   3   s    zLeaveFormula.category_namec               @   s   e Zd ZdZedZeZdS )zLeaveFormula.MetaZpayrollZpayroll_model_leaveFormulaN)__name__
__module____qualname__Z	app_labelr   r   Zverbose_name_pluralr   r   r   r   Meta7   s   r3   )r0   r1   r2   r   Z	CharFieldr   r   Z
ForeignKeyr   ZCASCADEr   cZMAX_LENTH_FORMULAr   Z	TextFieldZMAX_LENTH_REMARKZremarkr   r!   r.   propertyr/   r3   __classcell__r   r   )r'   r   r	      s   
r	   N)Z	django.dbr   Zdjango.utils.translationr   r   Zmysite.payroll.utilsr   Zmysite.payrollr   r4   Zmysite.admin.exceptionsr   Z%mysite.att.models.model_leavecategoryr   Z!mysite.admin.abstract_cloud_modelr   r	   r   r   r   r   <module>   s   