26 require_once DOL_DOCUMENT_ROOT.
"/core/boxes/modules_boxes.php";
34 public $boxcode =
"box_graph_nb_ticket_last_x_days";
35 public $boximg =
"ticket";
37 public $depends = array(
"ticket");
40 public $info_box_head = array();
41 public $info_box_contents = array();
43 public $widgettype =
'graph';
53 $langs->load(
"boxes");
56 $this->boxlabel = $langs->transnoentitiesnoconv(
"BoxNumberOfTicketByDay");
67 global $conf, $user, $langs;
68 $dataseries = array();
71 $badgeStatus0 =
'#cbd3d3';
72 $badgeStatus1 =
'#bc9526';
73 $badgeStatus1b =
'#bc9526';
74 $badgeStatus2 =
'#9c9c26';
75 $badgeStatus3 =
'#bca52b';
76 $badgeStatus4 =
'#25a580';
77 $badgeStatus4b =
'#25a580';
78 $badgeStatus5 =
'#cad2d2';
79 $badgeStatus6 =
'#cad2d2';
80 $badgeStatus7 =
'#baa32b';
81 $badgeStatus8 =
'#993013';
82 $badgeStatus9 =
'#e7f0f0';
83 if (file_exists(DOL_DOCUMENT_ROOT.
'/theme/'.$conf->theme.
'/theme_vars.inc.php')) {
84 include DOL_DOCUMENT_ROOT.
'/theme/'.$conf->theme.
'/theme_vars.inc.php';
89 $param_day =
'DOLUSERCOOKIE_ticket_last_days';
91 if (
GETPOST($param_day) >= 15) {
99 require_once DOL_DOCUMENT_ROOT.
"/ticket/class/ticket.class.php";
100 $text = $langs->trans(
"BoxTicketLastXDays", $days).
' '.
img_picto(
'',
'filter.png',
'id="idsubimgDOLUSERCOOKIE_ticket_last_days" class="linkobject"');
101 $this->info_box_head = array(
110 if ($user->rights->ticket->read) {
111 $sql =
"SELECT CAST(t.datec AS DATE) as datec, COUNT(t.datec) as nb";
112 $sql .=
" FROM ".MAIN_DB_PREFIX.
"ticket as t";
113 $sql .=
" WHERE CAST(t.datec AS DATE) > '".$this->db->idate($minimumdatec).
"'";
114 $sql .=
" GROUP BY CAST(t.datec AS DATE)";
121 $objp = $this->
db->fetch_object(
$resql);
122 while ($minimumdatecformated < $objp->datec) {
123 $dataseries[] = array(
'label' =>
dol_print_date($minimumdatecformated,
'day'),
'data' => 0);
127 $dataseries[] = array(
'label' =>
dol_print_date($objp->datec,
'day'),
'data' => $objp->nb);
132 while (count($dataseries) < $days) {
133 $dataseries[] = array(
'label' =>
dol_print_date($minimumdatecformated,
'day'),
'data' => 0);
141 $stringtoshow =
'<div class="div-table-responsive-no-min">';
142 $stringtoshow .=
'<script type="text/javascript">
143 jQuery(document).ready(function() {
144 jQuery("#idsubimgDOLUSERCOOKIE_ticket_last_days").click(function() {
145 jQuery("#idfilterDOLUSERCOOKIE_ticket_last_days").toggle();
149 $stringtoshow .=
'<div class="center hideobject" id="idfilterDOLUSERCOOKIE_ticket_last_days">';
150 $stringtoshow .=
'<form class="flat formboxfilter" method="POST" action="'.$_SERVER[
"PHP_SELF"].
'">';
151 $stringtoshow .=
'<input type="hidden" name="token" value="'.newToken().
'">';
152 $stringtoshow .=
'<input type="hidden" name="action" value="refresh">';
153 $stringtoshow .=
'<input type="hidden" name="DOL_AUTOSET_COOKIE" value="DOLUSERCOOKIE_ticket_last_days:days">';
154 $stringtoshow .=
' <input class="flat" size="4" type="text" name="'.$param_day.
'" value="'.$days.
'">'.$langs->trans(
"Days");
155 $stringtoshow .=
'<input type="image" alt="'.$langs->trans(
"Refresh").
'" src="'.
img_picto($langs->trans(
"Refresh"),
'refresh.png',
'',
'', 1).
'">';
156 $stringtoshow .=
'</form>';
157 $stringtoshow .=
'</div>';
159 include_once DOL_DOCUMENT_ROOT.
'/core/class/dolgraph.class.php';
162 $mesg = $px1->isGraphKo();
166 foreach ($dataseries as $value) {
167 $data[] = array($value[
'label'], $value[
'data']);
168 $totalnb += $value[
'data'];
170 $px1->SetData($data);
172 $px1->setShowLegend(0);
173 $px1->SetType(array(
'bars'));
174 $px1->SetLegend(array($langs->trans(
'BoxNumberOfTicketByDay')));
175 $px1->SetMaxValue($px1->GetCeilMaxValue());
176 $px1->SetHeight(192);
178 $px1->SetHorizTickIncrement(1);
179 $px1->SetCssPrefix(
"cssboxes");
180 $px1->mode =
'depth';
182 $px1->draw(
'idgraphticketlastxdays');
183 $graphtoshow = $px1->show($totalnb ? 0 : 1);
186 $stringtoshow .= $graphtoshow;
188 $stringtoshow .=
'</div>';
190 $this->info_box_contents[][] = array(
192 'text' => $stringtoshow
195 $this->info_box_contents[0][0] = array(
196 'td' =>
'class="center opacitymedium"',
197 'text' => $stringtoshow.$langs->trans(
"BoxNoTicketLastXDays", $days)
201 $this->info_box_contents[0][0] = array(
202 'td' =>
'class="left"',
203 'text' => $langs->trans(
"ReadPermissionNotAllowed"),
216 public function showBox($head =
null, $contents =
null, $nooutput = 0)
218 return parent::showBox($this->info_box_head, $this->info_box_contents, $nooutput);
__construct($db, $param='')
Constructor.
loadBox($max=5)
Load data into info_box_contents array to show array later.
showBox($head=null, $contents=null, $nooutput=0)
Method to show box.
if(isModEnabled('facture') &&!empty($user->rights->facture->lire)) if((isModEnabled('fournisseur') &&empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) && $user->hasRight("fournisseur", "facture", "lire"))||(isModEnabled('supplier_invoice') && $user->hasRight("supplier_invoice", "lire"))) if(isModEnabled('don') &&!empty($user->rights->don->lire)) if(isModEnabled('tax') &&!empty($user->rights->tax->charges->lire)) if(isModEnabled('facture') &&isModEnabled('commande') && $user->hasRight("commande", "lire") &&empty($conf->global->WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER)) $resql
Social contributions to pay.
dol_time_plus_duree($time, $duration_value, $duration_unit, $ruleforendofmonth=0)
Add a delay to a date.
dol_print_error($db='', $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
dol_strlen($string, $stringencoding='UTF-8')
Make a strlen call.
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs='', $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
dol_now($mode='auto')
Return date for now.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=false, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
$conf db
API class for accounts.