-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- TRIGGER ftua_sga_evaluaciones -- AFTER UPDATE -- Tabla: sga_evaluaciones -- Version 3.0.0 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- DROP FUNCTION ftua_sga_evaluaciones(); CREATE OR REPLACE FUNCTION ftua_sga_evaluaciones() RETURNS TRIGGER AS $BODY$ DECLARE _cnt smallint; BEGIN -- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- Evaluaciones de las Comisiones - Cambio de escala de notas -- Si cambia la escala de notas, se la cambio a todos los alumnos de la evaluacion -- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ IF (NEW.escala_nota <> OLD.escala_nota) THEN SELECT COUNT(*) INTO _cnt FROM sga_evaluaciones_tipos WHERE evaluacion_tipo = NEW.evaluacion_tipo AND aplica_a = 'C' -- Comisiones AND automatica = 'N'; -- No automática IF _cnt > 0 THEN -- Actualizo escala de notas a todos los alumnos de la evaluacion UPDATE sga_eval_detalle SET escala_nota = NEW.escala_nota WHERE evaluacion = NEW.evaluacion; END IF; END IF; RETURN NEW; END; $BODY$ LANGUAGE plpgsql; -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- Trigger de DELETE sobre sga_evaluaciones -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- DROP TRIGGER tua_sga_evaluaciones ON sga_evaluaciones RESTRICT; CREATE TRIGGER tua_sga_evaluaciones AFTER UPDATE ON sga_evaluaciones FOR EACH ROW EXECUTE PROCEDURE ftua_sga_evaluaciones();