
    +[h7                         d dl Z d dlZd dlmZ ej                  j	                  d       d dlmZ d Zd Zd Z	d Z
	 d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zy)    N)datetimez/var/www/html/config)get_connectionc                     t               } | dddS 	 | j                  d      }d}|j                  |       |j                         }|r&dd|d|j	                          | j	                          S dd	d|j	                          | j	                          S # t
        $ r;}dd
t        |       dcY d }~j	                          | j	                          S d }~ww xY w# j	                          | j	                          w xY w)NF   Error de conexiónsuccessmessageT
dictionaryz
            SELECT ep.*, s.status AS nomstatus 
            FROM empleados_perfiles ep 
            INNER JOIN status s ON ep.status = s.id
        zPerfiles encontradosr   r	   datazError al buscar los perfilesError: r   cursorexecutefetchallclose	Exceptionstr
conexionBDr   queryresultes        [/var/www/dev.api.imparables.com.co/api_imparables/crm_asincrono/administracion/profiling.pyconsultarPerfilr      s    !J -ABB""d"3
 	u"1 	  %1OP 	  
 Q)
 	
 	
 	5   <B 0B 	CC.C/C CC "C>c                    t               }|dddS 	 | j                  d      }| j                  d      }| j                  d      }|j                  d      }d	}|j                  ||||f       |j	                          |j
                  }d
}|j                  ||f       |j                         }|r|d   | d<   || d<   |j                          |j                          dd| d|j                          |j                          S # t        $ r;}	ddt        |	       dcY d }	~	j                          |j                          S d }	~	ww xY w# j                          |j                          w xY w)NFr   r   perfilesdescripcionstatusTr
   zRINSERT INTO empleados_perfiles (perfiles, descripcion, status) VALUES (%s, %s, %s)"SELECT * FROM status WHERE id = %s	nomstatusidzPerfil insertador   r   
r   getr   r   commit	lastrowidfetchoner   r   r   )
r   r   r   r    r!   r   r   id_insertador#   r   s
             r   insertarPerfilr+   0   se   !J+
 	

%88J'hh}-(#""d"3duxf=>''4uvi(OO%	 )( 3D!T
)
 	  
 Q)
 	
 	
 	s0   CD 	E	EE	E E		E "E.c                    t               }|dddS 	 |j                  d      }|j                  d      }|j                  d      }|j                  d      }d	}|j                  ||||| f       |j	                          d
}|j                  ||f       |j                         }|r|d   |d<   |j                          |j                          | |d<   dd|d|j                          |j                          S # t        $ r;}	ddt        |	       dcY d }	~	j                          |j                          S d }	~	ww xY w# j                          |j                          w xY w)NFr   r   r   r    r!   Tr
   zXUPDATE empleados_perfiles SET perfiles = %s, descripcion = %s, status = %s WHERE id = %sr"   r#   r$   zPerfil actualizador   r   	r   r&   r   r   r'   r)   r   r   r   )
r$   r   r   r   r    r!   r   r   r#   r   s
             r   actualizarPerfilr.   a   sR   !J -ABB88J'hh}-(#""d"3juxfbAB4uvi(OO%	 )( 3DT
,@$O 	  A ws1vh-?@@ 	A 	s0   CC: :	D>D9D>E 9D>>E "E#c                    t               }|dddS 	 |j                         }d}|j                  || f       |j                         d   }|dkD  r%ddd|j	                          |j	                          S d}|j                  || f       |j                          |j	                          |j	                          dd	d|j	                          |j	                          S # t        $ r;}dd
t        |       dcY d }~j	                          |j	                          S d }~ww xY w# j	                          |j	                          w xY w)NFr   r   z1SELECT COUNT(*) FROM usuarios WHERE idperfil = %sr   z>No se puede eliminar el perfil porque tiene usuarios asociadosz,DELETE FROM empleados_perfiles WHERE id = %sTzPerfil eliminado correctamenter   )r   r   r   r)   r   r'   r   r   )r$   r   r   r   countr   s         r   eliminarPerfilr1      s0   !J -ABB""$ Dure$!!$19$1qr 	 ?ure$,LM 	  A ws1vh-?@@ 	A 	s7   AC 5A	C 	D#(D8D#9D& D##D& &"Ec                    t               }|dddS 	 |j                  d      }d}|j                  |t        |       f       |j	                         }|r&dd|d|j                          |j                          S dd	d|j                          |j                          S # t        $ r;}dd
t        |       dcY d }~j                          |j                          S d }~ww xY w# j                          |j                          w xY w)NFr   r   Tr
   a:  
    SELECT p.*, m.modulo, mv.nombre_vista AS vista 
    FROM permisos p 
    INNER JOIN modulos m ON p.id_modulo = m.id 
    INNER JOIN modulos_vistas mv ON p.id_vista = mv.id 
    WHERE p.id_perfil = %s
    AND (p.id_elemento IS NULL OR p.id_elemento = 0 OR p.id_elemento = '' OR p.id_elemento = 'NULL')
        Permisos encontradosr   Error al buscar los permisosr   )r   r   r   intr   r   r   r   	id_perfilr   r   r   r   r   s         r   consultarPermisosVistasr8      s
   !J+
 	

!""d"3 	us9~/0"1$ 	 !9 	  
 Q)
 	
 	
 	s6   AB  ;B   	C$)C9C$:C' C$$C' '"D	c                    t               }|dddS 	 |j                  d      }d}|j                  || f       |j                         }|r&dd|d|j	                          |j	                          S dd	d|j	                          |j	                          S # t
        $ r;}dd
t        |       dcY d }~j	                          |j	                          S d }~ww xY w# j	                          |j	                          w xY w)NFr   r   Tr
   aP  
            SELECT p.*, m.modulo, mv.nombre_vista AS vista, pe.elemento 
            FROM permisos p 
            INNER JOIN modulos m ON p.id_modulo = m.id 
            INNER JOIN modulos_vistas mv ON p.id_vista = mv.id 
            LEFT JOIN permisos_elementos pe ON pe.id = p.id_elemento 
            WHERE p.id_perfil = %s
        r3   r   r4   r   r   r6   s         r   consultarPermisosr:          !J -ABB""d"3 	uyl+"1 	  %1OP 	  
 Q)
 	
 	
 	5   >B 2B 	C C0C1C CC "D c                    t               }|dddS 	 |j                  d      }d}|j                  || f       |j                         }|r&dd|d|j	                          |j	                          S dd	d|j	                          |j	                          S # t
        $ r;}dd
t        |       dcY d }~j	                          |j	                          S d }~ww xY w# j	                          |j	                          w xY w)NFr   r   Tr
   a]  
            SELECT p.*, m.modulo, mv.nombre_vista AS vista, pe.elemento AS elemento 
            FROM permisos p 
            INNER JOIN modulos m ON p.id_modulo = m.id 
            INNER JOIN modulos_vistas mv ON p.id_vista = mv.id 
            INNER JOIN permisos_elementos pe ON p.id_elemento = pe.id 
            WHERE p.id_perfil = %s
        r3   r   r4   r   r   r6   s         r   consultarPermisosElementosr>      r;   r<   c                     t               } | dddS 	 | j                  d      }d}|j                  |       |j                         }|r&dd|d|j	                          | j	                          S dd	d|j	                          | j	                          S # t
        $ r;}dd
t        |       dcY d }~j	                          | j	                          S d }~ww xY w# j	                          | j	                          w xY w)NFr   r   Tr
   zSELECT * FROM modulosu   Módulos encontradosr   u   Error al buscar los módulosr   r   r   s        r   consultarModulosr@   #  s    !J -ABB""d"3'u"1 	  %1OP 	  
 Q)
 	
 	
 	r   c                    t               }|dddS 	 |j                  d      }d}|j                  || f       |j                         }|r&dd|d|j	                          |j	                          S dd	d|j	                          |j	                          S # t
        $ r;}dd
t        |       dcY d }~j	                          |j	                          S d }~ww xY w# j	                          |j	                          w xY w)NFr   r   Tr
   z1SELECT * FROM modulos_vistas WHERE id_modulo = %szVistas encontradasr   zError al buscar las vistasr   r   )	id_modulor   r   r   r   r   s         r   consultarVistasrC   D  s    !J -ABB""d"3Cuyl+"/ 	  %1MN 	  
 Q)
 	
 	
 	r<   c                    t               }|dddS 	 |j                  d      }d}|j                  || f       |j                         }|r&dd|d|j	                          |j	                          S dd	d|j	                          |j	                          S # t
        $ r;}dd
t        |       dcY d }~j	                          |j	                          S d }~ww xY w# j	                          |j	                          w xY w)NFr   r   Tr
   z1SELECT * FROM permisos_elementos WHERE vista = %szElementos encontradosr   zError al buscar los elementosr   r   )id_vistar   r   r   r   r   s         r   consultarElementosrF   d  s    !J -ABB""d"3Cuxk*"2 	  %1PQ 	  
 Q)
 	
 	
 	r<   c                    t               }|dddS 	 | j                  d      }| j                  d      }| j                  d      }| j                  d      }| j                  d      }|j                  d	
      }d}|j                  ||||||f       |j	                          |j
                  }	d}|j                  ||	f       |j                         }
|j                          |j                          d	d|
d|j                          |j                          S # t        $ r;}ddt        |       dcY d }~j                          |j                          S d }~ww xY w# j                          |j                          w xY w)NFr   r   r7   rB   rE   id_elementopermisoTr
   zgINSERT INTO permisos (id_perfil, id_modulo, id_vista, id_elemento, permiso) VALUES (%s, %s, %s, %s, %s)I  
            SELECT p.*, m.modulo, mv.nombre_vista AS vista, pe.elemento 
            FROM permisos p 
            INNER JOIN modulos m ON p.id_modulo = m.id 
            INNER JOIN modulos_vistas mv ON p.id_vista = mv.id 
            LEFT JOIN permisos_elementos pe ON pe.id = p.id_elemento 
            WHERE p.id = %s
        zPermiso insertador   r   r%   )r   r   r7   rB   rE   rH   rI   r   r   
id_permisopermiso_insertador   s               r   insertarPermisorM     sf   !J -ABB"HH[)	HH[)	88J'hh}-((9%""d"3yuy)X{GTU%%
 	uzm,"OO-,?IZ[ 	  A ws1vh-?@@ 	A 	s0   C&D 	E#E3E4E! EE! !"Fc           	         t               }|dddS 	 |j                  d      }|j                  d      }|j                  d      }|j                  d      }|j                  d      }|j                  d	
      }d}	|j                  |	|||||| f       |j	                          d}	|j                  |	| f       |j                         }
|j                          |j                          d	d|
d|j                          |j                          S # t        $ r;}ddt        |       dcY d }~j                          |j                          S d }~ww xY w# j                          |j                          w xY w)NFr   r   r7   rB   rE   rH   rI   Tr
   z
            UPDATE permisos 
            SET id_perfil = %s, id_modulo = %s, id_vista = %s, id_elemento = %s, permiso = %s 
            WHERE id = %s
        rJ   zPermiso actualizador   r   r-   )rK   r   r   r7   rB   rE   rH   rI   r   r   permiso_actualizador   s               r   actualizarPermisorP     sb   !J -ABB$HH[)	HH[)	88J'hh}-((9%""d"3
 	uy)X{GU_`a 	uzm,$oo/,AK^_ 	  A ws1vh-?@@ 	A 	s0   CD 	EE(E)E EE "E8c                    t               }|dddS 	 |j                         }d}|j                  || f       |j                          |j	                          |j	                          ddd|j	                          |j	                          S # t
        $ r;}ddt        |       dcY d }~j	                          |j	                          S d }~ww xY w# j	                          |j	                          w xY w)NFr   r   z"DELETE FROM permisos WHERE id = %sTzPermiso eliminado correctamenter   )r   r   r   r'   r   r   r   )rK   r   r   r   r   s        r   eliminarPermisorR     s    !J -ABB""$4uzm,,MN 	  A ws1vh-?@@ 	A 	s0   AB 	CC&C'C CC "C6)jsonsysr   pathappendcnxpdor   r   r+   r.   r1   r8   r:   r>   r@   rC   rF   rM   rP   rR        r   <module>rZ      sv     
  & ' ! H-b HD 7)Z#N#NB@@'V)ZrY   