migracion guarani 3.5 a 3.6 y usuario alumno

Hola:

Ejecuto: toba proyecto migrar_base -p guarani -i desarrollo
y me tira el siguiente error:
Ejecutando: pg_dump -Ox --inserts -n negocio_auditoria -h localhost -U
postgres -p 5432 -f “D:\Apache\www\Toba/proyectos/guarani/BD/datos_auditoria_3.
5.0.sql”
guarani_3
pg_dump: No se encontraron esquemas coincidentes
Migrando la base de la versión 3.5.0 hasta la versión 3.6.0
Actualizando BD de negocios a version 3.6.0
Ejecutando Archivo: 000331.sql
. Ejecutando Archivo: 000332.sql
. Ejecutando Archivo: 000333.sql
. Ejecutando Archivo: 000334.sql
. Ejecutando Archivo: 000335.sql

ERROR ejecutando SQL:
[CODIGO]: 7
[SQLSTATE]: db_42883
[MENSAJE]: ERROR: no existe la función f_copiar_comision(integer, integer,
integer, character varying, boolean, boolean, boolean, character)
[SQL EJECUTADA]: – +++++++++++++++++++++++++++++++++++++++
– Script de conversión 000335.sql
– +++++++++++++++++++++++++++++++++++++++
– BEGIN WORK;

– +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
– SIU-GUARANI 3
– Version 3.0.0
– Function: f_copiar_comision

– Copia una comision en en un nuevo periodo lectivo.
– * Datos de la comision, docentes, instancias, propuestas y planes
– * Subcomisiones
– * Si es copia de comisiones de una actividad a otra en el mismo período
lectivo entonces comparte las comisiones
– y copia las excepciones de periodos de inscripcion si lo tiene la
comision origen.

– Recibe:
– 1. ID de la comision origen
– 2. ID de la actividad destino. Default NULL (Si es null se trata
de la
misma actividad de la comision origen)
– 3. ID del período lectivo destino.
– 4. Nombre de la nueva comision. Default valor NULL
– 5. Parámetro que indica si se copian o no las subcomisiones.
– Valor: true - Se copian las subcomisiones (default) / false - No se
copian las subcomisiones
– 6. Parámetro que indica si se copian o no los docentes.
– Valor: true - Se copian los docentes de la cmision y subcomisiones
(default) / false - No se copian los docentes
– 7. Parámetro que indica si se copian o no las Bandas Horarias.
– Valor: true - Se copian las bandas horarias de la comision y
subcomisoines (default) / false - No se copian las bandas horarias
– 8. Valor del parámetro “asist_computa_inasist_por_horas”


– Retorna:
– 1. un registro con los datos del tipo: type_comision

– +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

DROP FUNCTION f_copiar_comision(integer, integer, integer, varchar, boolean,
boolean, boolean, char);
CREATE OR REPLACE FUNCTION f_copiar_comision(
pComisionOrigen integer,
pActividadDestino integer,
pPeriodoLectivoDestino integer,
pComisionNombre varchar(100),
pCopiarSubcomisiones boolean,
pCopiarDocentes boolean,
pCopiarBandasHorarias boolean,
pAsistenciaPorHoras char(1))
RETURNS SETOF type_comision_copiado_generacion AS
$BODY$
DECLARE
comision_nueva INTEGER;
_periodo_lectivo_destino Integer;
_periodo_lectivo_origen Integer;
_nombre_comision VARCHAR(100);
subcomision_origen INTEGER;
subcomision_nueva INTEGER;
_observaciones text;
_division integer;
_catedra integer;
_estado_catedra char(1);
_nombre_catedra varchar(100);
_fecha_desde DATE;
_fecha_hasta DATE;
_fecha_desde_doc DATE;
_fecha_hasta_doc DATE;
_insc_habilitada char(1);
_insc_habilitada_orig char(1);
_elemento integer;
_ubicacion_destino integer;
_ActividadOrigen Integer;
cnt SMALLINT;
_actividad text;
cur_subc record;
cur_docentes record;
cur_retorno type_comision_copiado_generacion; – para retornar datos de la
comision creada

BEGIN
cur_retorno.codigo_retorno := 0; – OK. COMISION COPIADA
_observaciones := NULL;
_insc_habilitada := ‘S’;

– Recupero datos de la comision origen.
SELECT ‘(’ || sga_elementos.codigo || ') ’ || sga_elementos.nombre,
sga_comisiones.nombre,
sga_comisiones.elemento,
sga_comisiones.periodo_lectivo,
sga_comisiones.inscripcion_habilitada,
sga_comisiones.division,
sga_comisiones.ubicacion,
sga_comisiones.catedra,
sga_catedras.nombre,
sga_catedras.estado,
sga_periodos_lectivos.fecha_inicio_dictado,
sga_periodos_lectivos.fecha_fin_dictado
INTO _actividad,
_nombre_comision,
_elemento,
_periodo_lectivo_origen,
_insc_habilitada_orig,
_division,
_ubicacion_destino,
_catedra, _nombre_catedra, _estado_catedra,
_fecha_desde, _fecha_hasta

  FROM sga_comisiones
         LEFT JOIN sga_catedras ON sga_catedras.catedra =

sga_comisiones.catedra,
sga_elementos,
sga_periodos_lectivos
WHERE sga_elementos.elemento = sga_comisiones.elemento
AND sga_comisiones.comision = pComisionOrigen
AND sga_periodos_lectivos.periodo_lectivo =
sga_comisiones.periodo_lectivo;

IF NOT FOUND THEN
– Salgo.
cur_retorno.codigo_retorno := 1; – Comision no copiada
cur_retorno.observaciones := ‘La comisión a copiar no existe’;
RETURN NEXT cur_retorno;
RETURN; – Salgo
END IF;

_ActividadOrigen := _elemento;
_fecha_desde_doc := _fecha_desde;
_fecha_hasta_doc := _fecha_hasta;


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
– Esto es para el caso que se duplica una comision del mismo período
lectivo.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
IF pComisionNombre IS NOT NULL THEN
– Se pasa un nuevo nombre de Comision.
_nombre_comision := pComisionNombre;
END IF;
IF pPeriodoLectivoDestino IS NULL THEN
– Se asigna el mismo periodo lectivo que la comision original
_periodo_lectivo_destino := _periodo_lectivo_origen;

 -- Para que copie la fecha desde y hasta de los docentes de la comision

origen
_fecha_desde_doc := NULL;
_fecha_hasta_doc := NULL;
_insc_habilitada := NULL;
ELSE
_periodo_lectivo_destino := pPeriodoLectivoDestino;
END IF;

IF pActividadDestino IS NOT NULL THEN
– Puede ser que a la actividad donde se generará la comision es otra
actividad
_elemento := pActividadDestino;
END IF;

– Verifico que no exista una comision con el mismo nombre para la
actividad, periodo lectivo y ubicacion destino.
SELECT Count(*) INTO cnt
FROM sga_comisiones
WHERE elemento = _elemento
AND periodo_lectivo = _periodo_lectivo_destino
AND ubicacion = _ubicacion_destino
AND nombre = _nombre_comision;
IF cnt > 0 THEN
– Salgo.
cur_retorno.codigo_retorno := 1; – Comision no copiada
cur_retorno.observaciones := ‘La comisión ’ || _nombre_comision || ’ no
se copió porque ya existe en el período lectivo y ubicación destino’;
RETURN NEXT cur_retorno;
RETURN;
END IF;

– Verifico si la catedra esta activa
IF _catedra IS NOT NULL AND _estado_catedra <> ‘A’ THEN
cur_retorno.codigo_retorno := 1; – Comision no copiada
cur_retorno.observaciones := ‘La cátedra ’ || _nombre_catedra || ’ de la
comisión esta dada de baja’;
RETURN NEXT cur_retorno;
RETURN;
END IF;

– ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
– Inserto la comision
– ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
INSERT INTO sga_comisiones (nombre, periodo_lectivo, elemento, turno,
catedra, ubicacion, letra_desde, letra_hasta, cupo, inscripcion_habilitada, div
ision,
asistencia_por_horas)
SELECT _nombre_comision, _periodo_lectivo_destino, _elemento, turno,
_catedra, ubicacion, letra_desde, letra_hasta, cupo, COALESCE(_insc_habilitada,

_insc_habilitada_orig), _division,
CASE
WHEN pAsistenciaPorHoras IS NOT NULL THEN pAsistenciaPorHoras
ELSE asistencia_por_horas
END
FROM sga_comisiones
WHERE comision = pComisionOrigen;

– Recupero el Serial de la comision
comision_nueva := (SELECT currval(‘sga_comisiones_seq’));

– Seteo valores para retorno
cur_retorno.comision := comision_nueva;
cur_retorno.nombre_comision := _nombre_comision;

– Modalidad de Cursada.
INSERT INTO sga_comisiones_modalidad (comision, modalidad)
SELECT comision_nueva, modalidad
FROM sga_comisiones_modalidad
WHERE comision = pComisionOrigen;

– Propuestas y Planes de la comision
IF pActividadDestino IS NULL OR _elemento = pActividadDestino THEN
IF pPeriodoLectivoDestino = _periodo_lectivo_origen THEN
– Esta duplicando una comision de la misma actividad en el mismo
periodo lectivo
INSERT INTO sga_comisiones_propuestas (comision, propuesta, plan)
SELECT comision_nueva, propuesta, plan
FROM sga_comisiones_propuestas
WHERE comision = pComisionOrigen;
ELSE
– Esta copiando comisiones de un período lectivo a otro. Solo asignar
planes de estudios activos (vigentes o no vigentes)
INSERT INTO sga_comisiones_propuestas (comision, propuesta, plan)
SELECT DISTINCT comision_nueva, cp.propuesta, cp.plan
FROM sga_comisiones_propuestas as cp,
sga_planes as p,
sga_planes_versiones as v
WHERE cp.comision = pComisionOrigen
AND p.plan = cp.plan
AND v.plan = cp.plan
AND p.estado IN (‘A’, ‘V’)
AND v.estado IN (‘A’, ‘V’);
END IF;
ELSE
– La actividad destino no es la misma que la actividad de la comision
origen
– Inserto propuestas y planes (activos) en los que se encuentra la
actividad destino
INSERT INTO sga_comisiones_propuestas (comision, propuesta, plan)
SELECT DISTINCT comision_nueva, propuesta, plan
FROM vw_actividades_plan as vw,
sga_planes as p,
sga_planes_versiones as v
WHERE vw.elemento = _elemento
AND p.plan = vw.plan
AND v.plan = vw.plan
AND p.estado IN (‘A’, ‘V’)
AND v.estado IN (‘A’, ‘V’);
END IF;

– Instancias de la comision
INSERT INTO sga_comisiones_instancias (comision, instancia, escala_nota,
porc_asistencia)
SELECT comision_nueva, instancia, escala_nota, porc_asistencia
FROM sga_comisiones_instancias
WHERE comision = pComisionOrigen;

– Docentes de la comision
IF pCopiarDocentes THEN
FOR cur_docentes IN SELECT sga_docentes_comision.docente,
sga_docentes_comision.responsabilidad,
sga_docentes_comision.fecha_desde,
sga_docentes_comision.f

… CORTADO POR EXCEDER EL LIMITE


TIEMPO: 42,166 segundos

Alguna solucion?

Muchas gracias!!!

Hola

ver si existía la funcion que te está dando el error

ERROR ejecutando SQL:
  [CODIGO]: 7
  [SQLSTATE]: db_42883
  [MENSAJE]: ERROR:  no existe la función f_copiar_comision(integer, integer,
 integer, character varying, boolean, boolean, boolean, character)
  [SQL EJECUTADA]: -- +++++++++++++++++++++++++++++++++++++++
 -- Script de conversión  000335.sql

Emilio

Hola Emilio:

Muchas gracias!!!.
Cuando quiero agregar esa funcion me tira:

ERROR: no existe el tipo «type_comision_copiado_generacion»

********** Error **********

ERROR: no existe el tipo «type_comision_copiado_generacion»
SQL state: 42704

Muchas gracias!!!

Hola

mmm… raro.
Se crea en el script 1.

Por alguna razon se borró.

Emilio

Hola:

Cual seria el script, asi lo genero de nuevo.

muchas gracias!!!

Hola:

Ya lo encontre.

Gracias!!!

Hola:

Solucione el problema (Que puede ser pq pase de la 3.41 con datos de guarani2), modificando los siguientes scripts que estan en “Toba\proyectos\guarani\BD\Diferenciales\3.6.0”: 000335.sql y 000401.sql

Saludos!!!


3.6.0.zip (7.81 KB)

Hola:

Queria saber si ya esta en esta version el perfil del alumno?. Me fije en mdp_personas y el usuario y clave el unico que tengo es el de toba, cree uno en “Matrícula > Personas > Administrar Personas”, solapa “Acceso al Sistema” como explican en http://foro.comunidad.siu.edu.ar/index.php?topic=3384.msg16647, pero me sale el cartel
"Se han encontrado los siguientes problemas:
No es posible cargar el usuario “3740”.
El mismo no posee un perfil funcional definido para el proyecto “guarani”. "

Alguna solucion?.

Muchas gracias!!!

PAblo
En la solapa de acceso al sistema… seleccionaste en la parte inferior la opción alumno?
Saludos!

Hola:

Si, pero no tiene perfiles funcionales definidos, como muestra la imagen.

Estuve viendo, que en “http://repositorio.siu.edu.ar/trac/Portal-G3/wiki/Operaciones/perfilfunc”, explican como “Asignar Perfiles Funcionales a Tipos de Usuarios”, pero no me aparece ese modulo.
Que puede ser?.

Muchas gracias!!!


Sin Perfil Funcional.jpg

Sin Perfil Funcional.png

Buenas tardes Pablo, sigamos el tema en el otro post donde planteás el mismo inconveniente.
Saludos!