From dccd8fc1695bc4213507c5d82cc1639ea8c17ea9 Mon Sep 17 00:00:00 2001 From: "vincent@cubedesigners.com" Date: Mon, 10 Jan 2011 17:39:21 +0000 Subject: [PATCH] --- .../Controlleur/class.extranet.url.php | 23 ++++++++++++++----- .../DAO/class.extranet.dao.utilisateur.php | 20 +++++++++++++--- inc/extranet/Metier/class.extranet.client.php | 1 - js/extranet.js | 13 +++++++---- 4 files changed, 43 insertions(+), 14 deletions(-) diff --git a/inc/extranet/Controlleur/class.extranet.url.php b/inc/extranet/Controlleur/class.extranet.url.php index 3132a2d0b..4f26dc9fa 100644 --- a/inc/extranet/Controlleur/class.extranet.url.php +++ b/inc/extranet/Controlleur/class.extranet.url.php @@ -137,6 +137,8 @@ class extranetUrl { { global $core; cubePage::truePopup(); + cubePage::autoComplete(); + cubePage::emptyfield(); extranetDroits::min(1); $settings = $core->user->getSettings('clients'); @@ -179,11 +181,16 @@ class extranetUrl { $res .= ''; $i = 0; foreach($liste as $id => $client) { + if (!is_array($client->contacts)) { + fb($client); + continue; + } $odd = cubeMath::isOdd($i)?' class="odd"':''; $res .= ''; $res .= '' . $client->entreprise_id . ''; $res .= '' . $client->nom . ''; $contacts = array(); + foreach($client->contacts as $c) { $contacts[] = '' . $c->prenom . ' ' . $c->nom . ''; } @@ -274,11 +281,8 @@ class extranetUrl { { global $core; extranetDroits::min(1); - - cubePage::autocomplete(); - cubePage::emptyfield(); - $dao = new extranetDAOEntreprise($core->con); + $daoUtilisateur = new extranetDAOUtilisateur($core->con); if ($entreprise_id == 'new') { $client = $dao->cree(); } else { @@ -302,8 +306,8 @@ class extranetUrl { } else { $class = ''; $default_id = $client->ws_admin; - $wsa = $dao->selectById($client->ws_admin); - $default = $wsa->entreprise_id . ' - ' . $wsa->nom; + $wsa = $daoUtilisateur->selectById($client->ws_admin, 'utilisateurs_entreprise'); + $default = $wsa->utilisateur_id . ' - ' . $wsa->rs . ' (' . $wsa->prenom . ' ' . $wsa->nom . ')'; } $res .= '' . __('Revendeur / Administrateur') . '' . form::field('ws_admin_nom', 60, 128, $default, $class) . form::hidden('ws_admin', $default_id) . ''; if ($entreprise_id == 'new') { @@ -1805,6 +1809,13 @@ class extranetUrl { foreach($clients as $client) { $suggestions[] = $client->utilisateur_id . ' - ' . $client->rs . ' (' . $client->prenom . ' ' . $client->nom . ')'; } + } elseif ($args[1] == 'wsadmin') { + $dao = new extranetDAOUtilisateur($core->con); + $dao->setSearch($q, true); + $clients = $dao->getListe('utilisateur_id', 'ASC', null, null, 'AND ws_grade>=2'); + foreach($clients as $client) { + $suggestions[] = $client->utilisateur_id . ' - ' . $client->rs . ' (' . $client->prenom . ' ' . $client->nom . ')'; + } } cubeSearch::searchSuggestion($args[2], $suggestions); exit; diff --git a/inc/extranet/DAO/class.extranet.dao.utilisateur.php b/inc/extranet/DAO/class.extranet.dao.utilisateur.php index 768930f1b..131aee84f 100644 --- a/inc/extranet/DAO/class.extranet.dao.utilisateur.php +++ b/inc/extranet/DAO/class.extranet.dao.utilisateur.php @@ -40,6 +40,9 @@ class extranetDAOUtilisateur extends extranetDAO { $utilisateur->notes = $r->notes; $utilisateur->entreprise = $r->entreprise; $utilisateur->collegues = array(); + if (isset($r->rs)) { + $utilisateur->rs = $r->rs; + } if ($r->ws_settings != '') { $utilisateur->ws_settings = unserialize($r->ws_settings); } else { @@ -88,9 +91,9 @@ class extranetDAOUtilisateur extends extranetDAO { return $utilisateur; } - public function selectById($utilisateur_id) + public function selectById($utilisateur_id,$table='utilisateurs') { - $r = $this->con->select('SELECT * FROM utilisateurs WHERE utilisateur_id=\'' . $this->con->escape($utilisateur_id) . '\' LIMIT 1'); + $r = $this->con->select('SELECT * FROM `'.$table.'` WHERE utilisateur_id=\'' . $this->con->escape($utilisateur_id) . '\' LIMIT 1'); return $this->singleton($r); } @@ -117,8 +120,10 @@ class extranetDAOUtilisateur extends extranetDAO { return $r->utilisateur_id + 1; } - protected function getQueryList($table, $orderby = null, $sens = null, $limit = null) + protected function getQueryList($table, $orderby = null, $sens = null, $limit = null, $where = null) { + $wherec = $where; + $where = ''; if (!is_null($this->q)) { $where = ''; @@ -130,6 +135,7 @@ class extranetDAOUtilisateur extends extranetDAO { } else { $where = $this->makeWhereFromFiltres(); } + $where .= ' ' . $wherec; $orderby = is_null($orderby)?'utilisateur_id':$orderby; $sens = is_null($sens)?'DESC':$sens; $limit = is_null($limit)?'':$this->con->limit($limit[0], $limit[1]); @@ -138,6 +144,14 @@ class extranetDAOUtilisateur extends extranetDAO { return $sql; } + public function getListe($orderby = null, $sens = null, $limit = null, $where = null) + { + $sql = $this->getQueryList('utilisateurs_entreprise', $orderby, $sens, $limit, $where); + fb($sql); + $r = $this->con->select($sql); + return $this->factory($r); + } + public function whereSearchByName($q, $search_entreprise = true) { $where = 'nom LIKE \'' . $this->con->escape($q) . '%\' OR '; diff --git a/inc/extranet/Metier/class.extranet.client.php b/inc/extranet/Metier/class.extranet.client.php index 05ad7ef1a..ec36c1a6e 100644 --- a/inc/extranet/Metier/class.extranet.client.php +++ b/inc/extranet/Metier/class.extranet.client.php @@ -1,7 +1,6 @@ 0){ $("#devisAdresse #client_nom").autocomplete(SITE_PATH+'autocomplete/client',{ cacheLength : 0, maxItemsToShow : 15, @@ -13,7 +13,7 @@ function load_extranet(){ } - if($("#factureAdresse #projet_nom").length){ + if($("#factureAdresse #projet_nom").length>0){ $("#factureAdresse #projet_nom").autocomplete(SITE_PATH+'autocomplete/projet',{ cacheLength : 0, maxItemsToShow : 15, @@ -22,8 +22,13 @@ function load_extranet(){ }); } - if($("#ws_admin_nom").length){ - $("#ws_admin_nom").autocomplete(SITE_PATH+'autocomplete/wsadmin'); + if($("#ws_admin_nom").length>0){ + $("#ws_admin_nom").autocomplete(SITE_PATH+'autocomplete/wsadmin',{ + cacheLength:0, + maxItemsToShow:15, + onFindValue:findWSAdmin, + onItemSelect:findWSAdmin + }); } -- 2.39.5