diff --git a/htdocs/projet/index.php b/htdocs/projet/index.php index e846593812e..772b6511cd1 100644 --- a/htdocs/projet/index.php +++ b/htdocs/projet/index.php @@ -44,13 +44,8 @@ if ($user->societe_id > 0) $socstatic=new Societe($db); $projectstatic=new Project($db); -$projectsIdArray=array(); $mine = $_REQUEST['mode']=='mine' ? 1 : 0; -$projectsListArray = $projectstatic->getProjectsAuthorizedForUser($user,$mine); -foreach ($projectsListArray as $key => $value) -{ - $projectsIdArray[] = $key; -} +$projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,$mine,1); llxHeader("",$langs->trans("Projects"),"EN:Module_Projects|FR:Module_Projets|ES:Módulo_Proyectos"); @@ -72,7 +67,7 @@ $sql = "SELECT p.rowid as projectid, p.ref, p.title, p.fk_user_creat, p.public, $sql.= " FROM ".MAIN_DB_PREFIX."projet as p"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."projet_task as t ON p.rowid = t.fk_projet"; $sql.= " WHERE p.entity = ".$conf->entity; -if ($mine) $sql.= " AND p.rowid IN (".(!empty($projectsIdArray) ? implode(',',$projectsIdArray) : 0).")"; +if ($mine) $sql.= " AND p.rowid IN (".$projectsListId.")"; if ($socid) $sql.= " AND p.fk_soc = ".$socid; $sql.= " GROUP BY p.title, p.rowid"; @@ -128,7 +123,7 @@ $sql.= ", s.nom, s.rowid as socid"; $sql.= " FROM ".MAIN_DB_PREFIX."projet as p"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s on p.fk_soc = s.rowid"; $sql.= " WHERE p.entity = ".$conf->entity; -$sql.= " AND p.rowid IN (".(!empty($projectsIdArray) ? implode(',',$projectsIdArray) : 0).")"; +$sql.= " AND p.rowid IN (".$projectsListId.")"; if ($socid) $sql.= " AND s.rowid = ".$socid; $sql.= " GROUP BY s.nom, s.rowid"; diff --git a/htdocs/projet/liste.php b/htdocs/projet/liste.php index aa3d86be3e2..feceec83340 100644 --- a/htdocs/projet/liste.php +++ b/htdocs/projet/liste.php @@ -68,13 +68,8 @@ llxHeader("",$langs->trans("Projects"),"EN:Module_Projects|FR:Module_Projets|ES: $projectstatic = new Project($db); $socstatic = new Societe($db); -$projectsIdArray=array(); $mine = $_REQUEST['mode']=='mine' ? 1 : 0; -$projectsListArray = $projectstatic->getProjectsAuthorizedForUser($user,$mine); -foreach ($projectsListArray as $key => $value) -{ - $projectsIdArray[] = $key; -} +$projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,$mine,1); $sql = "SELECT p.rowid as projectid, p.ref, p.title, p.fk_statut, p.public, p.fk_user_creat"; $sql.= ", p.datec as date_create, p.dateo as date_start, p.datee as date_end"; @@ -82,7 +77,7 @@ $sql.= ", s.nom, s.rowid as socid"; $sql.= " FROM ".MAIN_DB_PREFIX."projet as p"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s on p.fk_soc = s.rowid"; $sql.= " WHERE p.entity = ".$conf->entity; -if ($mine) $sql.= " AND p.rowid IN (".(!empty($projectsIdArray) ? implode(',',$projectsIdArray) : 0).")"; +if ($mine) $sql.= " AND p.rowid IN (".$projectsListId.")"; if ($socid) $sql.= " AND s.rowid = ".$socid; if ($_GET["search_ref"]) diff --git a/htdocs/projet/project.class.php b/htdocs/projet/project.class.php index 790011a9007..1aad2f539bb 100644 --- a/htdocs/projet/project.class.php +++ b/htdocs/projet/project.class.php @@ -657,11 +657,12 @@ class Project extends CommonObject * @param unknown_type $user * @return unknown */ - function getProjectsAuthorizedForUser($user,$mine=0) + function getProjectsAuthorizedForUser($user,$mine=0,$list=0) { global $conf; $projects = array(); + $temp = array(); $sql = "SELECT DISTINCT p.rowid, p.ref"; $sql.= " FROM ".MAIN_DB_PREFIX."projet as p"; @@ -695,9 +696,18 @@ class Project extends CommonObject { $row = $this->db->fetch_row($resql); $projects[$row[0]] = $row[1]; + $temp[] = $row[0]; $i++; } - $this->db->free(); + + $this->db->free($resql); + + if ($list) + { + if (empty($temp)) return 0; + $result = implode(',',$temp); + return $result; + } } else {