
    i"                         S SK JrJrJrJrJrJrJrJr  S SK	r	S SK
Jr  S SKrS SKJr  S SKrS SKJr  S SKJrJrJr  S SKJrJrJrJrJrJrJr   S SKrS SK	r	\" 5         SrS	r S
 r!S r"g)    )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                 N    [        U 5      nU(       a  [        US   5      nU$ SnU$ )Nr   )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                    U R                  SS/S9S 5       nU R                  S5      S 5       nU R                  SS/S9S	 5       nU R                  S
S/S9S 5       nU R                  SS/S9S 5       nU R                  SS/S9S 5       ng )Nz(/ventas/data_master/brakers/listbreakersGET)methodsc                        [        5       n [        U 5      S4$ ! [         a"  n[        S[        U5      05      S4s SnA$ SnAff = f)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                     [        U 5      $ )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                     [         R                  " S5      n  [        R                  R                  S5      n[        R                  R                  S5      n[        R                  R                  S5      n[        R                  R                  S5      n[        R                  R                  S5      n[        XX4/5      (       d  [        SS05      S	4$ [        U5      S
:X  a  [        SS05      S	4$ S nU(       a7  [        XQ[        [        5      nUS   (       a  US   nO[        SUS   05      S	4$ [        XX4U5      n [        SS05      S4$ ! [         a"  n	[        S[        U	5      05      S4s S n	A	$ S n	A	ff = f)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(   )
r3   r   r4   r5   r6   technicalSheetfilename	resultador   r*   s
             r   add_breaker/register_dmbreakers_routes.<locals>.add_breakerN   sc   ++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	3s0   B;E E 2?E 2E 
E;E60E;6E;z)/ventas/data_master/brakers/updatebreakerc                      [         R                  " 5       n U R                  S5      nU R                  S5      nU R                  S5      nU R                  S5      n[        XX4/5      (       d  [	        SS05      S4$ [        XX45         [	        SS	05      S
4$ ! [         a"  n[	        S[        U5      05      S4s SnA$ SnAff = f)z)Actualiza un breaker en la base de datos.r   r4   r5   r6   r%   r8   r9   r>   z!Breaker actualizado exitosamente.r$   r&   N)r	   get_jsonr@   rC   r   r   r'   r(   )datar   r4   r5   r6   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$   A9B <B 
C"B?9C?Cz)/ventas/data_master/brakers/deletebreakerc                      [         R                  " 5       n U R                  S5      nU(       d  [        SS05      S4$ [	        U5        [        SS05      S4$ ! [
         a"  n[        S[        U5      05      S4s S	nA$ S	nAff = f)
z'Elimina un breaker de la base de datos.r   r%   zEl campo Item es obligatorio.r9   r>   zBreaker eliminado exitosamente.r$   r&   N)r	   rL   r@   r   r   r'   r(   )rM   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 
B"A?9B?Bz-/ventas/data_master/brakers/actualizarbreakerc                      Sn Sn[        SSS[        [        UU S[        S9	nUS   (       a  [	        S	US
   05      S4$ [        SUS
    35        [	        SUS
   05      S4$ ! [         aV  nSS Kn[        S[        U5       35        [        UR                  5       5        [	        S[        U5      05      S4s S nA$ S nAff = f)Nz7Consultas_SQL.Ventas.VentasEUA.DataMaster.DMbreakersSQLr   CZE_BreakersCatalogItem_breakerr7   zhttps://file.sycelephant.com)	tablacampo_id	campo_urlupdate_functionruta_remotasearch_function_namemodule_pathbase_urlrE   r;   r>   r=   r$   u   Error en actualización: r%   r&   r   u   Error en la actualización: )
r   r   rD   rE   r   printr'   	tracebackr(   
format_exc)r\   function_namerH   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" "A" "
C,AB=7C=C)route)appr+   r/   rI   rN   rQ   rb   s          r   register_dmbreakers_routesrf   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   requestsrD   rE   r   rf    r   r   <module>rr      sb    ^ ] ] 	   *  < i i  
  	 
 Z
0]3r   