-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- SIU-GUARANI 3 -- Version 3.0.0 -- Function: f_estado_requisito -- -- Dado una persona y un requisito de esa persona retorna el estado del mismo -- -- Recibe: -- f_estado_requisito(integer,integer); -- 1. ID de la Persona -- 2. ID del requisito del cual se quiere conocer el estado -- -- Retorna: Varchar 1) Estado del Requisito ("PENDIENTE","VIGENTE","VENCIDO") -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- DROP FUNCTION f_estado_requisito(integer,integer); CREATE OR REPLACE FUNCTION f_estado_requisito(idpersona INTEGER, idrequisito INTEGER) RETURNS VARCHAR(9) AS $BODY$ DECLARE _fecha_presentacion DATE; _fecha_vencimiento DATE; BEGIN SELECT sga_requisitos_presentados.fecha_presentacion, sga_requisitos_presentados.fecha_vencimiento INTO _fecha_presentacion, _fecha_vencimiento FROM sga_requisitos_presentados WHERE sga_requisitos_presentados.requisito_presentado = ( SELECT sga_requisitos_presentados.requisito_presentado FROM sga_requisitos_presentados WHERE persona = idpersona AND requisito = idrequisito ORDER BY fecha_presentacion DESC LIMIT 1 ); IF NOT FOUND THEN RETURN 'PENDIENTE'; END IF; IF _fecha_vencimiento >= CURRENT_DATE OR _fecha_vencimiento IS NULL THEN RETURN 'VIGENTE'; ELSE RETURN 'VENCIDO'; END IF; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE; -- ++++++++++++++++++++++++++++++ Fin Function f_estado_requisito(integer,integer) ++++++++++++++++ -- REVOKE EXECUTE ON FUNCTION f_estado_requisito (integer, integer) FROM public; GRANT EXECUTE ON FUNCTION f_estado_requisito (integer, integer) to public;