function prj_beginCopyTasks($pid, $source_task) { global $_TABLES, $_CONF, $_USER; $insertID = prj_insertTask($pid, 0); $sql = "select tid, pid, lhs, rhs, priority_id, status_id, duration_type_id, progress_id, name, parent_task, description, notification_enabled_flag, keywords, "; $sql .= "create_date, start_date, estimated_end_date, planned_end_date, actual_end_date, last_updated_date, duration, progress, "; $sql .= "make_private_enabled_flag from {$_TABLES['prj_tasks']} where tid='{$source_task}' and pid='{$pid}'"; $res = DB_query($sql); $A = DB_fetchArray($res); $A['tid'] = $insertID; $A['name'] = "Copy of " . $A['name']; prj_updateTask($A); //copy permissions $sql = "insert into {$_TABLES['prj_projPerms']} (pid, taskid, uid, gid, viewread, writechange, fullaccess, seedetails) "; $sql .= "(select '{$pid}','{$insertID}', uid, gid, viewread, writechange, fullaccess, seedetails from {$_TABLES['prj_projPerms']} "; $sql .= "where taskid='{$source_task}' and pid='{$pid}')"; DB_query($sql); //copy ownership $sql = "insert into {$_TABLES['prj_task_users']} (tid, uid, role) "; $sql .= "(select '{$insertID}', uid, role from {$_TABLES['prj_task_users']} where tid='{$source_task}')"; DB_query($sql); prj_copyProjectTasks($pid, $pid, $source_task, $insertID, 'Copy of '); }
$results1 = DB_query("SELECT uid FROM {$_TABLES['prj_users']} WHERE pid={$id}"); $nrows = DB_numRows($results1); if ($nrows != "0") { for ($i = 0; $i < $nrows; $i++) { list($adduid) = DB_fetchArray($results1); $currentuid = $_USER['uid']; if ($adduid != $currentuid) { DB_query("INSERT INTO {$_TABLES['prj_users']} (pid, uid, role) VALUES ({$lastid}, {$adduid}, 'r')"); if ($is_using_docmgmt_flag == 'Y') { DB_query("INSERT INTO {$_TABLES['nxfile_access']} (catid,uid,view, upload, upload_direct, upload_ver, approval, admin) VALUES ('{$newcid}','{$adduid}','1','1','0','0','0','0')"); } } } } // Copy the Tasks prj_copyProjectTasks($id, $lastid, 0); } //end overall if $msg = 'copyProject'; break; case 'erase': $token = ''; $uid = $_USER['uid']; $protoken = prj_getProjectPermissions($id, $uid); $ownertoken = getTaskToken($id, $uid, "{$_TABLES['prj_task_users']}", "{$_TABLES['prj_tasks']}"); if ($protoken['full'] != 0) { $result = DB_query("SELECT cid, is_using_docmgmt_flag, is_using_forum_flag, fid FROM {$_TABLES['prj_projects']} WHERE pid='{$id}'"); list($cid, $document, $discussion, $fid) = DB_fetchArray($result); DB_query("DELETE FROM {$_TABLES['prj_projects']} WHERE pid='{$id}'"); $result1 = DB_query("SELECT tid FROM {$_TABLES['prj_tasks']} WHERE {$_TABLES['prj_tasks']}.pid='{$id}'"); DB_query("DELETE FROM {$_TABLES['prj_users']} WHERE pid={$id} and uid='{$uid}'");