]> _ Git - cubeextranet.git/commitdiff
(no commit message)
authorvincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Thu, 10 Feb 2011 18:21:28 +0000 (18:21 +0000)
committervincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Thu, 10 Feb 2011 18:21:28 +0000 (18:21 +0000)
inc/commons/DAO/class.common.dao.entreprise.php
inc/commons/class.common.core.php
inc/commons/class.common.filtre.php
inc/ws/Controlleur/class.ws.ajax.php
inc/ws/Controlleur/class.ws.url.php
inc/ws/DAO/class.ws.dao.book.php

index 5d6aab916ee02203a1a48c1d3d8a0724ae4bc4c6..8515fe5387073c2febfe871cb70419b1132f6be7 100644 (file)
@@ -184,9 +184,9 @@ class commonDAOEntreprise extends commonDAO {
                return true;\r
        }\r
 \r
-       public function count($limitedToUserRights = false)\r
+       public function count($limitedToUserRights = false,$table='entreprise_vue')\r
        {\r
-               $r = $this->con->select('SELECT COUNT(*) AS nb FROM entreprises_vue WHERE ' . $this->makeWhereFromFiltres() . ' ' . $this->limitToUserRights($limitedToUserRights));\r
+               $r = $this->con->select('SELECT COUNT(*) AS nb FROM '.$table.' WHERE ' . $this->makeWhereFromFiltres() . ' ' . $this->limitToUserRights($limitedToUserRights));\r
                return $r->nb;\r
        }\r
 \r
@@ -194,6 +194,15 @@ class commonDAOEntreprise extends commonDAO {
        {\r
                if (!is_null($this->filtres)) {\r
                        $w = array('1=1');\r
+\r
+                       if (commonFiltre::test('ws_grade', $this->filtres)) {\r
+                               $w[] = 'ws_grade IN(' . implode(',', array_keys($this->filtres['ws_grade'])) . ')';\r
+                       }\r
+\r
+                       if (commonFiltre::test('admin_client', $this->filtres)) {\r
+                               $w[] = 'ws_super_admin IN(' . implode(',', array_keys($this->filtres['admin_client'])) . ')';\r
+                       }\r
+\r
                        return implode(' AND ', $w);\r
                } else {\r
                        return '1=1';\r
index f329580e50de56273f972bb83f6d2efc894524df..fe60dd7b4390b04014c0d830ecfb4d484ce6349c 100644 (file)
@@ -431,7 +431,7 @@ class commonCore extends cubeCore {
                         . 'GROUP BY e.entreprise_id');\r
                $this->views->createView('entreprises_vue', 'SELECT e.*,i.impaye AS impaye '\r
                         . 'FROM entreprises_inter e LEFT JOIN impayes_entreprises i ON e.entreprise_id=i.entreprise');\r
-               $this->views->createView('entreprises_ws', 'SELECT e.*, a.prenom AS administrateur, r.nom AS revendeur '\r
+               $this->views->createView('entreprises_ws', 'SELECT e.*, a.prenom AS administrateur, r.nom AS revendeur,a.utilisateur_id AS ws_super_admin '\r
                         . 'FROM entreprises e '\r
                         . 'LEFT JOIN ws_entreprises_tree ri ON ri.entreprise_id=e.entreprise_id '\r
                         . 'LEFT JOIN utilisateurs ur ON e.ws_admin=ur.utilisateur_id '\r
@@ -499,10 +499,15 @@ class commonCore extends cubeCore {
                         . 'FROM projets_vue p, taches_vue t '\r
                         . 'WHERE t.projet=p.projet_id '\r
                         . 'GROUP BY t.categorie,p.annee_fin');\r
-               $this->views->createView('books_vue', 'SELECT b.*,b.proprietaire AS proprietaire_id,CONCAT(c.rs,\' (\',c.prenom,\' \',c.nom,\')\') AS proprietaire_nom, CONCAT(c.prenom,\' \',c.nom) AS proprietaire_utilisateur,c.ws_admin, f.rs AS facturable, t.facturable_id AS facturable_id, ta.projet AS projet '\r
+               $this->views->createView('books_vue', 'SELECT b.*,b.proprietaire AS proprietaire_id,'\r
+                        . 'CONCAT(c.rs,\' (\',c.prenom,\' \',c.nom,\')\') AS proprietaire_nom,'\r
+                        . 'CONCAT(c.prenom,\' \',c.nom) AS proprietaire_utilisateur,c.ws_admin,'\r
+                        . 'f.rs AS facturable, t.facturable_id AS facturable_id, ta.projet AS projet,'\r
+                        . 'IF(c.ws_grade>=5,c.utilisateur_id,a.utilisateur_id) AS super_admin '\r
                         . 'FROM books b '\r
                         . 'LEFT JOIN utilisateurs_entreprise c ON b.proprietaire=c.utilisateur_id '\r
                         . 'LEFT JOIN ws_users_tree t ON t.utilisateur_id=c.utilisateur_id '\r
+                        . 'LEFT JOIN utilisateurs a ON t.administrateur_id=a.utilisateur_id '\r
                         . 'LEFT JOIN utilisateurs_entreprise f ON t.facturable_id=f.utilisateur_id '\r
                         . 'LEFT JOIN taches ta ON ta.tache_id=b.tache' ,\r
                        'TEMPTABLE');\r
index 2b368a34168d8f922a1d551581602d809f98123f..c0542847e70c39dc199fdc90be1fa664634e8834 100644 (file)
@@ -18,7 +18,7 @@ class commonFiltre {
        protected function getValues()\r
        {\r
                global $core;\r
-               if ($this->varname == 'equipier' || $this->varname == 'equipier_participe') {\r
+               if ($this->varname == 'equipier' || $this->varname == 'equipier_participe' || $this->varname == 'admin_book' || $this->varname=='admin_client') {\r
                        $r = $core->con->select('SELECT prenom,utilisateur_id FROM equipiers');\r
                        while ($r->fetch()) {\r
                                $this->values[$r->prenom] = $r->utilisateur_id;\r
@@ -58,6 +58,8 @@ class commonFiltre {
                } elseif ($this->varname == 'demande_moi') {\r
                        $this->values = array(__('Moi') => 'moi', __('Autres') => 'autres');\r
                        $this->all = __('Toutes');\r
+               }elseif($this->varname=='ws_grade'){\r
+                       $this->values=array_flip($core->ws_grades);\r
                }\r
        }\r
 \r
index 3684b7771119e85043d5a9a9aa4bc8538fbfe86e..b839ae9f2d5de86c167434a7f1019d76d39875cc 100644 (file)
@@ -115,6 +115,18 @@ class wsAjax extends cubeAjax {
                $x->addContent('listeClients', wsUrl::listeClients());\r
        }\r
 \r
+       public static function filtreClients($args, &$x)\r
+       {\r
+               if (isset($args[1]) && $args[1] == 'efface') {\r
+                       commonAjax::filtre('clients');\r
+                       $x->addReload();\r
+                       return;\r
+               } else {\r
+                       commonAjax::filtre('clients', $_POST);\r
+                       $x->addContent('listeClients', wsUrl::listeClients());\r
+               }\r
+       }\r
+\r
        public static function supprimeBook($args, &$x)\r
        {\r
                global $core;\r
index 3d7a086c8fbef4e2cfbc3ca686c3db9af908bcb2..3b6a449aea086465a53662f5ad9a4af0f056f86e 100644 (file)
@@ -15,7 +15,9 @@ class wsUrl {
                if (wsDroits::revendeur(false)) {\r
                        $filtres[] = new commonFiltre(__('Status'), 'status_book', $settings['filtres']);\r
                }\r
-               $filtres[] = new commonFiltre(__('Année'), 'annee_book', $settings['filtres']);\r
+               if (wsDroits::admin()) {\r
+                       $filtres[] = new commonFiltre(__('Administrateur'), 'admin_book', $settings['filtres']);\r
+               }\r
                $res = commonPage::barre($filtres , 'filtreBooks', 'books', $shortcuts);\r
                $res .= commonPage::tMain(null, true);\r
                $res .= commonPage::bh();\r
@@ -672,6 +674,10 @@ html{height:100%}' . "\n";
                $shortcuts[] = '<a href="#" class="popup" rel="formClient/new">' . $core->typo->Ajouter('Créer un nouveau client') . '</a>';\r
 \r
                $filtres = array();\r
+               if (wsDroits::admin()) {\r
+                       $filtres[] = new commonFiltre(__('Grade'), 'ws_grade', $settings['filtres']);\r
+                       $filtres[] = new commonFiltre(__('Administrateur'), 'admin_client', $settings['filtres']);\r
+               }\r
 \r
                $res = commonPage::barre($filtres, 'filtreClients', 'clients', $shortcuts);\r
                $res .= commonPage::tMain();\r
@@ -709,9 +715,9 @@ html{height:100%}' . "\n";
                $res .= '<th>' . commonUrl::orderby(__('Raison sociale'), 'nom', $settings, 'sort' . $change) . '</th>';\r
                $res .= '<th>' . __('Contacts') . '</th>';\r
                if ($admin) {\r
-                       $res .= '<th>' . commonUrl::orderby(__('Grade'),'ws_grade',$settings,'sort',$change) . '</th>';\r
-                       $res .= '<th>' . commonUrl::orderby(__('Revendeur'),'revendeur',$settings,'sort',$change) . '</th>';\r
-                       $res .= '<th>' . commonUrl::orderby(__('Administrateur'),'administrateur',$settings,'sort',$change) . '</th>';\r
+                       $res .= '<th>' . commonUrl::orderby(__('Grade'), 'ws_grade', $settings, 'sort', $change) . '</th>';\r
+                       $res .= '<th>' . commonUrl::orderby(__('Revendeur'), 'revendeur', $settings, 'sort', $change) . '</th>';\r
+                       $res .= '<th>' . commonUrl::orderby(__('Administrateur'), 'administrateur', $settings, 'sort', $change) . '</th>';\r
                }\r
                $res .= '<th class="min"></th><th class="min"></th></tr>';\r
                $i = 0;\r
@@ -732,8 +738,8 @@ html{height:100%}' . "\n";
                        $res .= '<td id="contacts_' . $client->entreprise_id . '">' . implode(', ', $contacts) . '</td>';\r
 \r
                        if ($admin) {\r
-                               $rev=$client->ws_revendeur==''?'-':$client->ws_revendeur;\r
-                               $adm=$client->ws_administrateur==''?'-':$client->ws_administrateur;\r
+                               $rev = $client->ws_revendeur == ''?'-':$client->ws_revendeur;\r
+                               $adm = $client->ws_administrateur == ''?'-':$client->ws_administrateur;\r
 \r
                                $res .= '<td>' . $core->ws_grades[$client->ws_grade] . '</td>';\r
                                $res .= '<td>' . $rev . '</td>';\r
@@ -750,9 +756,9 @@ html{height:100%}' . "\n";
                        $odd = cubeMath::isOdd($i)?' class="odd"':'';\r
                        $res .= '<tr' . $odd . '><td colspan="10">';\r
                        if ($admin) {\r
-                               $res .= commonPage::pager($settings['page'], $dao->count() , $settings['par_page'], 'page' . $change . '/%d');\r
+                               $res .= commonPage::pager($settings['page'], $dao->count(null,'entreprises_ws') , $settings['par_page'], 'page' . $change . '/%d');\r
                        } else {\r
-                               $res .= commonPage::pager($settings['page'], $dao->count($core->user) , $settings['par_page'], 'page' . $change . '/%d');\r
+                               $res .= commonPage::pager($settings['page'], $dao->count($core->user,'entreprises_ws') , $settings['par_page'], 'page' . $change . '/%d');\r
                        }\r
                        $res .= commonUrl::formParPage('parPage' . $change, $settings['par_page'], __('clients'));\r
                        $res .= '</td></tr>';\r
index 5aea76c7c8265c4c7fcf5932b30e7a039b0bb055..9be5e46aebe25f6dc6cf90ab2cdf4357a27b63dc 100644 (file)
@@ -177,7 +177,7 @@ class wsDAOBook extends commonDAO {
        {\r
                $where = '(' . $this->makeWhereFromFiltres() . ')';\r
                $where .= $this->limitToUserRights($limitedToUserRights);\r
-               $r = $this->con->select('SELECT COUNT(*) AS nb FROM books WHERE ' . $where);\r
+               $r = $this->con->select('SELECT COUNT(*) AS nb FROM books_vue WHERE ' . $where);\r
                return $r->nb;\r
        }\r
 \r
@@ -316,8 +316,8 @@ class wsDAOBook extends commonDAO {
        {\r
                if (!is_null($this->filtres)) {\r
                        $w = array('1=1');\r
-                       if (commonFiltre::test('annee_book', $this->filtres)) {\r
-                               $w[] = 'YEAR(FROM_UNIXTIME(date)) IN (' . implode(',', array_keys($this->filtres['annee_book'])) . ')';\r
+                       if (commonFiltre::test('admin_book', $this->filtres)) {\r
+                               $w[] = 'super_admin IN (' . implode(',', array_keys($this->filtres['admin_book'])) . ')';\r
                        }\r
                        if (commonFiltre::test('status_book', $this->filtres)) {\r
                                $w[] = 'status IN(' . implode(',', array_keys($this->filtres['status_book'])) . ')';\r