
    #hW?                        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 Z1ed             Z2d Z3d 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                 T   t                      }| j        dk    rt          | j                  }|                                r|d                                         }|d                                         }t          j        | ||          }|dt          j        | |           t          t          |          j
        }t          j        | d|j         d           t          d|j        	          S t          j        | 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'   r2   s         2D:\Projeto AMA\sistema_ama\apps\dashboard\views.pyr,   r,      sA   <<D~',''==?? 	)/5577LM''))E',@ @ @G"
7G,,, 0&9 9 99D  G;+DGGGI I I  DDDDHJ J J((('1FD>BBB    c                 r   | j         j        |k    rt          d          S t          j                            dd                              d          }i }d}dgdz  }|D ]}|j        j        }||vrP|j        j        dk    r|j        j	        j
        n|j        j        j        }|j        j        |j        j        d|d	||<   |j        r|j        nd}	||         d
xx         |	z  cc<   ||	z  }|j        j        r$|j        j        j        dz
  }
||
xx         |	z  cc<   t#          |                                          }t&          j                                        j        }t          j                            d|                              t1          d                                        d                              t3          d                                        d          }dgdz  }|D ]%}|d         dz
  }t7          |d                   ||<   &t8          j                                                            d          d d         }t<          j                                        }t<          j                            d                              d          d d         }t<          j                            d                              d          d d         }|                    dd                              t3          d                                        d          d d         }t>          j                                        }|                    tA          tC          dd          dtE                                                              d                              d           d d         }|                    tA          tC          dd          dtE                                                              d                              d           d d         }|                    dd                              t3          d          !                              d"          d d         }tF          j                                        }tF          j                            d                              d#          d d         }tF          j                            d                              d#          d d         }|                    dd                              t3          d$          %                              d&          d d         }tI          ||d'z
  d(          }g }|D ] } t<          j                            | )          %                    t3          d          *          d+         pd}!t          j                            d|           %                    t3          d          *          d+         pd}"tF          j                            | ,          %                    t3          d$          *          d+         pd}#|&                    | t7          |!          t7          |"          t7          |#          d-           "t<          j                            |)                              t1          d.                                        d                              t3          d          /                              d          }$dgdz  }%|$D ]#}&t7          |&d0                   |%|&d         dz
  <   $t>          j                            |d1                              t1          d2                                        d                              t3          d          3                              d          }'d4gdz  }(|'D ]/})|)d         dz
  }|)d5         tO          |)d5                   nd4|(|<   0t8          j        %                    t3          d6                    d7         }*|*tO          |*          nd}+tF          j        %                    t3          d$                    d8         },|,t7          tO          |,                    nd}-t<          j        %                    t3          d                    d9         }.|.t7          tO          |.                    nd}/t>          j        %                    t3          d                    d:         }0|0t7          tO          |0                    nd}1tQ          |;          }2tR          j        *                                }3tR          j                                                            d<          d d         }4t8          j        *                                }5t8          j                                                            d<          d d         }6tW                                                      }7tX          j                            | j         d=                              d>          }8|8d d?         }9g }:|9D ]};|;j-        |7k     r|;j.        rd@}<ndA}<ndB}<|;j/        dk    r#|;j0        |;j/        z  dCz  }=tc          |=dC          }=nd}=|;j2        rJ	 tf          j        4                    |;j2        D          }>|>j5        j
        }?n# tf          j6        $ r dE}?Y nw xY wdE}?|:&                    |;j7        j8        |;9                                |;j:        |;j-        |;j/        |;j0        |<t7          |=          |?dF	           |8*                                }@tw          | dGi dH|2dI|dJ|3dK|4dL|5dM|6dN|+dO|-dP|/dQ|1dRty          j=        |%          dSty          j=        |          dT|dU|dV|dW|dX|||||||                                |ty          j=        |(          ty          j=        |          |:|@dY          S )ZNu3   Você não tem permissão para acessar este perfil.	protocolo	semeaduraT)protocolo__finalizador      r   )numero_protocolodata_saida_protocoloquantidade_mudascliente_nomerA      )r=   %protocolo__data_saida_protocolo__yearprotocolo__data_saida_protocolo)mesrF   qtd_especie)total_mudasrH   z-entrada_sementes_kg
   F)
finalizadoz-quantidade_repicada&semeadura__lote__especie__nome_popular"semeadura__lote__especie__especiesquantidade_repicada)total_mudas_produzidasz-total_mudas_produzidas)data_venda__isnullthen)defaultoutput_field)tem_data_vendaz-qtd_especie)total_vendasz-total_vendasz-quantidade_mortalidadequantidade_mortalidade)total_mortalidadez-total_mortalidade   )data_repique__year)totalrZ   )data_estufa__year)anototal_sementesrT   rV   data_repique)total_repicador_   )data_venda__year semeadura__protocolo__finalizado
data_venda)total_vendidog        rc   entrada_sementes_kgentrada_sementes_kg__sumquantidade_mortalidade__sumquantidade_repicada__sumqtd_especie__sumr*   z-id)
criado_porrJ   
data_final   u
   ConcluídaFalhouzEm andamentod   r&   Desconhecido)	especie	tipo_metadata_inicialrj   quantidade_metaquantidade_feitastatus
percentualri   zdashboard/dashboard_one.html	user_infor+   numero_de_especiesultimas_especiesnumero_de_lotesultimos_lotesr]   rV   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)>userr5   r
   r   objectsselect_relatedfilterr;   tipo_clientecliente_fisicor4   cliente_empresanome_fantasianum_protocolor@   rG   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   rj   meta_atingida
quantidadequantidade_acumuladaminri   r   getr2   DoesNotExistro   nome_popularget_tipo_meta_displayrq   r   jsondumps)Ar7   r+   !protocolos_finalizados_semeadurasr   r   vendas_por_mes_listapsprotocolo_idrB   rA   	mes_vendagrouped_finalizados_list	ano_atualprotocolos_por_mesr   r;   	mes_indexr   mudas_mais_produzidasr   r   r   mudas_mais_vendidasr   r   r   maiores_mortalidadesr   r   r   anosr~   r\   total_produzidas_anototal_vendidas_anototal_mortalidade_anorepiques_por_mesr}   repiquevendas_por_mesr   vendatotal_sementes_decimalr]   total_mortalidade_decimalrV   total_repicadas_decimaltotal_repicadastotal_qtd_especies_decimalr|   rv   rw   rx   ry   rz   hojemetasmetas_displayr   metart   ru   usuario_funcionariocriado_por_nomer   sA                                                                    r8   r)   r)   <   s   |'!!$%Z[[[ );(B(Q(QR]_j(k(k(r(r" )s ) )%
  38/ 1 1|222HJHaehHhHh2<6DDnpnz  oK  oYL$&L$>(*(I$% ,	1 1- .0^B2>>L)*<===AQQ=== 00	|( <L5;a?	Y'''+;;'''  $$7$>$>$@$@AA ##%%*I ,3::".7 ;   h:;;   fUmmHH&&   huoo  sRx ( D D	e$q(	&))M*B&C&C## %,0022;;    #% $O//11'.'='= (> ( ("(#9::3B3(@$#*?#9#9 $: $ $!"899#2#$? !6!=!=>f>b"d "ddldl"#899 em e; e;;C8D];^;^_b`b_b"d )04466 +>*F*FDu555%
 
 
 +G + + fEf""88N#;#;CRC+A' ':&B&BDu555%
 
 
 'C ' ' fDf!!((>":":3B3'@# %8$>$>?g?c%e %eemem'' fn f) f))1/)B)B3B3%H! ">--//+1>+@+@ ,A , ,"(#<==crc,C('-~'<'< (= ( (!";<<SbS(B$%9%@%@AiAe&g &ggogo677 hp h9 h99ABV9W9WX[Y[X[&]"
 IM2..D
 L  &55"  6  
  

)+,,  
 

	    	 	 07>>"&25 ? 
 
 )m$$  
 

 
  	 !' 5 5! !6 !
 !

).//  
 

	! ! 	 	 	!"677 233!$%:!;!;	
 
 	 	 	 	 ---KKTT(( U  fUmmHH011   huoo	  cBhO $ M M.1':J2K.L.L*++ $+22")- 3   h&&   fUmmHH-((   huoo  52:L   S S%L1$	',_'='I #(/"#$ #$ #$OR 	Y *1;;!""$ $$>@ $:#E      KL  !' 8 8$%%!' !''D!F ";!F E";<<   LM  &o77<Q8R8RSS"$  7B % 788   HI  "0!7!A!A#mBTBT!U!U" #="H U#=>>   NO  g...I!)//11'++--66u==crcB"*0022O (,,..77>>ssCM55::<<D &&<E ' 3 33;8L3I3I 
 "1"IMJ ( (?T!!! "%!#F ?Q3doELJZ--JJJ ? 	-1&8&@&D&D O 'E '- '-#"5"A"O%2 1 1 1"01 -O|03355 -/# $ 9j//)
 
 	 	 	 	 ++--K '9 $<Y$<7$< 	0	$<
 	,$< 	?$< 	$< 	.$< 	.$< 	/$< 	0$< 	4:o66$< 	
<00$<  	.!$<$ 	+,L%$<& 	'(D'$<( 	%&@)$<, 	./R-$<. ,K)F0T,L*H299;; 4
<00 J'788 "G$< $< $< $ $ $s   1lllc                 r    t          j        |            t          j        | d           t	          d          S )NzLogout efetuado com sucesso!r,   )r   logoutr   r3   r   )r7   s    r8   r   r   r  s4    KW<===Gr9   c                     | j         j        st          d          S t          | j         j                  }t          | dd|i          S )Nindexzdashboard/error.htmlrv   )r   is_authenticatedr   r	   r5   r   )r7   rv   s     r8   r6   r6   x  sF    <( !   glo..I'1K3KLLLr9   )5django.shortcutsr   r   apps.dashboard.formsr   django.contribr   django.contrib.auth.decoratorsr   r   apps.dashboard.utilsr	   django.httpr
   apps.especies.modelsr   apps.lotes.modelsr   django.db.modelsr   r   r   apps.estufa.modelsr   apps.repique.modelsr   apps.saidas.modelsr   r   django.db.models.functionsr   r   r   r   r   r   r   apps.protocolos.modelsr   r   apps.funcionario.modelsr   r   apps.metas.modelsr   apps.metas.formsr   django.utils.timezoner   r,   r)   r   r6    r9   r8   <module>r      sd   - - - - - - - - + + + + + +       9 9 9 9 9 9 # # # # # # . . . . . . - - - - - - ) ) ) ) ) ) * * * * * * . . . . . . . . . . % % % % % % ' ' ' ' ' ' 5 5 5 5 5 5 5 5 3 3 3 3 3 3   A A A A A A A A A A A A A A @ @ @ @ @ @ @ @             3 3 3 3 3 3 6 6 6 6 6 6 . . . . . . ) ) ) ) ) ) & & & & & &  % % % % % % 6 6 6 6 6 6C C C< r r rj	  M M M M Mr9   