
    {g}                        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 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Z d dl!m"Z" d dl#Z$d dl%m&Z& d dl'm(Z( d dl)m*Z* d dl)m+Z+ d Z,d 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Zd dl0Z0 e0j1        e2          Z3e(d             Z4e(d             Z5d dl mZmZ d dl.m6Z6 e(d             Z7d Z8ddlmZ e(d              Z9d 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 e(d#             Z<d d"l mZmZ d dl'm(Z( dd$l=m>Z> e(d%             Z?d d&l mZ dd'l@mAZA e(d(             ZBd d&l mZ dd)lCmDZD e(d*             ZEd d&l mZ dd+lFmGZG e(d,             ZHd d&l mZ dd-lImJZJ e(d.             ZKd d&l mZ dd/lLmMZM e(d0             ZNd d&l mZ dd1lOmPZP e(d2             ZOd d&l mZ d dl'm(Z( dd3lQmRZR e(d4             ZSd d&l mZ d dl'm(Z( dd5lTmUZU e(d6             ZVd d&l mZ d dl'm(Z( e(d7             ZWd dlXZXd d8l.mYZY d d9lZm[Z[ e[d:             Z\e(d;             Z]d d<l^m_Z_ e(d=             Z`d d>lambZb e(d?             ZcdS )@    )renderredirectget_object_or_404)messages)Projeto)
ParedeForm)	VidroForm)	PortaForm)TelhadoForm)DadosTermicosForm)Parede)Vidro)Porta)Telhado)DadosTermicos   )AmbienteN)settings)
connection)login_required)gerar_relatorio_projeto)escolher_aparelho_renovacaoc                 z    d}|dz   }dt          j        d|z  |dz   z            z  }| |z  }d|z  d|z
  z  dz  }|S )	Ng     |@gfffffq@g r@gQ1@g     pn@gCl?g     @i  )npexp)umidade_relativatemperatura_internaRvTeseumidade_absolutas          #/var/www/html/cag/ctermica/views.pycalcular_umidade_absolutar$      s^    	Bf$A	!449Lu9TUVV	VB2A	gk2T9    c                 $   d| j          d}t          j        |d           i d|gd|j        gd|j        gd|j        gd	|j        gd
|j        gd|j        gd|j	        gd|j
        gd|j        gd|j        gd|j        gd|j        gd|j        gd|j        gd|j        gd|j        gi d|j        gd|j        gd|j        gd|j        gd|j        gd|j        gd|j        gd|j        gd|j        gd|j        gd |j        gd!|j        gd"|j        gd#|j         gd$|j!        gd%|j"        gd&|j#        gi d'|j$        gd(|j%        gd)|j&        gd*|j'        gd+|j(        gd,|j)        gd-|j*        gd.|j+        gd/|j,        gd0|j-        gd1|j.        gd2|j/        gd3|j0        gd4|j1        gd5|j2        gd6|j3        gd7|j4        g|j5        g|j6        g|j7        g|j8        g|j9        g|j:        g|j;        g|j<        g|j=        gd8	}t}          j?        |          }	t          j@        A                    || d9          }
|	B                    |
d:;           t          d<|
            d S )=N./var/www/html/cag/arquivos_climaticos/projeto_/T)exist_oknome_ambientearea_parede_nortecoeficiente_parede_nortetipo_parede_nortearea_parede_sulcoeficiente_parede_sultipo_parede_sularea_parede_lestecoeficiente_parede_lestetipo_parede_lestearea_parede_oestecoeficiente_parede_oestetipo_parede_oestearea_vidro_nortecoeficiente_vidro_nortetipo_vidro_nortearea_vidro_sulcoeficiente_vidro_sultipo_vidro_sularea_vidro_lestecoeficiente_vidro_lestetipo_vidro_lestearea_vidro_oestecoeficiente_vidro_oestetipo_vidro_oestearea_porta_nortecoeficiente_porta_nortetipo_porta_nortematerial_porta_nortediferencial_insolacao_nortearea_porta_sulcoeficiente_porta_sultipo_porta_sulmaterial_porta_suldiferencial_insolacao_sularea_porta_lestecoeficiente_porta_lestetipo_porta_lestematerial_porta_lestediferencial_insolacao_lestearea_porta_oestecoeficiente_porta_oestetipo_porta_oestematerial_porta_oestediferencial_insolacao_oestetipo_telhadocoeficiente_transmissao_telhadoarea_telhadodiferencial_insolacao_telhadocalor_sensivel_pessoacalor_latente_pessoa)	numero_pessoastaxa_iluminacaodissipacao_equipamentos
pe_direito	area_pisor   umidade_relativa_internaumidade_absoluta_internataxa_renovacao
_dados.csvF)indexz"Arquivo CSV salvo com sucesso em: )Dnome_projetoosmakedirsr+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   coeficiente_telhadorY   rZ   r[   r\   r]   r^   r_   r`   ra   r   rb   rc   rd   pd	DataFramepathjointo_csvprint)projetor*   paredevidroportatelhadotermicocaminho_basedadosdfcaminho_csvs              r#   salvar_dados_em_csvr{   %   s   [GDX[[[LKt,,,,K-K 	f67	K
 	#V%D$EK 	f67K 	F23K 	!6#@"AK 	F23K 	f67K 	#V%D$EK 	f67K 	f67K 	#V%D$EK 	f67K$ 	U34%K& 	"E$A#B'K( 	U34)K* 	5/0+K K, 	 %"=!>-K. 	5/0/K0 	U341K2 	"E$A#B3K4 	U345K6 	U347K8 	"E$A#B9K: 	U34;K@ 	U34AKB 	"E$A#BCKD 	U34EKF 	!; <GKH 	&(I'JIKL 	5/0MKN 	 %"=!>OKP 	5/0QKR 	u78SK K KT 	$e&E%FUKX 	U34YKZ 	"E$A#B[K\ 	U34]K^ 	!; <_K` 	&(I'JaKd 	U34eKf 	"E$A#BgKh 	U34iKj 	!; <kKl 	&(I'JmKt 	-.uKv 	*G,G+HwKx 	-.yKz 	('*O)P{K@ 	 '"?!@AKB 	!= >CK KD #12#34$+$C#D)*'( ' ;<%,%E$F%,%E$F"12UK K KE\ 
e		B',,|-I-I-IJJKIIkI'''	
<{
<
<=====r%   )r   r   )FileResponsec                    	 | j         j        r[| j         j        rOt          j        | j         j        j                   t                              d| j         j        j                    t          t          |          }t          t          ||          }t                              d|j         d|j                    d|j         d}|j         d}t          j                            ||          }t                              d	|            t          j                            |          sDt                              d
|            t%          j        | d           t'          d||          S t          j        |t          j                  sDt                              d|            t%          j        | d           t'          d||          S 	 t-          |d          }t/          |d|          }	d|	d<   d| d|	d<   |	S # t0          $ r[}
t                              dt3          |
                      t%          j        | d           t'          d||          cY d }
~
S d }
~
ww xY w# t0          $ r[}
t                              dt3          |
                      t%          j        | d           t'          d||          cY d }
~
S d }
~
ww xY w)NzSchema configurado para: idr   rq   z!Tentando baixar CSV para projeto z, ambiente r'   r(   re   zCaminho completo do arquivo: u   Arquivo não encontrado: u"   O arquivo CSV não foi encontrado.resultados_ambiente
projeto_idambiente_idu*   Sem permissão de leitura para o arquivo: u(   Erro de permissão ao acessar o arquivo.rbT)as_attachmentfilenameztext/csvzContent-Typezattachment; filename=""zContent-DispositionzErro ao abrir o arquivo: z(Erro ao processar o download do arquivo.z!Erro inesperado no download_csv: zOcorreu um erro inesperado.)useris_authenticatedtenantr   
set_schemaschema_nameloggerdebugr   r   r   rg   r*   rh   rm   rn   existserrorr   r   accessR_OKopenr|   	Exceptionstr)requestr   r   rq   ambienterw   nome_arquivocaminho_completofileresponser!   s              r#   download_csvr      s    3_<( 	XW\-@ 	X!',"5"ABBBLLVW\5H5TVVWWW $G
;;;$X+wOOOr9MrrZbZprrsss `H\___"0<<<7<<lCCG5EGGHHH w~~.// 	cLLG5EGGHHHN7$HIII1jVabbbb y)2733 	cLLXFVXXYYYN7$NOOO1jVabbbb	c($//D#"%  H
 (2H^$.V|.V.V.VH*+O 	c 	c 	cLL=SVV==>>>N7$NOOO1jVabbbbbbbbb	c
  _ _ _AQAABBBw =>>>-*R]^^^^^^^^^_sQ   E2I3 5A"I3 1H 
I0AI+%I0&I3 +I00I3 3
K=AKKKc                    | j         j        r/| j         j        r#t          j        | j         j        j                   t          t          |          }d}| j        dk    r-| j	        
                    dd                                          }|s+t          j        | d           t          d|j                  S t           j                            ||          }t'          | j	        d	
          }t)          | j	        d
          }t+          | j	        d
          t-          | j	        d
          }t/          | j	        d
          }||||d                                D ]`\  }	}
|
                                sGt5          d|	 d           t5          |
j                   t          j        | d|	 d|
j                    at9          |                                |                                                                |                                |                                g          rE|                    d          }||_        |                                 |                    d          }||_        |                                                     d          }||_        |                                 |                    d          }||_        |                                 |                    d          }||_        t?          |j         |j!                  |_"        |                                 t          j#        | d           t          d|j        |j                  S |$                                 nPt'          d	
          }t)          d
          }t+          d
          t-          d
          }t/          d
          }g d}fd|D             }|||||||d}tK          | d|          S )Nr~    POSTr*   u#   O nome do ambiente é obrigatório.cadastrar_ambienter   )r*   rq   rr   )prefixrs   rt   ru   rv   )r   r   r   r   u   Térmicou   Formulário u    inválido:u   Erro no formulário z: F)commitz Ambiente cadastrado com sucesso!r   r   )nortesullesteoestec           	      h    i | ].}|d |          d|          d|          d|          d/S )area_porta_coeficiente_porta_tipo_porta_diferencial_insolacao_)areacoeficientetipodiferencial ).0
orientacao
porta_forms     r#   
<dictcomp>z&cadastrar_ambiente.<locals>.<dictcomp>  sy         	9Z99:%&G:&G&GH9Z99:%&Kz&K&KL	
 
  r%   )rq   parede_form
vidro_formcampos_portatelhado_formtermico_formr*   z ctermica/cadastrar_ambiente.html)&r   r   r   r   r   r   r   r   methodr   getstripr   r   r   r   r   objectscreater   r	   r
   r   r   itemsis_validrp   errorsallsaver   r$   rb   r   rc   successdeleter   )r   r   rq   r*   r   r   r   r   r   nomeformrr   rs   rt   ru   rv   orientacoesr   contextor   s                      @r#   r   r      s!   |$ ?)< ?gl1=>>>J777GM~(("==CCEE 	IN7$IJJJ0WZHHHH#**PW*XX h???w|G<<<
w|G<<<
"7<	BBB(iHHH "#$
 
 %''
	V 
	VJD$ ==?? V6T666777dk"""w(Tt(T(Tt{(T(TUUU  ""!!!!!!##!!##
   $	 !%%U%33F&FOKKMMMOO5O11E%ENJJLLLOO5O11E%ENJJLLL"''u'55G'GLLNNN"''u'55G'G/H0+0 0G, LLNNNW&HIII1gjV^Vabbbb OO !111g...
g...
")444(	::: 544K    &  L " $$$& H '=xHHHr%   )r   r   )HttpResponsec                 P   | j         j        r/| j         j        r#t          j        | j         j        j                   t          t          |          }t          t          ||          }| j	        dk    r%|
                                 t          d|          S t          d          S )Nr~   r   r   lista_ambientesr   u!   Confirme a exclusão do ambiente.)r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   rq   r   s        r#   deletar_ambienter   4  s     |$ ?)< ?gl1=>>>J777G k7KKKH~)jAAAA;<<<r%   c                    d| j          d}	 t          j        t          j                            |d                    }t          j        t          j                            |d                    }t          j        t          j                            |d                    }t          j        t          j        |d                   |d         |d         |d	         d
          }||d         j        j	        dk    |d         j        j	        dk    z           }|d         j        
                    d          |d<   |                    d          S # t          $ r Y d S w xY w)Nzarquivos_climaticos/projeto_r(   ztemperaturas.csvzumidades_relativas.csvzumidades_absolutas.csvtimetemperature_2mrelative_humidity_2mr"   )r   temperaturar   r"         z%H:%Mhorarecords)rg   rk   read_csvrh   rm   rn   rl   to_datetimedthourstrftimeto_dictFileNotFoundError)rq   rw   df_temperaturasdf_umidades_relativasdf_umidades_absolutasdf_climaticos         r#   carregar_dados_climaticosr   H  sS   I'2FIIIL+bgll<AS&T&TUU "BGLLG_,`,` a a "BGLLG_,`,` a a |N?6#:;;*+;< 56L M 56H I	%
 %
   $&!$)Q.<3G3J3OSU3UV

  ,F36??HHV##I...   tts   EE 
EEc                 z   | j         j        r/| j         j        r#t          j        | j         j        j                   t          t          |          }t          j	        
                    |          }d |D             }d |D             }d |D             }d |D             }d |D             }t          |          }	g }
|D ]}	 t          j	                            |          }t          |j        |j        |j        |j                  }|r6|                    d	          r!d
 |                    d	g           D             }ng }|
                    |||r|                    d          ndd           # t          j        $ r |
                    |g dd           Y w xY wt+          | d||
||||||	d          S )uT   
    Renderiza a lista de ambientes de um projeto com informações adicionais.
    r~   )rq   c                 Z    i | ](}|j         t          j                            |           )S r   )r   r   r   filterr   r   s     r#   r   z#lista_ambientes.<locals>.<dictcomp>u  s0    hhhRZV^%:%:H%:%M%Mhhhr%   c                 Z    i | ](}|j         t          j                            |           )S r   )r   r   r   r   r   s     r#   r   z#lista_ambientes.<locals>.<dictcomp>v  0    fffPXx{EM$8$8($8$K$Kfffr%   c                 Z    i | ](}|j         t          j                            |           )S r   )r   r   r   r   r   s     r#   r   z#lista_ambientes.<locals>.<dictcomp>w  r   r%   c                 Z    i | ](}|j         t          j                            |           )S r   )r   r   r   r   r   s     r#   r   z#lista_ambientes.<locals>.<dictcomp>x  s0    jjjT\go&<&<h&<&O&Ojjjr%   c                 Z    i | ](}|j         t          j                            |           )S r   )r   r   r   r   r   s     r#   r   z#lista_ambientes.<locals>.<dictcomp>y  s1    pppZbm&;&B&BH&B&U&Upppr%   r   melhor_combc                     g | ]_}|                     d           |                     d          r0|                     di g          d                              d          ndd`S )modelovelocidadesvazao_maxima_m3hN)r   r   )r   )r   rs     r#   
<listcomp>z#lista_ambientes.<locals>.<listcomp>  s     
 
 
  #$%%//  !uu]33&AEE-"66r:>>?QRRR!% 
 
 
r%   vazao_total_ar_exteriorN)r   	renovadorr   zctermica/lista_ambientes.html)rq   ambientes_com_renovadoresparedesvidrosportastelhadostermicosdados_climaticos)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ra   r`   r]   rd   appendDoesNotExistr   )r   r   rq   	ambientesambiente_paredesambiente_vidrosambiente_portasambiente_telhadosambiente_termicosr   r   r   r   renovador_resultadorenovadoress                  r#   r   r   j  si   
 |$ ?)< ?gl1=>>>J777G '''88Ihh^ghhhff\efffOff\efffOjj`ijjjppfoppp099 " ' '&	$,00(0CCH"="#''	# # # !':'>'>}'M'M !
 
 144]BGG
 
 
 !%,,$( +'++,EFFF. .     ) 	 	 	%,,$+/. .     	 ':%>#!!%%,	= 	= 	 	 	s   B0E55(F F )get_messages)r   r   c                    | j         j        r/| j         j        r#t          j        | j         j        j                   t          t          |          }t          t          ||          }t          j
                            |          }t          j
                            |          }t          j
                            |                                          }t          j
                            |          }t           j
                            |                                          }	d t#          |           D             }
t%          | d|||||||	|
d          S )Nr~   r   r   c                 ,    g | ]}t          |          S r   )r   )r   messages     r#   r   z'resultados_ambiente.<locals>.<listcomp>  s    CCC'WCCCr%   z!ctermica/resultados_ambiente.html)rq   r   r   r   rt   r   r   	mensagens)r   r   r   r   r   r   r   r   r   r   r   r   r   r   firstr   r   r  r   )r   r   r   rq   r   r   r   rt   r   r   r  s              r#   r   r     sA   |$ ?)< ?gl1=>>>J777G k7KKKHn##X#66G]!!8!44FM  ( 3399;;E%%x%88H$++X+>>DDFFHCC\'-B-BCCCI'>	A 	A 	 	 	r%   )COEFICIENTES_PAREDESc                     | j         j        r/| j         j        r#t          j        | j         j        j                   t          | ddt          i          S )Nzctermica/coef_paredes.htmlcoef_paredes)r   r   r   r   r   r   r   r  r   s    r#   r  r    sV    |$ ?)< ?gl1=>>>'7,:   r%   )r   )COEFICIENTE_ARc                     | j         j        r/| j         j        r#t          j        | j         j        j                   t          j        di           }t          | dd|i          S )NzAmbientes Climatizadoszctermica/coef_renovacao.htmlambientes_climatizados)	r   r   r   r   r   r   r  r   r   )r   r  s     r#   coef_renovacao_arr    sj    |$ ?)< ?gl1=>>>+/0H"MM'9 "8<   r%   )COEFICIENTES_PESSOASc                     | j         j        r/| j         j        r#t          j        | j         j        j                   t          j        di           }t          j        di           }t          | d||d          S )Nu   Calor Sensível por Pessoa (W)zCalor Latente por Pessoa (W)zctermica/coef_pessoas.html)calor_sensivelcalor_latente)	r   r   r   r   r   r   r  r   r   )r   r  r  s      r#   coef_pessoasr    s    |$ ?)< ?gl1=>>>)-.NPRSSN(,-KRPPM'7(&: :   r%   )COEFICIENTES_PORTASc                     | j         j        r/| j         j        r#t          j        | j         j        j                   t          | ddt          i          S )Nzctermica/coef_portas.htmlcoef_portas)r   r   r   r   r   r   r   r  r  s    r#   r   r     V    |$ ?)< ?gl1=>>>'6*9   r%   )COEFICIENTES_TELHADOSc                     | j         j        r/| j         j        r#t          j        | j         j        j                   t          | ddt          i          S )Nzctermica/coef_telhados.htmlcoef_telhados)r   r   r   r   r   r   r   r"  r  s    r#   r$  r$    sV    |$ ?)< ?gl1=>>>'8.;   r%   )COEFICIENTES_VIDROSc                     | j         j        r/| j         j        r#t          j        | j         j        j                   t          | ddt          i          S )Nzctermica/coef_vidros.htmlcoef_vidros)r   r   r   r   r   r   r   r%  r  s    r#   r'  r'    r!  r%   )DISSIPACAO_EQUIPAMENTOSc           	          | j         j        r8t          | j         d          r#t          j        | j         j        j                   t          | ddt          j	        di           i          S )Nr   zctermica/dissipequi.htmlequipamentosEquipamentos)
r   r   hasattrr   r   r   r   r   r(  r   r  s    r#   
dissipequir-  '  sj    |$ ?x)H)H ?gl1=>>>'5/3NBGG8   r%   )DISSIPACAO_ILUMINACAOc           	      N    t          | ddt          j        di           i          S )uM   
    View para exibir os dados de dissipação térmica de iluminação.
    z ctermica/dissipa_iluminacao.html
iluminacaou   Iluminação)r   r.  r   r  s    r#   dissipa_iluminacaor1  6  s4     '=+/CC@   r%   )RECOMENDACAO_UMIDADEc           	      N    t          | ddt          j        di           i          S )uH   
    View para exibir as recomendações de umidade relativa do ar.
    zctermica/umidade.htmlumidadezFaixas de Umidade Relativa)r   r2  r   r  s    r#   umidade_recomendadar5  D  s4    
 '2'+,H"MM5   r%   c                     | j         j        r/| j         j        r#t          j        | j         j        j                   t          | d          S )Nzctermica/biblioteca.html)r   r   r   r   r   r   r   r  s    r#   biblioteca_coeficientesr7  T  sE    |$ ?)< ?gl1=>>>'5666r%   )JsonResponse)csrf_exemptc                 :   | j         dk    r~d| j        v rt	 | j        d         }|                                                    d                                          }t          j        |          }t          |          }d|                    dd          |                    dd          |                    dd          |                    d	d          |                    d
d          |                    dd          |                    dd          |                    dd          |                    dd          |                    dd          |                    dd          |                    dd          |                    dd          d|                    dd          |                    dd          |                    dd          |                    dd          |                    dd          |                    dd          |                    dd          |                    dd          |                    dd          |                    dd          |                    dd          |                    dd          d i d!|                    d!d          d"|                    d"d          d#|                    d#d          d$|                    d%d          d&|                    d&d          d'|                    d'd          d(|                    d(d          d)|                    d*d          d+|                    d+d          d,|                    d,d          d-|                    d-d          d.|                    d/d          d0|                    d0d          d1|                    d1d          d2|                    d2d          d3|                    d4d          |                    d5d          |                    d6d          |                    d7d          |                    d8d          d9|                    d:d          |                    d;d          |                    d<d          |                    d=d          |                    d>d          |                    d?d          |                    d@d          |                    dAd          |                    dBd          |                    dCd          |                    dDd          dEdF}t          |          S # t          $ r)}t          dGt          |          dH          cY d }~S d }~ww xY wt          dGdIdH          S )JNr   csv_filezutf-8Tr*   r   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   )r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   )r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rG   !diferencial_insolacao_porta_norterH   rI   rJ   rL   diferencial_insolacao_porta_sulrM   rN   rO   rQ   !diferencial_insolacao_porta_lesterR   rS   rT   rV   !diferencial_insolacao_porta_oesterW   rX   rY   rZ   )rW   rj   rY   rZ   r[   r\   r]   r^   r_   ra   r`   r   rd   rb   rc   )r[   r\   r]   r^   r_   ra   r`   r   rd   rb   rc   )r   r*   r   r   r   r   r   F)r   r   u0   Nenhum arquivo CSV enviado ou formato inválido.)r   FILESreaddecode
splitlinescsv
DictReadernextr   r8  r   r   )r   r;  decoded_filereaderdataresponse_datar!   s          r#   importar_csvrK  _  s   ~J'-$?$?W	E}Z0H#==??11'::EEGGL^L11F<<D  !%/2!>!> *.2Er)J)J049SUW0X0X)-2Er)J)J'+xx0A2'F'F.2hh7OQS.T.T'+xx0A2'F'F)-2Er)J)J049SUW0X0X)-2Er)J)J)-2Er)J)J049SUW0X0X)-2Er)J)J     )-1CR(H(H/3xx8QSU/V/V(,1CR(H(H&*hh/?&D&D-1XX6Mr-R-R&*hh/?&D&D(,1CR(H(H/3xx8QSU/V/V(,1CR(H(H(,1CR(H(H/3xx8QSU/V/V(,1CR(H(H &1CR(H(H-txx8QSU/V/V '1CR(H(H 2488<_ac3d3d	 %dhh/?&D&D ,TXX6Mr-R-R %dhh/?&D&D 0:[]_1`1` '1CR(H(H .txx8QSU/V/V '1CR(H(H 2488<_ac3d3d  '1CR(H(H!" .txx8QSU/V/V#$ '1CR(H(H%& 2488<_ac3d3d'. %)HH^R$@$@+/884UWY+Z+Z$(HH^R$@$@59XX>]_a5b5b	! ! .2XX6Mr-R-R,0HH5KR,P,P&*hh/?&D&D'+xx0A2'F'F/3xx8QSU/V/V!%+r!:!:"&((<"<"<+/884I2+N+N&*hh/?&D&D049SUW0X0X049SUW0X0X! !L LM\  ... 	E 	E 	EECFF C CDDDDDDDD	E E4fgghhhs   T<U 
VV=VVc           	         | j         j        r/| j         j        r#t          j        | j         j        j                   t          t          |          }t          t          |          }	 t          j
                            |          }t          |j        |j        |j        |j                  }t#          d |                    dg           D                       }|                    |t'          |                    dg                     ||d         k    d           n# t          j        $ r g ddddd	}Y nw xY wt+          | d
|||d          S )uU   
    Exibe os resultados do sistema de renovação para um ambiente específico.
    r~   r   c              3   >   K   | ]}|d          d         d         V  dS )r   r   r   Nr   )r   r   s     r#   	<genexpr>z$sistema_renovacao.<locals>.<genexpr>  sF       %
 %
 m$Q'(:;%
 %
 %
 %
 %
 %
r%   r   r   )vazao_total_combinacaonumero_aparelhosatende_necessidader   F)r   r   rO  rP  rQ  zctermica/sistema_renovacao.html)rq   r   r	  )r   r   r   r   r   r   r   r   r   r   r   r   r   ra   r`   r]   rd   sumupdatelenr  r   )r   r   r   rq   r   r   r	  rO  s           r#   sistema_renovacaorU    s   
 |$ ?)< ?gl1=>>>J777G k:::H
 (,,h,??9##	
 
 "% %
 %
044]BGG%
 %
 %
 "
 "
 	""&< #$7$;$;M2$N$N O O"8<OPi<j"j$
 $
 	 	 	 	 % 
 
 
'(&' !"'
 

 '<2? ?   s   )B7D! !D;:D;)gerar_relatorio_todos_ambientesc                     | j         j        r/| j         j        r#t          j        | j         j        j                   t          | |          S )N)r   r   r   r   r   r   rV  )r   r   s     r#   relatorio_completo_projeto_viewrX    sD    |$ ?)< ?gl1=>>>*7J???r%   )
gerar_pmocc                     | j         j        r/| j         j        r#t          j        | j         j        j                   t          t          |          }t          | |          S )Nr~   )	r   r   r   r   r   r   r   r   rY  )r   r   rq   s      r#   gerar_pmoc_viewr[    sV    |$ ?)< ?gl1=>>>J777Ggw'''r%   )ddjango.shortcutsr   r   r   django.contribr   projeto.modelsr   paredes.formsr   vidros.formsr	   portas.formsr
   telhados.formsr   termicos.formsr   paredes.modelsr   vidros.modelsr   portas.modelsr   telhados.modelsr   termicos.modelsr   modelsr   rh   pandasrk   django.confr   numpyr   	django.dbr   django.contrib.auth.decoratorsr   centraltermica.viewsr   r   r$   r{   django.httpr|   logging	getLogger__name__r   r   r   r   r   r   r   django.contrib.messagesr  r   coefparedesr  r  coefrenovacaor  r  coefpessoasr  r  
coefportasr  r   coeftelhadosr"  r$  
coefvidrosr%  r'  r-  r(  dissipiluminr.  r1  r4  r2  r5  r7  rD  r8  django.views.decorators.csrfr9  rK  rU  )calculotermica.relatorio_completo_projetorV  rX  ctermica.pmocrY  r[  r   r%   r#   <module>r     s   @ @ @ @ @ @ @ @ @ @ # # # # # # " " " " " " $ $ $ $ $ $ " " " " " " " " " " " " & & & & & & , , , , , , ! ! ! ! ! !             # # # # # # ) ) ) ) ) )       				                                 9 9 9 9 9 9 8 8 8 8 8 8 < < < < < <
  U> U> U>t 9 8 8 8 8 8 8 8 $ $ $ $ $ $ # # # # # #             9 9 9 9 9 9 				 		8	$	$4_ 4_ 4_n eI eI eI^ 9 8 8 8 8 8 8 8 $ $ $ $ $ $= = =&  @      E E ER : 9 9 9 9 9 0 0 0 0 0 0 6 6 6 6 6 6 6 6                    6 7 6 6 6 6 6 6 6 9 9 9 9 9 9 - - - - - -   $ # # # # # ) ) ) ) ) )   $ # # # # # - - - - - -   $ # # # # # + + + + + +   $ # # # # # / / / / / /   $ # # # # # + + + + + +   $ # # # # # / / / / / /   $ # # # # # 9 9 9 9 9 9 / / / / / /   $ # # # # # 9 9 9 9 9 9 ) ) ) ) ) )   $ # # # # # 9 9 9 9 9 97 7 7 


 $ $ $ $ $ $ 4 4 4 4 4 4[i [i [i~ - - -d V U U U U U@ @ @ % $ $ $ $ $( ( ( ( (r%   