Modification de la dupplication des container
[OpenERP/todolist.git] / sql / COPIER_CONTAINERS.SQL
diff --git a/sql/COPIER_CONTAINERS.SQL b/sql/COPIER_CONTAINERS.SQL
new file mode 100644 (file)
index 0000000..075db64
--- /dev/null
@@ -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);
+