
    &h;                         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                         }t	        |      dkD  r&dd|d	|j                          | j                          S dd
g 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
        r   zPerfiles encontradosr   r	   datazNo se encontraron perfilesError: r   cursorexecutefetchalllenclose	Exceptionstr
conexionBDr   queryresultes        Q/var/www/dev.api.imparables.com.co/api_imparables/crm/administracion/profiling.pyconsultarPerfilr      s   !J -ABB""d"3
 	u"v;?1& 	  7 	  
 Q)
 	
 	
 	s6   AB" <B" "	C&+C!;C&<C) !C&&C) )"D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+   4   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.   e   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                 2   t               }|dddS 	 |j                  d      }d}|j                  |t        |       f       |j	                         }t        |      dkD  r&dd|d	|j                          |j                          S dd
g 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
        r   Permisos encontradosr   z5No se encontraron permisos de vistas para este perfilr   )	r   r   r   intr   r   r   r   r   	id_perfilr   r   r   r   r   s         r   consultarPermisosVistasr7      s   !J+
 	

"""d"3 	us9~/0"v;?1& 	  R 	  
 Q)
 	
 	
 	s6   AB- B- -	C16C,C1C4 ,C11C4 4"Dc                     t               }|dddS 	 |j                  d      }d}|j                  || f       |j                         }t	        |      dkD  r&dd|d	|j                          |j                          S dd
g 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
        r   r3   r   +No se encontraron permisos para este perfilr   r   r5   s         r   consultarPermisosr:         !J -ABB"""d"3 	uyl+"v;?1& 	  H 	  
 Q)
 	
 	
 	6   A
B$ >B$ $	C(-C#=C(>C+ #C((C+ +"Dc                     t               }|dddS 	 |j                  d      }d}|j                  || f       |j                         }t	        |      dkD  r&dd|d	|j                          |j                          S dd
g 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
        r   r3   r   r9   r   r   r5   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   r   r   r   r   r   r   s        r   consultarModulosrA   0  s    !J -ABB""d"3'u"1 	  %1OP 	  
 Q)
 	
 	
 	s5   <B 0B 	CC.C/C CC "C>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   consultarVistasrD   Q  s    !J -ABB""d"3Cuyl+"/ 	  %1MN 	  
 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
   z1SELECT * FROM permisos_elementos WHERE vista = %szElementos encontradosr   zError al buscar los elementosr   r@   )id_vistar   r   r   r   r   s         r   consultarElementosrH   q  s    !J -ABB""d"3Cuxk*"2 	  %1PQ 	  
 Q)
 	
 	
 	rE   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   r6   rC   rG   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   r6   rC   rG   rJ   rK   r   r   
id_permisopermiso_insertador   s               r   insertarPermisorO     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   r6   rC   rG   rJ   rK   Tr
   z
            UPDATE permisos 
            SET id_perfil = %s, id_modulo = %s, id_vista = %s, id_elemento = %s, permiso = %s 
            WHERE id = %s
        rL   zPermiso actualizador   r   r-   )rM   r   r   r6   rC   rG   rJ   rK   r   r   permiso_actualizador   s               r   actualizarPermisorR     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   )rM   r   r   r   r   s        r   eliminarPermisorT     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   r7   r:   r>   rA   rD   rH   rO   rR   rT        r   <module>r\      sv     
  & ' !$P-b HD 7*\'V'VB@@'V)Zr[   