]> _ Git - cubeextranet.git/commitdiff
Add fluidbook pages data in "Chiffres"
authorvincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Fri, 23 Jan 2015 16:41:21 +0000 (16:41 +0000)
committervincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Fri, 23 Jan 2015 16:41:21 +0000 (16:41 +0000)
inc/commons/class.common.core.php
inc/extranet/Controlleur/class.extranet.page.chiffres.php

index 0ce34e21a4cc425aa0e316210142b0572fef07bb..393de5b3b9fdacd3fdb47eae653c512d14345329 100644 (file)
@@ -31,28 +31,28 @@ class commonCore extends cubeCore {
 \r
                $this->grades = array(0 => __('Client'), 1 => __('Equipier'), 2 => __('Gérant'), 3 => __('Comptable'));\r
                $this->categories = array(0 => __('Non défini'), 1 => __('Gestion de projet'),\r
-                       2 => __('Design Web'), 3 => __('Design Industriel'), 4 => __('Print'),\r
-                       5 => __('Newsletter'), 6 => __('Développement PHP'), 7 => __('Développement Flash'),\r
-                       8 => __('Fluidbook'), 9 => __('Formation'), 10 => __('Administratif'), 11 => __('Divers'),\r
-                       12 => __('Intégration HTML'), 13 => __('Motion design'), 14 => __('Design graphique'),\r
-                       15 => __('Bandeaux de pub'), 16 => __('Applications mobiles'), 17 => __('Prise de vue photo/vidéo'), 18 => __('Hébergement'));\r
+                                         2 => __('Design Web'), 3 => __('Design Industriel'), 4 => __('Print'),\r
+                                         5 => __('Newsletter'), 6 => __('Développement PHP'), 7 => __('Développement Flash'),\r
+                                         8 => __('Fluidbook'), 9 => __('Formation'), 10 => __('Administratif'), 11 => __('Divers'),\r
+                                         12 => __('Intégration HTML'), 13 => __('Motion design'), 14 => __('Design graphique'),\r
+                                         15 => __('Bandeaux de pub'), 16 => __('Applications mobiles'), 17 => __('Prise de vue photo/vidéo'), 18 => __('Hébergement'));\r
                $this->projets_status = array(0 => __('En cours'), 1 => __('Terminé'));\r
                $this->devis_status = array(0 => __('Brouillon'), 1 => __('Envoyé'),\r
-                       2 => __('Validé'), 3 => __('Refusé'));\r
+                                           2 => __('Validé'), 3 => __('Refusé'));\r
                $this->demandes_status = array(0 => __('Non traitée'), 1 => __('Confiée à un revendeur'), 2 => __('Traitée'));\r
                $this->factures_status = array(0 => __('Brouillon'), 1 => __('Attente'),\r
-                       2 => __('Payée'), 3 => __('Annulée'), 4 => __('Avoir'), 5 => __('Impayée'));\r
+                                              2 => __('Payée'), 3 => __('Annulée'), 4 => __('Avoir'), 5 => __('Impayée'));\r
                $this->books_status = array(-1 => __('Brouillon'), 0 => __('Prêt'), 1 => __('Téléchargé'), 2 => __('Facturé'));\r
                $this->agences = array('Paris', 'Montpellier');\r
-               $this->client_type=array(0=>__('Non défini'),1=>__('TPE'),2=>__('Startup'),3=>__('PME'),4=>__('Agence'),5=>__('Grande entreprise'));\r
+               $this->client_type = array(0 => __('Non défini'), 1 => __('TPE'), 2 => __('Startup'), 3 => __('PME'), 4 => __('Agence'), 5 => __('Grande entreprise'));\r
                $this->demandes_type = array(0 => __('Non défini'),\r
-                       1 => __('Catalogue'),\r
-                       2 => __('Magazine / Presse'),\r
-                       3 => __('Rapport annuel'),\r
-                       4 => __('Plaquette de société'),\r
-                       5 => __('Brochure touristique'),\r
-                       6 => __("Manuel d'utilisation"),\r
-                       7 => __('Livre'));\r
+                                            1 => __('Catalogue'),\r
+                                            2 => __('Magazine / Presse'),\r
+                                            3 => __('Rapport annuel'),\r
+                                            4 => __('Plaquette de société'),\r
+                                            5 => __('Brochure touristique'),\r
+                                            6 => __("Manuel d'utilisation"),\r
+                                            7 => __('Livre'));\r
                $this->ws_grades = array(0 => __("Pas d'accès"), 1 => __('Client'), 2 => __('Client (droits de création)'), 3 => __('Revendeur'), 4 => __('Revendeur (droits de création)'), 5 => __('Administrateur'));\r
        }\r
 \r
@@ -170,7 +170,7 @@ class commonCore extends cubeCore {
                $db->entreprises->date_creation('integer', 0, false);\r
                $db->entreprises->notes('text', 0, false);\r
                $db->entreprises->site('varchar', 256, false);\r
-               $db->entreprises->type('integer',0,false);\r
+               $db->entreprises->type('integer', 0, false);\r
                $db->entreprises->ws_signatures('text', 0, false);\r
                // Clés\r
                $db->entreprises->primary('pk_entreprises', 'entreprise_id');\r
@@ -534,79 +534,79 @@ class commonCore extends cubeCore {
                $this->views->createView('equipiers', 'SELECT * FROM utilisateurs WHERE grade>=1');\r
                $this->views->createView('gerants', 'SELECT * FROM utilisateurs WHERE grade=2');\r
                $this->views->createView('impayes_entreprises', 'SELECT SUM(total_ht) AS impaye, u.entreprise AS entreprise '\r
-                               . 'FROM utilisateurs u LEFT JOIN projets p ON u.utilisateur_id=p.client LEFT JOIN factures f ON f.projet=p.projet_id '\r
-                               . 'WHERE f.status=1 GROUP BY u.entreprise');\r
+                       . 'FROM utilisateurs u LEFT JOIN projets p ON u.utilisateur_id=p.client LEFT JOIN factures f ON f.projet=p.projet_id '\r
+                       . 'WHERE f.status=1 GROUP BY u.entreprise');\r
                $this->views->createView('entreprises_inter', 'SELECT e.*,'\r
-                               . 'SUM(f.total_ht) AS ca '\r
-                               . 'FROM entreprises e LEFT JOIN utilisateurs u ON u.entreprise=e.entreprise_id AND grade=0 '\r
-                               . 'LEFT JOIN projets p ON p.client=u.utilisateur_id '\r
-                               . 'LEFT JOIN factures f ON f.projet=p.projet_id AND f.status IN(1,2) '\r
-                               . 'GROUP BY e.entreprise_id');\r
+                       . 'SUM(f.total_ht) AS ca '\r
+                       . 'FROM entreprises e LEFT JOIN utilisateurs u ON u.entreprise=e.entreprise_id AND grade=0 '\r
+                       . 'LEFT JOIN projets p ON p.client=u.utilisateur_id '\r
+                       . 'LEFT JOIN factures f ON f.projet=p.projet_id AND f.status IN(1,2) '\r
+                       . '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
+                       . '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,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
-                               . 'LEFT JOIN entreprises r ON ur.entreprise=r.entreprise_id '\r
-                               . 'LEFT JOIN utilisateurs a ON ri.administrateur_id=a.utilisateur_id ');\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
+                       . 'LEFT JOIN entreprises r ON ur.entreprise=r.entreprise_id '\r
+                       . 'LEFT JOIN utilisateurs a ON ri.administrateur_id=a.utilisateur_id ');\r
                $this->views->createView('clients_entreprise', 'SELECT u.*,e.nom AS rs, e.adresse_facturation AS adresse_facturation, e.site AS site, e.type AS type '\r
-                               . 'FROM entreprises e LEFT JOIN utilisateurs u ON u.entreprise=e.entreprise_id AND u.grade=0');\r
+                       . 'FROM entreprises e LEFT JOIN utilisateurs u ON u.entreprise=e.entreprise_id AND u.grade=0');\r
                $this->views->createView('utilisateurs_entreprise', 'SELECT u.*,e.nom AS rs, e.adresse_facturation AS adresse_facturation, '\r
-                               . 'e.ws_grade, e.ws_admin, e.ws_signatures AS ws_signatures, e.site AS site '\r
-                               . 'FROM entreprises e LEFT JOIN utilisateurs u ON u.entreprise=e.entreprise_id');\r
+                       . 'e.ws_grade, e.ws_admin, e.ws_signatures AS ws_signatures, e.site AS site '\r
+                       . 'FROM entreprises e LEFT JOIN utilisateurs u ON u.entreprise=e.entreprise_id');\r
                $this->views->createView('clients', 'SELECT u.*,e.nom AS rs, e.adresse_facturation AS adresse_facturation, e.site AS site, i.impaye, '\r
-                               . 'SUM(f.total_ht) AS ca '\r
-                               . '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) '\r
-                               . 'GROUP BY u.utilisateur_id', 'TEMPTABLE');\r
+                       . 'SUM(f.total_ht) AS ca '\r
+                       . '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) '\r
+                       . 'GROUP BY u.utilisateur_id', 'TEMPTABLE');\r
                $this->views->createView('taches_books', 'SELECT tache,GROUP_CONCAT(book_id ORDER BY book_id ASC SEPARATOR ",") AS books FROM books WHERE tache>0 GROUP BY tache');\r
                $this->views->createView('taches_vue', 'SELECT taches.tache_id,taches.nom,taches.categorie,taches.type,taches.budget,taches.projet,taches.taux_journalier,tb.books, '\r
-                               . '(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 '\r
-                               . 'FROM taches LEFT JOIN timereport ON taches.tache_id=timereport.tache_id '\r
-                               . 'LEFT JOIN taches_books tb ON tb.tache=taches.tache_id '\r
-                               . 'GROUP BY taches.tache_id');\r
+                       . '(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 '\r
+                       . 'FROM taches LEFT JOIN timereport ON taches.tache_id=timereport.tache_id '\r
+                       . 'LEFT JOIN taches_books tb ON tb.tache=taches.tache_id '\r
+                       . 'GROUP BY taches.tache_id');\r
                $this->views->createView('taches_projet', 'SELECT projet, '\r
-                               . 'SUM(jours_prevus) AS jours_prevus,SUM(budget) AS budget, '\r
-                               . 'SUM(jours_consommes) AS jours_consommes, (SUM(jours_consommes)/SUM(jours_prevus))*100 AS progression '\r
-                               . 'FROM taches_vue GROUP BY projet');\r
-                               \r
-                               $this->views->createView('taches_projet_hf', 'SELECT projet, '\r
-                               . 'SUM(jours_prevus) AS jours_prevus,SUM(budget) AS budget, '\r
-                               . 'SUM(jours_consommes) AS jours_consommes, (SUM(jours_consommes)/SUM(jours_prevus))*100 AS progression '\r
-                               . 'FROM taches_vue WHERE categorie!=8 GROUP BY projet');\r
-                               \r
+                       . 'SUM(jours_prevus) AS jours_prevus,SUM(budget) AS budget, '\r
+                       . 'SUM(jours_consommes) AS jours_consommes, (SUM(jours_consommes)/SUM(jours_prevus))*100 AS progression '\r
+                       . 'FROM taches_vue GROUP BY projet');\r
+\r
+               $this->views->createView('taches_projet_hf', 'SELECT projet, '\r
+                       . 'SUM(jours_prevus) AS jours_prevus,SUM(budget) AS budget, '\r
+                       . 'SUM(jours_consommes) AS jours_consommes, (SUM(jours_consommes)/SUM(jours_prevus))*100 AS progression '\r
+                       . 'FROM taches_vue WHERE categorie!=8 GROUP BY projet');\r
+\r
                $this->views->createView('devis_vue', 'SELECT devis.devis_id,devis.nom,devis.lignes,devis.status,devis.total_ht,devis.date_creation,devis.email,clients.utilisateur_id AS client_id,clients.rs AS client,equipiers.prenom AS createur,equipiers.utilisateur_id AS createur_id,devis.adresse '\r
-                               . 'FROM devis,clients,equipiers '\r
-                               . 'WHERE devis.client=clients.utilisateur_id AND devis.createur=equipiers.utilisateur_id');\r
+                       . 'FROM devis,clients,equipiers '\r
+                       . 'WHERE devis.client=clients.utilisateur_id AND devis.createur=equipiers.utilisateur_id');\r
                $this->views->createView('factures_payees', 'SELECT * FROM factures WHERE status=2');\r
                $this->views->createView('factures_valides', 'SELECT * FROM factures WHERE status IN(1,2,5)');\r
                $this->views->createView('projets_inter', 'SELECT projets.projet_id,projets.nom,projets.status,projets.date_debut,projets.date_fin,projets.date_creation,projets.deadline,projets.devis,'\r
-                               . 'YEAR(FROM_UNIXTIME(projets.date_debut)) AS annee_debut,'\r
-                               . 'IF(date_fin=0,YEAR(NOW()),YEAR(FROM_UNIXTIME(projets.date_fin))) AS annee_fin,'\r
-                               . 'clients.rs AS client,equipiers.prenom AS chef,equipiers.utilisateur_id AS chef_id,clients.utilisateur_id AS client_id '\r
-                               . 'FROM projets JOIN clients_entreprise clients ON projets.client=clients.utilisateur_id '\r
-                               . 'JOIN equipiers ON projets.chef=equipiers.utilisateur_id');\r
+                       . 'YEAR(FROM_UNIXTIME(projets.date_debut)) AS annee_debut,'\r
+                       . 'IF(date_fin=0,YEAR(NOW()),YEAR(FROM_UNIXTIME(projets.date_fin))) AS annee_fin,'\r
+                       . 'clients.rs AS client,equipiers.prenom AS chef,equipiers.utilisateur_id AS chef_id,clients.utilisateur_id AS client_id '\r
+                       . 'FROM projets JOIN clients_entreprise clients ON projets.client=clients.utilisateur_id '\r
+                       . 'JOIN equipiers ON projets.chef=equipiers.utilisateur_id');\r
                $this->views->createView('projets_facturation', 'SELECT projet,SUM(IF(status IN(1,2,5),total_ht,0)) AS montant_facture, SUM(IF(status=2,total_ht,0)) AS montant_paye FROM factures GROUP BY projet');\r
                $this->views->createView('projets_vue', 'SELECT p.*,f.montant_facture,f.montant_paye, '\r
-                               . 't.jours_prevus,t.jours_consommes,t.progression,t.budget AS budget, '\r
-                               . 'IF(t.budget>0,f.montant_paye/t.budget,1) AS rapport_paiement, '\r
-                               . 'IF(t.budget>0,f.montant_facture/t.budget,1) AS rapport_facturation '\r
-                               . 'FROM projets_inter p '\r
-                               . 'LEFT JOIN projets_facturation f ON  f.projet=p.projet_id '\r
-                               . 'LEFT JOIN taches_projet t ON p.projet_id=t.projet');\r
-                               \r
-       $this->views->createView('projets_vue_hf', 'SELECT p.*,f.montant_facture,f.montant_paye, '\r
-                               . 't.jours_prevus,t.jours_consommes,t.progression,t.budget AS budget, '\r
-                               . 'IF(t.budget>0,f.montant_paye/t.budget,1) AS rapport_paiement, '\r
-                               . 'IF(t.budget>0,f.montant_facture/t.budget,1) AS rapport_facturation '\r
-                               . 'FROM projets_inter p '\r
-                               . 'LEFT JOIN projets_facturation f ON  f.projet=p.projet_id '\r
-                               . 'LEFT JOIN taches_projet_hf t ON p.projet_id=t.projet');\r
-                               \r
+                       . 't.jours_prevus,t.jours_consommes,t.progression,t.budget AS budget, '\r
+                       . 'IF(t.budget>0,f.montant_paye/t.budget,1) AS rapport_paiement, '\r
+                       . 'IF(t.budget>0,f.montant_facture/t.budget,1) AS rapport_facturation '\r
+                       . 'FROM projets_inter p '\r
+                       . 'LEFT JOIN projets_facturation f ON  f.projet=p.projet_id '\r
+                       . 'LEFT JOIN taches_projet t ON p.projet_id=t.projet');\r
+\r
+               $this->views->createView('projets_vue_hf', 'SELECT p.*,f.montant_facture,f.montant_paye, '\r
+                       . 't.jours_prevus,t.jours_consommes,t.progression,t.budget AS budget, '\r
+                       . 'IF(t.budget>0,f.montant_paye/t.budget,1) AS rapport_paiement, '\r
+                       . 'IF(t.budget>0,f.montant_facture/t.budget,1) AS rapport_facturation '\r
+                       . 'FROM projets_inter p '\r
+                       . 'LEFT JOIN projets_facturation f ON  f.projet=p.projet_id '\r
+                       . 'LEFT JOIN taches_projet_hf t ON p.projet_id=t.projet');\r
+\r
                $this->views->createView('factures_vue', 'SELECT factures.facture_id,factures.nom,factures.lignes,factures.status,factures.total_ht,factures.date_creation,factures.texte_complementaire,factures.informations_paiement,factures.date_paiement,factures.adresse,factures.avoir,'\r
-                               . 'projets.projet_id AS projet_id,projets.nom AS projet,clients.utilisateur_id AS client_id,clients.rs as client,equipiers.prenom AS createur,equipiers.utilisateur_id AS createur_id '\r
-                               . 'FROM factures,projets,equipiers,clients '\r
-                               . 'WHERE factures.projet=projets.projet_id AND clients.utilisateur_id=projets.client AND factures.createur=equipiers.utilisateur_id AND (factures.facture_id>=0 OR factures.status=1)  ');\r
+                       . 'projets.projet_id AS projet_id,projets.nom AS projet,clients.utilisateur_id AS client_id,clients.rs as client,equipiers.prenom AS createur,equipiers.utilisateur_id AS createur_id '\r
+                       . 'FROM factures,projets,equipiers,clients '\r
+                       . 'WHERE factures.projet=projets.projet_id AND clients.utilisateur_id=projets.client AND factures.createur=equipiers.utilisateur_id AND (factures.facture_id>=0 OR factures.status=1)  ');\r
                $this->views->createView('projets_timereport', 'SELECT * FROM projets_vue WHERE status=0');\r
                $this->views->createView('order_timereport', 'SELECT utilisateur_id,projet AS projet_id,MAX(date) AS derniere_activite FROM timereport,taches,projets WHERE taches.tache_id=timereport.tache_id AND taches.projet=projets.projet_id AND projets.status=0 GROUP BY utilisateur_id,taches.projet ORDER BY utilisateur_id ASC,MAX(date) DESC');\r
                $this->views->createView('catype', 'SELECT SUM(total_ht) AS ca, YEAR(FROM_UNIXTIME(date_creation)) annee FROM factures_vue WHERE status BETWEEN 1 AND 4 GROUP BY annee');\r
@@ -615,60 +615,64 @@ class commonCore extends cubeCore {
                $this->views->createView('cam', 'SELECT SUM(total_ht) AS ca, DATE_FORMAT(FROM_UNIXTIME(date_creation),\'%Y-%m\') mois FROM factures WHERE status BETWEEN 1 AND 4 GROUP BY mois');\r
                $this->views->createView('cat', 'SELECT SUM(total_ht) AS ca, CONCAT_WS(\'-\',YEAR(FROM_UNIXTIME(date_creation)),QUARTER(FROM_UNIXTIME(date_creation))) trimestre FROM factures WHERE status BETWEEN 1 AND 4 GROUP BY trimestre');\r
                $this->views->createView('ftpaccess', 'SELECT email AS userid,password AS passwd,utilisateur_id AS uid,'\r
-                               . '\'1000\' AS gid,CONCAT(\'' . FTPROOT . '\',utilisateur_id) AS homedir, \'/bin/false\' AS shell '\r
-                               . 'FROM utilisateurs WHERE grade=0 '\r
-                               . 'UNION '\r
-                               . 'SELECT email AS userid,ws_password AS passwd,utilisateur_id AS uid,'\r
-                               . '\'1000\' AS gid,CONCAT(\'' . FTPROOT . '\',utilisateur_id) AS homedir, \'/bin/false\' AS shell '\r
-                               . 'FROM utilisateurs WHERE grade=0 AND ws_password!=\'\'');\r
+                       . '\'1000\' AS gid,CONCAT(\'' . FTPROOT . '\',utilisateur_id) AS homedir, \'/bin/false\' AS shell '\r
+                       . 'FROM utilisateurs WHERE grade=0 '\r
+                       . 'UNION '\r
+                       . 'SELECT email AS userid,ws_password AS passwd,utilisateur_id AS uid,'\r
+                       . '\'1000\' AS gid,CONCAT(\'' . FTPROOT . '\',utilisateur_id) AS homedir, \'/bin/false\' AS shell '\r
+                       . 'FROM utilisateurs WHERE grade=0 AND ws_password!=\'\'');\r
                $this->views->createView('chiffres_categories', 'SELECT p.annee_fin AS annee, t.categorie, SUM(t.budget) AS ca '\r
-                               . 'FROM projets_vue p, taches_vue t '\r
-                               . 'WHERE t.projet=p.projet_id '\r
-                               . 'GROUP BY t.categorie,p.annee_fin');\r
+                       . 'FROM projets_vue p, taches_vue t '\r
+                       . 'WHERE t.projet=p.projet_id '\r
+                       . 'GROUP BY t.categorie,p.annee_fin');\r
 \r
                $this->views->createView('temps_categories', 'SELECT p.annee_fin AS annee, t.categorie, SUM(t.jours_consommes) AS jours_consommes,SUM(t.jours_prevus) AS jours_prevus '\r
-                               . 'FROM projets_vue p, taches_vue t '\r
-                               . 'WHERE t.projet=p.projet_id '\r
-                               . 'GROUP BY t.categorie,p.annee_fin');\r
+                       . 'FROM projets_vue p, taches_vue t '\r
+                       . 'WHERE t.projet=p.projet_id '\r
+                       . 'GROUP BY t.categorie,p.annee_fin');\r
 \r
                $this->views->createView('collections_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 '\r
-                               . 'FROM book_collection b '\r
-                               . 'LEFT JOIN utilisateurs_entreprise c ON b.proprietaire=c.utilisateur_id ');\r
+                       . 'CONCAT(c.rs,\' (\',c.prenom,\' \',c.nom,\')\') AS proprietaire_nom,'\r
+                       . 'CONCAT(c.prenom,\' \',c.nom) AS proprietaire_utilisateur '\r
+                       . 'FROM book_collection b '\r
+                       . 'LEFT JOIN utilisateurs_entreprise c ON b.proprietaire=c.utilisateur_id ');\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', 'TEMPTABLE');\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', 'TEMPTABLE');\r
+               $this->views->createView('books_nbpages_vue', 'SELECT book_id, MAX(book_page) AS nb_pages '\r
+                       . 'FROM book_pages '\r
+                       . 'GROUP BY book_id');\r
+               $this->views->createView('books_analysis', 'SELECT b.book_id,p.nb_pages '\r
+                       . 'FROM books_vue b LEFT JOIN books_nbpages_vue p ON b.book_id=p.book_id '\r
+                       . 'WHERE b.nom NOT LIKE \'%demo%\' AND b.status>0');\r
                $this->views->createView('themes_books_nb', 'SELECT theme,COUNT(*) AS nb FROM books GROUP BY theme');\r
                $this->views->createView('themes_vue', 'SELECT t.*, b.nb as nbBooks, CONCAT(e.prenom,\' \',e.nom,\' (\',e.rs,\')\') AS proprietaire_nom '\r
-                               . 'FROM themes t '\r
-                               . 'LEFT JOIN themes_books_nb b ON t.theme_id=b.theme '\r
-                               . 'LEFT JOIN utilisateurs_entreprise e ON t.proprietaire=e.utilisateur_id');\r
+                       . 'FROM themes t '\r
+                       . 'LEFT JOIN themes_books_nb b ON t.theme_id=b.theme '\r
+                       . 'LEFT JOIN utilisateurs_entreprise e ON t.proprietaire=e.utilisateur_id');\r
                $this->views->createView('demandes_vue', 'SELECT d.*, CONCAT(c.rs,\' (\',c.prenom,\' \',c.nom,\')\') AS utilisateur_nom, CONCAT(r.rs,\' (\',r.prenom,\' \',r.nom,\')\') AS revendeur_nom, c.entreprise AS entreprise, a.prenom AS administrateur_nom '\r
-                               . 'FROM demandes d '\r
-                               . 'LEFT JOIN utilisateurs_entreprise r ON d.revendeur=r.utilisateur_id '\r
-                               . 'LEFT JOIN utilisateurs_entreprise c ON d.utilisateur=c.utilisateur_id '\r
-                               . 'LEFT JOIN utilisateurs a ON d.administrateur=a.utilisateur_id');\r
-                               \r
-               $this->views->createView('chiffres_types','SELECT p.annee_fin AS annee, e.type, SUM(p.budget) AS ca '\r
-                               .'FROM projets_vue p, clients_entreprise e '\r
-                               .'WHERE p.client_id=e.utilisateur_id '\r
-                               .'GROUP BY e.type, p.annee_fin');\r
-                               \r
-               $this->views->createView('chiffres_types_hf','SELECT p.annee_fin AS annee, e.type, SUM(p.budget) AS ca '\r
-                               .'FROM projets_vue_hf p, clients_entreprise e '\r
-                               .'WHERE p.client_id=e.utilisateur_id '\r
-                               .'GROUP BY e.type, p.annee_fin');\r
-                               \r
-                               \r
+                       . 'FROM demandes d '\r
+                       . 'LEFT JOIN utilisateurs_entreprise r ON d.revendeur=r.utilisateur_id '\r
+                       . 'LEFT JOIN utilisateurs_entreprise c ON d.utilisateur=c.utilisateur_id '\r
+                       . 'LEFT JOIN utilisateurs a ON d.administrateur=a.utilisateur_id');\r
+               $this->views->createView('chiffres_types', 'SELECT p.annee_fin AS annee, e.type, SUM(p.budget) AS ca '\r
+                       . 'FROM projets_vue p, clients_entreprise e '\r
+                       . 'WHERE p.client_id=e.utilisateur_id '\r
+                       . 'GROUP BY e.type, p.annee_fin');\r
+               $this->views->createView('chiffres_types_hf', 'SELECT p.annee_fin AS annee, e.type, SUM(p.budget) AS ca '\r
+                       . 'FROM projets_vue_hf p, clients_entreprise e '\r
+                       . 'WHERE p.client_id=e.utilisateur_id '\r
+                       . 'GROUP BY e.type, p.annee_fin');\r
+\r
+\r
                //cubeDb::mysqlConvert($this->con, 'UTF8', 'utf8_general_ci', 'MYISAM');\r
                touch($cache);\r
        }\r
index 1326d546c4d35a61f5afd2c50a303c2e97b3fa85..3b5a8d27b1ac6bdd95432a3ad55e3d2656a69dfc 100644 (file)
@@ -60,12 +60,13 @@ class extranetPageChiffres {
                commonDroits::min(2);\r
                $res = self::chiffresAnnee($encours);\r
                $res .= self::caGlobal($chiffres, $total, $encours);\r
-               $res.=self::caTrimestre();\r
-               $res.=self::caMensuel();\r
+               $res .= self::caTrimestre();\r
+               $res .= self::caMensuel();\r
                $res .= self::caCategorie($chiffres, $total);\r
                $res .= self::caWorkRate($chiffres, $total);\r
                $res .= self::caSegments($chiffres, $total);\r
                $res .= self::caSegmentsHf($chiffres, $total);\r
+               $res .= self::fluidbookPages();\r
                return $res;\r
        }\r
 \r
@@ -153,7 +154,7 @@ class extranetPageChiffres {
                                $i = self::format($impayes[$annee]);\r
                        }\r
                        $res .= '<td>' . $i . '</td>';\r
-                       \r
+\r
                }\r
                $res .= '<td><em>' . self::format($total) . '</em></td>';\r
                $res .= '</tr>';\r
@@ -186,18 +187,18 @@ class extranetPageChiffres {
                for ($i = 1; $i <= 4; $i++) {\r
                        $res .= '<th>T' . $i . '</th>';\r
                }\r
-               $res.='<th>' . __('Total') . '</th>';\r
+               $res .= '<th>' . __('Total') . '</th>';\r
                $res .= '</tr>';\r
 \r
                foreach ($chiffres as $annee => $trimestres) {\r
                        $res .= '<tr>';\r
                        $total = 0;\r
-                       $res.='<td>' . $annee . '</td>';\r
+                       $res .= '<td>' . $annee . '</td>';\r
                        foreach ($trimestres as $trimestre => $ca) {\r
                                $res .= '<td>' . self::format($ca) . '</td>';\r
                                $total += $ca;\r
                        }\r
-                       $res.='<td><em>' . self::format($total) . '</em></td>';\r
+                       $res .= '<td><em>' . self::format($total) . '</em></td>';\r
                        $res .= '</tr>';\r
                }\r
 \r
@@ -230,18 +231,18 @@ class extranetPageChiffres {
                for ($i = 1; $i <= 12; $i++) {\r
                        $res .= '<th>' . cubeDate::getMonth($i) . '</th>';\r
                }\r
-               $res.='<th>' . __('Total') . '</th>';\r
+               $res .= '<th>' . __('Total') . '</th>';\r
                $res .= '</tr>';\r
 \r
                foreach ($chiffres as $annee => $moiss) {\r
                        $res .= '<tr>';\r
                        $total = 0;\r
-                       $res.='<td>' . $annee . '</td>';\r
+                       $res .= '<td>' . $annee . '</td>';\r
                        foreach ($moiss as $mois => $ca) {\r
                                $res .= '<td class="nowrap">' . self::format($ca) . '</td>';\r
                                $total += $ca;\r
                        }\r
-                       $res.='<td class="nowrap"><em>' . self::format($total) . '</em></td>';\r
+                       $res .= '<td class="nowrap"><em>' . self::format($total) . '</em></td>';\r
                        $res .= '</tr>';\r
                }\r
 \r
@@ -312,8 +313,7 @@ class extranetPageChiffres {
                $res .= commonPage::bf();\r
                return $res;\r
        }\r
-       \r
-       \r
+\r
 \r
        public static function caCategoriesChart($a, $datas, $type, $width, $height, $max = 7) {\r
                global $core;\r
@@ -366,35 +366,55 @@ class extranetPageChiffres {
                }\r
                $chart->addData($cac);\r
                $chart->addData($cae);\r
-               return $chart->display($title);\r
+               return $chart->display($title, '', '', '&chbh=a,5,0');\r
+       }\r
+\r
+       public static function fluidbookPagesChart($data) {\r
+               global $core;\r
+\r
+               $title = __("Répartition des fluidbook par nombre de pages");\r
+               $chart = new cubeGoogleCharts('bvs', 940, 200);\r
+               $chart->setTitle($title);\r
+               $max = 0;\r
+               foreach ($data as $pages => $qty) {\r
+\r
+                       $max = max($qty, $max);\r
+               }\r
+               $ratio = floor($max / 100);\r
+               $d = array();\r
+               foreach ($data as $pages => $qty) {\r
+                       $cae[] = ($qty / $ratio);\r
+               }\r
+               $chart->addData($cae);\r
+               return $chart->display($title, '', '', '&chbh=a,0,0');\r
        }\r
-       \r
-       public static function caSegments($chiffres, $total){\r
+\r
+       public static function caSegments($chiffres, $total) {\r
                global $core;\r
-               return self::_caSegment('SELECT * FROM chiffres_types ORDER BY annee,type',__("CA par type de client"));\r
+               return self::_caSegment('SELECT * FROM chiffres_types ORDER BY annee,type', __("CA par type de client"));\r
        }\r
-       \r
-               \r
-       public static function caSegmentsHf($chiffres, $total){\r
+\r
+\r
+       public static function caSegmentsHf($chiffres, $total) {\r
                global $core;\r
-               return self::_caSegment('SELECT * FROM chiffres_types_hf ORDER BY annee,type',__("CA par type de client").'<br />('.__('Hors Fluidbook').')');\r
+               return self::_caSegment('SELECT * FROM chiffres_types_hf ORDER BY annee,type', __("CA par type de client") . '<br />(' . __('Hors Fluidbook') . ')');\r
        }\r
-       \r
+\r
        public static function caSegmentChart($a, $datas, $type, $width, $height, $max = 7) {\r
                global $core;\r
                $title = sprintf(__('Répartition pour %d'), $a);\r
                $chart = new cubeGoogleCharts($type, $width, $height);\r
                $chart->setTitle($title);\r
-               \r
+\r
                $total = array_sum($datas);\r
                $i = 1;\r
                $others = 0;\r
-               \r
-               $types=$core->client_type;\r
-               $types[3]='TPE / PME';\r
-               \r
+\r
+               $types = $core->client_type;\r
+               $types[3] = 'TPE / PME';\r
+\r
                foreach ($datas as $c => $ca) {\r
-                       if($c==0){\r
+                       if ($c == 0) {\r
                                continue;\r
                        }\r
                        if ($i <= $max) {\r
@@ -410,51 +430,51 @@ class extranetPageChiffres {
 \r
                return $chart->display($title);\r
        }\r
-       \r
-       protected static function _caSegment($req,$title){\r
-       global $core;\r
-       $r = $core->con->select($req);\r
-       $segments=array();\r
-               while($r->fetch()){\r
-                       $annees[]=$r->annee;\r
-                       $segments[$r->type][$r->annee]=$r->ca;\r
-               }\r
-               \r
-               $chiffresa=array();\r
-               $chiffreta=array();\r
-               foreach($segments as $type=>$tab){\r
-\r
-               if($type==1){\r
-                       $type=3;\r
-               }\r
-                       foreach($tab as $a=>$ca){\r
-                               if(!isset($chiffresa[$a])){\r
-                                       $chiffresa[$a]=array();\r
-                                       $chiffreta[$a]=0;\r
+\r
+       protected static function _caSegment($req, $title) {\r
+               global $core;\r
+               $r = $core->con->select($req);\r
+               $segments = array();\r
+               while ($r->fetch()) {\r
+                       $annees[] = $r->annee;\r
+                       $segments[$r->type][$r->annee] = $r->ca;\r
+               }\r
+\r
+               $chiffresa = array();\r
+               $chiffreta = array();\r
+               foreach ($segments as $type => $tab) {\r
+\r
+                       if ($type == 1) {\r
+                               $type = 3;\r
+                       }\r
+                       foreach ($tab as $a => $ca) {\r
+                               if (!isset($chiffresa[$a])) {\r
+                                       $chiffresa[$a] = array();\r
+                                       $chiffreta[$a] = 0;\r
                                }\r
-                               if(!isset($chiffresa[$a][$type])){\r
-                                       $chiffresa[$a][$type]=0;\r
+                               if (!isset($chiffresa[$a][$type])) {\r
+                                       $chiffresa[$a][$type] = 0;\r
                                }\r
-                               $chiffresa[$a][$type]+=$ca;\r
-                               $chiffreta[$a]+=$ca;\r
+                               $chiffresa[$a][$type] += $ca;\r
+                               $chiffreta[$a] += $ca;\r
                        }\r
-                       \r
+\r
                }\r
-               \r
-               $annees=array_unique($annees);\r
+\r
+               $annees = array_unique($annees);\r
                sort($annees);\r
-               \r
-               \r
+\r
+\r
                $res = commonPage::bh();\r
                $res .= '<table class="liste">';\r
-               \r
+\r
                $res .= '<tr><td colspan="' . (count($annees) + 2) . '">';\r
                $a = date('Y') - 1;\r
                $res .= self::caSegmentChart($a, $chiffresa[$a], 'p3', 440, 150);\r
                $a++;\r
                $res .= self::caSegmentChart($a, $chiffresa[$a], 'p3', 500, 200);\r
                $res .= '</td></tr>';\r
-               \r
+\r
                $res .= '<tr><th><strong>' . $title . '</strong></th>';\r
                foreach ($annees as $annee) {\r
                        $total_annee[$annee] = 0;\r
@@ -469,11 +489,11 @@ class extranetPageChiffres {
                        $res .= '<td>' . $core->client_type[$type] . '</td>';\r
 \r
                        $total_type = 0;\r
-                       \r
+\r
                        foreach ($annees as $annee) {\r
                                if (isset($tab[$annee])) {\r
                                        $ca = self::format($tab[$annee], true);\r
-                                       $part=round(($tab[$annee]/$chiffreta[$annee])*100).'%';\r
+                                       $part = round(($tab[$annee] / $chiffreta[$annee]) * 100) . '%';\r
                                        $col = $ca . ' (' . $part . ')';\r
                                        $total_type += $tab[$annee];\r
                                        $total_annee[$annee] += $tab[$annee];\r
@@ -484,7 +504,7 @@ class extranetPageChiffres {
                                $res .= '<td>' . $col . '</td>';\r
                        }\r
 \r
-                       $res .= '<td><em>' . self::format($total_type, true).'</em></td>';\r
+                       $res .= '<td><em>' . self::format($total_type, true) . '</em></td>';\r
                        $res .= '</tr>';\r
                        $i++;\r
                }\r
@@ -493,11 +513,11 @@ class extranetPageChiffres {
                        if (isset($total_annee[$annee])) {\r
                                $c = $total_consomme_annee[$annee];\r
                                $p = $total_prevu_annee[$annee];\r
-                               $res .= '<td><strong>' . self::format($total_annee[$annee], true) .'</strong></td>';\r
+                               $res .= '<td><strong>' . self::format($total_annee[$annee], true) . '</strong></td>';\r
                        }\r
                }\r
-               \r
-               $res .= '<td><strong><em>' . ''.'</em></strong></td>';\r
+\r
+               $res .= '<td><strong><em>' . '' . '</em></strong></td>';\r
                $res .= '</tr>';\r
                $res .= '</table>';\r
                $res .= commonPage::bf();\r
@@ -575,6 +595,55 @@ class extranetPageChiffres {
                return $res;\r
        }\r
 \r
+       public static function fluidbookPages() {\r
+               global $core;\r
+\r
+               $r = $core->con->select('SELECT * FROM books_analysis');\r
+               $pas = 4;\r
+               $precision = 1 / $pas;\r
+               $data = array();\r
+               $max = 0;\r
+               while ($r->fetch()) {\r
+                       $n = min(300, cubeMath::round($r->nb_pages, $precision, 'ceil'));\r
+                       if (!isset($data[$n])) {\r
+                               $data[$n] = 0;\r
+                       }\r
+                       $data[$n]++;\r
+                       $max = max($max, $n);\r
+               }\r
+               fb($max);\r
+               for ($i = 0; $i <= $max; $i += $pas) {\r
+                       if (!isset($data[$i])) {\r
+                               $data[$i] = 0;\r
+                       }\r
+               }\r
+\r
+               ksort($data);\r
+\r
+               $res = commonPage::bh();\r
+               $res .= '<table class="liste">';\r
+               $res .= '<tr><td colspan="3">';\r
+               $res .= self::fluidbookPagesChart($data);\r
+               $res .= '</td></tr>';\r
+               $res .= '<tr><th><strong>' . __("Nombre de pages des Fluidbook") . '</strong></th>';\r
+               $res .= '<th>' . __("Nombre de pages") . '</th>';\r
+               $res .= '<th>' . __("Quantité") . '</th>';\r
+               $res .= '</tr>';\r
+\r
+\r
+               foreach ($data as $pages => $qty) {\r
+                       $res .= '<tr><td></td>';\r
+                       $res .= '<td>' . $pages . '</td>';\r
+                       $res .= '<td>' . $qty . '</td>';\r
+                       $res .= '</tr>';\r
+               }\r
+\r
+\r
+               $res .= '</table>';\r
+               $res .= commonPage::bf();\r
+               return $res;\r
+       }\r
+\r
        public static function format($nb, $euro = true, $ifzero = '-') {\r
                if ($euro) {\r
                        $nb = $nb / 1000;\r