Consulta sobre usuario autorizante y tramites autorizados (RESPONDIDO)

Buenas tardes,
Queria realizarles la siguiente consulta: necesitamos armar un sql para saber quien es el autorizante de ciertos trámites, ya sea una solicitud u orden de compra por ejemplo. El tema es que sabemos que la tabla scp_autorizaciones, guarda el id del usuario autorizante, pero la pregunta es con que tabla cruzar para poder obtener el id del trámite del cual es autorizante. Porque en la tabla scp_autorizaciones, figura un id_tabla, id_registro y id_autorizacion pero no se cual utilizar y con que tabla para obtener finalmente los trámites autorizados por tal usuario.

Desde ya gracias!
Saludos
Paola
UNPA

Hola Paola,

Te comento que la tabla de autorizaciones (scp_autorizaciones) registra las autorizaciones para todas las etapas, por eso es que no hace referencia directa a ninguna etapa por medio de una fk, pero conociendo las relaciones entre las tablas es sencillo sacar cuaquier clase de reporte.

Te explico lo más importante:

  • scp_autorizaciones contiene cada entrada del circuito de autorización
  • scp_tablas contiene la relación a la etapa. Ejemplo el id 1 se corresponde a la etapa de solicitudes, 2 a la convocatoria, etc.
  • id_registro, contiene el id del trámite para la tapa.

Entonces para la combinación en scp_autorizaciones:

  • id_tabla =1, id_registro = 10, se corresponde al id_solicitud = 10 de la solicitud
  • id_tabla =2, id_registro = 5, se corresponde al id_convocatoria = 5 de la convocatoria.
  • id_tabla =9, id_registro = 3, se corresponde al id_recepcion = 3 de la etapa de recepción.

Si queres probar un poco más, te dejo este sql para que lo tengas como referencia. Combina las tablas scp_autorizaciones, scp_estados , scp_usuarios y scp_tablas.


set search_path to diaguita;
SELECT
				u.nombre || ' ' || u.apellido as usuario
				,a.fecha_cambio
				,a.comentario
				,e.nombre as estado
				,t.descripcion_tabla as tabla
				,a.id_registro
			FROM
				scp_autorizaciones a
				LEFT JOIN scp_estados e ON (a.estado = e.estado)
				,scp_usuarios u
				,scp_tablas t
			WHERE
				a.id_usuario_autorizante = u.id_usuario
				AND a.id_tabla = t.id_tabla

Sobre este sql de referencia podes ir agregandole más clausulas al WHERE para ir filtrando distintos resultados, asi como columnas disponibles en cualquiera de las tablas vinculadas.

Estamos en contacto.

Saludos,
Fernando.

Buenas tardes! muchisimas gracias!

Saludos
Paola
UNPA