diff --git a/htdocs/comm/propal/class/propalestats.class.php b/htdocs/comm/propal/class/propalestats.class.php
index 11014537337..e38297a3377 100644
--- a/htdocs/comm/propal/class/propalestats.class.php
+++ b/htdocs/comm/propal/class/propalestats.class.php
@@ -67,7 +67,7 @@ class PropaleStats extends Stats
$this->from = MAIN_DB_PREFIX.$object->table_element." as p";
$this->from_line = MAIN_DB_PREFIX.$object->table_element_line." as tl";
-
+ $this->field_date='p.datep';
$this->field='total_ht';
$this->field_line='total_ht';
@@ -79,18 +79,11 @@ class PropaleStats extends Stats
$this->from = MAIN_DB_PREFIX.$object->table_element." as p";
$this->from_line = MAIN_DB_PREFIX.$object->table_element_line." as tl";
-
+ $this->field_date='p.date_valid';
$this->field='total_ht';
$this->field_line='total_ht';
- $this->where.= " p.fk_statut > 0";
-
- $object=new CommandeFournisseur($this->db);
- $this->from = MAIN_DB_PREFIX.$object->table_element." as c";
- $this->from_line = MAIN_DB_PREFIX.$object->table_element_line." as tl";
- $this->field='total_ht';
- $this->field_line='total_ht';
- $this->where.= " c.fk_statut > 2"; // Only approved & ordered
+ $this->where.= " p.fk_statut > 0"; // Validated, accepted, refused and closed
}
//$this->where.= " AND p.fk_soc = s.rowid AND p.entity = ".$conf->entity;
$this->where.= " AND p.entity IN (".getEntity('propal', 1).")";
@@ -113,10 +106,10 @@ class PropaleStats extends Stats
{
global $user;
- $sql = "SELECT date_format(p.datep,'%m') as dm, COUNT(*) as nb";
+ $sql = "SELECT date_format(".$this->field_date.",'%m') as dm, COUNT(*) as nb";
$sql.= " FROM ".$this->from;
if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
- $sql.= " WHERE p.datep BETWEEN '".$this->db->idate(dol_get_first_day($year))."' AND '".$this->db->idate(dol_get_last_day($year))."'";
+ $sql.= " WHERE ".$this->field_date." BETWEEN '".$this->db->idate(dol_get_first_day($year))."' AND '".$this->db->idate(dol_get_last_day($year))."'";
$sql.= " AND ".$this->where;
$sql.= " GROUP BY dm";
$sql.= $this->db->order('dm','DESC');
@@ -135,7 +128,7 @@ class PropaleStats extends Stats
{
global $user;
- $sql = "SELECT date_format(p.datep,'%Y') as dm, COUNT(*) as nb, SUM(c.".$this->field.")";
+ $sql = "SELECT date_format(".$this->field_date.",'%Y') as dm, COUNT(*) as nb, SUM(c.".$this->field.")";
$sql.= " FROM ".$this->from;
if (!$user->rights->societe->client->voir && !$this->socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
$sql.= " WHERE ".$this->where;
@@ -155,10 +148,10 @@ class PropaleStats extends Stats
{
global $user;
- $sql = "SELECT date_format(p.datep,'%m') as dm, SUM(p.".$this->field.")";
+ $sql = "SELECT date_format(".$this->field_date.",'%m') as dm, SUM(p.".$this->field.")";
$sql.= " FROM ".$this->from;
if (!$user->rights->societe->client->voir && !$this->socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
- $sql.= " WHERE p.datep BETWEEN '".$this->db->idate(dol_get_first_day($year))."' AND '".$this->db->idate(dol_get_last_day($year))."'";
+ $sql.= " WHERE ".$this->field_date." BETWEEN '".$this->db->idate(dol_get_first_day($year))."' AND '".$this->db->idate(dol_get_last_day($year))."'";
$sql.= " AND ".$this->where;
$sql.= " GROUP BY dm";
$sql.= $this->db->order('dm','DESC');
@@ -177,10 +170,10 @@ class PropaleStats extends Stats
{
global $user;
- $sql = "SELECT date_format(p.datep,'%m') as dm, AVG(p.".$this->field.")";
+ $sql = "SELECT date_format(".$this->field_date.",'%m') as dm, AVG(p.".$this->field.")";
$sql.= " FROM ".$this->from;
if (!$user->rights->societe->client->voir && !$this->socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
- $sql.= " WHERE p.datep BETWEEN '".$this->db->idate(dol_get_first_day($year))."' AND '".$this->db->idate(dol_get_last_day($year))."'";
+ $sql.= " WHERE ".$this->field_date." BETWEEN '".$this->db->idate(dol_get_first_day($year))."' AND '".$this->db->idate(dol_get_last_day($year))."'";
$sql.= " AND ".$this->where;
$sql.= " GROUP BY dm";
$sql.= $this->db->order('dm','DESC');
@@ -197,7 +190,7 @@ class PropaleStats extends Stats
{
global $user;
- $sql = "SELECT date_format(p.datep,'%Y') as year, COUNT(*) as nb, SUM(".$this->field.") as total, AVG(".$this->field.") as avg";
+ $sql = "SELECT date_format(".$this->field_date.",'%Y') as year, COUNT(*) as nb, SUM(".$this->field.") as total, AVG(".$this->field.") as avg";
$sql.= " FROM ".$this->from;
if (!$user->rights->societe->client->voir && !$this->socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
$sql.= " WHERE ".$this->where;
@@ -224,7 +217,7 @@ class PropaleStats extends Stats
if (!$user->rights->societe->client->voir && !$user->socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
$sql.= " WHERE ".$this->where;
$sql.= " AND p.rowid = tl.fk_propal AND tl.fk_product = product.rowid";
- $sql.= " AND p.datep BETWEEN '".$this->db->idate(dol_get_first_day($year,1,false))."' AND '".$this->db->idate(dol_get_last_day($year,12,false))."'";
+ $sql.= " AND ".$this->field_date." BETWEEN '".$this->db->idate(dol_get_first_day($year,1,false))."' AND '".$this->db->idate(dol_get_last_day($year,12,false))."'";
$sql.= " GROUP BY product.ref";
$sql.= $this->db->order('nb','DESC');
//$sql.= $this->db->plimit(20);
diff --git a/htdocs/comm/propal/stats/index.php b/htdocs/comm/propal/stats/index.php
index 2f4c2ee342f..2c93f874baa 100644
--- a/htdocs/comm/propal/stats/index.php
+++ b/htdocs/comm/propal/stats/index.php
@@ -265,7 +265,7 @@ print '
';
-
+ }
+
+ if (! empty($conf->global->FICHINTER_USE_PLANNED_AND_DONE_DATES))
+ {
// Date Start
print '
'.$langs->trans("Dateo").'
';
print '
';
diff --git a/htdocs/fichinter/class/fichinterstats.class.php b/htdocs/fichinter/class/fichinterstats.class.php
new file mode 100644
index 00000000000..1219a83d9e0
--- /dev/null
+++ b/htdocs/fichinter/class/fichinterstats.class.php
@@ -0,0 +1,211 @@
+
+ * Copyright (c) 2005-2013 Laurent Destailleur
+ * Copyright (C) 2005-2012 Regis Houssin
+ * Copyright (C) 2012 Marcos GarcĂa
+ *
+ * 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 3 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, see .
+ */
+
+/**
+ * \file htdocs/fichinter/class/fichinterstats.class.php
+ * \ingroup fichinter
+ * \brief File of class to manage intervention statistics
+ */
+include_once DOL_DOCUMENT_ROOT . '/core/class/stats.class.php';
+include_once DOL_DOCUMENT_ROOT . '/fichinter/class/fichinter.class.php';
+include_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php';
+
+
+/**
+ * Class to manage intervention statistics
+ */
+class FichinterStats extends Stats
+{
+ public $table_element;
+
+ var $socid;
+ var $userid;
+
+ var $from;
+ var $field;
+ var $where;
+
+
+ /**
+ * Constructor
+ *
+ * @param DoliDB $db Database handler
+ * @param int $socid Id third party for filter. This value must be forced during the new to external user company if user is an external user.
+ * @param string $mode Option ('customer', 'supplier')
+ * @param int $userid Id user for filter (creation user)
+ */
+ function __construct($db, $socid, $mode, $userid=0)
+ {
+ global $user, $conf;
+
+ $this->db = $db;
+
+ $this->socid = ($socid > 0 ? $socid : 0);
+ $this->userid = $userid;
+ $this->cachefilesuffix = $mode;
+
+ if ($mode == 'customer')
+ {
+ $object=new Fichinter($this->db);
+ $this->from = MAIN_DB_PREFIX.$object->table_element." as c";
+ $this->from_line = MAIN_DB_PREFIX.$object->table_element_line." as tl";
+ $this->field='0';
+ $this->field_line='0';
+ $this->where.= " c.fk_statut > 0"; // Not draft and not cancelled
+ }
+ //$this->where.= " AND c.fk_soc = s.rowid AND c.entity = ".$conf->entity;
+ $this->where.= " AND c.entity = ".$conf->entity;
+ if (!$user->rights->societe->client->voir && !$this->socid) $this->where .= " AND c.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
+ if ($this->socid)
+ {
+ $this->where.=" AND c.fk_soc = ".$this->socid;
+ }
+ if ($this->userid > 0) $this->where.=' AND c.fk_user_author = '.$this->userid;
+ }
+
+ /**
+ * Return intervention number by month for a year
+ *
+ * @param int $year Year to scan
+ * @return array Array with number by month
+ */
+ function getNbByMonth($year)
+ {
+ global $user;
+
+ $sql = "SELECT date_format(c.date_valid,'%m') as dm, COUNT(*) as nb";
+ $sql.= " FROM ".$this->from;
+ if (!$user->rights->societe->client->voir && !$this->socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
+ $sql.= " WHERE c.date_valid BETWEEN '".$this->db->idate(dol_get_first_day($year))."' AND '".$this->db->idate(dol_get_last_day($year))."'";
+ $sql.= " AND ".$this->where;
+ $sql.= " GROUP BY dm";
+ $sql.= $this->db->order('dm','DESC');
+
+ $res=$this->_getNbByMonth($year, $sql);
+ return $res;
+ }
+
+ /**
+ * Return interventions number per year
+ *
+ * @return array Array with number by year
+ *
+ */
+ function getNbByYear()
+ {
+ global $user;
+
+ $sql = "SELECT date_format(c.date_valid,'%Y') as dm, COUNT(*) as nb, 0";
+ $sql.= " FROM ".$this->from;
+ if (!$user->rights->societe->client->voir && !$this->socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
+ $sql.= " WHERE ".$this->where;
+ $sql.= " GROUP BY dm";
+ $sql.= $this->db->order('dm','DESC');
+
+ return $this->_getNbByYear($sql);
+ }
+
+ /**
+ * Return the intervention amount by month for a year
+ *
+ * @param int $year Year to scan
+ * @return array Array with amount by month
+ */
+ function getAmountByMonth($year)
+ {
+ global $user;
+
+ $sql = "SELECT date_format(c.date_valid,'%m') as dm, 0";
+ $sql.= " FROM ".$this->from;
+ if (!$user->rights->societe->client->voir && !$this->socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
+ $sql.= " WHERE c.date_valid BETWEEN '".$this->db->idate(dol_get_first_day($year))."' AND '".$this->db->idate(dol_get_last_day($year))."'";
+ $sql.= " AND ".$this->where;
+ $sql.= " GROUP BY dm";
+ $sql.= $this->db->order('dm','DESC');
+
+ $res=$this->_getAmountByMonth($year, $sql);
+ return $res;
+ }
+
+ /**
+ * Return the intervention amount average by month for a year
+ *
+ * @param int $year year for stats
+ * @return array array with number by month
+ */
+ function getAverageByMonth($year)
+ {
+ global $user;
+
+ $sql = "SELECT date_format(c.date_valid,'%m') as dm, 0";
+ $sql.= " FROM ".$this->from;
+ if (!$user->rights->societe->client->voir && !$this->socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
+ $sql.= " WHERE c.date_valid BETWEEN '".$this->db->idate(dol_get_first_day($year))."' AND '".$this->db->idate(dol_get_last_day($year))."'";
+ $sql.= " AND ".$this->where;
+ $sql.= " GROUP BY dm";
+ $sql.= $this->db->order('dm','DESC');
+
+ return $this->_getAverageByMonth($year, $sql);
+ }
+
+ /**
+ * Return nb, total and average
+ *
+ * @return array Array of values
+ */
+ function getAllByYear()
+ {
+ global $user;
+
+ $sql = "SELECT date_format(c.date_valid,'%Y') as year, COUNT(*) as nb, 0 as total, 0 as avg";
+ $sql.= " FROM ".$this->from;
+ if (!$user->rights->societe->client->voir && !$this->socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
+ $sql.= " WHERE ".$this->where;
+ $sql.= " GROUP BY year";
+ $sql.= $this->db->order('year','DESC');
+
+ return $this->_getAllByYear($sql);
+ }
+
+ /**
+ * Return nb, amount of predefined product for year
+ *
+ * @param int $year Year to scan
+ * @return array Array of values
+ */
+ function getAllByProduct($year)
+ {
+ global $user;
+
+ $sql = "SELECT product.ref, COUNT(product.ref) as nb, 0 as total, 0 as avg";
+ $sql.= " FROM ".$this->from.", ".$this->from_line.", ".MAIN_DB_PREFIX."product as product";
+ //if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
+ $sql.= " WHERE ".$this->where;
+ $sql.= " AND c.rowid = tl.fk_fichinter AND tl.fk_product = product.rowid";
+ $sql.= " AND c.date_valid BETWEEN '".$this->db->idate(dol_get_first_day($year,1,false))."' AND '".$this->db->idate(dol_get_last_day($year,12,false))."'";
+ $sql.= " GROUP BY product.ref";
+ $sql.= $this->db->order('nb','DESC');
+ //$sql.= $this->db->plimit(20);
+
+ return $this->_getAllByProduct($sql);
+ }
+
+}
+
diff --git a/htdocs/fichinter/stats/index.php b/htdocs/fichinter/stats/index.php
new file mode 100644
index 00000000000..5cdd7923cbd
--- /dev/null
+++ b/htdocs/fichinter/stats/index.php
@@ -0,0 +1,337 @@
+
+ *
+ * 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 3 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, see .
+ */
+
+/**
+ * \file htdocs/fichinter/stats/index.php
+ * \ingroup fichinter
+ * \brief Page with interventions statistics
+ */
+
+require '../../main.inc.php';
+require_once DOL_DOCUMENT_ROOT.'/fichinter/class/fichinter.class.php';
+require_once DOL_DOCUMENT_ROOT.'/fichinter/class/fichinterstats.class.php';
+require_once DOL_DOCUMENT_ROOT.'/core/class/dolgraph.class.php';
+
+$WIDTH=DolGraph::getDefaultGraphSizeForStats('width');
+$HEIGHT=DolGraph::getDefaultGraphSizeForStats('height');
+
+$mode='customer';
+if ($mode == 'customer' && ! $user->rights->ficheinter->lire) accessforbidden();
+
+$userid=GETPOST('userid','int');
+$socid=GETPOST('socid','int');
+// Security check
+if ($user->societe_id > 0)
+{
+ $action = '';
+ $socid = $user->societe_id;
+}
+
+$nowyear=strftime("%Y", dol_now());
+$year = GETPOST('year')>0?GETPOST('year'):$nowyear;
+//$startyear=$year-2;
+$startyear=$year-1;
+$endyear=$year;
+
+$langs->load('interventions');
+$langs->load('companies');
+$langs->load('other');
+$langs->load('suppliers');
+
+
+/*
+ * View
+ */
+
+$form=new Form($db);
+
+if ($mode == 'customer')
+{
+ $title=$langs->trans("InterventionStatistics");
+ $dir=$conf->ficheinter->dir_temp;
+}
+
+llxHeader('', $title);
+
+print load_fiche_titre($title,'','title_commercial.png');
+
+dol_mkdir($dir);
+
+$stats = new FichinterStats($db, $socid, $mode, ($userid>0?$userid:0));
+
+// Build graphic number of object
+$data = $stats->getNbByMonthWithPrevYear($endyear,$startyear);
+//var_dump($data);
+// $data = array(array('Lib',val1,val2,val3),...)
+
+
+if (!$user->rights->societe->client->voir || $user->societe_id)
+{
+ $filenamenb = $dir.'/interventionsnbinyear-'.$user->id.'-'.$year.'.png';
+ if ($mode == 'customer') $fileurlnb = DOL_URL_ROOT.'/viewimage.php?modulepart=interventionstats&file=interventionsnbinyear-'.$user->id.'-'.$year.'.png';
+}
+else
+{
+ $filenamenb = $dir.'/interventionsnbinyear-'.$year.'.png';
+ if ($mode == 'customer') $fileurlnb = DOL_URL_ROOT.'/viewimage.php?modulepart=interventionstats&file=interventionsnbinyear-'.$year.'.png';
+}
+
+$px1 = new DolGraph();
+$mesg = $px1->isGraphKo();
+if (! $mesg)
+{
+ $px1->SetData($data);
+ $px1->SetPrecisionY(0);
+ $i=$startyear;$legend=array();
+ while ($i <= $endyear)
+ {
+ $legend[]=$i;
+ $i++;
+ }
+ $px1->SetLegend($legend);
+ $px1->SetMaxValue($px1->GetCeilMaxValue());
+ $px1->SetMinValue(min(0,$px1->GetFloorMinValue()));
+ $px1->SetWidth($WIDTH);
+ $px1->SetHeight($HEIGHT);
+ $px1->SetYLabel($langs->trans("NbOfIntervention"));
+ $px1->SetShading(3);
+ $px1->SetHorizTickIncrement(1);
+ $px1->SetPrecisionY(0);
+ $px1->mode='depth';
+ $px1->SetTitle($langs->trans("NumberOfInterventionsByMonth"));
+
+ $px1->draw($filenamenb,$fileurlnb);
+}
+
+// Build graphic amount of object
+$data = $stats->getAmountByMonthWithPrevYear($endyear,$startyear);
+//var_dump($data);
+// $data = array(array('Lib',val1,val2,val3),...)
+
+if (!$user->rights->societe->client->voir || $user->societe_id)
+{
+ $filenameamount = $dir.'/interventionsamountinyear-'.$user->id.'-'.$year.'.png';
+ if ($mode == 'customer') $fileurlamount = DOL_URL_ROOT.'/viewimage.php?modulepart=interventionstats&file=interventionsamountinyear-'.$user->id.'-'.$year.'.png';
+ if ($mode == 'supplier') $fileurlamount = DOL_URL_ROOT.'/viewimage.php?modulepart=interventionstatssupplier&file=interventionsamountinyear-'.$user->id.'-'.$year.'.png';
+}
+else
+{
+ $filenameamount = $dir.'/interventionsamountinyear-'.$year.'.png';
+ if ($mode == 'customer') $fileurlamount = DOL_URL_ROOT.'/viewimage.php?modulepart=interventionstats&file=interventionsamountinyear-'.$year.'.png';
+ if ($mode == 'supplier') $fileurlamount = DOL_URL_ROOT.'/viewimage.php?modulepart=interventionstatssupplier&file=interventionsamountinyear-'.$year.'.png';
+}
+
+$px2 = new DolGraph();
+$mesg = $px2->isGraphKo();
+if (! $mesg)
+{
+ $px2->SetData($data);
+ $i=$startyear;$legend=array();
+ while ($i <= $endyear)
+ {
+ $legend[]=$i;
+ $i++;
+ }
+ $px2->SetLegend($legend);
+ $px2->SetMaxValue($px2->GetCeilMaxValue());
+ $px2->SetMinValue(min(0,$px2->GetFloorMinValue()));
+ $px2->SetWidth($WIDTH);
+ $px2->SetHeight($HEIGHT);
+ $px2->SetYLabel($langs->trans("AmountOfinterventions"));
+ $px2->SetShading(3);
+ $px2->SetHorizTickIncrement(1);
+ $px2->SetPrecisionY(0);
+ $px2->mode='depth';
+ $px2->SetTitle($langs->trans("AmountOfinterventionsByMonthHT"));
+
+ $px2->draw($filenameamount,$fileurlamount);
+}
+
+
+$data = $stats->getAverageByMonthWithPrevYear($endyear, $startyear);
+
+if (!$user->rights->societe->client->voir || $user->societe_id)
+{
+ $filename_avg = $dir.'/interventionsaverage-'.$user->id.'-'.$year.'.png';
+ if ($mode == 'customer') $fileurl_avg = DOL_URL_ROOT.'/viewimage.php?modulepart=interventionstats&file=interventionsaverage-'.$user->id.'-'.$year.'.png';
+ if ($mode == 'supplier') $fileurl_avg = DOL_URL_ROOT.'/viewimage.php?modulepart=interventionstatssupplier&file=interventionsaverage-'.$user->id.'-'.$year.'.png';
+}
+else
+{
+ $filename_avg = $dir.'/interventionsaverage-'.$year.'.png';
+ if ($mode == 'customer') $fileurl_avg = DOL_URL_ROOT.'/viewimage.php?modulepart=interventionstats&file=interventionsaverage-'.$year.'.png';
+ if ($mode == 'supplier') $fileurl_avg = DOL_URL_ROOT.'/viewimage.php?modulepart=interventionstatssupplier&file=interventionsaverage-'.$year.'.png';
+}
+
+$px3 = new DolGraph();
+$mesg = $px3->isGraphKo();
+if (! $mesg)
+{
+ $px3->SetData($data);
+ $i=$startyear;$legend=array();
+ while ($i <= $endyear)
+ {
+ $legend[]=$i;
+ $i++;
+ }
+ $px3->SetLegend($legend);
+ $px3->SetYLabel($langs->trans("AmountAverage"));
+ $px3->SetMaxValue($px3->GetCeilMaxValue());
+ $px3->SetMinValue($px3->GetFloorMinValue());
+ $px3->SetWidth($WIDTH);
+ $px3->SetHeight($HEIGHT);
+ $px3->SetShading(3);
+ $px3->SetHorizTickIncrement(1);
+ $px3->SetPrecisionY(0);
+ $px3->mode='depth';
+ $px3->SetTitle($langs->trans("AmountAverage"));
+
+ $px3->draw($filename_avg,$fileurl_avg);
+}
+
+
+
+// Show array
+$data = $stats->getAllByYear();
+$arrayyears=array();
+foreach($data as $val) {
+ if (! empty($val['year'])) {
+ $arrayyears[$val['year']]=$val['year'];
+ }
+}
+if (! count($arrayyears)) $arrayyears[$nowyear]=$nowyear;
+
+$h=0;
+$head = array();
+$head[$h][0] = DOL_URL_ROOT . '/commande/stats/index.php?mode='.$mode;
+$head[$h][1] = $langs->trans("ByMonthYear");
+$head[$h][2] = 'byyear';
+$h++;
+
+if ($mode == 'customer') $type='order_stats';
+if ($mode == 'supplier') $type='supplier_order_stats';
+
+complete_head_from_modules($conf,$langs,null,$head,$h,$type);
+
+dol_fiche_head($head,'byyear',$langs->trans("Statistics"));
+
+
+print '