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 fddZ fddZdd ZG dd dZ  ZS )OvertimeFormulaZovertimeFormula_field_name    )
max_lengthdefaultZ$overtimeFormula_field_overtime_level   )r   choicesZovertimeFormula_field_formulaZovertimeFormula_field_remarkT)r   r   ZnullZblankc                s   t | j\}}|s&td|ddgi| j}x(t|D ]\}}|dkr6ttdq6W tjj| j| j	j
dj| jd }|rttdtt| jf | d S )	Nformula)messagecodez@#$%^&!~z.formula_should_not_contain_special_character's)nameZ
company_id)pkZ3over_time_formula_with_the_same_name_already_exists)r   r   r   	enumerate_r   Zobjectsfilterr   ZcompanyidZexcluder   existssupersave)selfargsresmsgZfrmlaivZovertime_name)	__class__ EG:\easytimepro\master/mysite/payroll\models\model_overtime_formula.pyr   !   s    $zOvertimeFormula.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#   )strZemployee).0r    r#   r#   r$   
<listcomp>2   s    z*OvertimeFormula.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OvertimeFormula.deletec             C   s2   | j r(dtj| j d  d t| jf S t| jS )Nz%s|%sr   )overtime_levelcOVERTIME_LEVELr&   r   )r   r#   r#   r$   __str__7   s    "zOvertimeFormula.__str__c               @   s   e Zd ZdZedZeZdS )zOvertimeFormula.MetaZpayrollZpayroll_model_overtimeFormulaN)__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   