Nouveau fichier

This commit is contained in:
Rodolphe Quiedeville 2005-03-15 14:56:04 +00:00
parent ec996a4300
commit e89ad4007f
3 changed files with 333 additions and 4 deletions

View File

@ -0,0 +1,214 @@
<?PHP
/* Copyright (C) 2004-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
*
* 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 '<table class="border" width="100%" cellspacing="0" cellpadding="4">';
$client_comm = new Societe($db, $contrat->client_comm_id);
$client_comm->fetch($contrat->client_comm_id);
print '<tr><td width="20%">Référence</td><td>'.$contrat->ref.'</td>';
print '<td colspan="2">Facturé : '.$contrat->facturable.'</td></tr>';
print '<tr><td width="20%">Client</td><td>';
print '<a href="'.DOL_URL_ROOT.'/telephonie/client/fiche.php?id='.$client_comm->id.'">';
print $client_comm->nom.'</a></td><td colspan="2">'.$client_comm->code_client;
print '</td></tr>';
$commercial = new User($db, $contrat->commercial_sign_id);
$commercial->fetch();
$commercial_suiv = new User($db, $contrat->commercial_suiv_id);
$commercial_suiv->fetch();
print '<tr><td width="20%">Commercial Suivi/Signature</td>';
print '<td colspan="3">'.$commercial_suiv->fullname.'/'.$commercial->fullname.'</td></tr>';
/* Fin Contacts */
print "</table><br />";
print '<table class="border" cellpadding="3" cellspacing="0" width="100%">';
print '<tr><td width="50%" align="center">Chiffre d\'affaire</td>';
print '<td width="50%" align="center">Gain</td></tr>';
print '<tr><td width="50%" valign="top" align="center">';
$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 '<img src="'.DOL_URL_ROOT.'/telephonie/showgraph.php?graph='.$file.'" alt="CA Mensuel">';
}
else
{
print $mesg_no_graph;
}
print '</td><td width="50%" valign="top" align="center">';
$file = $img_root.$contrat->id."/graphgain.png";
if (file_exists($file))
{
print '<img src="'.DOL_URL_ROOT.'/telephonie/showgraph.php?graph='.$file.'" alt="CA Mensuel">';
}
else
{
print $mesg_no_graph;
}
print '</td></tr>';
print '<tr><td width="50%" align="center">Appels</td>';
print '<td width="50%" align="center">-</td></tr>';
print '<tr><td width="50%" valign="top" align="center">';
$file = $img_root.$contrat->id."/graphappelsdureemoyenne.png";
if (file_exists($file))
{
print '<img src="'.DOL_URL_ROOT.'/telephonie/showgraph.php?graph='.$file.'" alt="CA Mensuel">';
}
else
{
print $mesg_no_graph;
}
print '</td><td width="50%" valign="top" align="center">';
print "&nbsp;";
print '</td></tr>';
print '<tr><td width="50%" align="center">Communications</td>';
print '<td width="50%" align="center">Minutes</td></tr>';
print '<tr><td width="50%" valign="top" align="center">';
$file = $img_root.$contrat->id."/nb-comm-mensuel.png";
if (file_exists($file))
{
print '<img src="'.DOL_URL_ROOT.'/telephonie/showgraph.php?graph='.$file.'" alt="CA Mensuel">';
}
else
{
print $mesg_no_graph;
}
print '</td><td width="50%" valign="top" align="center">';
$file = $img_root.$contrat->id."/nb-minutes-mensuel.png";
if (file_exists($file))
{
print '<img src="'.DOL_URL_ROOT.'/telephonie/showgraph.php?graph='.$file.'" alt="CA Mensuel">';
}
else
{
print $mesg_no_graph;
}
print '</td></tr></table>';
}
}
}
else
{
print "Error";
}
print '</div>';
/* ************************************************************************** */
/* */
/* Barre d'action */
/* */
/* ************************************************************************** */
$db->close();
llxFooter("<em>Derni&egrave;re modification $Date$ r&eacute;vision $Revision$</em>");
?>

View File

@ -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))
{

View File

@ -0,0 +1,105 @@
<?PHP
/* Copyright (C) 2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
*
* 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");
}
}
}
?>