New: When there is no data on pie chart, can set color to an empty

value.
This commit is contained in:
Laurent Destailleur 2013-08-20 11:51:24 +02:00
parent d4499c6eea
commit e460aa335c
7 changed files with 30 additions and 6 deletions

View File

@ -112,12 +112,13 @@ class box_graph_product_distribution extends ModeleBoxes
{ {
include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facturestats.class.php'; include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facturestats.class.php';
$showpointvalue = 1; $showpointvalue = 1; $nocolor = 0;
$stats_invoice = new FactureStats($this->db, 0, $mode, ($userid>0?$userid:0)); $stats_invoice = new FactureStats($this->db, 0, $mode, ($userid>0?$userid:0));
$data1 = $stats_invoice->getAllByProductEntry($year,(GETPOST('action')==$refreshaction?-1:(3600*24))); $data1 = $stats_invoice->getAllByProductEntry($year,(GETPOST('action')==$refreshaction?-1:(3600*24)));
if (empty($data1)) if (empty($data1))
{ {
$showpointvalue=0; $showpointvalue=0;
$nocolor=1;
$data1=array(array(0=>$langs->trans("None"),1=>1)); $data1=array(array(0=>$langs->trans("None"),1=>1));
} }
$filenamenb = $dir."/prodserforinvoice-".$year.".png"; $filenamenb = $dir."/prodserforinvoice-".$year.".png";
@ -129,6 +130,8 @@ class box_graph_product_distribution extends ModeleBoxes
{ {
$px1->SetData($data1); $px1->SetData($data1);
unset($data1); unset($data1);
if ($nocolor) $px1->SetDataColor(array(array(220,220,220)));
$px1->SetPrecisionY(0); $px1->SetPrecisionY(0);
$i=0;$tot=count($data1);$legend=array(); $i=0;$tot=count($data1);$legend=array();
while ($i <= $tot) while ($i <= $tot)
@ -164,12 +167,13 @@ class box_graph_product_distribution extends ModeleBoxes
{ {
include_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propalestats.class.php'; include_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propalestats.class.php';
$showpointvalue = 1; $showpointvalue = 1; $nocolor = 0;
$stats_proposal = new PropaleStats($this->db, 0, $mode, ($userid>0?$userid:0)); $stats_proposal = new PropaleStats($this->db, 0, $mode, ($userid>0?$userid:0));
$data2 = $stats_proposal->getAllByProductEntry($year,(GETPOST('action')==$refreshaction?-1:(3600*24))); $data2 = $stats_proposal->getAllByProductEntry($year,(GETPOST('action')==$refreshaction?-1:(3600*24)));
if (empty($data2)) if (empty($data2))
{ {
$showpointvalue = 0; $showpointvalue = 0;
$nocolor = 1;
$data2=array(array(0=>$langs->trans("None"),1=>1)); $data2=array(array(0=>$langs->trans("None"),1=>1));
} }
@ -182,6 +186,8 @@ class box_graph_product_distribution extends ModeleBoxes
{ {
$px2->SetData($data2); $px2->SetData($data2);
unset($data2); unset($data2);
if ($nocolor) $px2->SetDataColor(array(array(220,220,220)));
$px2->SetPrecisionY(0); $px2->SetPrecisionY(0);
$i=0;$tot=count($data2);$legend=array(); $i=0;$tot=count($data2);$legend=array();
while ($i <= $tot) while ($i <= $tot)
@ -217,12 +223,13 @@ class box_graph_product_distribution extends ModeleBoxes
{ {
include_once DOL_DOCUMENT_ROOT.'/commande/class/commandestats.class.php'; include_once DOL_DOCUMENT_ROOT.'/commande/class/commandestats.class.php';
$showpointvalue = 1; $showpointvalue = 1; $nocolor = 0;
$stats_order = new CommandeStats($this->db, 0, $mode, ($userid>0?$userid:0)); $stats_order = new CommandeStats($this->db, 0, $mode, ($userid>0?$userid:0));
$data3 = $stats_order->getAllByProductEntry($year,(GETPOST('action')==$refreshaction?-1:(3600*24))); $data3 = $stats_order->getAllByProductEntry($year,(GETPOST('action')==$refreshaction?-1:(3600*24)));
if (empty($data3)) if (empty($data3))
{ {
$showpointvalue = 0; $showpointvalue = 0;
$nocolor = 1;
$data3=array(array(0=>$langs->trans("None"),1=>1)); $data3=array(array(0=>$langs->trans("None"),1=>1));
} }
@ -235,6 +242,8 @@ class box_graph_product_distribution extends ModeleBoxes
{ {
$px3->SetData($data3); $px3->SetData($data3);
unset($data3); unset($data3);
if ($nocolor) $px3->SetDataColor(array(array(220,220,220)));
$px3->SetPrecisionY(0); $px3->SetPrecisionY(0);
$i=0;$tot=count($data3);$legend=array(); $i=0;$tot=count($data3);$legend=array();
while ($i <= $tot) while ($i <= $tot)

View File

@ -242,9 +242,19 @@ class DolGraph
function SetData($data) function SetData($data)
{ {
$this->data = $data; $this->data = $data;
//var_dump($this->data);
} }
/**
* Set data
*
* @param array $datacolor Data color array(array(R,G,B),array(R,G,B)...)
* @return void
*/
function SetDataColor($datacolor)
{
$this->datacolor = $datacolor;
}
/** /**
* Set type * Set type
* *
@ -779,7 +789,7 @@ class DolGraph
/** /**
* Build a graph onto disk using JFlot library. Input when calling this method should be: * Build a graph onto disk using JFlot library. Input when calling this method should be:
* $this->data = array(array( 0=>'labelxA', 1=>yA), array('labelxB',yB)); or * $this->data = array(array( 0=>'labelxA', 1=>yA), array('labelxB',yB)); or
* $this->data = array(array('label'=>'labelxA','data'=>yA), array('labelxB',yB)); * $this->data = array(array('label'=>'labelxA','data'=>yA), array('labelxB',yB)); // TODO Syntax not supported. Removed when dol_print_graph_removed
* $this->data = array(array(0=>'labelxA',1=>yA1,...,n=>yAn), array('labelxB',yB1,...yBn)); // when there is n series to show for each x * $this->data = array(array(0=>'labelxA',1=>yA1,...,n=>yAn), array('labelxB',yB1,...yBn)); // when there is n series to show for each x
* $this->legend= array("Val1",...,"Valn"); // list of n series name * $this->legend= array("Val1",...,"Valn"); // list of n series name
* $this->type = array('bars',...'lines'); or array('pie') * $this->type = array('bars',...'lines'); or array('pie')
@ -820,7 +830,7 @@ class DolGraph
$x++; $x++;
} }
// TODO Avoid push by adding generating a long array... // TODO Avoid push by adding generated long array...
if (isset($this->type[$firstlot]) && $this->type[$firstlot] == 'pie') if (isset($this->type[$firstlot]) && $this->type[$firstlot] == 'pie')
{ {
foreach($values as $x => $y) { if (isset($y)) $serie[$i].='d'.$i.'.push({"label":"'.dol_escape_js($legends[$x]).'", "data":'.$y.'});'."\n"; } foreach($values as $x => $y) { if (isset($y)) $serie[$i].='d'.$i.'.push({"label":"'.dol_escape_js($legends[$x]).'", "data":'.$y.'});'."\n"; }

View File

@ -1356,6 +1356,7 @@ tr.box_pair {
.formboxfilter { .formboxfilter {
vertical-align: middle; vertical-align: middle;
margin-bottom: 6px;
} }
.formboxfilter input[type=image] .formboxfilter input[type=image]
{ {

View File

@ -1523,6 +1523,7 @@ tr.box_pair td, tr.box_impair td, td.box_pair, td.box_impair
.formboxfilter { .formboxfilter {
vertical-align: middle; vertical-align: middle;
margin-bottom: 6px;
} }
.formboxfilter input[type=image] .formboxfilter input[type=image]
{ {

View File

@ -1650,6 +1650,7 @@ font-family: <?php print $fontlist ?>;
.formboxfilter { .formboxfilter {
vertical-align: middle; vertical-align: middle;
margin-bottom: 6px;
} }
.formboxfilter input[type=image] .formboxfilter input[type=image]
{ {

View File

@ -1656,6 +1656,7 @@ border: 0px;
.formboxfilter { .formboxfilter {
vertical-align: middle; vertical-align: middle;
margin-bottom: 6px;
} }
.formboxfilter input[type=image] .formboxfilter input[type=image]
{ {

View File

@ -1947,6 +1947,7 @@ tr.box_pair {
.formboxfilter { .formboxfilter {
vertical-align: middle; vertical-align: middle;
margin-bottom: 6px;
} }
.formboxfilter input[type=image] .formboxfilter input[type=image]
{ {