a
    ;XhY-                     @   s   d dl mZ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 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 d dlmZ d dlmZmZmZmZ d dlmZ d dlmZ dd Z dd Z!dd Z"dd Z#dd Z$dS )    )renderredirectget_object_or_404)get_user_info)AclimatacaoForm)messages)AclimatacaoLogFinalizacaoAclimatacao)	Semeadura)Estufa)Repique)datetime)SumMax)JsonResponse)r   OuterRefExistsSubquery)	mark_safe)timezonec                 C   s  | j jstdS t| j j}tjjtdt	t
jjtddddjtddd	d d
 t	tjjtddddjtdddd d
 tddtt
jjtdddttjjtdddttjjtddd d}g }|D ]}g }g }g }g }|jjdd}	|	D ]@}
||
jd |t|
j ||
j ||
j q|rh|ndg}|rx|ndg}|r|ndg}||j|j|j|jjj|jjj|j |j!t"|j#|j$|||||jj%|jj&|jj%|j'd qt(| d|||dS )Nindex$aclimatacoes__quantidade_mortalidadepkT	semeadura
finalizador   quantidade_repicada)total_repiquer      quantidade_mortalidade)total_mortalidader    aclimatacoes__data_aclimatacao)total_aclimatacaor   total_mortalidade_estufaultima_data_aclimatacaolote__especieFr   %d/%m/%Y )semeadura_idnumero_mudadata_semeianome_popularespeciesr$   r"   r   r#   aclimatacao_datesaclimatacao_quantitiesaclimatacao_idsr   estimativa_minimaestimativa_maximaestimativa_mediaqtd_sementes_utilizadaz"aclimatacao/lista_aclimatacao.html)
semeadurasaclimatacoes	user_info))useris_authenticatedr   r   idr
   objectsannotater   r   r   filterr   valuesr   r   r   r   select_relatedr6   appenddata_aclimatacaostrftimestrr   r   r*   r+   loteespecier,   r-   r$   r"   intr   r#   r1   r2   r4   r   )requestr7   r5   r6   r   aclimatacoes_dataaclimatacoes_quantidadesaclimatacoes_idsaclimatacoes_finalizadoaclimatacoes_querysetaclimatacao rN   :/var/www/viveiro_mudafortebrasil/apps/aclimatacao/views.pylista_aclimatacao   s    &)
rP   c                 C   s  | j jstdS t| j j}| jd}tjj	t
dtdddttjjtddd	}|rtt|d
d
}tt|dd}|j||fd}| }tjdd }g }|D ]}	g }
g }g }g }|	j }|D ]>}|
|jd |t|j ||j ||j q|
r"|
ndg}
|r2|ndg}|rB|ndg}||	j|	j|	j|	jj j!|	jj j"|	j#|	j$|
||||	jj%|	jj&|	jj%d qt'| d|||||dS )Nr   anor   r!   )r"   r$   r%   r   Tr   r         )data_semeia__ranger+   yearr'   r(   )r)   r*   r+   r,   r-   ultima_data_estufar"   r.   r/   r0   r   r1   r2   r3   z+aclimatacao/lista_aclimatacao_completa.html)r5   r6   anos_disponiveis
ano_filtror7   )(r8   r9   r   r   r:   GETgetr
   r;   r<   r   r   r?   r=   r   r   r   r   rF   alldatesdistinctr6   r@   rA   rB   rC   r   r   r*   r+   rD   rE   r,   r-   r$   r"   r1   r2   r   )rG   r7   rX   semeaduras_querydata_iniciodata_fimr5   rW   r6   r   rH   rI   rJ   rK   rL   rM   rN   rN   rO   lista_aclimatacao_completan   sn    

ra   c                 C   st   t t|d}| jdkr\t| j}| rb|jdd}||_|  t	| t
d tdS nt }t| d||dS )	Nr   POSTF)commituq   <i class="fa-solid fa-circle-check"></i><strong class="mx-1">Sucesso!</strong> Mortalidade registrado com êxito.rP   zaclimatacao.html)formr   )r   r
   methodr   rc   is_validsaver   r   successr   r   r   )rG   r)   r   re   rM   rN   rN   rO   rM      s    


rM   c              
   C   s   | j dkr| jddkrz^tjj|d}|rTt| td |  t	ddiW S t
| td t	dd	id
dW S W n> ty } z&t	ddt| iddW  Y d }~S d }~0 0 t	ddiddS )Nrc   zx-requested-withXMLHttpRequestrb   ur   <i class="fa-solid fa-circle-check"></i><strong class="mx-1">Sucesso!</strong> Aclimatação excluído com êxito.messageu$   Aclimatação excluído com sucesso.up   <i class="fa-solid fa-circle-exclamation"></i><strong class="mx-1">Erro!</strong> Aclimatação não encontrado.u   Aclimatação não encontrado.i  statusu   Erro ao excluir aclimatação:   uE   Método de solicitação inválido ou não é uma solicitação AJAX.i  )rf   headersrZ   r   r;   r   ri   r   deleter   error	ExceptionrC   )rG   Zaclimatacao_idrM   erN   rN   rO   excluir_aclimatacao   s     0rt   c                 C   s$  z| j dkrtjj|d}| jdd}| jdd}|dkrH|rH|}n|}tjj|j|j|t	
 t	
 | j| jj||d	 tjj|djd	d
 t| td tdddW S | j dkrtdddW S W nF ty } z,td|  tdddddW  Y d }~S d }~0 0 tdddS )Nrc   rb   motivo_exclusaor(   motivo_exclusao_outrosOutros)	numero_lote	data_loter)   data_exclusaohora_exclusaousuario_exclusaonome_usuario_exclusaoru   rv   )r)   Tr&   us   <i class="fa-solid fa-circle-check"></i><strong class="mx-1">Sucesso!</strong> Aclimatação finalizada com êxito.ri   u%   Aclimatação finalizada com sucesso.)rm   rk   rY   u+   Solicitação GET permitida para esta view.z Erro na view finalizar_repique: rq   zErro interno no servidor.rn   rl   u   Método não suportado.)rf   r
   r;   rZ   rc   r	   creater*   r+   r   nowr8   usernamer   r=   updater   ri   r   r   rr   print)rG   r)   r   ru   rv   motivo_finalrs   rN   rN   rO   finalizar_aclimatacao   s<    

(r   N)%django.shortcutsr   r   r   apps.dashboard.utilsr   Zapps.aclimatacao.formsr   django.contribr   Zapps.aclimatacao.modelsr   r	   apps.lotes.modelsr
   apps.estufa.modelsr   apps.repique.modelsr   r   django.db.modelsr   r   django.httpr   r   r   r   django.utils.safestringr   django.utilsr   rP   ra   rM   rt   r   rN   rN   rN   rO   <module>   s$   ]H