You are not logged in.
Pages: 1
Bonjour,
J'utilise le plugin mreporting qui me permet à chaque trimestre de justifier de ma raison d'être aux yeux de mon employeur.
2-3 bugs ce sont glissés dans le code, ce ne sont pas vraiment des bugs mais surtout des résultats éronnés.
Premier bug :
La fonction reportHbarTicketNumberByLocation de la class helpdesk, retourne le Nombre de ticket par lieu des demandeurs si vous avez un ticket qui été ouvert par un groupe et non une personne vous obtenez un résultat avec la notion aucun.
C'est certainement une mauvaise utilisation de GLPI mais le problème est quand même là ou alors la notion "aucun" n'est pas assez explicite et la remplacer par "aucun demandeur" serait plus appropriée.
Deuxieme bug :
La fonction reportSunburstTicketByCategories retourne un résultat éronné :
Une faute c'est glissé dans la requête SQL :
SELECT
glpi_tickets.itilcategories_id as id,
glpi_itilcategories.name as name,
glpi_itilcategories.itilcategories_id as parent,
COUNT(glpi_tickets.id) as count
FROM glpi_tickets
LEFT JOIN glpi_itilcategories
ON glpi_itilcategories.id = glpi_tickets.itilcategories_id
WHERE {$this->sql_date}
AND glpi_tickets.entities_id IN ({$this->where_entities})
AND glpi_tickets.is_deleted = '0'
GROUP BY glpi_itilcategories.id, glpi_tickets.status
ORDER BY glpi_itilcategories.name
Avec glpi_tickets.status remplacé par glpi_itilcategories.name les résultat sont plus parlant.
SELECT
glpi_tickets.itilcategories_id as id,
glpi_itilcategories.name as name,
glpi_itilcategories.itilcategories_id as parent,
COUNT(glpi_tickets.id) as count
FROM glpi_tickets
LEFT JOIN glpi_itilcategories
ON glpi_itilcategories.id = glpi_tickets.itilcategories_id
WHERE {$this->sql_date}
AND glpi_tickets.entities_id IN ({$this->where_entities})
AND glpi_tickets.is_deleted = '0'
GROUP BY glpi_itilcategories.id, glpi_itilcategories.name
ORDER BY glpi_itilcategories.name
Troisième bug : (qui n'en est pas un...)
Je n'ai pu expliquer la fonction reportGlineNbTicket qui fonctionne avec une grosse partie de son code commentée par mes soins.
function reportGlineNbTicket($area = false, $configs = array()) {
global $DB, $LANG;
$datas = array();
$tmp_date = array();
/*Must be defined*/
if (count($configs) == 0) {
$configs = PluginMreportingConfig::initConfigParams(__FUNCTION__, __CLASS__);
}
foreach ($configs as $k => $v) {
$$k=$v;
}
/*End Must be defined*/
//Init delay value
$this->sql_date = PluginMreportingMisc::getSQLDate("glpi_tickets.date",$delay, $randname);
//get dates used in this period
/* $query_date = "SELECT
DISTINCT
DATE_FORMAT(`date`, '%y%m') AS month,
DATE_FORMAT(`date`, '%b%y') AS month_l
FROM `glpi_tickets`
WHERE ".$this->sql_date."
AND `glpi_tickets`.`entities_id` IN (".$this->where_entities.")
AND `glpi_tickets`.`is_deleted` = '0'
ORDER BY `date` ASC";
$res_date = $DB->query($query_date);
$dates = array();
while ($data = $DB->fetch_assoc($res_date)) {
$dates[$data['month']] = $data['month_l'];
}
foreach(array_values($dates) as $id) {
$tmp_date[] = $id;
}
*/
$query = "SELECT DISTINCT
DATE_FORMAT(date, '%y%m') as month,
DATE_FORMAT(date, '%b%y') as month_l,
status,
COUNT(id) as nb
FROM glpi_tickets
WHERE ".$this->sql_date."
AND glpi_tickets.entities_id IN (".$this->where_entities.")
AND glpi_tickets.is_deleted = '0'
GROUP BY month, status
ORDER BY month, status";
$res = $DB->query($query);
while ($data = $DB->fetch_assoc($res)) {
$status =Ticket::getStatus($data['status']);
$datas['labels2'][$data['month_l']] = $data['month_l'];
$datas['datas'][$status][$data['month_l']] = $data['nb'];
}
//merge missing datas (not defined status for a month)
if (isset($datas['datas'])) {
foreach($datas['datas'] as &$data) {
$data = array_merge(array_fill_keys($tmp_date, 0), $data);
}
}
return $datas;
}
Je n'ai pas plus poussé l'investisgation car à l'origne seule la fonction reportSunburstTicketByCategories me posait problème.
GLPI 0.85.1 / Plugins Fusion : 085+1 / Agent : 2.3.14 < Serveur Centos 64 Bits>
Offline
Pages: 1