Skip to content
Snippets Groups Projects
Commit 7cee4785 authored by Rodolphe Quiedeville's avatar Rodolphe Quiedeville
Browse files

Nouvelle version qui fork

parent cefdd99e
No related branches found
No related tags found
No related merge requests found
<?PHP <?php
/* Copyright (C) 2005 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
...@@ -22,7 +22,6 @@ ...@@ -22,7 +22,6 @@
* Generation des graphiques clients * Generation des graphiques clients
* *
* *
*
*/ */
require ("../../master.inc.php"); require ("../../master.inc.php");
...@@ -39,41 +38,92 @@ require_once (DOL_DOCUMENT_ROOT."/telephonie/stats/graph/camoyen.class.php"); ...@@ -39,41 +38,92 @@ require_once (DOL_DOCUMENT_ROOT."/telephonie/stats/graph/camoyen.class.php");
require_once (DOL_DOCUMENT_ROOT."/telephonie/stats/graph/appelsdureemoyenne.class.php"); require_once (DOL_DOCUMENT_ROOT."/telephonie/stats/graph/appelsdureemoyenne.class.php");
require_once (DOL_DOCUMENT_ROOT."/telephonie/stats/graph/comm.nbmensuel.class.php"); require_once (DOL_DOCUMENT_ROOT."/telephonie/stats/graph/comm.nbmensuel.class.php");
//require_once (DOL_DOCUMENT_ROOT."/telephonie/stats/montant.class.php");
require_once (DOL_DOCUMENT_ROOT."/telephonie/stats/graph/camenbert.class.php"); require_once (DOL_DOCUMENT_ROOT."/telephonie/stats/graph/camenbert.class.php");
$childrenTotal = 10;
$childrenNow = 0;
$clientPerChild = 0;
$sql = "SELECT max(s.idp)";
$sql .= " FROM ".MAIN_DB_PREFIX."societe as s";
if ($db->query($sql))
{
$row = $db->fetch_row();
$clientPerChild = ceil($row[0] / $childrenTotal);
$db->free();
}
while ( $childrenNow < $childrenTotal )
{
$pid = pcntl_fork();
if ( $pid == -1 )
{
die( "error\n" );
}
elseif ( $pid == 0 )
{
$childrenNow++;
}
else
{
$process = new Process( $childrenNow, $clientPerChild );
$process->go();
die();
}
}
/*
* Process
*
*/
class Process
{
var $ident;
function Process( $ident , $cpc)
{
$this->ident = $ident;
$this->cpc = $cpc;
$this->db = new DoliDb('','','','','',1);
}
function go()
{
dolibarr_syslog("Debut client ".$this->ident);
$error = 0; $error = 0;
$img_root = DOL_DATA_ROOT."/graph/telephonie/"; $img_root = DOL_DATA_ROOT."/graph/telephonie/";
/***********************************************************************/ $min = $this->ident * $this->cpc;
/* $max = ($this->ident + 1 ) * $this->cpc;
/* Chiffre d'affaire mensuel par client
/*
/***********************************************************************/
/* /*
* Lecture des clients * Lecture des clients
* *
*/ */
$sql = "SELECT s.idp as socidp, s.nom, count(l.ligne) as ligne"; $sql = "SELECT s.idp as socidp, s.nom, count(l.ligne) as ligne";
$sql .= " FROM ".MAIN_DB_PREFIX."societe as s,".MAIN_DB_PREFIX."telephonie_societe_ligne as l"; $sql .= " FROM ".MAIN_DB_PREFIX."societe as s";
$sql .= ",".MAIN_DB_PREFIX."telephonie_societe_ligne as l";
$sql .= " WHERE l.fk_client_comm = s.idp "; $sql .= " WHERE l.fk_client_comm = s.idp ";
$sql .= " AND s.idp >= ".$min;
$sql .= " AND s.idp < ".$max;
$sql .= " GROUP BY s.idp"; $sql .= " GROUP BY s.idp";
if ($db->query($sql)) if ($this->db->query($sql))
{ {
$clients = array(); $clients = array();
$num = $db->num_rows(); $num = $this->db->num_rows();
print "$num client a traiter\n"; print "$this->ident : $num client a traiter ($min - $max)\n";
$i = 0; $i = 0;
while ($i < $num) while ($i < $num)
{ {
$obj = $db->fetch_object(); $obj = $this->db->fetch_object();
$dir = $img_root . "client/".substr($obj->socidp,0,1)."/".$obj->socidp."/"; $dir = $img_root . "client/".substr($obj->socidp,0,1)."/".$obj->socidp."/";
...@@ -83,23 +133,20 @@ if ($db->query($sql)) ...@@ -83,23 +133,20 @@ if ($db->query($sql))
} }
} }
$sql = "DELETE FROM ".MAIN_DB_PREFIX."telephonie_client_stats"; if (sizeof($clients))
$db->query($sql); {
foreach ($clients as $client) foreach ($clients as $client)
{ {
print "."; //print ".";
$file = $img_root . "client/".substr($client,0,1)."/".$client."/graphca.png"; $file = $img_root . "client/".substr($client,0,1)."/".$client."/graphca.png";
$graphca = new GraphCa($db, $file); $graphca = new GraphCa($this->db, $file);
$graphca->client = $client; $graphca->client = $client;
$graphca->GraphDraw(); $graphca->GraphDraw();
$file = $img_root . "client/".substr($client,0,1)."/".$client."/graphgain.png"; $file = $img_root . "client/".substr($client,0,1)."/".$client."/graphgain.png";
$file = "/dev/null";
$graphgain = new GraphGain ($db, $file); $graphgain = new GraphGain ($this->db, $file);
$graphgain->client = $client; $graphgain->client = $client;
$graphgain->show_console = 0 ; $graphgain->show_console = 0 ;
$graphgain->GraphDraw(); $graphgain->GraphDraw();
...@@ -114,23 +161,27 @@ foreach ($clients as $client) ...@@ -114,23 +161,27 @@ foreach ($clients as $client)
$sql .= ",'".ereg_replace(",",".",$graphgain->total_ca)."'"; $sql .= ",'".ereg_replace(",",".",$graphgain->total_ca)."'";
$sql .= ",'".ereg_replace(",",".",$graphgain->total_cout)."'"; $sql .= ",'".ereg_replace(",",".",$graphgain->total_cout)."'";
$sql .= ",'".ereg_replace(",",".",$marge)."')"; $sql .= ",'".ereg_replace(",",".",$marge)."')";
$db->query($sql); $this->db->query($sql);
$file = $img_root . "client/".substr($client,0,1)."/".$client."/graphappelsdureemoyenne.png"; $file = $img_root . "client/".substr($client,0,1)."/".$client."/graphappelsdureemoyenne.png";
$graphgain = new GraphAppelsDureeMoyenne ($db, $file); $graphgain = new GraphAppelsDureeMoyenne ($this->db, $file);
$graphgain->client = $client; $graphgain->client = $client;
$graphgain->show_console = 0 ; $graphgain->show_console = 0 ;
$graphgain->GraphDraw(); $graphgain->GraphDraw();
$file = $img_root . "client/".substr($client,0,1)."/".$client."/nb-comm-mensuel.png"; $file = $img_root . "client/".substr($client,0,1)."/".$client."/nb-comm-mensuel.png";
$graphx = new GraphCommNbMensuel ($db, $file); $graphx = new GraphCommNbMensuel ($this->db, $file);
$graphx->client = $client; $graphx->client = $client;
$graphx->show_console = 0 ; $graphx->show_console = 0 ;
$graphx->Graph(); $graphx->Graph();
} }
print "\n"; }
dolibarr_syslog("Fin client ".$this->ident);
}
}
?> ?>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment