U
    (i                     @   s  d dl Z d dlZd dlmZ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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) e Z*dddZ+dS )    N)Flaskrequestredirecturl_forrender_templatemake_responsesessionsend_from_directory)Mail)Babel)config
Productivo)register_clientes_routes)register_ventas_routes)register_operaciones_routes)register_supyctrol_routes)
init_babel)PreRegister_routes)register_security_routes)check_user_access)business_central_router)routerdevelopmentc                    sv  t t  jt| td  t  t  t t  j	t
dd  j	tdd  j	tdd  j	tdd  d fdd	} d
dd } ddd } ddd }t   ddd }t t  ddd }t t  ddd }t t t t  ddd } dd d! }	 d"d#d$ }
 d% fd&d'} S )(u9   Crea e inicializa la aplicación Flask según el entorno.defaultz/api/bc)
url_prefixz/api/quotationz/api/ftpz/api/quotation/cotizz/set_language/<lang_code>c                    sD   |  j d kr8tjptd}tt|}|d|  |S ttdS )NZBABEL_SUPPORTED_LOCALESwelcomelang)r   r   referrerr   r   r   
set_cookie)Z	lang_coder   respapp BC:\Users\victor.barrera\Documents\proyectos\elepV3\Elep\src\app.pyset_language:   s    z create_app.<locals>.set_languagez/templates/<path:filename>c                 S   s
   t d| S )N	templates)r	   )filenamer"   r"   r#   serve_templateD   s    z"create_app.<locals>.serve_template/c                   S   s   t dS )u_   
        Página principal de bienvenida.
        Renderiza el archivo `welcome.html`.
        zwelcome.htmlr   r"   r"   r"   r#   r   I   s    zcreate_app.<locals>.welcomez/loginc                   S   s   t dS )uZ   
        Página de inicio de sesión.
        Renderiza el archivo `login.html`.
        zSecurity/login.htmlr)   r"   r"   r"   r#   loginQ   s    zcreate_app.<locals>.loginz/indexc                  S   s   t d} d}d}t| ||S )uU   
        Página de inicio (index).
        Renderiza el archivo index.html.
        Zuser_idz/index.htmlF)r   getr   )ZUserIDZrutaZRestricted_Accessr"   r"   r#   index^   s    
zcreate_app.<locals>.indexz
/Direccionc                   S   s   dS )uh   
        Página del menú de Dirección.
        Actualmente muestra un mensaje de desarrollo.
        u"   Página en desarrollo - Direcciónr"   r"   r"   r"   r#   	Direccionl   s    zcreate_app.<locals>.Direccionz
/Serviciosc                   S   s   dS )ug   
        Página del menú de Servicios.
        Actualmente muestra un mensaje de desarrollo.
        u!   Página en desarrollo - Serviciosr"   r"   r"   r"   r#   	Serviciosw   s    zcreate_app.<locals>.Serviciosz/Sitiosc                   S   s   dS )ud   
        Página del menú de Sitios.
        Actualmente muestra un mensaje de desarrollo.
        u   Página en desarrollo - Sitiosr"   r"   r"   r"   r#   Sitios   s    zcreate_app.<locals>.Sitiosz	/About_usc                   S   s   dS )uh   
        Página de Acerca de (About Us).
        Actualmente muestra un mensaje de desarrollo.
        u    Página en desarrollo - About Usr"   r"   r"   r"   r#   About_us   s    zcreate_app.<locals>.About_usz/mi_htmlc                  S   s   d} | S )Na/  
        <html>
        <head>
            <meta charset="UTF-8">
            <title>Prueba de PDF</title>
        </head>
        <body>
            <h1>Hola, este es un HTML de prueba </h1>
            <p>Convirtiendo HTML a PDF usando Node.js + Puppeteer.</p>
        </body>
        </html>
        r"   )htmlr"   r"   r#   mi_html   s    zcreate_app.<locals>.mi_htmlz/generar_pdfc               
      s   t ddd} trd}nd}tj jdd}z"tjd|| |gdd	 d
| W S  tjk
r } zd|  W Y S d }~X Y nX d S )Nr2   T)	_externalz/mnt/pruebapdf/prueba.pdfzD:\PruebasPDF\prueba.pdfZpuppeteer_pdfzgenerate_pdf.jsnode)checkzPDF generado en: zError al generar PDF: )	r   r   ospathjoin	root_path
subprocessrunCalledProcessError)Z	flask_urlZpdf_pathZscript_pather    r"   r#   generar_pdf   s    zcreate_app.<locals>.generar_pdf)r   __name__r   from_objectr+   r   mailZinit_appr   register_blueprintr   quotation_router
ftp_routerquotation_cotiz_routerrouter   r   r   r   r   )Zentornor$   r'   r   r*   r,   r-   r.   r/   r0   r2   r>   r"   r    r#   
create_app#   sJ    

	











	
rG   )r   ),r6   r:   flaskr   r   r   r   r   r   r   r	   Z
flask_mailr
   Zflask_babelr   r   r   ZApp.Clientesr   Z
App.Ventasr   ZApp.Operacionesr   ZApp.SupyCtrolr   ZApp.Traduccionr   ZApp.PreRegisterr   ZApp.Securityr   ZApp.Security_Module.UserAccessr   Z.App.api.controller.business_central_controllerr   Z'App.api.controller.quotation_Controllerr   rC   Z App.api.controller.FtpControllerrD   Z-App.api.controller.quotation_cotiz_controllerrE   rA   rG   r"   r"   r"   r#   <module>   s&   (