U
    i                     @   s   d dl mZmZmZmZmZmZmZmZ d dl	Z	d dl
mZ d dlZd dlmZ d dlZd dlmZmZmZ d dlmZmZmZmZ d dlmZ d dlZd dl	Z	e  dZd	Zd
d Zdd ZdS )    )Flaskrender_template	send_fileaborturl_forjsonifyrequestsessionN)load_dotenv)secure_filename)subir_archivo_ftp_desde_requestview_pdf_fileverificar_actualizar_archivos)get_Enclosureupdate_Enclosureupdate_Enclosure_TechnicalSheetitem_exists)user_has_accesszH/domains/sycelephant.com/public_html/file/Ventas/EUA/DMITEMS/TANKOPTIONSz /Ventas/EUA/DMITEMS/TANKOPTIONS/c                 C   s"   t | }|rt|d }nd}|S )Nr   )r   int)itemresultcount r   oC:\Users\victor.barrera\Documents\proyectos\elepV3\Elep\src\App\Ventas_Module\VentasEUA\DataMaster\Enclosure.pyexisten_items'   s
    r   c                 C   sL   | j ddgddd }| j ddgddd	 }| j d
dgddd }dS )ur   
    Registra todas las rutas relacionadas con el manejo de casetas (Enclosures)
    en la aplicación Flask.
    z+/ventas/data_master/Enclosure/listEnclosureGET)methodsc               
   S   sT   zt  } t| dfW S  tk
rN } ztdt|idf W Y S d}~X Y nX dS )z
        user_id = session.get('user_id')
        if not user_has_access(user_id, "Ventas", "read"):
            message = "No tiene permisos para visualizar"
            return render_template("Security/AccessDened.html",message)
           error  N)r   r   	Exceptionstr)departamenter   r   r   listEnclosure:   s
    	z&register_Caseta.<locals>.listEnclosurez-/ventas/data_master/Enclosure/updateEnclosurePOSTc               
   S   s   zVt  } | d}| d}t||gs<tddidfW S t|| tddidfW S  tk
r } ztdt|id	f W Y S d
}~X Y nX d
S )z)Actualiza un breaker en la base de datos.r   pricer   z"Todos los campos son obligatorios.i  messageuI   Catálogo de componentes adicionales de tanques actualizado exitosamente.r   r   N)r   get_jsongetallr   r   r    r!   )datar   r&   r#   r   r   r   update_Enclosure_routeN   s    


z/register_Caseta.<locals>.update_Enclosure_routez1/ventas/data_master/Enclosure/actualizarEnclosurec                  S   s   zzd} d}t dddtt| |dtd	}td|  |d	 rPtd
|d idfW S td|d   td|d idfW S W n` tk
r } zBddl}tdt|  t|	  tdt|idf W Y S d}~X Y nX dS )uN   Actualiza todas las Fichas técnicas verificando su existencia en el servidor.z6Consultas_SQL.Ventas.VentasEUA.DataMaster.EnclosureSQLsearchitemsZCZE_EnclosureConfigConfigIDTechnicalSheetzhttps://file.sycelephant.com)	tablacampo_id	campo_urlupdate_functionruta_remotamodule_pathsearch_function_namebase_urlcarpetau    Resultado de la actualización: exitor'   mensajer   u   Error en actualización: r   r   r   Nu   Error en la actualización: )
r   r   ruta_pdfr8   printr   r    	tracebackr!   
format_exc)r5   function_name	resultador#   r=   r   r   r   updated_Enclosure_routea   s0    z0register_Caseta.<locals>.updated_Enclosure_routeN)route)appr$   r,   rA   r   r   r   register_Caseta2   s    

rD   ) flaskr   r   r   r   r   r   r   r	   osdotenvr
   ftplibZwerkzeug.utilsr   tempfileApp.Subir_Archivor   r   r   Z6Consultas_SQL.Ventas.VentasEUA.DataMaster.EnclosureSQLr   r   r   r    App.Security_Module.UserPasswordr   requestsr;   r8   r   rD   r   r   r   r   <module>   s   (	