a
    ¤Q•hÓ  ã                   @   sd   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
 eƒ ZG dd„ dejƒZd	S )
é    )Úmodels)Údatetime)Úget_user_model)ÚEspecies)ÚSum)Útimezonec                       s  e Zd Zg d¢ZdZdZdZedfedfedfgZej	e
ejddd	�Zejd
edd�Zejdddd�Zejddd�Zejddd�Zej	eejddd	�Zejejddd�Zejejddd�Zejdeed�Zejdd�Ze ¡ Z dd„ Z!‡ fdd„Z"e#dd„ ƒZ$e#dd„ ƒZ%e#dd„ ƒZ&‡  Z'S )ÚMetasModels))Ú	semeaduraÚ	Semeadura)ÚrepiqueÚRepique)Úselecao_estufau   SeleÃ§Ã£o/EstufaZem_andamentoZfinalizada_completaZfinalizada_incompletazEm andamentozFinalizada completazFinalizada incompletaF)Ú	on_deleteÚnullÚblanké2   r	   )Ú
max_lengthÚchoicesÚdefaultr   )r   r   r   )r   r   Té   )r   c                 C   s   d| j › d| jj› �S )Nz[Meta: z] )Ú	tipo_metaÚespecieÚnome_popular©Úself© r   ú)/var/www/sistema_ama/apps/metas/models.pyÚ__str__3   s    zMetasModels.__str__c                    s~   t  ¡ | _t  ¡  ¡ }| j|  kr.| jkr<n n
| j| _n,|| jkr`| jrV| j	| _qh| j
| _n| j| _tƒ j|i |¤Ž d S ©N)r   ÚnowÚdata_atualizacaoÚdateÚdata_inicialÚ
data_finalÚSTATUS_EM_ANDAMENTOÚstatusÚmeta_atingidaÚSTATUS_FINALIZADA_COMPLETAÚSTATUS_FINALIZADA_INCOMPLETAÚsuperÚsave)r   ÚargsÚkwargsZhoje©Ú	__class__r   r   r*   6   s    




zMetasModels.savec                 C   sò   ddl m} | jdkrVddlm} |jj| j| j| j	d�j
tdƒd�}|d pT|d	ƒS | jd
kr ddlm} |jj| j| j| j	d�j
tdƒd�}|d pž|d	ƒS | jdkrêddlm} |jj| j| j| j	d�j
tdƒd�}|d pè|d	ƒS dS dS )u°   
        Soma a quantidade feita no perÃ­odo, variando conforme tipo_meta:
          - semeadura -> soma Semeadura
          - repique -> soma Repique
          - etc.
        r   )ÚDecimalr	   )r
   )Zlote__especieZdata_semeia__gteZdata_semeia__lteÚqtd_sementes_utilizada)Útotalr1   Ú0r   )r   )Úsemeadura__lote__especieZdata_repique__gteZdata_repique__lteÚquantidade_repicadar   )ÚSelecao)r3   Zdata_selecao__gteZdata_selecao__lteÚquantidade_selecaoN)Údecimalr/   r   Zapps.lotes.modelsr
   ÚobjectsÚfilterr   r"   r#   Ú	aggregater   Zapps.repique.modelsr   Zapps.estufa.modelsr5   )r   r/   r
   Úqsr   r5   r   r   r   Úquantidade_acumuladaJ   s@    
ýü
ýü
ýüz MetasModels.quantidade_acumuladac                 C   s   | j | jkS r   )r<   Ú
quantidader   r   r   r   r&   s   s    zMetasModels.meta_atingidac                 C   s$   | j dkrdS t| j| j  d dƒS )Nr   éd   é   )r=   Úroundr<   r   r   r   r   Úpercentual_cumpridow   s    
zMetasModels.percentual_cumprido)(Ú__name__Ú
__module__Ú__qualname__ZTIPO_META_CHOICESr$   r'   r(   ZSTATUS_CHOICESr   Ú
ForeignKeyr   ÚCASCADEr   Ú	CharFieldr   ÚPositiveIntegerFieldr=   Ú	DateFieldr"   r#   ÚUserÚSET_NULLZ
criado_porÚDateTimeFieldr   r   Údata_criacaor    r%   ÚBooleanFieldÚ
finalizadoÚManagerr8   r   r*   Úpropertyr<   r&   rA   Ú__classcell__r   r   r-   r   r      s>   ýý
(
r   N)Ú	django.dbr   r   Údjango.contrib.authr   Zapps.especies.modelsr   Údjango.db.modelsr   Údjango.utilsr   rJ   ÚModelr   r   r   r   r   Ú<module>   s   