From e89ad4007fb8e89a14136f97e3e2a204448d2f0a Mon Sep 17 00:00:00 2001 From: Rodolphe Quiedeville Date: Tue, 15 Mar 2005 14:56:04 +0000 Subject: [PATCH] Nouveau fichier --- htdocs/telephonie/contrat/stats.php | 214 ++++++++++++++++++ .../stats/graph/appelsdureemoyenne.class.php | 18 +- .../stats/graph/comm.nbminutes.class.php | 105 +++++++++ 3 files changed, 333 insertions(+), 4 deletions(-) create mode 100644 htdocs/telephonie/contrat/stats.php create mode 100644 htdocs/telephonie/stats/graph/comm.nbminutes.class.php diff --git a/htdocs/telephonie/contrat/stats.php b/htdocs/telephonie/contrat/stats.php new file mode 100644 index 00000000000..1b4dfb449eb --- /dev/null +++ b/htdocs/telephonie/contrat/stats.php @@ -0,0 +1,214 @@ + + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * $Id$ + * $Source$ + * + */ + +require("./pre.inc.php"); + +$mesg = ''; + +llxHeader("","Téléphonie - Contrat"); + +if ($cancel == $langs->trans("Cancel")) +{ + $action = ''; +} +/* + * Affichage + * + */ + +if ($_GET["id"]) +{ + $contrat = new TelephonieContrat($db); + + $result = $contrat->fetch($_GET["id"]); + + if ( $result == 1 ) + { + if ($_GET["action"] <> 'edit' && $_GET["action"] <> 're-edit') + { + $h=0; + $head[$h][0] = DOL_URL_ROOT."/telephonie/contrat/fiche.php?id=".$contrat->id; + $head[$h][1] = $langs->trans("Contrat"); + $h++; + + $nser = $contrat->count_associated_services(); + + $head[$h][0] = DOL_URL_ROOT."/telephonie/contrat/services.php?id=".$contrat->id; + if ($nser > 0) + { + $head[$h][1] = $langs->trans("Services")." (".$nser.")"; + } + else + { + $head[$h][1] = $langs->trans("Services"); + } + $h++; + + $head[$h][0] = DOL_URL_ROOT."/telephonie/contrat/stats.php?id=".$contrat->id; + $head[$h][1] = $langs->trans("Stats"); + $hselected = $h; + $h++; + + $head[$h][0] = DOL_URL_ROOT."/telephonie/contrat/info.php?id=".$contrat->id; + $head[$h][1] = $langs->trans("Infos"); + $h++; + + dolibarr_fiche_head($head, $hselected, 'Contrat : '.$contrat->ref); + + print_fiche_titre('Fiche Contrat', $mesg); + + print ''; + + $client_comm = new Societe($db, $contrat->client_comm_id); + $client_comm->fetch($contrat->client_comm_id); + + print ''; + print ''; + + print ''; + + $commercial = new User($db, $contrat->commercial_sign_id); + $commercial->fetch(); + $commercial_suiv = new User($db, $contrat->commercial_suiv_id); + $commercial_suiv->fetch(); + + print ''; + print ''; + + /* Fin Contacts */ + + print "
Référence'.$contrat->ref.'Facturé : '.$contrat->facturable.'
Client'; + print ''; + + print $client_comm->nom.''.$client_comm->code_client; + print '
Commercial Suivi/Signature'.$commercial_suiv->fullname.'/'.$commercial->fullname.'

"; + + + print ''; + print ''; + print ''; + + print ''; + + print ''; + print ''; + + print ''; + + print ''; + print ''; + + print '
Chiffre d\'affaireGain
'; + + $mesg_no_graph = 'Nous avons pas assez de données à ce jour pour générer ce graphique.'; + + $img_root = DOL_DATA_ROOT."/graph/".substr($contrat->id,-1)."/telephonie/contrat/"; + + $file = $img_root.$contrat->id."/graphca.png"; + + if (file_exists($file)) + { + print 'CA Mensuel'; + } + else + { + print $mesg_no_graph; + } + + print ''; + + $file = $img_root.$contrat->id."/graphgain.png"; + if (file_exists($file)) + { + print 'CA Mensuel'; + } + else + { + print $mesg_no_graph; + } + + print '
Appels-
'; + + $file = $img_root.$contrat->id."/graphappelsdureemoyenne.png"; + + if (file_exists($file)) + { + print 'CA Mensuel'; + } + else + { + print $mesg_no_graph; + } + + print ''; + + print " "; + + print '
CommunicationsMinutes
'; + + $file = $img_root.$contrat->id."/nb-comm-mensuel.png"; + + if (file_exists($file)) + { + print 'CA Mensuel'; + } + else + { + print $mesg_no_graph; + } + + print ''; + + $file = $img_root.$contrat->id."/nb-minutes-mensuel.png"; + + if (file_exists($file)) + { + print 'CA Mensuel'; + } + else + { + print $mesg_no_graph; + } + + print '
'; + + + } + } +} +else +{ + print "Error"; +} + +print ''; + +/* ************************************************************************** */ +/* */ +/* Barre d'action */ +/* */ +/* ************************************************************************** */ + +$db->close(); + +llxFooter("Dernière modification $Date$ révision $Revision$"); +?> diff --git a/htdocs/telephonie/stats/graph/appelsdureemoyenne.class.php b/htdocs/telephonie/stats/graph/appelsdureemoyenne.class.php index 4218a93427c..c49c17d20b6 100644 --- a/htdocs/telephonie/stats/graph/appelsdureemoyenne.class.php +++ b/htdocs/telephonie/stats/graph/appelsdureemoyenne.class.php @@ -31,6 +31,7 @@ class GraphAppelsDureeMoyenne extends GraphBrouzouf{ $this->file = $file; $this->client = 0; + $this->contrat = 0; $this->titre = "Durée moyenne des appels"; //$this->type = "LinePlot"; @@ -42,15 +43,14 @@ class GraphAppelsDureeMoyenne extends GraphBrouzouf{ Function GraphDraw() { $num = 0; - $ligne = new LigneTel($this->db); - if ($this->client == 0) + if ($this->client == 0 && $this->contrat == 0) { $sql = "SELECT date_format(date,'%Y%m'), sum(duree), count(duree)"; $sql .= " FROM ".MAIN_DB_PREFIX."telephonie_communications_details"; $sql .= " GROUP BY date_format(date,'%Y%m') ASC "; } - else + elseif ($this->client > 0 && $this->contrat == 0) { $sql = "SELECT date_format(td.date,'%Y%m'), sum(td.duree), count(td.duree)"; $sql .= " FROM ".MAIN_DB_PREFIX."telephonie_communications_details as td"; @@ -58,9 +58,19 @@ class GraphAppelsDureeMoyenne extends GraphBrouzouf{ $sql .= " WHERE td.ligne = s.ligne"; $sql .= " AND s.fk_client_comm = ".$this->client; - $sql .= " GROUP BY date_format(td.date,'%Y%m') ASC "; } + elseif ($this->client == 0 && $this->contrat > 0) + { + $sql = "SELECT date_format(td.date,'%Y%m'), sum(td.duree), count(td.duree)"; + $sql .= " FROM ".MAIN_DB_PREFIX."telephonie_communications_details as td"; + $sql .= " , ".MAIN_DB_PREFIX."telephonie_societe_ligne as s"; + + $sql .= " WHERE td.ligne = s.ligne"; + $sql .= " AND s.fk_contrat = ".$this->contrat; + $sql .= " GROUP BY date_format(td.date,'%Y%m') ASC "; + } + if ($this->db->query($sql)) { diff --git a/htdocs/telephonie/stats/graph/comm.nbminutes.class.php b/htdocs/telephonie/stats/graph/comm.nbminutes.class.php new file mode 100644 index 00000000000..96b32c0d91c --- /dev/null +++ b/htdocs/telephonie/stats/graph/comm.nbminutes.class.php @@ -0,0 +1,105 @@ + + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * $Id$ + * $Source$ + * + */ + +require_once (DOL_DOCUMENT_ROOT."/telephonie/stats/graph/bar.class.php"); + +class GraphCommNbMinutes extends GraphBar{ + + + Function GraphCommNbMinutes($DB, $file) + { + $this->name = "comm.nbminutes"; + $this->db = $DB; + $this->file = $file; + $this->showframe = true; + $this->client = 0; + $this->contrat = 0; + $this->titre = "Nombre de minutes"; + + $this->barcolor = "bisque2"; + + $this->datas = array(); + $this->labels = array(); + } + + Function Graph($datas='', $labels='') + { + $this->GetDatas(); + + if (sizeof($this->datas)) + { + $this->GraphDraw($this->file, $this->datas, $this->labels); + } + } + + Function GetDatas() + { + + $sql = "SELECT date_format(td.date,'%Y%m'), sum(duree)"; + $sql .= " FROM ".MAIN_DB_PREFIX."telephonie_communications_details as td"; + + if ($this->client == 0 && $this->contrat == 0) + { + $sql .= " GROUP BY date_format(td.date, '%Y%m') ASC"; + } + elseif ($this->client > 0 && $this->contrat == 0) + { + $sql .= " , ".MAIN_DB_PREFIX."telephonie_societe_ligne as s"; + + $sql .= " WHERE td.ligne = s.ligne"; + $sql .= " AND s.fk_client_comm = ".$this->client; + + $sql .= " GROUP BY date_format(td.date,'%Y%m') ASC "; + } + elseif ($this->client == 0 && $this->contrat > 0) + { + $sql .= " , ".MAIN_DB_PREFIX."telephonie_societe_ligne as s"; + + $sql .= " WHERE td.ligne = s.ligne"; + $sql .= " AND s.fk_contrat = ".$this->contrat; + + $sql .= " GROUP BY date_format(td.date,'%Y%m') ASC "; + } + + if ($this->db->query($sql)) + { + $num = $this->db->num_rows(); + $i = 0; + + while ($i < $num) + { + $row = $this->db->fetch_row(); + + $this->labels[$i] = substr($row[0],4,2) . '/'.substr($row[0],2,2); + $this->datas[$i] = $row[1]; + + $i++; + } + $this->db->free(); + } + else + { + dolibarr_syslog("Error"); + } + } +} +?>