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 d dlmZmZmZ d dlmZmZmZmZmZmZ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)user_has_access)subir_archivo_ftp_desde_requestview_pdf_fileverificar_actualizar_archivos)get_Catalogo_de_amortiguadores!insert_Catalogo_de_amortiguadores!update_Catalogo_de_amortiguadores!delete_Catalogo_de_amortiguadoresitem_existssearchitems0update_Catalogo_de_amortiguadores_TechnicalSheetzO/domains/sycelephant.com/public_html/file/Ventas/EUA/DMITEMS/ADDACCESORY_SPRINGz'/Ventas/EUA/DMITEMS/ADDACCESORY_SPRING/c                 C   s"   t | }|rt|d }nd}|S )Nr   )r   int)itemresultcount r   zC:\Users\victor.barrera\Documents\proyectos\elepV3\Elep\src\App\Ventas_Module\VentasEUA\DataMaster\DMAddAccesory_Spring.pyexisten_items"   s
    r   c                 C   s   | j ddgddd }|  ddd }| j d	d
gddd }| j dd
gddd }| j dd
gddd }| j ddgddd }dS )ud   
    Registra las rutas para la gestión de departamentos directamente en la aplicación Flask.
    zM/ventas/data_master/Catalogo_de_amortiguadores/listCatalogo_de_amortiguadores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 este archivo"
            return render_template("Security/AccessDened.html",message)
           error  N)r   r   	Exceptionstr)TIPOSCONTROLESer   r   r   list_Catalogo_de_amortiguadores5   s
    	zUregister_dmCatalogo_de_amortiguadores_routes.<locals>.list_Catalogo_de_amortiguadoreszH/ventas/pdf_viewerCatalogo_de_amortiguadores/view/<path:filename_or_url>c                 S   s   t | S )u4   Endpoint para visualizar un archivo PDF específico.)r   )filename_or_urlr   r   r   !ver_pdfCatalogo_de_amortiguadoresE   s    zWregister_dmCatalogo_de_amortiguadores_routes.<locals>.ver_pdfCatalogo_de_amortiguadoresz9/ventas/data_master/brakers/addCatalogo_de_amortiguadoresPOSTc            	   
   S   s  t d} ztjd}tjd}tjd}tjd}t|||gs\tddidfW S t|d	krztdd
idfW S d }|rt||t	t
}|d r|d }n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 )Nuser_idr   descriptionpriceTechnicalSheetr!   "Todos los campos son obligatorios.     u"   El item ya existe en el catálogo.exitourl_webmensajemessageu2   Catálogo de amortiguadores agregado exitosamente.   r"   )r	   getr   formfilesallr   r   r   ruta_pdfcarpetar   r#   r$   )	r+   r   r,   r-   technicalSheetfilename	resultador   r&   r   r   r   add_Catalogo_de_amortiguadoresL   s(    

zTregister_dmCatalogo_de_amortiguadores_routes.<locals>.add_Catalogo_de_amortiguadoresz4/ventas/data_master/updateCatalogo_de_amortiguadoresc               
   S   s   zdt  } | d}| d}| d}t|||gsHt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   r,   r-   r!   r/   r0   r5   u5   Catálogo de amortiguadores actualizado exitosamente.r    r"   N)r   get_jsonr7   r:   r   r   r#   r$   )datar   r,   r-   r&   r   r   r   'update_Catalogo_de_amortiguadores_routet   s    


z]register_dmCatalogo_de_amortiguadores_routes.<locals>.update_Catalogo_de_amortiguadores_routezO/ventas/data_master/Catalogo_de_amortiguadores/deleteCatalogo_de_amortiguadoresc               
   S   s   zBt  } | d}|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'Elimina un control de la base de datos.r   r!   zEl campo Item es obligatorio.r0   r5   u3   Catálogo de amortiguadores eliminado exitosamente.r    r"   N)r   rA   r7   r   r   r#   r$   )rB   r   r&   r   r   r   'delete_Catalogo_de_amortiguadores_route   s    
z]register_dmCatalogo_de_amortiguadores_routes.<locals>.delete_Catalogo_de_amortiguadores_routezS/ventas/data_master/Catalogo_de_amortiguadores/actualizarCatalogo_de_amortiguadoresc                  S   s   zld} d}t dddtt| |dtd	}|d rBt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.zAConsultas_SQL.Ventas.VentasEUA.DataMaster.DMAddAccesory_SpringSQLr   ZCZE_AddAccesory_SpringItem_AddAccesory_Springr.   zhttps://file.sycelephant.com)	tablacampo_id	campo_urlupdate_functionruta_remotamodule_pathsearch_function_namebase_urlr<   r2   r5   r4   r    u   Error en actualización: r!   r"   r   Nu   Error en la actualización: )
r   r   r;   r<   r   printr#   	tracebackr$   
format_exc)rK   function_namer?   r&   rO   r   r   r   (updated_Catalogo_de_amortiguadores_route   s.    z^register_dmCatalogo_de_amortiguadores_routes.<locals>.updated_Catalogo_de_amortiguadores_routeN)route)appr'   r)   r@   rC   rD   rR   r   r   r   ,register_dmCatalogo_de_amortiguadores_routes.   s    


'

rU   )#flaskr   r   r   r   r   r   r   r	   osdotenvr
   ftplibZwerkzeug.utilsr   tempfile App.Security_Module.UserPasswordr   App.Subir_Archivor   r   r   ZAConsultas_SQL.Ventas.VentasEUA.DataMaster.DMAddAccesory_SpringSQLr   r   r   r   r   r   r   requestsr;   r<   r   rU   r   r   r   r   <module>   s   ($	