Modification de la dupplication des container
[OpenERP/todolist.git] / sql / COPIER_CONTAINERS.SQL
1 CREATE OR REPLACE FUNCTION copierContainer (id_container todolist_container.id%TYPE) RETURNS INTEGER AS $copierContainer$
2 DECLARE copy_id todolist_container.id%TYPE;
3
4 BEGIN
5         INSERT INTO todolist_container (name, description, state) (
6                 SELECT 'Copy of ' || name, description, 'draft'
7                 FROM todolist_container
8                 WHERE id = id_container
9         );
10
11         SELECT currval(pg_get_serial_sequence('todolist_container', 'id')) INTO copy_id;
12
13         INSERT INTO todolist_task (name, description, container_id, milestone, planned, manday, priority) (
14                 SELECT name, description, copy_id, milestone, planned, manday, priority
15                 FROM todolist_task
16                 WHERE container_id = id_container
17         );
18         
19         INSERT INTO todolist_container_topic_rel (container_id, topic_id) (
20                 SELECT copy_id, topic_id
21                 FROM todolist_container_topic_rel
22                 WHERE container_id = id_container
23         );
24         RETURN copy_id;
25 END;
26 $copierContainer$ LANGUAGE plpgsql;
27
28 -- Appel :
29 -- SELECT copierContainer(3);
30