]> _ Git - cubeextranet.git/commitdiff
(no commit message)
authorvincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Fri, 14 Jan 2011 10:50:00 +0000 (10:50 +0000)
committervincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Fri, 14 Jan 2011 10:50:00 +0000 (10:50 +0000)
importWs.php
inc/extranet/Controlleur/class.extranet.url.php
inc/extranet/DAO/class.extranet.dao.entreprise.php
inc/ws/Controlleur/class.ws.users.tree.php

index 99ffd3d93e26ad0b3dd8f5199f7a751fc18ba8da..b661fb96dd9fb65fb0841739865110e58925fbd2 100644 (file)
@@ -186,6 +186,11 @@ try {
                        $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
@@ -195,8 +200,6 @@ try {
                }\r
        }\r
 \r
-       exit;\r
-\r
        if ($themes) {\r
                // Importe les signatures\r
                $r = $core->con->select('SELECT * FROM ws.signature');\r
index 53cbf6a5c5a54686285a01c863f1a9557cc782c5..069c289eec9356ef4aa11e7f883c130bc80930b2 100644 (file)
@@ -309,7 +309,14 @@ class extranetUrl {
                        $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
index 4c30ffc106d3144e816b90ad89af73aa54200028..b778cf1a4ec55d766de82feb5fc7097245a32a72 100644 (file)
@@ -45,6 +45,20 @@ class extranetDAOEntreprise extends extranetDAO {
                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
index 0de0bc9621337dd00b095243f9fad2bf27c7affe..336f73e3418c65d3e5db803d1e5239d2b0110b4f 100644 (file)
@@ -6,6 +6,8 @@ class wsUsersTree {
        protected $grades;\r
        protected $facturables;\r
        protected $rights;\r
+       protected $entreprises;\r
+       protected $entreprises_tree;\r
 \r
        protected $con;\r
 \r
@@ -22,11 +24,15 @@ class wsUsersTree {
                $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
@@ -37,27 +43,32 @@ class wsUsersTree {
 \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