B
    b
                 @   s\   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)AbstractCloudc                   s   e Zd ZejeddddZejed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G dd dZ  ZS )ExceptionFormulaZexceptionFormula_field_name    )
max_lengthdefaultZ%exceptionFormula_field_exception_type   )r   choicesZexceptionFormula_field_formulaZexceptionFormula_field_remarkT)r   r   ZnullZblankc             C   s2   | j r(dtj| j d  d t| jf S t| jS )Nz%s|%sr   )exception_typecEXCEPTION_TYPEstrname)self r   FG:\easytimepro\master/mysite/payroll\models\model_exception_formula.py__str__    s    "zExceptionFormula.__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)pkZ3exception_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exception_name)	__class__r   r   r#   %   s    $zExceptionFormula.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>5   s    z+ExceptionFormula.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   r0   2   s    
zExceptionFormula.deletec               @   s   e Zd ZdZedZeZdS )zExceptionFormula.MetaZpayrollZpayroll_model_exceptionFormulaN)__name__
__module____qualname__Z	app_labelr   Zverbose_nameZverbose_name_pluralr   r   r   r   Meta:   s   r4   )r1   r2   r3   r   Z	CharFieldr   r   ZSmallIntegerFieldr   r   r   ZMAX_LENTH_FORMULAr   Z	TextFieldZMAX_LENTH_REMARKZremarkr   r#   r0   r4   __classcell__r   r   )r)   r   r      s    

r   N)Z	django.dbr   Zdjango.utils.translationr   r   Zmysite.payroll.utilsr   Zmysite.payrollr   r   Zmysite.admin.exceptionsr   Z!mysite.admin.abstract_cloud_modelr   r   r   r   r   r   <module>   s   