a
    0i"                     @   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_breakersinsert_breakerupdate_breakerdelete_breakeritem_existssearchitemsupdate_breaker_TechnicalSheetzL/domains/sycelephant.com/public_html/file/Ventas/EUA/DMITEMS/BREAKER_CATALOGz$/Ventas/EUA/DMITEMS/BREAKER_CATALOG/c                 C   s"   t | }|rt|d }nd}|S )Nr   )r   int)itemresultcount r   F/var/www/html/src/App/Ventas_Module/VentasEUA/DataMaster/DMbreakers.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 )Nz(/ventas/data_master/brakers/listbreakersGET)methodsc               
   S   sR   zt  } t| dfW S  tyL } z tdt|idfW  Y d}~S d}~0 0 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)departamenter   r   r   list_breakers7   s
    	z1register_dmbreakers_routes.<locals>.list_breakersz./ventas/pdf_viewer/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_pdfG   s    z+register_dmbreakers_routes.<locals>.ver_pdfz&/ventas/data_master/brakers/addbreakerPOSTc            
   
   S   s&  t d} ztjd}tjd}tjd}tjd}tjd}t||||gsjtddid	fW S t|d
krt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y  }	 z tdt|	idfW  Y d }	~	S d }	~	0 0 d S )Nuser_idr   descriptionpricetypeTechnicalSheetr!   "Todos los campos son obligatorios.     u"   El item ya existe en el catálogo.exitourl_webmensajemessagezBreaker agregado exitosamente.   r"   )r	   getr   formfilesallr   r   r   ruta_pdfcarpetar   r#   r$   )
r+   r   r,   r-   r.   technicalSheetfilename	resultador   r&   r   r   r   add_breakerN   s*    

z/register_dmbreakers_routes.<locals>.add_breakerz)/ventas/data_master/brakers/updatebreakerc               
   S   s   zrt  } | d}| d}| d}| d}t||||gsTtddidfW S t|||| tdd	id
fW S  ty } z tdt|idfW  Y d}~S d}~0 0 dS )z)Actualiza un breaker en la base de datos.r   r,   r-   r.   r!   r0   r1   r6   z!Breaker actualizado exitosamente.r    r"   N)r   get_jsonr8   r;   r   r   r#   r$   )datar   r,   r-   r.   r&   r   r   r   update_breaker_route   s    



z8register_dmbreakers_routes.<locals>.update_breaker_routez)/ventas/data_master/brakers/deletebreakerc               
   S   s   zBt  } | d}|s*tddidfW S t| tddidfW S  tyz } z tdt|idfW  Y d	}~S d	}~0 0 d	S )
z'Elimina un breaker de la base de datos.r   r!   zEl campo Item es obligatorio.r1   r6   zBreaker eliminado exitosamente.r    r"   N)r   rB   r8   r   r   r#   r$   )rC   r   r&   r   r   r   delete_breaker_route   s    
z8register_dmbreakers_routes.<locals>.delete_breaker_routez-/ventas/data_master/brakers/actualizarbreakerc                  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y } zFdd l}tdt|  t|	  tdt|idfW  Y d }~S d }~0 0 d S )Nz7Consultas_SQL.Ventas.VentasEUA.DataMaster.DMbreakersSQLr   ZCZE_BreakersCatalogZItem_breakerr/   zhttps://file.sycelephant.com)	tablacampo_id	campo_urlupdate_functionruta_remotasearch_function_namemodule_pathbase_urlr=   r3   r6   r5   r    u   Error en actualización: r!   r"   r   u   Error en la actualización: )
r   r   r<   r=   r   printr#   	tracebackr$   
format_exc)rL   function_namer@   r&   rO   r   r   r   updated_breaker_route   s.    z9register_dmbreakers_routes.<locals>.updated_breaker_route)route)appr'   r)   rA   rD   rE   rR   r   r   r   register_dmbreakers_routes3   s    


0
 
rU   )#flaskr   r   r   r   r   r   r   r	   osdotenvr
   ftplibZwerkzeug.utilsr   tempfile App.Security_Module.UserPasswordr   App.Subir_Archivor   r   r   Z7Consultas_SQL.Ventas.VentasEUA.DataMaster.DMbreakersSQLr   r   r   r   r   r   r   requestsr<   r=   r   rU   r   r   r   r   <module>   s   ($