
    #h8                     p   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 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 d dlmZ d dlmZ d dlmZ d dl m!Z!m"Z"m#Z#m$Z$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/ d dl0m1Z1 d dl2Z2d dl3m4Z4 d Z5d Z6d Z7d Z8d Z9d Z:d dl;m<Z< d dl=Z=d Z>dS )    )renderredirectget_object_or_404)get_user_info)EspeciesForms)messages)Especies)PlantioOutrasInformacoesModels)ProducaoMudas)ObjectDoesNotExist)CadastroLote	Semeadura)Repique)EstufaSelecao)ProtocoloSemeadura)letter)colors)SimpleDocTemplate	ParagraphSpacerTable
TableStyleImage	PageBreak)getSampleStyleSheet)inch)BytesIO)HttpResponse)settingsN)	mark_safec                     | j         j        st          d          S t          | j         j                  }t          | dd|i          S )Nindexzespecies/cadastro_especies.html	user_info)useris_authenticatedr   r   idr   )requestr$   s     1D:\Projeto AMA\sistema_ama\apps\especies\views.pycadastro_especiesr*      sF    <( !   glo..I'<{I>VWWW    c                 n   t                      }| j        j        st          d          S t	          | j        j                  }| j        dk    rt          | j        | j                  }|	                                r|j
        d         }t          j                            |                                          r#t          j        | t#          d                     nE|                                 t          j        | t#          d                     t          d          S t)          | d||d	          S )
Nr#   POSTespecies)r.   ue   <i class="fa-solid fa-circle-exclamation"></i><strong class="mx-1">Erro!</strong> Espécie ja existe.uo   <i class="fa-solid fa-circle-check"></i><strong class="mx-1">Sucesso!</strong>  Espécie cadastrada com êxito.lista_especiesz"especies/cadastro_de_especies.html)formr$   )r   r%   r&   r   r   r'   methodr-   FILESis_validcleaned_datar	   objectsfilterexistsr   errorr!   savesuccessr   )r(   r0   r$   r.   s       r)   cadastro_de_especiesr;   "   s4   ??D<( !   glo..I~W\7=99==?? 	2(4H&&&99@@BB 2w	{)} )} ~ ~ ~ ~ 		 ) F+G +G H H H 0111'?$]fAgAghhhr+   c                 V   | j         j        st          d          S t          | j         j                  }t
          j                                        }t          j	        }|D ]}|j
        r| |j
         |_
        nt          j         d|_
        t          j                            |                                          |_        t           j                            |                                          |_        t%          |j
                  |_        t)          | d||d          S )Nr#   zassets/img/foto_planta.gif)especiezespecies/lista_especies.html)cardsr$   )r%   r&   r   r   r'   r	   r5   allr    	MEDIA_URLfoto_especie
STATIC_URLr   r6   r7   producao_existenter
   informacao_existenteboolimagem_existenter   )r(   r$   r.   base_urlr=   s        r)   r/   r/   =   s/   <( !   glo..I##%%H !H > > 	V&.#F0D#F#FG   '/&9#U#U#UG  &3%:%A%A &B & &#VXX 	" (F'M'T'T (U ( (#VXX 	$ $((<#=#=  '9X\e;f;fgggr+   c           	         t          t          |          }| j        j        st	          d          S t          | j        j                  }| j        dk    rt          | j	        | j
        |          }|                                r`d| j
        v r| j
        d         |_        |                                 t          j        | t!          d                     t	          d          S nt          |          }t#          | d||||d	          S )
N)pkr#   r-   )instancerA   uo   <i class="fa-solid fa-circle-check"></i><strong class="mx-1">Sucesso!</strong>  Espécie atualizada com êxito.r/   zespecies/editar_especie.html)r0   r$   r=   
especie_id)r   r	   r%   r&   r   r   r'   r1   r   r-   r2   r3   rA   r9   r   r:   r!   r   )r(   rK   r=   r$   r0   s        r)   editar_especierL   [   s+   Z888G<( !   glo..I~W\7=7KKK==?? 		...'.}^'D$IIKKK Wi B'C 'C D D D ,---		. g...'9DW`mt  EO  <P  <P  Q  Q  Qr+   c                 P   	 t           j                            |          }|                                 t	          j        | t          d                     t          d          S # t          $ r4 t	          j	        | t          d                     t          d          cY S w xY w)Nr'   ul   <i class="fa-solid fa-circle-check"></i><strong class="mx-1">Sucesso!</strong> Espécie excluida com êxito.r/   u   <i class="fa-solid fa-circle-exclamation"></i><strong class="mx-1">Erro!</strong> Ocorreu um problema ao tentar excluir a Espécie.)
r	   r5   getdeleter   r:   r!   r   r   r8   )r(   rK   r.   s      r)   deletar_especiesrQ   u   s    	*#'':'66)z#| #| 	} 	} 	}())) * * *w	 R!S !S 	T 	T 	T()))))*s   A$A' ';B%$B%c                 4   t           j                                        }t          d          }d|d<   t	                      }t          |t                    }g }t          j        	                    t          j        d          }t          |dt          z  dt          z  	          }g }|                    |           d
}	t          |	t!                      d                   }
g }|                    |
           ||gg}t#          |dt          z  dt          z  g          }|                    t'          ddg                     |                    |           |                    t)          ddt          z                       g }|                    g d           |D ]/}|                    |j        |j        |j        |j        g           0d}t#          |          }t'          ddd|fdddt2          j        fddddddt2          j        fddddt2          j        fg          }|                    |           |                    |           d}t          |t!                      d                   }|                    t)          ddt          z                       |                    |           |                    |           |                    d           |                    |                                           |                                  |S ) Nzapplication/pdf)content_typez'attachment; filename=lista_especies.pdfzContent-Disposition)pagesizezassets/img/logo-footer.jpgg      @   )widthheightu   
    Telefone: (73) 2011-0214
    Email: ama@viveiroama.com.br
    Endereço: Rod Br 101 KM 888 s/n Zona Rural (ao lado da parada do pedrao), Teixeira de Freitas, BA, Brazil
    Normal   )	colWidths)ALIGNr   r   r^   CENTER)VALIGNr\   r]   r_      g      ?)NomezNome PopularFamiliazRisco Extincaoz#198754
BACKGROUNDr\   r^   r   	TEXTCOLOR)r[   r\   )r^   LEFT)FONTNAMEr\   re   zHelvetica-Bold)BOTTOMPADDINGr\   re      )r   ra   r]   GRIDu4   Informações adicionais no rodapé, se necessário.r   )!r	   r5   r?   r   r   r   r   ospathjoinr    STATIC_ROOTr   r   appendr   r   r   setStyler   r   r.   nome_popularfamiliarisco_extincaor   
whitesmokeblackbuildseekwritereadclose)r(   dadosresponsebufferdocelements	logo_pathlogologo_contentempresa_infoempresa_info_paragraphempresa_info_content
table_datatabledatar=   	hex_colorstylerodape_inforodape_info_paragraphs                       r)   generate_pdfr      s$     ""E):;;;H&OH"#YYF FV
4
4
4CH X19; ;I#d(1T6:::D LL
 ')++H57 7 6777 
+,J *44(8999E 
NN:-.     
 OOE OOF1d4i(())) DKKEEEFFF > >W%w';OW%;= 	> 	> 	> 	> I$KKE	vw	2	fgv'89+7.	vx):;	1fl3  E 
NN5OOE IK%(**846 6OOF1d4i(()))OO)***IIh KKNNNNN6;;==!!!
LLNNNOr+   )defaultdictc                 	   | j         j        st          d          S t          | j         j                  }t
          j                                        }d }d}d}d}d}d}d}	d}
g }g }g }g }g }| j        dk    r^| j	        
                    d          }|s)|                                rt          j        |          }n4|r2t
          j                            |                                          }|r|j                            dd                              dd                              d	d                                          |_        |j                            dd                              dd                              d	d                                          |_        |j                            dd                              dd                              d	d                                          |_        |j                            dd                              dd                              d	d                                          |_        t,          j                            |j        
                                          }t0          j                            |j                                      dd          }t5          d           }|D ]R}|j        j        }||         dxx         |j        pdz  cc<   ||         dxx         |j        pd|j        pdz  z  cc<   Sd |                                D             }tA          d |D                       }tA          d |D                       }tB          j                            |j                  "                    dddddddd          }tA          d |D                       }tF          j                            |j                  "                    ddd d!d          }tA          d" |D                       }tH          j                            |j                  "                    dd#d$d          }tA          d% |D                       }
tJ          j                            |j                  "                    dd&d'd          }tA          d( |D                       }	tM          | d)|||||||||
|	|pd ddd*g||||d+          S ),Nr#   r   GETespecie_selecionadarN   [ ]')rK   )semeadura__lote__especie_id	protocolo	semeadurac                      dddS )Nr   )
quantidadevalor_monetario r   r+   r)   <lambda>z$relatorio_especies.<locals>.<lambda>	  s    WX2Y2Y r+   r   r   c                 8    g | ]\  }}||d          |d         dS )r   r   r   r   r   r   ).0r   valoress      r)   
<listcomp>z&relatorio_especies.<locals>.<listcomp>  sB       !D' W\-BW^_pWqrr  r+   c              3   &   K   | ]}|d          V  dS )r   Nr   r   items     r)   	<genexpr>z%relatorio_especies.<locals>.<genexpr>  s'      &V&VdtL'9&V&V&V&V&V&Vr+   c              3   &   K   | ]}|d          V  dS )r   Nr   r   s     r)   r   z%relatorio_especies.<locals>.<genexpr>  s(      '\'\D->(?'\'\'\'\'\'\r+   )lote__especie_idlote__numero_lotenumero_mudadata_semeiametodo_semeaduralocal_semeaduraaberturaqtd_sementes_utilizadaregistrado_por__usernamec              3   &   K   | ]}|d          V  dS )r   Nr   r   ss     r)   r   z%relatorio_especies.<locals>.<genexpr>$  s(      %b%baa(@&A%b%b%b%b%b%br+   semeadura__numero_mudasemeadura__lote__numero_lotedata_repiquequantidade_repicadac              3   &   K   | ]}|d          V  dS )r   Nr   )r   rs     r)   r   z%relatorio_especies.<locals>.<genexpr>0  s(      $\$\!Q'<%=$\$\$\$\$\$\r+   data_estufaquantidade_mortalidadec              3   &   K   | ]}|d          V  dS )r   Nr   )r   es     r)   r   z%relatorio_especies.<locals>.<genexpr>;  s(      'a'a*B(C'a'a'a'a'a'ar+   data_selecaoquantidade_selecaoc              3   &   K   | ]}|d          V  dS )r   Nr   r   s     r)   r   z%relatorio_especies.<locals>.<genexpr>F  s(      #Z#ZA&:$;#Z#Z#Z#Z#Z#Zr+   z especies/relatorio_especies.htmlr   )r.   r$   r   total_lotestotal_mudas_vendidastotal_valor_monetariototal_qtd_utilizadatotal_qtd_repicadatotal_qtd_mortalidadetotal_qtd_selecaovendas_por_datasemeaduras_por_especierepiques_por_especieestufas_por_especieselecoes_por_especie)'r%   r&   r   r   r'   r	   r5   r?   r1   r   rO   r7   randomchoicer6   firstbiomareplacestripformacao_vegetalfitofisionomiaspresenca_estadosr   countr   select_relatedr   r   data_criacaoqtd_especie
valor_unititemssumr   valuesr   r   r   r   )r(   r$   r.   r   r   r   r   r   r   r   r   r   r   r   r   r   especie_selecionada_idprotocolos_semeadurasdados_agrupadospsr   s                        r)   relatorio_especiesr      s   <( !   glo..I##%%HKO~!(1F!G!G% 	](//*;*; 	]"(-"9"9# 	]"*"2"9"9=S"9"T"T"Z"Z"\"\ L	[(;(A(I(I#r(R(R(Z(Z[^`b(c(c(k(kloqs(t(t(z(z(|(|%3F3W3_3_`ceg3h3h3p3pqtvx3y3y  4B  4B  CF  HJ  4K  4K  4Q  4Q  4S  4S02E2U2]2]^ace2f2f2n2nortv2w2w22  AD  FH  3I  3I  3O  3O  3Q  3Q/3F3W3_3_`ceg3h3h3p3pqtvx3y3y  4B  4B  CF  HJ  4K  4K  4Q  4Q  4S  4S0 '.55ATAW5XX^^``K %7$>$E$E,?,B %F % %n[+66 " **Y*YZZO+ q q!|8-l;;;r~?RQRR;;;-.?@@@R^EXWX]_]j]onoDpp@@@@ %4%:%:%<%<  O
 $'&V&Vo&V&V&V#V#V $''\'\O'\'\'\$\$\! &/%6%=%=!4!7 &> & &f#"!(*	 	 # #&%b%bKa%b%b%b"b"b $+?#9#9,?,B $: $ $f(.%*  ! "%$\$\G[$\$\$\!\!\ #)."7"7,?,B #8 # #f.(*	    %('a'aM`'a'a'a$a$a! $+?#9#9,?,B $: $ $f.$*	  ! !$#Z#ZEY#Z#Z#Z Z Z'=2" 4!620!6.*eAbc/d/d.e"8 42 4@ @   r+   )?django.shortcutsr   r   r   apps.dashboard.utilsr   apps.especies.formsr   django.contribr   apps.especies.modelsr	   apps.outras_informacoes.modelsr
   apps.producao.modelsr   django.core.exceptionsr   apps.lotes.modelsr   r   apps.repique.modelsr   apps.estufa.modelsr   r   apps.protocolos.modelsr   reportlab.lib.pagesizesr   reportlab.libr   reportlab.platypusr   r   r   r   r   r   r   reportlab.lib.stylesr   reportlab.lib.unitsr   ior   django.httpr   django.confr    rm   django.utils.safestringr!   r*   r;   r/   rL   rQ   r   collectionsr   r   r   r   r+   r)   <module>r      sk   @ @ @ @ @ @ @ @ @ @ . . . . . . - - - - - - # # # # # # ) ) ) ) ) ) I I I I I I . . . . . . 5 5 5 5 5 5 5 5 5 5 5 5 5 5 ' ' ' ' ' ' . . . . . . . . 5 5 5 5 5 5 + * * * * *             h h h h h h h h h h h h h h h h h h 4 4 4 4 4 4 $ $ $ $ $ $       $ $ $ $ $ $             				 - - - - - -X X Xi i i6h h h<Q Q Q4
* 
* 
*V V Vr $ # # # # # z z z z zr+   