
    }g              	       n    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dededed	efd
Z	d Z
d Zd Zd Zy)    N)text)datetime)settings)get_session
reportNamesqlQueryfromDatetoDatec                 V   K   | dk(  rt        ||      }nt        |      }| ||||dS w)Nlodging_statistics)	sql_query)r   r   r	   r
   data)
log_reportexecute_raw_query)r   r   r	   r
   	callbackskwargsr   s          5/var/www/html/chat-with-data/app/rag/genReportTool.py
gen_reportr      s8     ))(F+ 84$hY_imnns   ')c                 F    t        | t              r| j                         S | S )N)
isinstancer   	isoformat)values    r   serialize_valuer      s    %"  L    c                    t               }	 |j                  t        |             }|j                         }|j	                         }|D cg c]+  }t        ||      D ci c]  \  }}|t        |       c}}- }}}}||j                          S c c}}w c c}}}w # t        $ r(}	t        d|	        Y d }	~	|j                          y d }	~	ww xY w# |j                          w xY w)NzAn error occurred: )
r   executer   fetchallkeyszipr   close	Exceptionprint)
r   sessionresult_proxy
result_setcolumn_namesrowcolumnr   result_as_dictes
             r   r   r      s     mGtI7 "**,
 $((*
 "
! BE\SVAWXAWV_U++AWX! 	 
  	 Y
  #A3'( 	 	sN   A B B B6B<B BB 	C(C6C CC C%c                 `   	 | |dg dd}t        t        j                         ddt        j                  d}t        j                  d||      }t        |j                                |j                  sy 	 t        |j                               S # t        $ r}t        |       Y d }~y d }~ww xY w)	Nlistingnew)startendmodeselected_hotel
factReport12112)HotelidCurrent_versionAuthorizationzLhttps://mtstaging.lodgingsystem.com/ls-api/Factreports/getlodgingStatsReport)jsonheaders)	r"   r   TOKENrequestspostr8   okr!   
parse_data)r.   r/   r   r9   responser*   s         r   r   r   8   s     
 	hnn"$NN

 ==Z
 	hmmo{{ 
 hmmo&&  as   A2B 	B-B((B-c                    | d   }| d   }g }|D ]o  }i }t        |j                               }t        |      D ]3  \  }}|j                  dd      }	|t	        |      k  r	||   ||	<   /d||	<   5 |j                  |       q |S )Ncolumnsresult. )listvalues	enumeratereplacelenappend)
r   rA   resultsparsed_resultsrB   r'   result_valuesir(   cols
             r   r>   r>   T   s    9oG8nG NV]]_-"7+IAv..R(C3}%%(+CC , 	c"  r   )NNNNN)r;   
sqlalchemyr   r   app.config.applicationr   app.model.sql_connectionr   strr   r   r   r   r>    r   r   <module>rU      sP       + 0o oS o# o]` o
B'8r   