a
    0i                     @   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)Z
url_prefixz/api/quotationz/api/ftpz/api/quotation/cotizz/set_language/<lang_code>c                    sD   |  j d v r8tjptd}tt|}|d|  |S ttdS )NBABEL_SUPPORTED_LOCALESwelcomeZlang)r   r   referrerr   r   r   Z
set_cookie)Z	lang_coder   Zrespapp /var/www/html/src/app.pyset_language:   s    z create_app.<locals>.set_languagez/templates/<path:filename>c                 S   s
   t d| S )NZ	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   )Z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y~ } zd| W  Y d }~S d }~0 0 d S )Nr-   T)Z	_externalz/mnt/pruebapdf/prueba.pdfzD:\PruebasPDF\prueba.pdfZpuppeteer_pdfzgenerate_pdf.jsZnode)checkzPDF generado en: zError al generar PDF: )	r   r   ospathjoinZ	root_path
subprocessrunZCalledProcessError)Z	flask_urlZpdf_pathZscript_pather   r   r    generar_pdf   s    zcreate_app.<locals>.generar_pdf)r   __name__r   Zfrom_objectr'   r   mailZinit_appr   Zregister_blueprintr   quotation_router
ftp_routerquotation_cotiz_routerZrouter   r   r   r   r   )Zentornor!   r#   r   r&   r(   r)   r*   r+   r,   r-   r5   r   r   r    
create_app#   sJ    

	











	
r;   )r   ),r/   r2   Z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   r8   Z App.api.controller.FtpControllerr9   Z-App.api.controller.quotation_cotiz_controllerr:   r7   r;   r   r   r   r    <module>   s&   (