a
    Qh                     @   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 )CategoriaInsumod   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   "