a
    ¤Q•hÛ=  ã                   @   s„  d dl mZ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 d dlmZ d dlmZ d d	lmZ d d
lmZmZmZ d dlmZ d dlmZ d dlmZmZ d dlmZ d dlZd dl Z d dlm!Z!mZm"Z"m#Z#m$Z$ d dl%m&Z&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, d dl-m.Z. d dlZd dl/m0Z0 d dl(m)Z) dd„ Z1edd„ ƒZ2dd„ Z3dd„ Z4dS ) é    )ÚrenderÚredirect)Ú
LoginForms)Úauth)Úlogin_required)Úmessages)Úget_user_info)ÚHttpResponseForbidden)ÚEspecies)ÚCadastroLote)ÚSumÚFÚ	functions)ÚEstufa)ÚRepique)ÚSaidasEspeciesÚSaidas)ÚExtractMonthN)ÚCountr   ÚCaseÚWhenÚBooleanField)Ú	ProtocoloÚProtocoloSemeadura)r   )ÚUsuarioFuncionario)Úget_object_or_404)ÚMetasModels)Ú	MetasForm)Únowc                 C   s´   t ƒ }| jdkr¤t | jƒ}| ¡ r¤|d  ¡ }|d  ¡ }tj| ||d�}|d ur�t | |¡ tt	|d�j
}t | d|j› d�¡ td|jd	�S t | d
¡ tdƒS t| dd|iƒS )NÚPOSTÚnome_usuarioÚsenha)ÚusernameÚpassword©ÚusuariozBem-vindo, ú!Údashboard_one©Úuser_idz)Login falhou. Verifique suas credenciais.Úloginzdashboard/login.htmlÚform)r   Úmethodr   Úis_validÚvaluer   Úauthenticater*   r   r   Úfuncionarior   ÚsuccessÚnome_completor   ÚidÚerrorr   )Úrequestr+   r    r!   r%   r0   © r6   ú,/var/www/sistema_ama/apps/dashboard/views.pyr*      s.    

ÿÿÿÿr*   c           A       C   sÜ  | j j|krtdƒS tj dd¡jdd�}i }d}dgd }|D ]z}|jj}||vrŽ|jjdkrj|jj	j
n|jjj}|jj|jjd|d	œ||< |jrš|jnd}	|| d
  |	7  < ||	7 }q@|jjrâ|jjjd }
||
  |	7  < t| ¡ ƒ}tj ¡ j}tjjd|d�jtdƒd� d¡jtdƒd� d¡}dgd }|D ]"}|d d }t|d ƒ||< �q<tj ¡  d¡d d… }tj ¡ }tjjdd� d¡d d… }tjjdd� d¡d d… }| dd¡jtdƒd� d¡d d… }tj ¡ }|jt t!ddd�dt"ƒ d�d�jdd� d ¡d d… }|jt t!ddd�dt"ƒ d�d�jdd� d ¡d d… }| dd¡jtdƒd!� d"¡d d… }t#j ¡ }t#jjdd� d#¡d d… }t#jjdd� d#¡d d… }| dd¡jtd$ƒd%� d&¡d d… }t$||d' d(ƒ}g }|D ]”} tjj| d)�j%tdƒd*�d+ �p"d}!tjjd| d�j%tdƒd*�d+ �pHd}"t#jj| d,�j%td$ƒd*�d+ �pld}#| &| t|!ƒt|"ƒt|#ƒd-œ¡ �qütjj|d)�jtd.ƒd� d¡jtdƒd/� d¡}$dgd }%|$D ]}&t|&d0 ƒ|%|&d d < �qÒtjj|dd1�jtd2ƒd� d¡jtdƒd3� d¡}'d4gd }(|'D ]4})|)d d }|)d5 d u�r^t'|)d5 ƒnd4|(|< �q4tj %td6ƒ¡d7 }*|*d u�r�t'|*ƒnd}+t#j %td$ƒ¡d8 },|,d u�r¾tt'|,ƒƒnd}-tj %tdƒ¡d9 }.|.d u�rìtt'|.ƒƒnd}/tj %tdƒ¡d: }0|0d u�rtt'|0ƒƒnd}1t(|d;�}2t)j *¡ }3t)j ¡  d<¡d d… }4tj *¡ }5tj ¡  d<¡d d… }6t+ƒ  ¡ }7t,jj| j dd=� d>¡}8|8d d?… }9g }:|9D ]Î};|;j-|7k �rÆ|;j.�rÀd@}<ndA}<ndB}<|;j/dk�rò|;j0|;j/ dC }=t1|=dCƒ}=nd}=|;j2�r8zt3jj4|;j2dD�}>|>j5j
}?W n t3j6�y4   dE}?Y n0 ndE}?|: &|;j7j8|; 9¡ |;j:|;j-|;j/|;j0|<t|=ƒ|?dFœ	¡ �q¢|8 *¡ }@t;| dG|2||3|4|5|6|+|-|/|1t< =|%¡t< =|¡||||||||||| ¡ |t< =|(¡t< =|¡|:|@dHœƒS )INu3   VocÃª nÃ£o tem permissÃ£o para acessar este perfil.Ú	protocoloÚ	semeaduraT)Úprotocolo__finalizador   é   r   )Únumero_protocoloÚdata_saida_protocoloÚquantidade_mudasÚcliente_nomer>   é   )r:   Z%protocolo__data_saida_protocolo__yearZprotocolo__data_saida_protocolo)ÚmesrA   Úqtd_especie)Útotal_mudasrC   z-entrada_sementes_kgé
   F)Ú
finalizadoz-quantidade_repicadaZ&semeadura__lote__especie__nome_popularZ"semeadura__lote__especie__especiesÚquantidade_repicada)Ztotal_mudas_produzidasz-total_mudas_produzidas)Zdata_venda__isnullÚthen)ÚdefaultÚoutput_field)Ztem_data_vendaz-qtd_especie)Útotal_vendasz-total_vendasz-quantidade_mortalidadeÚquantidade_mortalidade)Útotal_mortalidadez-total_mortalidadeé   éÿÿÿÿ)Zdata_repique__year)ÚtotalrO   )Údata_estufa__year)ÚanoÚtotal_sementesrJ   rL   Údata_repique)Útotal_repicadorT   )Zdata_venda__yearZ semeadura__protocolo__finalizadoÚ
data_venda)Útotal_vendidog        rV   Úentrada_sementes_kgZentrada_sementes_kg__sumZquantidade_mortalidade__sumZquantidade_repicada__sumZqtd_especie__sumr(   z-id)Ú
criado_porrE   Ú
data_finalé   u
   ConcluÃ­daZFalhouzEm andamentoéd   r$   ZDesconhecido)	ÚespecieÚ	tipo_metaÚdata_inicialrY   Zquantidade_metaZquantidade_feitaÚstatusÚ
percentualrX   zdashboard/dashboard_one.html)Ú	user_infor)   Únumero_de_especiesÚultimas_especiesÚnumero_de_lotesÚultimos_lotesrR   rL   Ztotal_repicadaÚtotal_qtd_especiesÚdados_repicadosÚdados_anuaisÚdez_maiores_lotesÚ mudas_produzidas_nao_finalizadasÚmudas_produzidas_finalizadasÚmudas_produzidas_agrupadasÚ#mudas_mais_vendidas_nao_finalizadasÚmudas_mais_vendidas_finalizadasÚmudas_mais_vendidas_agrupadasÚ$maiores_mortalidades_nao_finalizadasÚ maiores_mortalidades_finalizadasÚmaiores_mortalidades_agrupadasÚgrouped_finalizadosÚtotal_mudas_vendidasÚdados_vendasÚdados_protocolosÚ
metas_infoÚtotal_metas)>Úuserr3   r	   r   ÚobjectsÚselect_relatedÚfilterr8   Útipo_clienteÚcliente_fisicor2   Úcliente_empresaÚnome_fantasiaÚnum_protocolor=   rB   ÚmonthÚlistÚvaluesÚdatetimeÚdateÚtodayÚyearÚannotater   r   Úorder_byÚintr   Úallr   r   r   r   r   r   ÚrangeÚ	aggregateÚappendÚfloatr   r
   Úcountr   r   rY   Úmeta_atingidaÚ
quantidadeÚquantidade_acumuladaÚminrX   r   Úgetr0   ÚDoesNotExistr\   Únome_popularÚget_tipo_meta_displayr^   r   ÚjsonÚdumps)Ar5   r)   Z!protocolos_finalizados_semeadurasrs   rt   Zvendas_por_mes_listaÚpsÚprotocolo_idr?   r>   Z	mes_vendaZgrouped_finalizados_listZ	ano_atualZprotocolos_por_mesrv   r8   Z	mes_indexri   Zmudas_mais_produzidasrj   rk   rl   Zmudas_mais_vendidasrm   rn   ro   Zmaiores_mortalidadesrp   rq   rr   Úanosrh   rQ   Ztotal_produzidas_anoZtotal_vendidas_anoZtotal_mortalidade_anoZrepiques_por_mesrg   ÚrepiqueZvendas_por_mesru   ÚvendaZtotal_sementes_decimalrR   Ztotal_mortalidade_decimalrL   Ztotal_repicadas_decimalZtotal_repicadasZtotal_qtd_especies_decimalrf   ra   rb   rc   rd   re   ÚhojeÚmetasZmetas_displayrw   Úmetar_   r`   Zusuario_funcionarioZcriado_por_nomerx   r6   r6   r7   r'   <   sh   ÿ
 ü

þüûúù


ÿÿ
ÿÿÿÿÿÿÿþþþ

ýÿúúú	
ýÿúúú	ÿþþþ
ÿÿÿÿÿÿÿþþþÿýüüþüûûÿýüüü	ÿþýü
þüûúù


ÿÿÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ



ÿÿÿõÝr'   c                 C   s   t  | ¡ t | d¡ tdƒS )NzLogout efetuado com sucesso!r*   )r   Úlogoutr   r1   r   )r5   r6   r6   r7   r¤   r  s    
r¤   c                 C   s,   | j jstdƒS t| j jƒ}t| dd|iƒS )NÚindexzdashboard/error.htmlra   )ry   Úis_authenticatedr   r   r3   r   )r5   ra   r6   r6   r7   r4   x  s    r4   )5Údjango.shortcutsr   r   Zapps.dashboard.formsr   Údjango.contribr   Zdjango.contrib.auth.decoratorsr   r   Zapps.dashboard.utilsr   Údjango.httpr	   Zapps.especies.modelsr
   Úapps.lotes.modelsr   Údjango.db.modelsr   r   r   Úapps.estufa.modelsr   Úapps.repique.modelsr   Zapps.saidas.modelsr   r   Údjango.db.models.functionsr   r…   rš   r   r   r   r   Zapps.protocolos.modelsr   r   Úapps.funcionario.modelsr   r   Zapps.metas.modelsr   Zapps.metas.formsr   Údjango.utils.timezoner   r*   r'   r¤   r4   r6   r6   r6   r7   Ú<module>   sB   
  7