Index: openacs-4/packages/project-manager/sql/postgresql/project-manager-functions-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager/sql/postgresql/project-manager-functions-create.sql,v
diff -u -r1.5 -r1.6
--- openacs-4/packages/project-manager/sql/postgresql/project-manager-functions-create.sql	5 Jun 2005 00:11:04 -0000	1.5
+++ openacs-4/packages/project-manager/sql/postgresql/project-manager-functions-create.sql	21 Jun 2005 21:31:02 -0000	1.6
@@ -211,7 +211,8 @@
                 p_description,          -- description
                 p_mime_type,            -- mime_type
                 null,                   -- nls_language
-                null                    -- data
+                null,                   -- data
+                p_package_id            -- package_id
         );
 
         v_revision_id := content_revision__new (
@@ -225,7 +226,8 @@
                 NULL,                   -- revision_id
                 now(),                  -- creation_date
                 p_creation_user,        -- creation_user
-                p_creation_ip           -- creation_ip
+                p_creation_ip,          -- creation_ip
+                p_package_id            -- package_id
         );
 
         PERFORM content_item__set_live_revision (v_revision_id);
@@ -347,7 +349,8 @@
                 NULL,                   -- revision_id
                 now(),                  -- creation_date
                 p_creation_user,        -- creation_user
-                p_creation_ip           -- creation_ip
+                p_creation_ip,          -- creation_ip
+                p_package_id            -- package_id
         );
 
         PERFORM content_item__set_live_revision (v_revision_id);
@@ -433,10 +436,11 @@
 -- If it is not associated with a project, then it is placed in the root
 -- project repository folder.
 
-select define_function_args('pm_task__new_task_item', 'project_id, title, description, html_p, end_date, percent_complete, estimated_hours_work, estimated_hours_work_min, estimated_hours_work_max, status_id, process_instance_id, dform, creation_date, creation_user, creation_ip, package_id, priority');
+select define_function_args('pm_task__new_task_item', 'project_id, task_id, title, description, html_p, end_date, percent_complete, estimated_hours_work, estimated_hours_work_min, estimated_hours_work_max, status_id, process_instance_id, dform, creation_date, creation_user, creation_ip, package_id, priority');
 
 create or replace function pm_task__new_task_item (
         integer,        -- project_id
+        integer,        -- task_id
         varchar,        -- title
         varchar,        -- description
         varchar,        -- html_p
@@ -457,38 +461,36 @@
 as '
 declare
         p_project_id                            alias for $1;
-        p_title                                 alias for $2;
-        p_description                           alias for $3;
-        p_mime_type                             alias for $4;
-        p_end_date                              alias for $5;
-        p_percent_complete                      alias for $6;
-        p_estimated_hours_work                  alias for $7;
-        p_estimated_hours_work_min              alias for $8;
-        p_estimated_hours_work_max              alias for $9;
-        p_status_id                             alias for $10;
-        p_process_instance_id                   alias for $11;
-        p_dform                                 alias for $12;
-        p_creation_date                         alias for $13;
-        p_creation_user                         alias for $14;
-        p_creation_ip                           alias for $15;
-        p_package_id                            alias for $16;
-        p_priority                              alias for $17;
+        p_task_id                               alias for $2;
+        p_title                                 alias for $3;
+        p_description                           alias for $4;
+        p_mime_type                             alias for $5;
+        p_end_date                              alias for $6;
+        p_percent_complete                      alias for $7;
+        p_estimated_hours_work                  alias for $8;
+        p_estimated_hours_work_min              alias for $9;
+        p_estimated_hours_work_max              alias for $10;
+        p_status_id                             alias for $11;
+        p_process_instance_id                   alias for $12;
+        p_dform                                 alias for $13;
+        p_creation_date                         alias for $14;
+        p_creation_user                         alias for $15;
+        p_creation_ip                           alias for $16;
+        p_package_id                            alias for $17;
+        p_priority                              alias for $18;
 
         v_item_id               cr_items.item_id%TYPE;
         v_revision_id           cr_revisions.revision_id%TYPE;
-        v_id                    cr_items.item_id%TYPE;
         v_task_number           integer;
 begin
-        select acs_object_id_seq.nextval into v_id from dual;
-
         -- We want to put the task under the project item
 
         -- create the task_number
         
         v_item_id := content_item__new (
-                v_id::varchar,          -- name
+                p_task_id::varchar      -- name
                 p_project_id,           -- parent_id
-                v_id,                   -- item_id
+                p_task_id,              -- item_id
                 null,                   -- locale
                 now(),                  -- creation_date
                 p_creation_user,        -- creation_user
@@ -500,7 +502,8 @@
                 p_description,          -- description
                 p_mime_type,            -- mime_type
                 null,                   -- nls_language
-                null                    -- data
+                null,                   -- data
+                p_package_id            -- package_id
         );
 
         v_revision_id := content_revision__new (
@@ -514,7 +517,8 @@
                 NULL,                   -- revision_id
                 now(),                  -- creation_date
                 p_creation_user,        -- creation_user
-                p_creation_ip           -- creation_ip
+                p_creation_ip,          -- creation_ip
+                p_package_id            -- package_id
         );
 
         PERFORM content_item__set_live_revision (v_revision_id);
@@ -529,7 +533,7 @@
         values (
                 v_revision_id, p_end_date, p_percent_complete, p_estimated_hours_work, p_estimated_hours_work_min, p_estimated_hours_work_max, ''0'', p_priority, p_dform);
 
-        update acs_objects set context_id = p_project_id where object_id = task_id;
+        update acs_objects set context_id = p_project_id where object_id = v_item_id;
 
         PERFORM acs_permission__grant_permission(
                 v_revision_id,
@@ -540,7 +544,77 @@
         return v_revision_id;
 end;' language 'plpgsql';
 
+select define_function_args('pm_task__new_task_item', 'project_id, title, description, html_p, end_date, percent_complete, estimated_hours_work, estimated_hours_work_min, estimated_hours_work_max, status_id, process_instance_id, dform, creation_date, creation_user, creation_ip, package_id, priority');
 
+create or replace function pm_task__new_task_item (
+        integer,        -- project_id
+        varchar,        -- title
+        varchar,        -- description
+        varchar,        -- html_p
+        timestamptz,    -- end_date
+        numeric,        -- percent_complete
+        numeric,        -- estimated_hours_work
+        numeric,        -- estimated_hours_work_min
+        numeric,        -- estimated_hours_work_max,
+        integer,        -- status_id
+        integer,        -- process_instance_id
+        varchar,        -- dform
+        timestamptz,    -- creation_date
+        integer,        -- creation_user
+        varchar,        -- creation_ip
+        integer,        -- package_id
+	integer		-- priority
+) returns integer 
+as '
+declare
+        p_project_id                            alias for $1;
+        p_title                                 alias for $2;
+        p_description                           alias for $3;
+        p_mime_type                             alias for $4;
+        p_end_date                              alias for $5;
+        p_percent_complete                      alias for $6;
+        p_estimated_hours_work                  alias for $7;
+        p_estimated_hours_work_min              alias for $8;
+        p_estimated_hours_work_max              alias for $9;
+        p_status_id                             alias for $10;
+        p_process_instance_id                   alias for $11;
+        p_dform                                 alias for $12;
+        p_creation_date                         alias for $13;
+        p_creation_user                         alias for $14;
+        p_creation_ip                           alias for $15;
+        p_package_id                            alias for $16;
+        p_priority                              alias for $17;
+
+        v_task_id               cr_items.item_id%TYPE;
+        v_revision_id           cr_revisions.revision_id%TYPE;
+begin
+        select acs_object_id_seq.nextval into v_task_id from dual;
+
+        v_revision_id := pm_task__new_task_item (
+                p_project_id,                 -- project_id
+                v_task_id,                    -- task_item_id
+                p_title,                      -- title
+                p_description,                -- description
+                p_mime_type,                  -- mime_type
+                p_end_date,                   -- end_date
+                p_percent_complete,           -- percent_complete
+                p_estimated_hours_work,       -- estimated_hours_work
+                p_estimated_hours_work_min,   -- estimated_hours_work_min
+                p_estimated_hours_work_max,   -- estimated_hours_work_max
+                p_status_id,                  -- status_id
+                p_process_instance_id,        -- process_instance_id
+                p_dform,                      -- dfom
+                p_creation_date,              -- creation_date
+                p_creation_user,              -- creation_user
+                p_creation_ip,                -- creation_ip
+                p_package_id,                 -- package_id
+                p_priority                    -- priority
+        );
+
+        return v_revision_id;
+end;' language 'plpgsql';
+
+
 select define_function_args('pm_task__new_task_revision', 'task_id, project_id, title, description, mime_type, end_date, percent_complete, estimated_hours_work, estimated_hours_work_min, estimated_hours_work_max, actual_hours_worked, status_id, dform, creation_date, creation_user, creation_ip, package_id, priority');
 
 create or replace function pm_task__new_task_revision (
@@ -602,7 +676,8 @@
                 NULL,                   -- revision_id
                 now(),                  -- creation_date
                 p_creation_user,        -- creation_user
-                p_creation_ip           -- creation_ip
+                p_creation_ip,          -- creation_ip
+                p_package_id            -- package_id
         );
 
         PERFORM content_item__set_live_revision (v_revision_id);
