+
    i"                         ^ RI HtHtHtHtHtHtHtHt ^ RI	t	^ RI
Ht ^ RIt^ RIHt ^ RIt^ RIHt ^ RIHtHtHt ^ RIHtHtHtHtHtHtHt  ^ RIt^ RI	t	]! 4        RtR	t R
 t!R t"R# )    )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                 X    \        V 4      pV'       d   \        V^ ,          4      pV# ^ pV# )r   )r   int)itemresultcounts   &  pC:\Users\victor.barrera\Documents\proyectos\elepV3\Elep\src\App\Ventas_Module\VentasEUA\DataMaster\DMbreakers.pyexisten_itemsr   '   s/    FF1I L L    c                 8   V P                  R R.R7      R 4       pV P                  R4      R 4       pV P                  RR.R7      R 4       pV P                  R	R.R7      R
 4       pV P                  RR.R7      R 4       pV P                  RR.R7      R 4       pR# )z(/ventas/data_master/brakers/listbreakersGET)methodsc                       \        4       p \        V 4      ^3#   \         d#   p\        R\        T4      /4      R3u Rp?# Rp?ii ; i)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es     r   list_breakers1register_dmbreakers_routes.<locals>.list_breakers7   sL     	1	3&.K;',, 	3GSV,-s22	3s    AAAAz./ventas/pdf_viewer/view/<path:filename_or_url>c                    \        V 4      # )u4   Endpoint para visualizar un archivo PDF específico.)r   )filename_or_urls   &r   ver_pdf+register_dmbreakers_routes.<locals>.ver_pdfG   s     _--r   z&/ventas/data_master/brakers/addbreakerPOSTc                     \         P                  ! R 4      p  \        P                  P                  R4      p\        P                  P                  R4      p\        P                  P                  R4      p\        P                  P                  R4      p\        P                  P                  R4      p\        WW4.4      '       g   \        RR/4      R3# \        V4      ^8X  d   \        RR	/4      R3# R
pV'       dE   \        WQ\        \        4      pVR,          '       d   VR,          pM\        RVR,          /4      R3# \        WW4V4      p \        RR/4      ^3#   \         d#   p	\        R\        T	4      /4      R3u R
p	?	# R
p	?	ii ; i)user_idr   descriptionpricetypeTechnicalSheetr$   "Todos los campos son obligatorios.  u"   El item ya existe en el catálogo.Nexitourl_webmensajemessagezBreaker agregado exitosamente.r%   )r
   getr	   formfilesallr   r   r   ruta_pdfcarpetar   r&   r'   )
r2   r   r3   r4   r5   technicalSheetfilename	resultador   r)   s
             r   add_breaker/register_dmbreakers_routes.<locals>.add_breakerN   sf   ++i()	3<<##F+D!,,**=9KLL$$W-E<<##F+D$]]../?@N5788)MNOQTTT T"a')MNOQTTTH <NRZ[bc	W%%(3H"GYy-A#BCSHH $DuHMF	 I'GHI3NN 	3GSV,-s22	3s7   B<E E 4	E >AE E F*FFFz)/ventas/data_master/brakers/updatebreakerc                     \         P                  ! 4       p V P                  R4      pV P                  R4      pV P                  R4      pV P                  R4      p\        WW4.4      '       g   \	        RR/4      R3# \        WW44        \	        RR	/4      ^3#   \         d#   p\	        R\        T4      /4      R
3u Rp?# Rp?ii ; i)z)Actualiza un breaker en la base de datos.r   r3   r4   r5   r$   r7   r8   r<   z!Breaker actualizado exitosamente.r%   N)r	   get_jsonr=   r@   r   r   r&   r'   )datar   r3   r4   r5   r)   s         r   update_breaker_route8register_dmbreakers_routes.<locals>.update_breaker_route   s    	3##%D88F#D((=1KHHW%E88F#D5788)MNOQTTT4e:
 I'JKLcQQ 	3GSV,-s22	3s$   A:B =B C$C;CCz)/ventas/data_master/brakers/deletebreakerc                     \         P                  ! 4       p V P                  R4      pV'       g   \        RR/4      R3# \	        V4       \        RR/4      ^3#   \
         d#   p\        R\        T4      /4      R3u Rp?# Rp?ii ; i)	z'Elimina un breaker de la base de datos.r   r$   zEl campo Item es obligatorio.r8   r<   zBreaker eliminado exitosamente.r%   N)r	   rI   r=   r   r   r&   r'   )rJ   r   r)   s      r   delete_breaker_route8register_dmbreakers_routes.<locals>.delete_breaker_route   s    	3##%D88F#D)HIJCOO4 I'HIJCOO 	3GSV,-s22	3s'   -A A A B$B;BBz-/ventas/data_master/brakers/actualizarbreakerc                      R p Rp\        RRR\        \        VV R\        R7	      pVR,          '       d   \	        RVR	,          /4      ^3# \        R
VR	,           24       \	        RVR	,          /4      R3#   \         dW   p^ RIp\        R\        T4       24       \        TP                  4       4       \	        R\        T4      /4      R3u Rp?# Rp?ii ; i)z7Consultas_SQL.Ventas.VentasEUA.DataMaster.DMbreakersSQLr   CZE_BreakersCatalogItem_breakerr6   zhttps://file.sycelephant.com)	tablacampo_id	campo_urlupdate_functionruta_remotasearch_function_namemodule_pathbase_urlrB   r9   r<   r;   u   Error en actualización: r$   r%   Nu   Error en la actualización: )
r   r   rA   rB   r   printr&   	tracebackr'   
format_exc)rY   function_namerE   r)   r\   s        r   updated_breaker_route9register_dmbreakers_routes.<locals>.updated_breaker_route   s    	3SK)M 6+'* =$%2'7!
I !!	9Y+?@A3FF1)I2F1GHI9)=>?DD 	30Q9:)&&()GSV,-s22		3s%   AA6 *A6 6CACCCN)route)appr*   r.   rF   rK   rN   r_   s   &      r   register_dmbreakers_routesrc   3   s     	YY9E7YK3 L3 	YY?@. A. 	YY7&YJ,3 K,3` 	YY:VHYM3 N3@ 	YY:VHYM
3 N
3  	YY>YP3 Q3r   )#flaskr   r   r   r   r   r   r	   r
   osdotenvr   ftplibwerkzeug.utilsr   tempfile App.Security_Module.UserPasswordr   App.Subir_Archivor   r   r   7Consultas_SQL.Ventas.VentasEUA.DataMaster.DMbreakersSQLr   r   r   r   r   r   r   requestsrA   rB   r   rc    r   r   <module>ro      sb    ^ ] ] 	   *  < i i  
  	 
 Z
0]3r   