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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 )DeductionFormulaZdeductionFormula_field_name    )
max_lengthdefaultZdeductionFormula_field_formulaZdeductionFormula_field_remarkT)r   r   ZnullZblankc             C   s
   t | jS )N)strname)self r   FG:\easytimepro\master/mysite/payroll\models\model_deduction_formula.py__str__   s    zDeductionFormula.__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)pkZ3deduction_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deduction_name)	__class__r   r   r       s    $zDeductionFormula.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>0   s    z+DeductionFormula.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DeductionFormula.deletec               @   s   e Zd ZdZedZeZdS )zDeductionFormula.MetaZpayrollZpayroll_model_deductionFormulaN)__name__
__module____qualname__Z	app_labelr   Zverbose_nameZverbose_name_pluralr   r   r   r   Meta5   s   r/   )r,   r-   r.   r   Z	CharFieldr   r   cZMAX_LENTH_FORMULAr   Z	TextFieldZMAX_LENTH_REMARKZremarkr   r   r+   r/   __classcell__r   r   )r$   r   r      s   
r   N)Z	django.dbr   Zdjango.utils.translationr   r   Zmysite.payroll.utilsr   Zmysite.payrollr   r0   Zmysite.admin.exceptionsr   Z!mysite.admin.abstract_cloud_modelr   r   r   r   r   r   <module>   s   