Skip to content
Snippets Groups Projects
Commit 11bb4512 authored by Laurent Destailleur's avatar Laurent Destailleur
Browse files

The file for energie modules has been moved inside dolibarrmodsavannah depository

parent 2bd4f7ee
No related branches found
No related tags found
No related merge requests found
<?PHP
/* Copyright (C) 2005-2007 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$
*/
require_once("../../htdocs/master.inc.php");
require_once(DOL_DOCUMENT_ROOT."/energie/EnergieCompteur.class.php");
require_once(DOL_DOCUMENT_ROOT."/energie/EnergieGroupe.class.php");
require_once (DOL_DOCUMENT_ROOT."/includes/artichow/LinePlot.class.php");
$error = 0;
$labels = array();
$datas = array();
$sql_c = "SELECT rowid FROM ".MAIN_DB_PREFIX."energie_compteur";
$resql_c = $db->query($sql_c);
$user = New User($db);
if ($resql_c)
{
$num_c = $db->num_rows($resql_c);
$i_c = 0;
if ($num_c > 0)
{
while ($i_c < $num_c)
{
$obj_c = $db->fetch_object($resql_c);
$compteur = New EnergieCompteur($db, $user);
$compteur->fetch($obj_c->rowid);
$compteur_id = $obj_c->rowid;
$sql = "SELECT ".$db->pdate("date_releve")." as date_releve, valeur";
$sql .= " FROM ".MAIN_DB_PREFIX."energie_compteur_releve";
$sql .= " WHERE fk_compteur = ".$obj_c->rowid;
$sql .= " ORDER BY date_releve ASC";
$resql = $db->query($sql);
if ($resql)
{
$num = $db->num_rows($resql);
$i = 0;
if ($num > 0)
{
$obj = $db->fetch_object($resql);
$previous_date = $obj->date_releve;
$previous_value = $obj->valeur;
$i++;
}
$datas = array();
$k = 0;
while ($i < $num)
{
$obj = $db->fetch_object($resql);
$delta = (($obj->date_releve - $previous_date) / 86400 );
if ($delta > 1)
{
for ($j = 1 ; $j < $delta ; $j++)
{
$value = $previous_value + ((($obj->valeur - $previous_value) / $delta) * $j);
$datas[$k][0] = $value;
$datas[$k][1] = ($previous_date + (86400 * $j));
$k++;
//print strftime("%Y-%m-%d", ($previous_date + (86400 * $j))) . "\t$j\t".$value."\n";
}
}
//print strftime("%Y-%m-%d", $obj->date_releve) . "\t\t".$obj->valeur."\n";
$datas[$k][0] = $obj->valeur;
$datas[$k][1] = $obj->date_releve;
$k++;
$previous_date = $obj->date_releve;
$previous_value = $obj->valeur;
$i++;
}
// Graph
$maxa = 0;
$xdatas = array();
$xlabels = array();
for ($i = 1 ; $i < sizeof($datas) ; $i++)
{
$xa = ($datas[$i][0] - $datas[($i-1)][0]);
$maxa = max($maxa, $xa);
$gdatas[$i-1] = $xa;
$glabels[$i-1] = strftime("%d%m",$datas[$i][1]);
$xdatas[$glabels[$i-1]] = $gdatas[$i-1];
}
$year = strftime("%Y", time());
$xyear = $year;
$day = mktime(0,0,0,1,1,$year);
$xydatas = array();
$xylabels = array();
$i=0;
while ($xyear == $year)
{
$xydatas[$i] = $xdatas[strftime("%d%m",$day)];
$xylabels[$i] = '';
$i++;
$day += 86400;
$xyear = strftime("%Y",$day);
}
if (sizeof($xydatas) > 2)
{
$width = 750;
$height = 300;
$file = $conf->energie->dir_graph."/all.".$obj_c->rowid.".png";
$group = new PlotGroup;
$group->setPadding(30, 10, NULL, NULL);
$graph = new Graph($width, $height);
$graph->border->hide();
$graph->setAntiAliasing(true);
$graph->title->set("Consommation journali�re");
$graph->title->setFont(new Tuffy(10));
$bgcolor= new Color(222,231,236);
$graph->setBackgroundColor($bgcolor);
$plot = new LinePlot($xydatas);
$plot->xAxis->Hide();
$graph->add($plot);
$graph->draw($file);
$width = 300;
$height = 90;
$file = $conf->energie->dir_graph."/small-all.".$obj_c->rowid.".png";
$group = new PlotGroup;
$group->setPadding(30, 10, NULL, NULL);
$graph = new Graph($width, $height);
$graph->border->hide();
$graph->setAntiAliasing(true);
$graph->title->set("Consommation journali�re");
$graph->title->setFont(new Tuffy(10));
$bgcolor= new Color(222,231,236);
$graph->setBackgroundColor($bgcolor);
$plot = new LinePlot($xydatas);
$plot->xAxis->Hide();
$graph->add($plot);
$graph->draw($file);
}
else
{
//print "No graph ".sizeof($xydatas)."\n";
}
}
else
{
dol_syslog("Erreur SQL");
dol_syslog("$sql");
}
$i_c++;
}
}
}
else
{
dol_syslog("Erreur SQL");
dol_syslog($db->error($resql_c));
}
?>
<?PHP
/* Copyright (C) 2005-2007 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$
*/
require_once("../../htdocs/master.inc.php");
require_once(DOL_DOCUMENT_ROOT."/energie/EnergieCompteur.class.php");
require_once(DOL_DOCUMENT_ROOT."/energie/EnergieGroupe.class.php");
require_once (DOL_DOCUMENT_ROOT."/includes/artichow/BarPlot.class.php");
require_once (DOL_DOCUMENT_ROOT."/includes/artichow/LinePlot.class.php");
$error = 0;
$sql_c = "SELECT rowid FROM ".MAIN_DB_PREFIX."energie_compteur";
$resql_c = $db->query($sql_c);
if ($resql_c)
{
$num_c = $db->num_rows($resql_c);
$i_c = 0;
if ($num_c > 0)
{
while ($i_c < $num_c)
{
$obj_c = $db->fetch_object($resql_c);
$compteur_id = $obj_c->rowid;
$labels = array();
$datas = array();
$ydatas = array();
$mdatas = array();
$wdatas = array();
$sql = "SELECT ".$db->pdate("date_releve")." as date_releve, valeur";
$sql .= " FROM ".MAIN_DB_PREFIX."energie_compteur_releve";
$sql .= " WHERE fk_compteur = ".$obj_c->rowid;
$sql .= " ORDER BY date_releve ASC";
$resql = $db->query($sql);
if ($resql)
{
$num = $db->num_rows($resql);
$i = 0;
if ($num > 0)
{
$obj = $db->fetch_object($resql);
//print strftime("%Y-%m-%d", $obj->date_releve) . "\t\t".$obj->valeur."\n";
$previous_date = $obj->date_releve;
$previous_value = $obj->valeur;
$i++;
}
$datas = array();
$k = 0;
while ($i < $num)
{
$obj = $db->fetch_object($resql);
$delta = (($obj->date_releve - $previous_date) / 86400 );
if ($delta > 1)
{
for ($j = 1 ; $j < $delta ; $j++)
{
$value = $previous_value + ((($obj->valeur - $previous_value) / $delta) * $j);
$datas[$k][0] = $value;
$datas[$k][1] = ($previous_date + (86400 * $j));
$k++;
//print strftime("%Y-%m-%d", ($previous_date + (86400 * $j))) . "\t$j\t".$value."\n";
}
}
//print strftime("%Y-%m-%d", $obj->date_releve) . "\t\t".$obj->valeur."\n";
$datas[$k][0] = $obj->valeur;
$datas[$k][1] = $obj->date_releve;
$k++;
$previous_date = $obj->date_releve;
$previous_value = $obj->valeur;
$i++;
}
// Graph
$maxa = 0;
for ($i = 1 ; $i < sizeof($datas) ; $i++)
{
$xa = ($datas[$i][0] - $datas[($i-1)][0]);
$maxa = max($maxa, $xa);
$gdatas[$i-1] = $xa;
$glabels[$i-1] = '';//strftime("%d%m",$datas[$i][1]);
$month = strftime("%m%y",$datas[$i][1]);
$mdatas[$compteur_id][$month] = $mdatas[$compteur_id][$month] + $xa;
$week = strftime("%W%y",$datas[$i][1]);
$wdatas[$compteur_id][$week] = $wdatas[$compteur_id][$week] + $xa;
$year = strftime("%Y",$datas[$i][1]);
$ydatas[$compteur_id][$year] = $ydatas[$compteur_id][$year] + $xa;
}
$width = 750;
$height = 300;
if (sizeof($gdatas) > 2)
{
$file = $conf->energie->dir_graph."/day.".$obj_c->rowid.".png";
$group = new PlotGroup;
$group->setPadding(30, 10, NULL, NULL);
$graph = new Graph($width, $height);
$graph->border->hide();
$graph->setAntiAliasing(true);
$graph->title->set("Consommation par jour");
$graph->title->setFont(new Tuffy(10));
$bgcolor= new Color(222,231,236);
$graph->setBackgroundColor($bgcolor);
$plot = new LinePlot($gdatas);
$plot->xAxis->setLabelText($glabels);
$plot->xAxis->label->setFont(new Tuffy(7));
$graph->add($plot);
$graph->draw($file);
}
$width = 450;
$height = 300;
// Mensuel
$i=0;
foreach ($mdatas[$compteur_id] as $key => $value)
{
$gmdatas[$i] = $value;
$gmlabels[$i] = $key;
$i++;
}
if (sizeof($gmdatas))
{
$file = $conf->energie->dir_graph."/month.".$obj_c->rowid.".png";
$group = new PlotGroup;
$group->setPadding(30, 10, NULL, NULL);
$graph = new Graph($width, $height);
$graph->border->hide();
$graph->setAntiAliasing(true);
$graph->title->set("Consommation par mois");
$graph->title->setFont(new Tuffy(10));
$bgcolor= new Color(222,231,236);
$graph->setBackgroundColor($bgcolor);
$plot = new BarPlot($gmdatas);
$col = "blue";
$color = new $col ;
$plot->setBarColor($color);
$plot->xAxis->setLabelText($gmlabels);
$plot->xAxis->label->setFont(new Tuffy(7));
$graph->add($plot);
$graph->draw($file);
}
// Hebdomadaire
$width = 750;
$height = 300;
$i=0;
foreach ($wdatas[$compteur_id] as $key => $value)
{
$gwdatas[$i] = $value;
$gwlabels[$i] = substr($key,0,2);
$i++;
}
if (sizeof($gwdatas))
{
$file = $conf->energie->dir_graph."/week.".$obj_c->rowid.".png";
$group = new PlotGroup;
$group->setPadding(30, 10, NULL, NULL);
$graph = new Graph($width, $height);
$graph->border->hide();
$graph->setAntiAliasing(true);
$graph->title->set("Consommation par semaine");
$graph->title->setFont(new Tuffy(10));
$bgcolor= new Color(222,231,236);
$graph->setBackgroundColor($bgcolor);
$plot = new BarPlot($gwdatas);
$col = "blue";
$color = new $col ;
$plot->setBarColor($color);
$plot->xAxis->setLabelText($gwlabels);
$plot->xAxis->label->setFont(new Tuffy(7));
$graph->add($plot);
$graph->draw($file);
}
// Annuel
$width = 450;
$height = 300;
$i=0;
foreach ($ydatas[$compteur_id] as $key => $value)
{
$gydatas[$i] = $value;
$gylabels[$i] = $key;
$i++;
}
if (sizeof($gydatas))
{
$file = $conf->energie->dir_graph."/year.".$obj_c->rowid.".png";
$group = new PlotGroup;
$group->setPadding(30, 10, NULL, NULL);
$graph = new Graph($width, $height);
$graph->border->hide();
$graph->setAntiAliasing(true);
$graph->title->set("Consommation annuelle");
$graph->title->setFont(new Tuffy(10));
$bgcolor= new Color(222,231,236);
$graph->setBackgroundColor($bgcolor);
$plot = new BarPlot($gydatas);
$col = "blue";
$color = new $col ;
$plot->setBarColor($color);
$plot->xAxis->setLabelText($gylabels);
$plot->xAxis->label->setFont(new Tuffy(7));
$graph->add($plot);
$graph->draw($file);
}
}
else
{
dol_syslog("Erreur SQL");
dol_syslog("$sql");
}
$i_c++;
}
}
}
else
{
dol_syslog("Erreur SQL");
dol_syslog($db->error($resql_c));
}
/*************************************************************
* Groupes
*
*/
$sql_g = "SELECT distinct fk_energie_groupe";
$sql_g .= " FROM ".MAIN_DB_PREFIX."energie_compteur_groupe";
$resql_g = $db->query($sql_g);
if ($resql_g)
{
$num_g = $db->num_rows($resql_g);
$i_g = 0;
while ($i_g < $num_g)
{
$row_g = $db->fetch_row($resql_g);
$sql_c = "SELECT fk_energie_compteur";
$sql_c .= " FROM ".MAIN_DB_PREFIX."energie_compteur_groupe";
$sql_c .= " WHERE fk_energie_groupe = ".$row_g[0];
$resql_c = $db->query($sql_c);
if ($resql_c)
{
$num_c = $db->num_rows($resql_c);
$i_c = 0;
$compteurs = array();
while ($i_c < $num_c)
{
$obj_c = $db->fetch_object($resql_c);
array_push($compteurs,$obj_c->fk_energie_compteur);
$i_c++;
}
$width = 450;
$height = 300;
// Hebdo
$file = $conf->energie->dir_graph."/groupe.week.".$row_g[0].".png";
$group = new PlotGroup;
$group->setPadding(30, 10, NULL, NULL);
$graph = new Graph($width, $height);
$graph->border->hide();
$graph->setAntiAliasing(true);
$graph->title->set("Consommation hebdomadaire");
$graph->title->setFont(new Tuffy(10));
$bgcolor= new Color(222,231,236);
$graph->setBackgroundColor($bgcolor);
$gbspl = array();
foreach ($compteurs as $cx)
{
$gydatas = array();
$gylabels = array();
$i=0;
foreach ($wdatas[$cx] as $key => $value)
{
$gydatas[$i] = $value;
$gylabels[$i] = $key;
$i++;
}
array_push($gbspl, $bplot);
$plot = new BarPlot($gydatas);
$col = "green";
$color = new $col ;
$plot->setBarColor($color);
$plot->xAxis->setLabelText($gylabels);
$plot->xAxis->label->setFont(new Tuffy(7));
$graph->add($plot);
}
$graph->draw($file);
//
//
//
$file = $conf->energie->dir_graph."/groupe.month.".$row_g[0].".png";
$group = new PlotGroup;
$group->setPadding(30, 10, NULL, NULL);
$graph = new Graph($width, $height);
$graph->border->hide();
$graph->setAntiAliasing(true);
$graph->title->set("Consommation mensuelle");
$graph->title->setFont(new Tuffy(10));
$bgcolor= new Color(222,231,236);
$graph->setBackgroundColor($bgcolor);
$gbspl = array();
foreach ($compteurs as $cx)
{
$gydatas = array();
$gylabels = array();
$i=0;
foreach ($mdatas[$cx] as $key => $value)
{
$gydatas[$i] = $value;
$gylabels[$i] = $key;
$i++;
}
array_push($gbspl, $bplot);
$plot = new BarPlot($gydatas);
$col = "blue";
$color = new $col ;
$plot->setBarColor($color);
$plot->xAxis->setLabelText($gylabels);
$plot->xAxis->label->setFont(new Tuffy(7));
$graph->add($plot);
}
$graph->draw($file);
//
//
//
$file = $conf->energie->dir_graph."/groupe.year.".$row_g[0].".png";
$group = new PlotGroup;
$group->setPadding(30, 10, NULL, NULL);
$graph = new Graph($width, $height);
$graph->border->hide();
$graph->setAntiAliasing(true);
$graph->title->set("Consommation annuelle");
$graph->title->setFont(new Tuffy(10));
$bgcolor= new Color(222,231,236);
$graph->setBackgroundColor($bgcolor);
$gbspl = array();
foreach ($compteurs as $cx)
{
$gydatas = array();
$gylabels = array();
$i=0;
foreach ($ydatas[$cx] as $key => $value)
{
$gydatas[$i] = $value;
$gylabels[$i] = $key;
$i++;
}
array_push($gbspl, $bplot);
$plot = new BarPlot($gydatas);
$col = "yellow";
$color = new $col ;
$plot->setBarColor($color);
$plot->xAxis->setLabelText($gylabels);
$plot->xAxis->label->setFont(new Tuffy(7));
$graph->add($plot);
}
$graph->draw($file);
//
}
else
{
dol_syslog("Erreur SQL");
print $sql_c;
}
$i_g++;
}
}
else
{
dol_syslog("Erreur SQL");
print $sql;
}
?>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment