return $this->singleton($r);\r
}\r
\r
- public function getListe($orderby = null, $sens = null, $limit = null, $where = null)\r
+ public function getListe($orderby = null, $sens = null, $limit = null, $where = null, $limitedToUserRights = false)\r
{\r
- $sql = $this->getQueryList('clients', $orderby, $sens, $limit, $where);\r
+ $sql = $this->getQueryList('clients', $orderby, $sens, $limit, $where,$limitedToUserRights);\r
$r = $this->con->select($sql);\r
return $this->factory($r);\r
}\r
return $res;\r
}\r
\r
- public function getListe($orderby = null, $sens = null, $limit = null)\r
+ public function getListe($orderby = null, $sens = null, $limit = null, $limitedToUserRights = false)\r
{\r
global $core;\r
if (!is_null($this->q)) {\r
$where = $this->makeWhereFromFiltres();\r
}\r
\r
+ $where .= $this->limitToUserRights($limitedToUserRights);\r
+\r
$orderby = is_null($orderby)?'entreprise_id':$orderby;\r
$sens = is_null($sens)?'DESC':$sens;\r
$limit = is_null($limit)?'':$this->con->limit($limit[0], $limit[1]);\r
return $liste;\r
}\r
\r
+ protected function limitToUserRights($user)\r
+ {\r
+ if ($user) {\r
+ return ' AND entreprise_id IN (SELECT entreprise FROM utilisateurs WHERE utilisateur_id IN(' . $user->ws_rights . ')) ';\r
+ }\r
+ return '';\r
+ }\r
+\r
public function sauve($data)\r
{\r
global $core;\r
\r
$c = $this->con->openCursor('entreprises');\r
$c->nom = $data['nom'];\r
- $c->date_creation = time();\r
+\r
$c->adresse = $data['adresse'];\r
$c->code_postal = $data['code_postal'];\r
$c->ville = $data['ville'];\r
$c->pays = $data['pays'];\r
$c->tva_intra = $data['tva_intra'];\r
$c->adresse_facturation = $data['adresse_facturation'];\r
- $c->ws_admin = $data['ws_admin'];\r
- $c->ws_grade = $data['ws_grade'];\r
+ if (isset($data['ws_admin'])) {\r
+ $c->ws_admin = $data['ws_admin'];\r
+ }\r
+ if (isset($data['ws_grade'])) {\r
+ $c->ws_grade = $data['ws_grade'];\r
+ }\r
\r
if ($data['entreprise_id'] == 'new' || $data['entreprise_id'] == '') {\r
+ $c->date_creation = TIME;\r
$entreprise_id = $c->entreprise_id = $this->getNextId();\r
$c->insert();\r
} else {\r
return true;\r
}\r
\r
- public function count()\r
+ public function count($limitedToUserRights = false)\r
{\r
- $r = $this->con->select('SELECT COUNT(*) AS nb FROM entreprises_vue WHERE ' . $this->makeWhereFromFiltres());\r
+ $r = $this->con->select('SELECT COUNT(*) AS nb FROM entreprises_vue WHERE ' . $this->makeWhereFromFiltres() . ' ' . $this->limitToUserRights($limitedToUserRights));\r
return $r->nb;\r
}\r
\r
if (isset($r->ws_grade)) {\r
$utilisateur->ws_grade = $r->ws_grade;\r
}\r
+ if (isset($r->ws_rights)) {\r
+ $utilisateur->ws_rights = $r->ws_rights;\r
+ }\r
\r
return $utilisateur;\r
}\r
return $r->utilisateur_id + 1;\r
}\r
\r
- protected function getQueryList($table, $orderby = null, $sens = null, $limit = null, $where = null)\r
+ protected function getQueryList($table, $orderby = null, $sens = null, $limit = null, $where = null, $limitedToUserRights = false)\r
{\r
$wherec = $where;\r
- $where = '';\r
+ $where = '(';\r
if (!is_null($this->q)) {\r
$where = '';\r
\r
} else {\r
$where = $this->makeWhereFromFiltres();\r
}\r
- $where .= ' ' . $wherec;\r
+ $where .= ' ' . $wherec . ' )';\r
+ $where .= $this->limitToUserRights($limitedToUserRights);\r
$orderby = is_null($orderby)?'utilisateur_id':$orderby;\r
$sens = is_null($sens)?'DESC':$sens;\r
$limit = is_null($limit)?'':$this->con->limit($limit[0], $limit[1]);\r
\r
$sql = 'SELECT * FROM ' . $table . ' WHERE (' . $where . ') ORDER BY ' . $orderby . ' ' . $sens . ' ' . $limit;\r
+ fb($sql);\r
return $sql;\r
}\r
\r
- public function getListe($orderby = null, $sens = null, $limit = null, $where = null)\r
+ protected function limitToUserRights($user)\r
{\r
- $sql = $this->getQueryList('utilisateurs_entreprise', $orderby, $sens, $limit, $where);\r
- fb($sql);\r
+ if ($user) {\r
+ return ' AND utilisateur_id IN (' . $user->ws_rights . ')';\r
+ }\r
+ return '';\r
+ }\r
+\r
+ public function getListe($orderby = null, $sens = null, $limit = null, $where = null, $limitedToUserRights = false)\r
+ {\r
+ $sql = $this->getQueryList('utilisateurs_entreprise', $orderby, $sens, $limit, $where, $limitedToUserRights);\r
$r = $this->con->select($sql);\r
return $this->factory($r);\r
}\r
protected $ws_admin;\r
protected $ws_grade;\r
protected $ws_settings;\r
+ protected $ws_rights;\r
\r
public function getEmail()\r
{\r
} elseif ($args[1] == 'book') {\r
$dao = new wsDAOBook($core->con);\r
$dao->setSearch($q, true);\r
- $books = $dao->getListe('date', 'DESC', 15);\r
+ $books = $dao->getListe('date', 'DESC', 15, $core->user);\r
foreach($books as $book) {\r
$suggestions[] = $book->book_id . ' - ' . $book->nom;\r
}\r
} elseif ($args[1] == 'wsuser') {\r
$dao = new commonDAOClient($core->con);\r
$dao->setSearch($q, true);\r
- $clients = $dao->getListe();\r
+ $clients = $dao->getListe('utilisateur_id','ASC',null,null,' AND ws_grade>0',$core->user);\r
foreach($clients as $client) {\r
$suggestions[] = $client->utilisateur_id . ' - ' . $client->rs . ' (' . $client->prenom . ' ' . $client->nom . ')';\r
}\r
} elseif ($args[1] == 'wsadmin') {\r
$dao = new commonDAOUtilisateur($core->con);\r
$dao->setSearch($q, true);\r
- $clients = $dao->getListe('utilisateur_id', 'ASC', null, null, 'AND ws_grade>=2');\r
+ $clients = $dao->getListe('utilisateur_id', 'ASC', null, null, 'AND ws_grade>2',$core->user);\r
foreach($clients as $client) {\r
$suggestions[] = $client->utilisateur_id . ' - ' . $client->rs . ' (' . $client->prenom . ' ' . $client->nom . ')';\r
}\r
$dao->setSearch($settings['search']);\r
}\r
$dao->setFiltres($settings['filtres']);\r
- $liste = $dao->getListe($settings['orderby'], $settings['sens'], $settings['limit']);\r
+ $liste = $dao->getListe($settings['orderby'], $settings['sens'], $settings['limit'], $core->user);\r
\r
$res = '<table class="liste">';\r
$res .= '<tr><th>' . commonUrl::orderby('#', 'book_id', $settings, 'sort' . $change) . '</th>';\r
if (!isset($settings['search']) || is_null($settings['search'])) {\r
$odd = cubeMath::isOdd($i)?' class="odd"':'';\r
$res .= '<tr' . $odd . '><td colspan="12">';\r
- $res .= commonPage::pager($settings['page'], $dao->count() , $settings['par_page'], 'page' . $change . '/%d');\r
+ $res .= commonPage::pager($settings['page'], $dao->count($core->user) , $settings['par_page'], 'page' . $change . '/%d');\r
$res .= commonUrl::formParPage('parPage' . $change, $settings['par_page'], __('publications'), false);\r
$res .= '</td></tr>';\r
}\r
return $res;\r
}\r
\r
- public static function changeBookProprietaire()\r
+ public static function changeBookProprietaire($book_id)\r
{\r
+ global $core;\r
commonDroits::min(3);\r
- $res = '<tr><td>' . __('Rechercher un utilisateur') . ' : </td><td>' . form::field('book_proprietaire', 64, 1024) . form::hidden('proprietaire', '') . '</td></tr>';\r
+\r
+ $dao=new wsDAOBook($core->con);\r
+ $book=$dao->selectById($book_id);\r
+\r
+ $res = '<tr><td>' . __('Propriétaire actuel') . ' : </td><td>'.$book->proprietaire.'</td></tr>';\r
+ $res .= '<tr><td>' . __('Rechercher un utilisateur') . ' : </td><td>' . form::field('book_proprietaire', 64, 1024) . form::hidden('proprietaire', '') . '</td></tr>';\r
return $res;\r
}\r
\r
$dao->setSearch($settings['search']);\r
}\r
$dao->setFiltres($settings['filtres']);\r
- $liste = $dao->getListe($settings['orderby'], $settings['sens'], $settings['limit']);\r
+ $liste = $dao->getListe($settings['orderby'], $settings['sens'], $settings['limit'], $core->user);\r
\r
$res = '<table class="liste">';\r
$res .= '<tr><th>' . commonUrl::orderby('#', 'entreprise_id', $settings, 'sort' . $change) . '</th>';\r
if (!isset($settings['search']) || is_null($settings['search'])) {\r
$odd = cubeMath::isOdd($i)?' class="odd"':'';\r
$res .= '<tr' . $odd . '><td colspan="10">';\r
- $res .= commonPage::pager($settings['page'], $dao->count() , $settings['par_page'], 'page' . $change . '/%d');\r
+ $res .= commonPage::pager($settings['page'], $dao->count($core->user) , $settings['par_page'], 'page' . $change . '/%d');\r
$res .= commonUrl::formParPage('parPage' . $change, $settings['par_page'], __('clients'));\r
$res .= '</td></tr>';\r
}\r
$res .= '<tr><td>' . __('Pays') . '</td><td>' . form::combo('pays', cubeCountry::getList(), $client->pays) . '</td></tr>';\r
$res .= '<tr><td>' . __('Adresse de facturation') . '</td><td>' . form::textarea('adresse_facturation', 40, 3, $client->adresse_facturation) . '</td></tr>';\r
$res .= '<tr><td>' . __('Numéro de TVA intracommunautaire') . '</td><td>' . form::field('tva_intra', 15, 13, $client->tva_intra) . '</td></tr>';\r
- $res .= '<tr class="light"><th colspan="2" class="light"><strong>' . __('Fluidbook Workshop') . '</strong></th></tr>';\r
- $res .= '<tr class="odd"><td>' . __('Grade') . '</td><td>' . form::combo('ws_grade', array_flip($core->ws_grades), $client->ws_grade) . '</td></tr>';\r
- if ($entreprise_id == 'new' || !$client->ws_admin) {\r
- $class = 'empty-field';\r
- $default_id = '';\r
- $default = __('Entrez le nom du revendeur ou de l\'administrateur');\r
- } else {\r
- $class = '';\r
- $default_id = $client->ws_admin;\r
- $wsa = $daoUtilisateur->selectById($client->ws_admin, 'utilisateurs_entreprise');\r
- $default = $wsa->utilisateur_id . ' - ' . $wsa->rs . ' (' . $wsa->prenom . ' ' . $wsa->nom . ')';\r
- }\r
+ // Bloc Fluidbook Workshop\r
+ if (wsDroits::admin(false)) {\r
+ $res .= '<tr class="light"><th colspan="2" class="light"><strong>' . __('Fluidbook Workshop') . '</strong></th></tr>';\r
+ $res .= '<tr class="odd"><td>' . __('Grade') . '</td><td>' . form::combo('ws_grade', array_flip($core->ws_grades), $client->ws_grade) . '</td></tr>';\r
+ if ($entreprise_id == 'new' || !$client->ws_admin) {\r
+ $class = 'empty-field';\r
+ $default_id = '';\r
+ $default = __('Entrez le nom du revendeur ou de l\'administrateur');\r
+ } else {\r
+ $class = '';\r
+ $default_id = $client->ws_admin;\r
+ $wsa = $daoUtilisateur->selectById($client->ws_admin, 'utilisateurs_entreprise');\r
+ $default = $wsa->utilisateur_id . ' - ' . $wsa->rs . ' (' . $wsa->prenom . ' ' . $wsa->nom . ')';\r
+ }\r
\r
- $d = $dao->getWSDatas($entreprise_id);\r
+ $d = $dao->getWSDatas($entreprise_id);\r
\r
- $res .= '<tr class="odd"><td>' . __('Revendeur / Administrateur') . '</td><td>' . form::field('ws_admin_nom', 60, 128, $default, $class) . form::hidden('ws_admin', $default_id) . '</td></tr>';\r
- if (!is_null($d)) {\r
- $res .= '<tr class="odd"><td>' . __('Entité facturable') . '</td><td>' . $d->facturable->prenom . ' ' . $d->facturable->nom . ' (' . $d->facturable->rs . ')</td></tr>';\r
- $res .= '<tr class="odd"><td>' . __('Administrateur responsable') . '</td><td>' . $d->administrateur->prenom . ' ' . $d->administrateur->nom . ' (' . $d->administrateur->rs . ')</td></tr>';\r
+ $res .= '<tr class="odd"><td>' . __('Revendeur / Administrateur') . '</td><td>' . form::field('ws_admin_nom', 60, 128, $default, $class) . form::hidden('ws_admin', $default_id) . '</td></tr>';\r
+ if (!is_null($d)) {\r
+ $res .= '<tr class="odd"><td>' . __('Entité facturable') . '</td><td>' . $d->facturable->prenom . ' ' . $d->facturable->nom . ' (' . $d->facturable->rs . ')</td></tr>';\r
+ $res .= '<tr class="odd"><td>' . __('Administrateur responsable') . '</td><td>' . $d->administrateur->prenom . ' ' . $d->administrateur->nom . ' (' . $d->administrateur->rs . ')</td></tr>';\r
+ }\r
}\r
if ($entreprise_id == 'new') {\r
$daoContact = new commonDAOClient($core->con);\r
}\r
return $res;\r
}\r
-\r
- public static function formNotes($utilisateur_id)\r
- {\r
- global $core;\r
- commonDroits::min(5);\r
- $dao = new commonDAOUtilisateur($core->con);\r
- $utilisateur = $dao->selectById($utilisateur_id);\r
- $res = '<tr><td colspan="2">' . form::hidden('utilisateur_id', $utilisateur_id) . '</td></tr>';\r
- $res .= '<tr><td colspan="2">' . form::textarea('notes', 100, 30, $utilisateur->notes) . '</td></tr>';\r
- $res .= '<tr><td colspan="2"></td></tr>';\r
- return $res;\r
- }\r
}\r
\r
?>
\ No newline at end of file
return $this->con->execute('DELETE FROM books WHERE book_id=\'' . $this->con->escape($book_id) . '\'');\r
}\r
\r
- public function count()\r
+ public function count($limitedToUserRights = false)\r
{\r
- $r = $this->con->select('SELECT COUNT(*) AS nb FROM books WHERE ' . $this->makeWhereFromFiltres());\r
+ $where = '(' . $this->makeWhereFromFiltres() . ')';\r
+ $where .= $this->limitToUserRights($limitedToUserRights);\r
+ $r = $this->con->select('SELECT COUNT(*) AS nb FROM books WHERE ' . $where);\r
return $r->nb;\r
}\r
\r
$this->con->execute('UPDATE book_pages SET book_page=book_page' . $decalage . ' WHERE book_page>' . $this->con->escape($after_page) . ' AND book_id=\'' . $this->con->escape($book_id) . '\'');\r
}\r
\r
- public function getListe($orderby = null, $sens = null, $limit = null)\r
+ public function getListe($orderby = null, $sens = null, $limit = null, $limitedToUserRights = false)\r
{\r
if (!is_null($this->q)) {\r
- $where = '';\r
+ $where = '(';\r
if ($this->search_id) {\r
$where .= ' book_id=\'' . $this->con->escape($this->q) . '\' OR ';\r
}\r
$daoClient = new commonDAOClient($this->con);\r
$where .= ' OR proprietaire_id IN(' . $daoClient->querySearchByName($this->q) . ')';\r
$limit = null;\r
+ $where .= ')';\r
} else {\r
- $where = $this->makeWhereFromFiltres();\r
+ $where = '(' . $this->makeWhereFromFiltres() . ')';\r
}\r
+ $where .= $this->limitToUserRights($limitedToUserRights);\r
+\r
$orderby = is_null($orderby)?'book_id':$orderby;\r
$sens = is_null($sens)?'DESC':$sens;\r
$limit = is_null($limit)?'':$this->con->limit($limit);\r
return $this->factory($r);\r
}\r
\r
+ protected function limitToUserRights($utilisateur)\r
+ {\r
+ if ($utilisateur) {\r
+ return ' AND proprietaire IN (' . $utilisateur->ws_rights . ')';\r
+ }\r
+ return '';\r
+ }\r
+\r
protected function makeWhereFromFiltres()\r
{\r
if (!is_null($this->filtres)) {\r