$c->ws_admin = $ws2ext[$r->admin];\r
$c->update('WHERE entreprise_id=\'' . $utilisateurs_entreprises[$ws2ext[$r->uid]] . '\'');\r
}\r
+ // Set cubedesigners AS admin\r
+ $core->con->execute('UPDATE entreprises SET ws_grade=5, ws_admin=1 WHERE entreprise_id=7');\r
+\r
+ // Some entreprises are themeselves revendeurs. It's not normal\r
+ $core->con->execute('UPDATE entreprises e SET ws_admin=1 WHERE ws_admin IN (SELECT utilisateur_id FROM utilisateurs u WHERE e.entreprise_id=u.entreprise)');\r
} else {\r
$ws2ext = array();\r
$r = $core->con->select('SELECT ws_id,utilisateur_id,entreprise FROM utilisateurs WHERE ws_id IS NOT NULL');\r
}\r
}\r
\r
- exit;\r
-\r
if ($themes) {\r
// Importe les signatures\r
$r = $core->con->select('SELECT * FROM ws.signature');\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
+\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
if ($entreprise_id == 'new') {\r
$daoContact = new extranetDAOClient($core->con);\r
$contact = $daoContact->cree();\r
return $this->singleton($r);\r
}\r
\r
+ public function getWSDatas($entreprise_id)\r
+ {\r
+ $r = $this->con->select('SELECT * FROM ws_users_tree WHERE utilisateur_id IN(SELECT utilisateur_id FROM utilisateurs WHERE entreprise=\'' . $this->con->escape($entreprise_id) . '\') LIMIT 1');\r
+ if (!$r->count()) {\r
+ return null;\r
+ }\r
+ $daoUtilisateur = new extranetDAOUtilisateur($this->con);\r
+\r
+ $res = new stdClass();\r
+ $res->administrateur = $daoUtilisateur->selectById($r->administrateur_id, 'utilisateurs_entreprise');\r
+ $res->facturable = $daoUtilisateur->selectById($r->facturable_id, 'utilisateurs_entreprise');\r
+ return $res;\r
+ }\r
+\r
public function getListe($orderby = null, $sens = null, $limit = null)\r
{\r
global $core;\r
protected $grades;\r
protected $facturables;\r
protected $rights;\r
+ protected $entreprises;\r
+ protected $entreprises_tree;\r
\r
protected $con;\r
\r
$this->users = array();\r
$this->admins = array();\r
$this->grades = array();\r
+ $this->entreprises = array();\r
+ $this->entreprises_tree = array();\r
\r
$this->rights = array();\r
\r
$r = $this->con->select('SELECT * FROM utilisateurs u,entreprises e WHERE u.entreprise=e.entreprise_id AND e.ws_grade>0 ORDER BY e.ws_grade DESC');\r
while ($r->fetch()) {\r
+ $this->entreprises_tree[$r->entreprise_id] = $r->ws_admin;\r
+ $this->entreprises[$r->utilisateur_id] = $r->entreprise_id;\r
$this->users[$r->utilisateur_id] = $r->ws_admin;\r
$this->grades[$r->utilisateur_id] = $r->ws_grade;\r
if (!isset($this->admins[$r->ws_admin])) {\r
\r
$this->facturables = $this->getFacturables();\r
\r
- fb($this->facturables);\r
- return;\r
-\r
$c = $this->con->openCursor('ws_users_tree');\r
+\r
foreach($this->users as $utilisateur_id => $admin) {\r
- $this->getFacturableOf($utilisateur_id, $facturable_id, $administrateur_id);\r
+ $facturable_id = $administrateur_id = 0;\r
+ $this->getFacturableOf($utilisateur_id, $facturable_id, $administrateur_id, 1);\r
$c->utilisateur_id = $utilisateur_id;\r
$c->facturable_id = $facturable_id;\r
- $c->administrateur = $administrateur_id;\r
+ $c->administrateur_id = $administrateur_id;\r
$c->insert();\r
}\r
}\r
\r
- protected function getFacturableOf($utilisateur_id, &$facturable_id, &$administrateur_id)\r
+ protected function getFacturableOf($utilisateur_id, &$facturable_id, &$administrateur_id, $level)\r
{\r
if (in_array($utilisateur_id, $this->facturables)) {\r
$facturable_id = $utilisateur_id;\r
$administrateur_id = $this->users[$utilisateur_id];\r
return;\r
}\r
- return $this->getFacturableOf($this->users[$utilisateur_id], $facturable_id, $administrateur_id);\r
+ if ($level > 10) {\r
+ $facturable_id = -1;\r
+ $administrateur_id = -1;\r
+ return;\r
+ }\r
+\r
+ return $this->getFacturableOf($this->users[$utilisateur_id], $facturable_id, $administrateur_id, $level + 1);\r
}\r
\r
protected function getFacturables()\r