From b71a8c5d6f3b83f2837f4529cdac87433f1871a8 Mon Sep 17 00:00:00 2001 From: lmarcouiller Date: Mon, 8 Mar 2021 15:26:35 +0100 Subject: [PATCH] Close #15917 : boxes on ticket index --- .../core/boxes/box_nb_ticket_last_x_days.php | 57 +++-- htdocs/core/boxes/box_nb_tickets_type.php | 208 ++++++++++++++++++ htdocs/core/boxes/box_new_vs_close_ticket.php | 181 +++++++++++++++ htdocs/core/boxes/box_ticket_by_severity.php | 9 +- htdocs/core/modules/modTicket.class.php | 4 +- .../install/mysql/migration/13.0.0-14.0.0.sql | 2 + htdocs/langs/en_US/ticket.lang | 6 +- htdocs/ticket/index.php | 201 ++--------------- 8 files changed, 449 insertions(+), 219 deletions(-) create mode 100644 htdocs/core/boxes/box_nb_tickets_type.php create mode 100644 htdocs/core/boxes/box_new_vs_close_ticket.php diff --git a/htdocs/core/boxes/box_nb_ticket_last_x_days.php b/htdocs/core/boxes/box_nb_ticket_last_x_days.php index a963b5ff346..4cf5adba252 100644 --- a/htdocs/core/boxes/box_nb_ticket_last_x_days.php +++ b/htdocs/core/boxes/box_nb_ticket_last_x_days.php @@ -55,7 +55,7 @@ class box_nb_ticket_last_x_days extends ModeleBoxes $langs->load("boxes"); $this->db = $db; - $this->boxlabel = $langs->transnoentitiesnoconv("BoxTicketLastXDayswidget"); + $this->boxlabel = $langs->transnoentitiesnoconv("BoxNumberOfTicketByDay"); } /** @@ -109,38 +109,37 @@ class box_nb_ticket_last_x_days extends ModeleBoxes $minimumdatec = date_sub($today, $intervaltosub); $minimumdatecformated = date('Y-m-d', date_timestamp_get($minimumdatec)); - $sql = "SELECT CAST(t.datec AS DATE) as datec, COUNT(t.datec) as nb"; - $sql .= " FROM " . MAIN_DB_PREFIX . "ticket as t"; - $sql .= " WHERE CAST(t.datec AS DATE) > DATE_SUB(CURRENT_DATE, INTERVAL " . $days . " DAY)"; - $sql .= " GROUP BY CAST(t.datec AS DATE)"; - $resql = $this->db->query($sql); - if ($resql) { - $num = $this->db->num_rows($resql); - $i = 0; - $dataseries = array(); - while ($i < $num) { - $objp = $this->db->fetch_object($resql); - while ($minimumdatecformated < $objp->datec) { + if ($user->rights->ticket->read) { + $sql = "SELECT CAST(t.datec AS DATE) as datec, COUNT(t.datec) as nb"; + $sql .= " FROM " . MAIN_DB_PREFIX . "ticket as t"; + $sql .= " WHERE CAST(t.datec AS DATE) > DATE_SUB(CURRENT_DATE, INTERVAL " . $days . " DAY)"; + $sql .= " GROUP BY CAST(t.datec AS DATE)"; + $resql = $this->db->query($sql); + if ($resql) { + $num = $this->db->num_rows($resql); + $i = 0; + $dataseries = array(); + while ($i < $num) { + $objp = $this->db->fetch_object($resql); + while ($minimumdatecformated < $objp->datec) { + $dataseries[] = array('label' => dol_print_date($minimumdatecformated, 'day'), 'data' => 0); + $minimumdatec = date_add($minimumdatec, $intervaltoadd); + $minimumdatecformated = date('Y-m-d', date_timestamp_get($minimumdatec)); + } + $dataseries[] = array('label' => dol_print_date($objp->datec, 'day'), 'data' => $objp->nb); + $minimumdatec = date_add($minimumdatec, $intervaltoadd); + $minimumdatecformated = date('Y-m-d', date_timestamp_get($minimumdatec)); + $i++; + } + while (count($dataseries) < $days) { $dataseries[] = array('label' => dol_print_date($minimumdatecformated, 'day'), 'data' => 0); $minimumdatec = date_add($minimumdatec, $intervaltoadd); $minimumdatecformated = date('Y-m-d', date_timestamp_get($minimumdatec)); + $i++; } - $dataseries[] = array('label' => dol_print_date($objp->datec, 'day'), 'data' => $objp->nb); - $minimumdatec = date_add($minimumdatec, $intervaltoadd); - $minimumdatecformated = date('Y-m-d', date_timestamp_get($minimumdatec)); - $i++; + } else { + dol_print_error($this->db); } - while (count($dataseries) < $days) { - $dataseries[] = array('label' => dol_print_date($minimumdatecformated, 'day'), 'data' => 0); - $minimumdatec = date_add($minimumdatec, $intervaltoadd); - $minimumdatecformated = date('Y-m-d', date_timestamp_get($minimumdatec)); - $i++; - } - } else { - dol_print_error($this->db); - } - - if ($user->rights->ticket->read) { $stringtoshow = '
'; $stringtoshow .= '