Error al guardar en 'ADMINISTRAR DERECHOS POR ROL/RESPONSABILIDAD'

Buenas tardes. Estamos usando la version 3.16.1 de Guarani. En el entorno de testing nos arroja error la pantalla ‘ADMINISTRAR DERECHOS POR ROL/RESPONSABILIDAD’, al seleccionar Responsabilidad “Adjunto”, y cualquier opcion de los checkbox. No asi cuando seleccionamos otra opcion que no sea “Adjunto”. El error.log del apache es el siguiente:

[Mon Apr 08 13:22:19.286521 2019] [php7:notice] [pid 15307] [client 10.26.0.169:65096] toba_error_db:

SQLSTATE: db_23505

CODIGO: 7

MENSAJE: SQLSTATE[23505]: Unique violation: 7 ERROR: duplicate key value violates unique constraint “pk_gdu_derechos_personas”\nDETAIL: Key (entidad, derecho, persona)=(213, comision_bitacora_administrar, 164) already exists.\nCONTEXT: SQL statement "INSERT INTO gdu_derechos_personas (entidad, derecho, persona) \r\n SELECT sga_comisiones.entidad, \r\n NEW.derecho, \r\n sga_docentes.persona\r\n FROM sga_comisiones,\r\n sga_periodos_lectivos,\r\n sga_periodos,\r\n sga_docentes_comision,\r\n sga_docentes\r\n WHERE sga_periodos_lectivos.periodo_lectivo = sga_comisiones.periodo_lectivo\r\n AND sga_periodos.periodo = sga_periodos_lectivos.periodo\r\n AND sga_periodos.fecha_fin >= CURRENT_DATE\r\n AND sga_docentes_comision.comision = sga_comisiones.comision\r\n AND sga_docentes_comision.responsabilidad = NEW.responsabilidad\r\n …SIGUE…, referer: http://gestion-testing.insusep.edu.ar/guarani/3.16/aplicacion.php?ah=st5cab7537845063.75378128&ai=guarani||46000022

Lo raro es que el registro (213, comision_bitacora_administrar, 164) no existe en la tabla ‘gdu_derechos_personas’. Tampoco en gdu_comision hay registro de esa opcion.

Espero sus respuestas. gracias

Hola Alexis,

Lo que puede estar pasando es que tenés dos docentes diferentes para la misma persona. Por favor, ejecutá la siguiente consulta SQL sobre la BD de negocio de Guaraní y adjuntá el resultado:

SELECT	sga_docentes_comision.comision,
		sga_docentes_comision.docente,
		sga_docentes_comision.responsabilidad,
		sga_docentes.persona
FROM	sga_docentes_comision
		JOIN sga_comisiones ON sga_docentes_comision.comision = sga_comisiones.comision
		JOIN sga_periodos_lectivos ON sga_comisiones.periodo_lectivo = sga_periodos_lectivos.periodo_lectivo
		JOIN sga_periodos ON sga_periodos_lectivos.periodo = sga_periodos.periodo
		JOIN sga_docentes ON sga_docentes_comision.docente = sga_docentes.docente
WHERE	sga_periodos.fecha_fin >= CURRENT_DATE AND
		sga_docentes_comision.responsabilidad = 3;

Saludos, Florencia.

Florencia,
Te copio el resultado de la query en Testing:

comision docente persona responsabilidad
50 16 173 3
27 16 173 3
42 16 173 3
41 15 169 3
26 15 169 3
40 14 168 3
25 14 168 3
39 13 167 3
24 13 167 3
38 12 166 3
23 12 166 3
35 11 165 3
49 11 165 3
34 17 164 3 <===
48 10 164 3 <===
34 10 164 3
33 9 163 3
47 9 163 3
32 8 162 3
46 8 162 3
31 7 161 3
45 7 161 3
30 6 160 3
44 5 159 3
29 5 159 3
43 4 158 3
28 4 158 3
22 3 157 3
13 1 2 3
2 1 2 3
6 1 2 3
4 1 2 3
8 1 2 3
12 1 2 3
1 1 2 3

Ahi marqué, lo que me decias, una persona con dos docentes distintos. Voy a dejarlo con uno solo, y les aviso. Gracias!