X-Git-Url: http://git.inspyration.org/?a=blobdiff_plain;f=sql%2FCOPIER_CONTAINERS.SQL;fp=sql%2FCOPIER_CONTAINERS.SQL;h=075db64f633d86f85ec289c416d432289e156f11;hb=1956444d7225153c63171bac049e2e69bfe87d78;hp=0000000000000000000000000000000000000000;hpb=d1037ad9d70d4e3d843c28d97abc9f5717e9d6dc;p=OpenERP%2Ftodolist.git diff --git a/sql/COPIER_CONTAINERS.SQL b/sql/COPIER_CONTAINERS.SQL new file mode 100644 index 0000000..075db64 --- /dev/null +++ b/sql/COPIER_CONTAINERS.SQL @@ -0,0 +1,30 @@ +CREATE OR REPLACE FUNCTION copierContainer (id_container todolist_container.id%TYPE) RETURNS INTEGER AS $copierContainer$ +DECLARE copy_id todolist_container.id%TYPE; + +BEGIN + INSERT INTO todolist_container (name, description, state) ( + SELECT 'Copy of ' || name, description, 'draft' + FROM todolist_container + WHERE id = id_container + ); + + SELECT currval(pg_get_serial_sequence('todolist_container', 'id')) INTO copy_id; + + INSERT INTO todolist_task (name, description, container_id, milestone, planned, manday, priority) ( + SELECT name, description, copy_id, milestone, planned, manday, priority + FROM todolist_task + WHERE container_id = id_container + ); + + INSERT INTO todolist_container_topic_rel (container_id, topic_id) ( + SELECT copy_id, topic_id + FROM todolist_container_topic_rel + WHERE container_id = id_container + ); + RETURN copy_id; +END; +$copierContainer$ LANGUAGE plpgsql; + +-- Appel : +-- SELECT copierContainer(3); +