a
    ¤Q•hÒ  ã                   @   sj   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jƒZ	G dd„ dejƒZ
G d	d
„ d
ejƒZdS )é    )Úmodels)ÚFornecedoresModels)Útimezone)ÚUserc                   @   s0   e Zd Zejddd�Zejddd�Zdd„ ZdS )ÚCategoriaInsumoéd   T)Ú
max_lengthÚunique©ÚblankÚnullc                 C   s   | j S ©N©Únome©Úself© r   ú+/var/www/sistema_ama/apps/estoque/models.pyÚ__str__
   s    zCategoriaInsumo.__str__N)	Ú__name__Ú
__module__Ú__qualname__r   Ú	CharFieldr   Ú	TextFieldÚ	descricaor   r   r   r   r   r      s   r   c                   @   s°   e Zd Zejdd�Zejeejdddd�Z	ej
ddd�Zejd	g d
¢d�Zejdddd�Zejddd�Zejeejddd�Zej
ddddd�Zejddd�Zdd„ Zdd„ ZdS )ÚItemEstoquer   )r   TZitens)Ú	on_deleter   r   Úrelated_nameé   é   ©Ú
max_digitsÚdecimal_placesé   ))ZkgZ	Kilograma)ÚlZLitros)ZunZUnidades©r   Úchoices)r   r   r   r
   )r   r   r   é
   é   )r!   r"   r   r   c                 C   s   | j S r   r   r   r   r   r   r       s    zItemEstoque.__str__c                 C   sN   |dkr|  j |7  _ n*|dkrB| j |kr:|  j |8  _ ntdƒ‚|  ¡  d S ©NÚentradaÚsaidau/   Quantidade insuficiente em estoque para saÃ­da.)Ú
quantidadeÚ
ValueErrorÚsave)r   r,   Útipor   r   r   Úatualizar_quantidade#   s    
z ItemEstoque.atualizar_quantidadeN)r   r   r   r   r   r   Ú
ForeignKeyr   ÚSET_NULLÚ	categoriaÚDecimalFieldr,   Úunidade_medidaZlocalizacaoÚ	DateFieldZdata_validader   Ú
fornecedorZcusto_unitarior   Znotasr   r0   r   r   r   r   r      s   þ	r   c                       s‚   e Zd ZdZejeejd�Zej	ddd�Z
ejded�Zejejd�Zejeejd	d
�Zejd	d	d�Zdd„ Z‡ fdd„Z‡  ZS )ÚMovimentacaoEstoque))r*   ZEntrada)r+   u   SaÃ­da)r   r   r   r    é   r%   )ÚdefaultT)r   r   r
   c                 C   s*   | j  ¡ › d| j› d| jj› d| jj› �S )Nz de ú )r/   Ú
capitalizer,   Úitemr5   r   r   r   r   r   r   <   s    zMovimentacaoEstoque.__str__c                    s€   | j d u rf| jdkr(| j j| j7  _n4| jdkr\| jj| jkrT| j j| j8  _ntdƒ‚| j ¡  tt| ƒj|i |¤Ž d S r)   )Úpkr/   r=   r,   r-   r.   Úsuperr8   )r   ÚargsÚkwargs©Ú	__class__r   r   r.   ?   s    



zMovimentacaoEstoque.save)r   r   r   ZTIPO_MOVIMENTACAOr   r1   r   ÚCASCADEr=   r4   r,   r   r/   ÚDateTimeFieldr   ÚnowÚdatar   r2   Zresponsavelr   Úobservacoesr   r.   Ú__classcell__r   r   rB   r   r8   /   s   r8   N)Ú	django.dbr   Zapps.fornecedores.modelsr   Údjango.utilsr   Údjango.contrib.auth.modelsr   ÚModelr   r   r8   r   r   r   r   Ú<module>   s   "