DROP FUNCTION TerminaProyecto() cascade; CREATE FUNCTION TerminaProyecto() RETURNS trigger AS $TerminaProyecto$ BEGIN -- contamos las actividades del proyecto y las comparamos con las actividades completadas if (select count(*) from "Zalamero_actividad" where proyecto_id = NEW.proyecto_id) > 0 then if ( (select count(*) from "Zalamero_actividad" where proyecto_id = NEW.proyecto_id) = (select count(*) from "Zalamero_actividad" where proyecto_id = NEW.proyecto_id and estatus = True ) ) then update "Zalamero_proyecto" set estatus_id = 4, fecha = now() where id = NEW.proyecto_id; --else --update "Zalamero_proyecto" set estatus_id = 2 where id = NEW.proyecto_id; end if; end if; return NEW; END; $TerminaProyecto$ LANGUAGE plpgsql; CREATE TRIGGER TerminaProyecto after INSERT OR UPDATE ON "Zalamero_actividad" FOR EACH ROW EXECUTE PROCEDURE TerminaProyecto(); ALTER FUNCTION terminaproyecto() OWNER TO "Produccion";