Bonjour,
J'ai commencé a me pencher sur le sujet
J' ai ajouté une fonction dans stat.php qui retourne la date de début et fin de semaine:
Source:
http://stackoverflow.com/questions/4861 ... weeknumber
Code : Tout sélectionner
function getStartAndEndDate($fweek, $fyear)
{
$time = strtotime("1 January $fyear", time());
$day = date('w', $time);
$time += ((7*$fweek)+1-$day)*24*3600;
$return[0] = date('Y-n-j', $time);
$time += 6*24*3600;
$return[1] = date('Y-n-j', $time);
return $return;
}
Ainsi que la variable "semaine"
J'ai ajouté dans ticket_stat.php le menu déroulant semaines (en me basant sur le modèle du menu mois):
Code : Tout sélectionner
<select name="week" onchange=submit()>
<option value="%" <?php if ($_POST['week'] == '%')echo "selected" ?>>Toutes les semaines</option>
<option value="01"<?php if ($_POST['week'] == '1')echo "selected" ?>>Semaine 01</option>
<option value="02"<?php if ($_POST['week'] == '2')echo "selected" ?>>Semaine 02</option>
<option value="03"<?php if ($_POST['week'] == '3')echo "selected" ?>>Semaine 03</option>
...
<option value="52"<?php if ($_POST['week'] == '52')echo "selected" ?>>Semaine 52</option>
Et je me suis attaqué au premier graphe:
Dans line_tickets.php
J'ai d'abord changé les conditions des autres recherches pour qu'elles prennent en compte le nouveau menu (semaine):
Code : Tout sélectionner
//query for year selection
if (($_POST['week'] == '%') && ($_POST['month'] == '%') && ($_POST['year']!=='%'))
Code : Tout sélectionner
//query for month selection
else if (($_POST['week'] == '%') && ($_POST['month']!='%'))
Puis j'ai crée la condition de recherche sur la semaine
Code : Tout sélectionner
// MODIFICATION: recherche sur la semaine
else if ($_POST['week']!='%')
Elle ressemble beaucoup a celle sur le mois, voici les points que j ai modifiés:
Je définis mes deux dates (debut et fin de la semaine):
Code : Tout sélectionner
$dateDebut = getStartAndEndDate($_POST['week'], $_POST['year'])[0];
$dateFin = getStartAndEndDate($_POST['week'], $_POST['year'])[1];
Pour les insérer dans la requete sql :
Code : Tout sélectionner
$query1=$db->query("SELECT day(date_create) as x,count(*) as y FROM `tincidents` WHERE technician LIKE '$_POST[tech]' and criticality like '$_POST[criticality]' and type LIKE '$_POST[type]' and category LIKE '$_POST[category]' and date_create not like '0000-00-00 00:00:00' and (date_create BETWEEN '$dateDebut' AND '$dateFin' ) AND disable='0' group by x ");
$query2=$db->query("SELECT day(date_res) as x,count(*) as y FROM `tincidents` WHERE technician LIKE '$_POST[tech]' and criticality like '$_POST[criticality]' and type LIKE '$_POST[type]' and category LIKE '$_POST[category]' and date_res not like '0000-00-00 00:00:00' and (date_res BETWEEN '$dateDebut' AND '$dateFin') AND disable='0' group by x ");
J'ai encore quelques problèmes pour insérer le numéro de semaine dans le titre du graphe, mais sinon, ca fait le taf.
J'aimerais avoir quand même vos avis avant de modifier les graphes suivants
Si quelqu'un a des critiques, des suggestions ou alors une idée pour mieux faire, je suis preneur!
Merci d'avance
Franck