From bfb613bd0590836e8487c7b82da71436b10fc84a Mon Sep 17 00:00:00 2001 From: "vincent@cubedesigners.com" Date: Thu, 10 Feb 2011 13:41:28 +0000 Subject: [PATCH] --- inc/commons/class.common.core.php | 17 +++++++++++------ inc/ws/Controlleur/class.ws.users.tree.php | 7 ++++--- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/inc/commons/class.common.core.php b/inc/commons/class.common.core.php index 2ab8709db..f9a578340 100644 --- a/inc/commons/class.common.core.php +++ b/inc/commons/class.common.core.php @@ -383,7 +383,9 @@ class commonCore extends cubeCore { // . // Table des droits $db->ws_users_tree->utilisateur_id('integer', 0, false); + $db->ws_users_tree->entreprise_id('integer', 0, false); $db->ws_users_tree->facturable_id('integer', 0, false); + $db->ws_users_tree->facturable_entreprise_id('integer', 0, false); $db->ws_users_tree->administrateur_id('integer', 0, false); // Clé $db->ws_users_tree->primary('pk_utilisateur_id', 'utilisateur_id'); @@ -412,9 +414,6 @@ class commonCore extends cubeCore { $this->views->createView('equipiers', 'SELECT * FROM utilisateurs WHERE grade>=1'); $this->views->createView('gerants', 'SELECT * FROM utilisateurs WHERE grade=2'); - // $this->views->createView('ws_top_revendeurs', 'SELECT * FROM utilisateurs WHERE ws_grade=3 AND ws_admin IN(SELECT utilisateur_id FROM equipiers)'); - // $this->views->createView('ws_revendeurs', 'SELECT * FROM utilisateurs WHERE ws_grade=3'); - // $this->views->createView('ws_facturables', 'SELECT * FROM utilisateurs WHERE ws_grade BETWEEN 0 AND 3 AND ws_admin IN(SELECT utilisateur_id FROM equipiers)'); $this->views->createView('impayes_entreprises', 'SELECT SUM(total_ht) AS impaye, u.entreprise AS entreprise ' . 'FROM utilisateurs u LEFT JOIN projets p ON u.utilisateur_id=p.client LEFT JOIN factures f ON f.projet=p.projet_id ' . 'WHERE f.status=1 GROUP BY u.entreprise'); @@ -424,8 +423,14 @@ class commonCore extends cubeCore { . 'LEFT JOIN projets p ON p.client=u.utilisateur_id ' . 'LEFT JOIN factures f ON f.projet=p.projet_id AND f.status IN(1,2) ' . 'GROUP BY e.entreprise_id'); - $this->views->createView('entreprises_vue', 'SELECT e.*,i.impaye AS impaye' - . ' FROM entreprises_inter e LEFT JOIN impayes_entreprises i ON e.entreprise_id=i.entreprise'); + $this->views->createView('entreprises_vue', 'SELECT e.*,i.impaye AS impaye ' + . 'FROM entreprises_inter e LEFT JOIN impayes_entreprises i ON e.entreprise_id=i.entreprise'); + $this->views->createView('entreprises_ws', 'SELECT e.*, a.prenom AS administrateur, r.nom AS revendeur ' + . 'FROM entreprises e ' + . 'LEFT JOIN ws_users_tree ri ON ri.entreprise_id=e.entreprise_id ' + . 'LEFT JOIN entreprises r ON ri.facturable_entreprise_id=r.entreprise_id ' + . 'LEFT JOIN utilisateurs a ON ri.administrateur_id=a.utilisateur_id ' + . ''); $this->views->createView('clients_entreprise', 'SELECT u.*,e.nom AS rs, e.adresse_facturation AS adresse_facturation ' . 'FROM entreprises e LEFT JOIN utilisateurs u ON u.entreprise=e.entreprise_id AND u.grade=0'); $this->views->createView('utilisateurs_entreprise', 'SELECT u.*,e.nom AS rs, e.adresse_facturation AS adresse_facturation, ' @@ -434,7 +439,7 @@ class commonCore extends cubeCore { $this->views->createView('clients', 'SELECT u.*,e.nom AS rs, e.adresse_facturation AS adresse_facturation, i.impaye, ' . 'SUM(f.total_ht) AS ca ' . 'FROM entreprises e LEFT JOIN impayes_entreprises i ON e.entreprise_id=i.entreprise LEFT JOIN utilisateurs u ON u.entreprise=e.entreprise_id AND u.grade=0 LEFT JOIN projets p ON p.client=u.utilisateur_id LEFT JOIN factures f ON f.projet=p.projet_id AND f.status IN(1,2) ' - . 'GROUP BY u.utilisateur_id'); + . 'GROUP BY u.utilisateur_id','TEMPTABLE'); $this->views->createView('taches_vue', 'SELECT taches.tache_id,taches.nom,taches.categorie,taches.type,taches.budget,taches.projet,taches.taux_journalier, ' . '(SUM(timereport.heures)/' . JOURNEE . ') AS jours_consommes, ((SUM(timereport.heures)/' . JOURNEE . ')/(taches.budget/taches.taux_journalier))*100 AS progression,(taches.budget/taches.taux_journalier) AS jours_prevus ' . 'FROM taches LEFT JOIN timereport ON taches.tache_id=timereport.tache_id ' diff --git a/inc/ws/Controlleur/class.ws.users.tree.php b/inc/ws/Controlleur/class.ws.users.tree.php index cb3df73fa..453ba7f54 100644 --- a/inc/ws/Controlleur/class.ws.users.tree.php +++ b/inc/ws/Controlleur/class.ws.users.tree.php @@ -49,7 +49,9 @@ class wsUsersTree { $facturable_id = $administrateur_id = 0; $this->getFacturableOf($utilisateur_id, $facturable_id, $administrateur_id, 1); $c->utilisateur_id = $utilisateur_id; + $c->entreprise_id = $this->entreprises[$utilisateur_id]; $c->facturable_id = $facturable_id; + $c->facturable_entreprise_id = $this->entreprises[$facturable_id] ; $c->administrateur_id = $administrateur_id; $c->insert(); } @@ -69,7 +71,6 @@ class wsUsersTree { foreach($this->users as $uid => $admin) { $this->admins[$uid][] = $uid; } - // Echange des droits entre collègues foreach($this->admins as $admin_id => $list) { $e = $this->entreprises[$admin_id]; @@ -85,8 +86,8 @@ class wsUsersTree { } } - foreach($this->admins as $admin=>$list){ - $this->admins[$admin]=array_unique($list); + foreach($this->admins as $admin => $list) { + $this->admins[$admin] = array_unique($list); sort($this->admins[$admin]); } -- 2.39.5