a
    ;Xh?                     @   sP  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	m
Z
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mZ d dlmZ d dlmZ d dlmZmZ d dlmZmZ d dl m!Z! dd Z"dddddddddddddZ#d d! Z$d"d# Z%d$d% Z&d&d' Z'd(d) Z(d*d+ Z)d3d-d.Z*d/d0 Z+d1d2 Z,d,S )4    )render_to_string)render)HTMLCSS)HttpResponse)date	timedelta)timezone)	Semeadura)Q)r   get_object_or_404redirect)get_user_info)CadastroLoter
   )Repique)Funcionario)EstufaSelecao)SumMax)Userc              
   C   s  | j jstdS t| j j}tj }d }g }d }d}d}| jdkr| j	
d}|rztjj
|d}|jrt|jdr|jjjjnd}	tjj|dd	}
|
D ]}tjj|d
d}tjj|d
d}tjj|d
d}|||dd |D dd |D |jr&t|jdr&|jjjjnddd |D d q|
jtddd pVd}|
 }|rl|jnd}W n tjy   d}Y n0 nd}||||r|	nd ||d|d|d}t| d|S )Nindexr   POSTnumero_lote)r   usuariofuncionarioDesconhecido)lotedata_semeia)	semeaduradata_repiquedata_estufadata_selecaoc                 S   s>   g | ]6}|j |j|j|jr2t|jd r2|jjjjnddqS )r   r   )r    quantidade_mortalidade
finalizadoregistrado_por)r    r"   r#   r$   hasattrr   funcionarionome_completo).0estufa r*   9/var/www/viveiro_mudafortebrasil/apps/relatorios/views.py
<listcomp><   s   	
z"relatorio_lote.<locals>.<listcomp>c                 S   s>   g | ]6}|j |j|j|jr2t|jd r2|jjjjnddqS )r   r   )r!   quantidade_selecaovendar$   )r!   r-   r.   r$   r%   r   r&   r'   )r(   selecaor*   r*   r+   r,   G   s   	
c                 S   s>   g | ]6}|j |j|j|jr2t|jd r2|jjjjnddqS )r   r   )r   quantidade_repicadar#   r$   )r   r0   r#   r$   r%   r   r&   r'   )r(   repiquer*   r*   r+   r,   V   s   	
)r   repiquesestufasselecoesZregistrado_por_semeaduraZrepiques_registrados_porqtd_sementes_utilizada)total_utilizador6   u   Lote não encontrado.u(   Por favor, selecione um número de lote.z.3f)	user_infoloteslote_selecionadolote_selecionado_registrado_porsemeaduras_com_repiquesr6   sobra_atualerrozrelatorios/relatorio_lote.html)useris_authenticatedr   r   idr   objectsallmethodr   getr$   r%   r   r&   r'   r
   filterorder_byr   r   r   append	aggregater   lastsobra_sementesDoesNotExistr   )requestr7   r8   r9   r;   r=   r6   r<   r   r:   
semeadurasr   r2   r3   r4   Zultima_semeaduracontextr*   r*   r+   relatorio_lote   s    

		
	
*rO   Janeiro	Fevereirou   MarçoAbrilMaioJunhoJulhoAgostoSetembroOutubroNovembroDezembro)                        	   
         c                 C   s  t | jj}t  }| jd}| jd}| jd}tj	
 }|dkr\|j|d}nl|dkr|t| d }|tdd }|j||gd	}n2|d
kr|j|j|jd}n|dkr|j|jd}|r|j|d}|r|j|d}|tdd pd}	||| |	d}
t| d|
S )Nperiodoiniciofimhojer   semanadaysr`   data_semeia__rangemesdata_semeia__yearZdata_semeia__monthanors   data_semeia__gtedata_semeia__lter5   Zqtd_sementes_utilizada__sumr   )recordsr7   rL   total_sementesz)relatorios/relatorio_geral_semeadura.html)r   r>   r@   r	   nowr   GETrD   r
   rA   rB   rE   r   weekdayyearmonthrH   r   r   )rL   r7   rj   rg   data_iniciodata_fim	registrossegundadomingor{   rN   r*   r*   r+   relatorio_geral_semeadura   s6    
r   c                 C   s&  t   }tj }| jd}| jd}| jd}|dkrP|j|d}nl|dkr|t	|
 d }|t	dd }|j||gd	}n2|d
kr|j|j|jd}n|dkr|j|jd}|r|j|d}|r|j|d}|| ddd}td|}	t|	djtddgd}
t|
dd}d|d< |S )Nrg   rh   ri   rj   rk   rl   rm   r`   ro   rq   rr   rt   ru   rv   rx    )rz   rL   ZmondayZsundayz/relatorios/relatorio_semanal_semeadura_pdf.htmlstring!@page { size: A4; margin: 20px; }Zstylesheetsapplication/pdfcontent_typez0inline; filename="relatorio_geral_semeadura.pdf"Content-Disposition)r	   r|   r   r
   rA   rB   r}   rD   rE   r   r~   r   r   r   r   	write_pdfr   r   )rL   rj   r   rg   r   r   r   r   rN   html_stringpdf_fileresponser*   r*   r+   relatorio_geral_semeadura_pdf   s:    

r   c                 C   s  t | jj}t  }| jd}| jd}| jd}tj	
 }|dkr\|j|d}nl|dkr|t| d }|tdd }|j||gd	}n2|d
kr|j|j|jd}n|dkr|j|jd}|r|j|d}|r|j|d}|tdd pd}	||	|| d}
t| d|
S )Nrg   rh   ri   rj   r   rl   rm   r`   Zdata_repique__rangerq   data_repique__yeardata_repique__monthrt   r   data_repique__gtedata_repique__lter0   quantidade_repicada__sumr   )rz   total_repiquesr7   rL   z'relatorios/relatorio_geral_repique.html)r   r>   r@   r	   r|   r   r}   rD   r   rA   rB   rE   r   r~   r   r   rH   r   r   )rL   r7   rj   rg   r   r   r   r   r   r   rN   r*   r*   r+   relatorio_geral_repique   s6    
r   c                 C   sD  t   }| jd}| jd}| jd}tj }|dkrP|j|d}nl|dkr|t	|
 d }|t	dd }|j||gd	}n2|d
kr|j|j|jd}n|dkr|j|jd}|r|j|d}|r|j|d}|tdd pd}||| t| jjd}	td|	}
t|
djtddgd}t|dd}d|d< |S )Nrg   rh   ri   rj   r   rl   rm   r`   r   rq   r   rt   r   r   r   r0   r   r   )rz   r   rL   r7   z-relatorios/relatorio_semanal_repique_pdf.htmlr   r   r   r   r   z.inline; filename="relatorio_geral_repique.pdf"r   )r	   r|   r   r}   rD   r   rA   rB   rE   r   r~   r   r   rH   r   r   r>   r@   r   r   r   r   r   )rL   rj   rg   r   r   r   r   r   r   rN   r   r   r   r*   r*   r+   relatorio_geral_repique_pdf   s@    




r   c                   C   s   t jjddjddddS )NF)Zdata_selecao__isnullr!   r   ASCorderr   rA   rE   datesr*   r*   r*   r+   get_distinct_years  s    r   c                 C   s(   t jj| djdddd}dd |D S )Ndata_selecao__yearr!   r   r   r   c                 S   s   g | ]}|j t|j  d qS ))numbername)r   MESES_PT)r(   dtr*   r*   r+   r,   !      z'get_month_list_data.<locals>.<listcomp>r   )r   Zdistinct_monthsr*   r*   r+   get_month_list_data  s    r   Nc                 C   s  t | jj}t  }| jd}| jd}| jd}tj	
 }|dkr\|j|d}nl|dkr|t| d }	|	tdd }
|j|	|
gd	}n2|d
kr|j|j|jd}n|dkr|j|jd}|r|j|d}|r|j|d}|tdd pd}||| |d}t| d|S )Nrg   rh   ri   rj   r!   rl   rm   r`   Zdata_selecao__rangerq   r   Zdata_selecao__monthrt   r   data_selecao__gtedata_selecao__lter-   quantidade_selecao__sumr   )rz   r7   rL   total_selecaoz&relatorios/relatorio_geral_estufa.html)r   r>   r@   r	   r|   r   r}   rD   r   rA   rB   rE   r   r~   r   r   rH   r   r   )rL   r   r   r7   rj   rg   r   r   r   r   r   r   rN   r*   r*   r+   relatorio_geral_estufa#  s6    
r   c                 C   sH  t | jj}t  }| jd}| jd}| jd}tj	
 }|dkr\|j|d}nl|dkr|t| d }|tdd }|j||gd	}n2|d
kr|j|j|jd}n|dkr|j|jd}|r|j|d}|r|j|d}|tdd pd}	|| |	|d}
td|
}t|djtddgd}t|dd}d|d< |S )Nrg   rh   ri   rj   r   rl   rm   r`   r   rq   r   rt   r   r   r   r-   r   r   )rz   rL   r   r7   z,relatorios/relatorio_semanal_estufa_pdf.htmlr   r   r   r   r   z-inline; filename="relatorio_geral_estufa.pdf"r   )r   r>   r@   r	   r|   r   r}   rD   r   rA   rB   rE   r   r~   r   r   rH   r   r   r   r   r   r   )rL   r7   rj   rg   r   r   rz   r   r   r   rN   r   r   r   r*   r*   r+   relatorio_geral_estufa_pdfF  s>    

r   c           	      C   s   t | jj}tjjdd}tjdd}| j	d}| j	d}| j	d}|r\|j|d}|rl|j|d}|r||j|d	}|
d
ddddjtdtddd}tdd |D }t| d||||dS )Nr   )cargo__nome__iexactr&   r   rh   ri   )funcionario_idr   r   semeadura__numero_mudasemeadura__lote__numero_lote&semeadura__lote__especie__nome_popular"semeadura__lote__especie__especiesfuncionario__nome_completor0   r   )total_repicadoZultima_dataz-ultima_datac                 S   s   g | ]}|d  qS )r   r*   )r(   itemr*   r*   r+   r,     r   z%consulta_repiques.<locals>.<listcomp>z!relatorios/consulta_repiques.html)r2   funcionariosr7   total_geral)r   r>   r@   r   rA   rE   r   select_relatedr}   rD   valuesannotater   r   rF   sumr   )	rL   r7   r   r2   r   r   r   Zagrupador   r*   r*   r+   consulta_repiquess  s>    	r   )NN)-django.template.loaderr   django.shortcutsr   Z
weasyprintr   r   django.httpr   datetimer   r   django.utilsr	   apps.lotes.modelsr
   django.db.modelsr   r   r   apps.dashboard.utilsr   r   apps.repique.modelsr   apps.funcionario.modelsr   apps.estufa.modelsr   r   r   r   django.contrib.auth.modelsr   rO   r   r   r   r   r   r   r   r   r   r   r*   r*   r*   r+   <module>   s:   i"&#,
#-