a
    ;Xh                     @   sB   d dl mZ d dlmZ d dlZd dlmZ G dd dejZdS )    )forms)ValidationErrorN)Funcionarioc                   @   s   e Zd ZejddZejdejddddddd	Zejd
dejdddddddZ	ejddejdddddddZ
ejddejdddddddZG dd dZdd Zdd Zdd Zdd Zdd Zdd  Zd!S )"FuncionarioFormF)required   form-controlz000.000.000-00classplaceholderz	data-maskattrsZCPF)
max_lengthwidgetlabel	   z	00000-000ZCEP)r   r   r   r   z(00) 0000-0000ZTelefone   z(00) 00000-0000ZCelularc                   @   s   e Zd ZeZdgZejddddejddddd	ejdd
d
ddej	ddidej	ddidejddddejddddejddddej	ddidej
ddddejddddejddddd	ejddddej	ddiddZdS )zFuncionarioForm.Metacargor   zNome Completo)r
   r   r   z%Y-%m-%ddate)r
   type)formatr   z00.000.000-0r	   r
   zform-selectu	   EndereçoZBairroZCidadezemail@exemplo.comZDepartamentou   Salário)nome_completodata_nascimentorggeneroestado_civilenderecobairrocidadeestadoemaildepartamentodata_admissaosalariotipo_contratoN)__name__
__module____qualname__r   modelexcluder   	TextInput	DateInputSelect
EmailInputNumberInputwidgets r0   r0   :/var/www/viveiro_mudafortebrasil/apps/funcionario/forms.pyMeta4   s"   r2   c                 C   sD   | j d}tdd|}t|dkr.td| |s@td|S )Ncpf[^0-9]    u'   CPF inválido. Deve conter 11 dígitos.u   CPF inválido.)cleaned_datagetresublenr   validar_cpf)selfr3   r0   r0   r1   	clean_cpfI   s    
zFuncionarioForm.clean_cpfc                 C   s6   | j d}|r2tdd|}t|dkr2td|S )Ncepr4   r5      u&   CEP inválido. Deve conter 8 dígitos.r7   r8   r9   r:   r;   r   )r=   r?   r0   r0   r1   	clean_cepR   s    zFuncionarioForm.clean_cepc                 C   s6   | j d}|r2tdd|}t|dkr2td|S )Nr   r4   r5      u   RG inválido.rA   )r=   r   r0   r0   r1   clean_rgZ   s    zFuncionarioForm.clean_rgc                 C   s6   | j d}|r2tdd|}t|dkr2td|S )Ntelefoner4   r5   
   u,   Telefone inválido. Deve conter 10 dígitos.rA   )r=   rE   r0   r0   r1   clean_telefoneb   s    zFuncionarioForm.clean_telefonec                 C   s6   | j d}|r2tdd|}t|dkr2td|S )Ncelularr4   r5   r6   u+   Celular inválido. Deve conter 11 dígitos.rA   )r=   rH   r0   r0   r1   clean_celularj   s    zFuncionarioForm.clean_celularc                    sv   t  dks  d d kr dS tddD ]Ft fddtD }|d d d }|t  kr* dS q*dS )	Nr6   r   Fr   c                 3   s&   | ]}t  | d  |  V  qdS )   N)int).0jr3   ir0   r1   	<genexpr>       z.FuncionarioForm.validar_cpf.<locals>.<genexpr>rF   T)r;   rangesumrK   )r=   r3   ZsomaZdigitor0   rN   r1   r<   |   s    zFuncionarioForm.validar_cpfN)r%   r&   r'   r   
ImageFieldfoto	CharFieldr*   r3   r?   rE   rH   r2   r>   rB   rD   rG   rI   r<   r0   r0   r0   r1   r      s^   
	r   )	djangor   django.core.exceptionsr   r9   apps.funcionario.modelsr   	ModelFormr   r0   r0   r0   r1   <module>   s   