X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=WEB-INF%2Flib%2FttGroupHelper.class.php;h=05a31562a459992b950f0a0e991c9f263e029581;hb=e3cdaaf8e6b4e5433ec620396e562de1a5dcec10;hp=92d85a6e025970e5e049ced5d71f3bdbaee4468f;hpb=96e8b431e4b1dadd919b831e4ae184d29ebf1235;p=timetracker.git diff --git a/WEB-INF/lib/ttGroupHelper.class.php b/WEB-INF/lib/ttGroupHelper.class.php index 92d85a6e..05a31562 100644 --- a/WEB-INF/lib/ttGroupHelper.class.php +++ b/WEB-INF/lib/ttGroupHelper.class.php @@ -34,9 +34,10 @@ class ttGroupHelper { // The getGroupName function returns group name. static function getGroupName($group_id) { + global $user; $mdb2 = getConnection(); - $sql = "select name from tt_groups where id = $group_id and (status = 1 or status = 0)"; + $sql = "select name from tt_groups where id = $group_id and org_id = $user->org_id and (status = 1 or status = 0)"; $res = $mdb2->query($sql); if (!is_a($res, 'PEAR_Error')) { @@ -327,7 +328,7 @@ class ttGroupHelper { } // getActiveProjects - returns an array of active projects for a group. - static function getActiveProjects() + static function getActiveProjects($includeFiles = false) { global $user; $mdb2 = getConnection(); @@ -335,33 +336,14 @@ class ttGroupHelper { $group_id = $user->getGroup(); $org_id = $user->org_id; - $sql = "select id, name, description, tasks from tt_projects". - " where group_id = $group_id and org_id = $org_id and status = 1 order by upper(name)"; - $res = $mdb2->query($sql); - $result = array(); - if (!is_a($res, 'PEAR_Error')) { - while ($val = $res->fetchRow()) { - $result[] = $val; - } + if ($includeFiles) { + $filePart = ', if(Sub1.entity_id is null, 0, 1) as has_files'; + $fileJoin = " left join (select distinct entity_id from tt_files". + " where entity_type = 'project' and group_id = $group_id and org_id = $org_id and status = 1) Sub1". + " on (p.id = Sub1.entity_id)"; } - return $result; - } - - // getActiveProjectsWithFiles - returns an array of active projects for a group - // with information whether they have attached files (has_files property). - // A separate fiunction from getActiveProjects because sql here is more complex. - static function getActiveProjectsWithFiles() - { - global $user; - $mdb2 = getConnection(); - $group_id = $user->getGroup(); - $org_id = $user->org_id; - - $sql = "select p.id, p.name, if(Sub1.entity_id is null, 0, 1) as has_files from tt_projects p". - " left join (select distinct entity_id from tt_files". - " where entity_type = 'project' and group_id = $group_id and org_id = $org_id and status = 1) Sub1". - " on (p.id = Sub1.entity_id)". + $sql = "select p.id, p.name, p.description, p.tasks $filePart from tt_projects p $fileJoin". " where p.group_id = $group_id and p.org_id = $org_id and p.status = 1 order by upper(p.name)"; $res = $mdb2->query($sql); $result = array(); @@ -374,7 +356,7 @@ class ttGroupHelper { } // getInactiveProjects - returns an array of inactive projects for a group. - static function getInactiveProjects() + static function getInactiveProjects($includeFiles = false) { global $user; $mdb2 = getConnection(); @@ -382,34 +364,15 @@ class ttGroupHelper { $group_id = $user->getGroup(); $org_id = $user->org_id; - $sql = "select id, name, description, tasks from tt_projects". - " where group_id = $group_id and org_id = $org_id and status = 0 order by upper(name)"; - $res = $mdb2->query($sql); - $result = array(); - if (!is_a($res, 'PEAR_Error')) { - while ($val = $res->fetchRow()) { - $result[] = $val; - } + if ($includeFiles) { + $filePart = ', if(Sub1.entity_id is null, 0, 1) as has_files'; + $fileJoin = " left join (select distinct entity_id from tt_files". + " where entity_type = 'project' and group_id = $group_id and org_id = $org_id and status = 1) Sub1". + " on (p.id = Sub1.entity_id)"; } - return $result; - } - // getInactiveProjectsWithFiles - returns an array of inactive projects for a group - // with information whether they have attached files (has_files property). - // A separate fiunction from getInactiveProjects because sql here is more complex. - static function getInactiveProjectsWithFiles() - { - global $user; - $mdb2 = getConnection(); - - $group_id = $user->getGroup(); - $org_id = $user->org_id; - - $sql = "select p.id, p.name, if(Sub1.entity_id is null, 0, 1) as has_files from tt_projects p". - " left join (select distinct entity_id from tt_files". - " where entity_type = 'project' and group_id = $group_id and org_id = $org_id and status = 1) Sub1". - " on (p.id = Sub1.entity_id)". - " where p.group_id = $group_id and p.org_id = $org_id and p.status = 0 order by upper(p.name)"; + $sql = "select p.id, p.name, p.description, p.tasks $filePart from tt_projects p $fileJoin". + " where p.group_id = $group_id and p.org_id = $org_id and p.status = 0 order by upper(p.name)"; $res = $mdb2->query($sql); $result = array(); if (!is_a($res, 'PEAR_Error')) { @@ -675,19 +638,22 @@ class ttGroupHelper { } // The getUsersForClient obtains all active and inactive users in a group that are relevant to a client. - static function getUsersForClient() { + static function getUsersForClient($options) { global $user; $mdb2 = getConnection(); $group_id = $user->getGroup(); $org_id = $user->org_id; + if (isset($options['status'])) + $where_part = 'where u.status = '.(int)$options['status']; + else + $where_part = 'where u.status is not null'; + $sql = "select u.id, u.name from tt_user_project_binds upb". " inner join tt_client_project_binds cpb on (upb.project_id = cpb.project_id and cpb.client_id = $user->client_id)". " inner join tt_users u on (u.id = upb.user_id and u.group_id = $group_id and u.org_id = $org_id)". - " where (u.status = 1 or u.status = 0)". - " group by u.id". - " order by upper(u.name)"; + " $where_part group by u.id order by upper(u.name)"; $res = $mdb2->query($sql); $user_list = array(); if (is_a($res, 'PEAR_Error'))