epnadmin-fr
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Epnadmin-fr] CVS: epnadmin dateheure.inc.php,1.6,1.7 header.inc.php,1.


From: Loïc Dayot
Subject: [Epnadmin-fr] CVS: epnadmin dateheure.inc.php,1.6,1.7 header.inc.php,1.11,1.12 reservations.php,1.8,1.9 stats.php,1.8,1.9table_horaire.php,1.8,1.9
Date: Sat, 04 Jan 2003 08:25:03 -0500

Update of /cvsroot/epnadmin/epnadmin
In directory subversions:/tmp/cvs-serv26510/epnadmin

Modified Files:
        dateheure.inc.php header.inc.php reservations.php stats.php 
        table_horaire.php 
Log Message:
Une nouvelle fonctionnalités dans les statistiques.
Corrections de punaises dans dateheure, reservations et table_horaire. C'est 
fou ce qu'il y en a des punaise dans une application en développement.



Index: dateheure.inc.php
===================================================================
RCS file: /cvsroot/epnadmin/epnadmin/dateheure.inc.php,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -r1.6 -r1.7
*** dateheure.inc.php   2 Jan 2003 19:01:49 -0000       1.6
--- dateheure.inc.php   4 Jan 2003 13:24:59 -0000       1.7
***************
*** 96,102 ****
      $signe=substr($heure,0,1);
      $heure=substr($heure,1);
!   }
!   $minutes = 60*date("H", strtotime($heure));
!   $minutes += date("i", strtotime($heure));
    return $signe.$minutes;
  }
--- 96,102 ----
      $signe=substr($heure,0,1);
      $heure=substr($heure,1);
!   }                              
!   $minutes = 60 * $heure;
!   $minutes += substr($heure, -2);
    return $signe.$minutes;
  }

Index: header.inc.php
===================================================================
RCS file: /cvsroot/epnadmin/epnadmin/header.inc.php,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -r1.11 -r1.12
*** header.inc.php      2 Jan 2003 19:01:49 -0000       1.11
--- header.inc.php      4 Jan 2003 13:24:59 -0000       1.12
***************
*** 152,166 ****
    }
    else
!   {
!   // Test si ok
!   $is_ident = "ok";
!   session_register("is_ident");     // identification ok
!   if ($id_structure>"")
!     session_register("id_structure");     // celui qui regarde
!   if ($id_usager>"")
!     session_register("id_usager");    // celui qui est regardé
!   if ($isadmin>"")
!     session_register("isadmin");      // administrateur == "oui"   ou "super"
    }
  } // if $is_ident
  ?>
--- 152,238 ----
    }
    else
!   {   // Test si ok
!               $is_ident = "ok";
!               session_register("is_ident");     // identification ok
! 
!               if ($id_structure>"")
!               {
!                       session_register("id_structure");     // celle qui 
regarde
!                       // Ancienne méthode, il faudrait s'en affranchir, au 
profit des droits
!                       if ($isadmin>"")
!                               session_register("isadmin");      // 
administrateur == "oui"   ou "super"
!               }
! 
!               if ($id_usager>"")
!               {
!                       session_register("id_usager");    // celui qui regarde
!               }
    }
  } // if $is_ident
+ 
+ 
+                       /*      Ici on va définir comme constantes toutes les 
fonctionalités et tous les droits
+                                       de la structure ou de l'usager. Tous 
ces éléments sont tirés des tables
+                                       fonctions et droits.
+ 
+                                       Quatre cas :
+ 
+                                       id_structure==0
+                                               - C'est celui de la totalité de 
l'application qui est définie, qui permet
+                                                       de rendre actif ou non 
des fonctionnalités.
+ 
+                                       id_structure==-1
+                                               - C'est celui des droits des 
usagers, ils sont tous identiques.
+ 
+                                       id_structure==-2
+                                               - C'est celui des droits des 
animateurs, ils sont tous identiques. (Quand ça existera !)
+ 
+                                       id_structure>0
+                                               - Il s'agit des droits des 
structures.
+ 
+                                       Dans la mesure où cet enregistrement ne 
se fait que lors de l'identification,
+                                       aux changements de droits dans la base, 
il faudra penser à se ré-identifier.
+                       */
+ 
+               // Retrouver les fonctionnalités actives de l'application
+                       $req="SELECT fonction, droit
+                                                       FROM droits
+                                                       LEFT JOIN fonctions ON 
id_fonction=fonctions.id
+                                                       WHERE id_structure='0'";
+                       $res = executeRequete($req);
+                       if ($res)
+                         while ($droit = mysql_fetch_object($res))
+                               {
+                                 define(strtoupper("FCT_".$droit->fonction), 
strtoupper($droit->droit));
+                                       
//debug(strtoupper("FCT_".$droit->fonction)."=".constant(strtoupper("FCT_".$droit->fonction)));
+                               }
+                       /*      Dans le cas de la définition des 
fonctionnalités, les constantes sont précédées de FCT_
+                                       Par exemple, si la fonction de gestion 
des usagers est activé, FCT_USAGERS vaudra ACTIF. */
+ 
+                       if ($id_usager)
+                               $nstructure=-1;
+                       elseif ($id_structure)
+                               $nstructure=$id_structure;
+                       else
+                               exit;
+ 
+                       // Enregistrer tous les droits
+                       $req="SELECT fonction, droit
+                                                       FROM droits
+                                                       LEFT JOIN fonctions ON 
id_fonction=fonctions.id
+                                                       WHERE 
id_structure='$nstructure'";
+                       $res = executeRequete($req);
+                       if ($res)
+                         while ($droit = mysql_fetch_object($res))
+                               {
+                                       $variable=$droit->fonction;
+                                 if (defined(strtoupper("FCT_".$variable)) && 
constant(strtoupper("FCT_".$variable))=="ACTIF")
+                                       {
+                                       
define(strtoupper($variable),strtoupper($droit->droit));
+                                               
//debug(strtoupper($droit->fonction)."=".constant(strtoupper($droit->fonction)));
+                                       }
+                               }
+                       /*      Dans le cas des droits de la structure, si la 
structure a le droits de voir (et uniquement de voir)
+                           les informations sur les usagers, on aura : 
USAGERS=="VOIR". */
+ 
  ?>

Index: reservations.php
===================================================================
RCS file: /cvsroot/epnadmin/epnadmin/reservations.php,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -r1.8 -r1.9
*** reservations.php    6 Nov 2002 18:25:07 -0000       1.8
--- reservations.php    4 Jan 2003 13:24:59 -0000       1.9
***************
*** 299,304 ****
    $res = executeRequete($req);
    $mat = mysql_fetch_object($res);
!   $listeusagesimpossibles=$mat->usages;
!   $req = "SELECT * FROM usages WHERE id NOT IN ($listeusagesimpossibles) 
ORDER BY nom";
    $res = executeRequete($req);
    echo "   <td><select name=\"usagev\"
--- 299,307 ----
    $res = executeRequete($req);
    $mat = mysql_fetch_object($res);
! 
!   $req = "SELECT * FROM usages";
!       if ($listeusagesimpossibles=$mat->usages != "") 
!               $req.=" WHERE id NOT IN ($listeusagesimpossibles)";
!       $req.=" ORDER BY nom";
    $res = executeRequete($req);
    echo "   <td><select name=\"usagev\"

Index: stats.php
===================================================================
RCS file: /cvsroot/epnadmin/epnadmin/stats.php,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -r1.8 -r1.9
*** stats.php   2 Jan 2003 19:01:49 -0000       1.8
--- stats.php   4 Jan 2003 13:24:59 -0000       1.9
***************
*** 25,31 ****
  // pour consulter les statistiques.
  include("fonctions.inc.php");
! mysql_connecte();                
  
  include("camembert.inc.php");
  // Si on veut une authentification, commenter les deux lignes précédentes et 
rendre
  // active la ligne suivante.
--- 25,33 ----
  // pour consulter les statistiques.
  include("fonctions.inc.php");
! mysql_connecte();
  
  include("camembert.inc.php");
+ //include("histogramme.inc.php");
+ 
  // Si on veut une authentification, commenter les deux lignes précédentes et 
rendre
  // active la ligne suivante.
***************
*** 40,44 ****
  <?
  $titr = "Statistiques";
! $datemaj="1er décembre 2003";
  
  // On retire l'affichage du menu et du titre.
--- 42,46 ----
  <?
  $titr = "Statistiques";
! $datemaj="3 décembre 2003";
  
  // On retire l'affichage du menu et du titre.
***************
*** 49,53 ****
  echo "<table cellpadding=\"2\" cellspacing=\"0\" align=\"left\">
    <tr>
!     <td colspan=3 align=center><a href=\"index.php\"><img 
src=\"images/logoepnadmin2.png\" width=113 height=113 border=0></a></td>
      <td width=\"5\"></td>
    </tr></table>
--- 51,55 ----
  echo "<table cellpadding=\"2\" cellspacing=\"0\" align=\"left\">
    <tr>
!     <td colspan=3 align=center><a href=\"index.php\"><img src=\"$logo\" 
border=0></a></td>
      <td width=\"5\"></td>
    </tr></table>
***************
*** 65,68 ****
--- 67,75 ----
  }
  
+ function traitu($utp)
+ {
+    return " <img src=\"images/noire.png\" height=\"$utp\" width=\"20\" 
border=\"0\">";
+ }
+ 
  // Date de début
  if($djour==""||$dmois==""||$dannee=="")
***************
*** 123,127 ****
          <input type='radio' name='tab' value='horaires'";
  if ($tab=="horaires") echo " CHECKED";
! echo ">Fréquentation par jours et heures</td>
            </tr>
            <tr>
--- 130,137 ----
          <input type='radio' name='tab' value='horaires'";
  if ($tab=="horaires") echo " CHECKED";
! echo ">Fréquentation par jours et heures<br>
!         <input type='radio' name='tab' value='usagers'";
! if ($tab=="usagers") echo " CHECKED";
! echo ">Répartition de la fréquentation par usager</td>
            </tr>
            <tr>
***************
*** 147,150 ****
--- 157,161 ----
    case 'mois' : echo "Evolution mensuelle"; break;
    case 'horaires' : echo "Fréquentation par jours et heures"; break;
+   case 'usagers' : echo "Répartition de la fréquentation par usagers<br><font 
size='-2'>(Combien d'usagers utilisent beaucoup le lieu)</font>"; break;
    default : break;
  }
***************
*** 871,874 ****
--- 882,1101 ----
      break;
  
+ 
//-----------------------------------------------------------------------------------------/
+ //    REPARTITION FREQUENTATION USAGERS
+ 
//-----------------------------------------------------------------------------------------/
+ 
+   case 'usagers' :  //   USAGERS
+     
+     // Calcul du nombre maxi d'usagers
+     $req2="SELECT id FROM usagers";
+               $res2=executeRequete($req2);
+               $nbmaxusagers=mysql_num_rows($res2);
+ 
+     // Condition interval de date demandé.
+     $where = "(utilisation_postes.date>='$datedeb'
+                AND utilisation_postes.date<='$datefin')";
+     $where.=" AND etat<>'annulée'";
+               // Calcul de l'usager le plus grand utilisateur de l'accès 
individuel
+               $req1="SELECT 
SEC_TO_TIME(SUM(TIME_TO_SEC(fin)-TIME_TO_SEC(debut))) AS nbmaxheure
+                                               FROM utilisation_postes
+                                               WHERE $where
+                                               GROUP BY id_usager
+             ORDER BY nbmaxheure DESC";
+               $res1=executeRequete($req1);
+               $stat1=mysql_fetch_object($res1);
+                       //if ($nbmaxheure<$stat1->nbmaxheure)
+               $nbmaxheure=$stat1->nbmaxheure;
+     // Convertir en nombre de minutes (pour faciliter tous les calculs
+     $nbmaxheure=heure2minute($nbmaxheure);
+ 
+     // Découper en déciles, on contruit le tableau des valeurs
+     $decile=0;
+     $ndecile=1;
+     $ntotdeciles=12;
+ 
+     // Nombre d'usagers n'ayant jamais utilisé les postes individuels
+     // pendant cette période
+     $req2="SELECT COUNT(*) AS nb
+             FROM usagers
+             LEFT JOIN utilisation_postes ON (usagers.id=id_usager)
+                       WHERE (utilisation_postes.id IS NULL)";
+               $res2=executeRequete($req2);
+               $stat2=mysql_fetch_object($res2);
+     $valeurs=0+$stat2->nb;
+ 
+     // Les utilisateurs
+     $req3="SELECT id_usager, 
SEC_TO_TIME(SUM(TIME_TO_SEC(fin)-TIME_TO_SEC(debut))) AS nbmaxheure
+             FROM usagers
+             LEFT JOIN utilisation_postes ON (usagers.id=id_usager)
+                       WHERE $where
+                       GROUP BY usagers.id
+             ORDER BY nbmaxheure";
+               $res3=executeRequete($req3);
+ 
+     // Construction du tableau en même temps
+     $i=0;  // indice des lignes
+     $j=0;  // indicie des colonnes
+     $tableau[$i][$j]["contenu"]="<b>Graphe</b>";
+     $j++;
+     $tableau[$i][$j]["contenu"]="<b>Utilisateur<br>de l'accès<br>individuel 
jusqu'à</b>";
+     $j++;
+     $tableau[$i][$j]["contenu"]="<b>Nombre<br>d'usagers<br>concernés</b>";
+     $j=0; $i++;
+ 
+     echo "<table align='center' border='1'>\n";
+               while ($stat3=mysql_fetch_object($res3))
+     {
+       $nbminute=heure2minute($stat3->nbmaxheure);
+       while ($nbminute>$decile)
+       {  // On passe au décile suivant
+         //$tableau[$i][$j]["param"]= "";
+         
$tableau[$i][$j]["contenu"]=traitu(1+round($valeurs/$nbmaxusagers*50*$ntotdeciles));
+         $tableau[$i][$j]["param"]=" align='center' valign='bottom'";
+         $j++;
+         $tableau[$i][$j]["contenu"]=datetoheure(minute2heure($decile));
+         $tableau[$i][$j]["param"]=" align='right'";
+         $j++;
+         $tableau[$i][$j]["contenu"]=" ".$valeurs;
+         $tableau[$i][$j]["param"]=" align='right'";
+         $j=0; $i++;
+         $n+=$valeurs; // calcul du total
+         $ndecile++;
+         $valeurs=0;
+         $decile+=$nbmaxheure/$ntotdeciles;
+       }
+                       $valeurs++;
+     }
+     
$tableau[$i][$j]["contenu"]=traitu(round($valeurs/$nbmaxusagers*50*$ntotdeciles));
+     $tableau[$i][$j]["param"]=" align='center' valign='bottom'";
+     $j++;
+     $tableau[$i][$j]["contenu"]=datetoheure(minute2heure($decile));
+     $tableau[$i][$j]["param"]=" align='right'";
+     $j++;
+     $tableau[$i][$j]["contenu"]=$valeurs;
+     $tableau[$i][$j]["param"]=" align='right'";
+     $j=0; $i++;
+     $j++;
+     $tableau[$i][$j]["contenu"]="Total";
+     $tableau[$i][$j]["param"]=" align='right'";
+     $j++;
+     $tableau[$i][$j]["contenu"]=$n;
+     $tableau[$i][$j]["param"]=" align='right'";
+ 
+     // Affichage du tableau
+     //$sens="transposé"; //normal ou transposé";
+     Affiche_tableau($tableau, "transposé");
+     unset($tableau);
+     echo "</table>\n";
+ 
+     // Même chose avec les activités collectives
+ 
+     // Condition interval de date demandé.
+     $where = "(sessions.date>='$datedeb'
+                AND sessions.date<='$datefin')
+                AND (sessions.etat<>'annulée')";
+     $where2=" (parcours.etat<>'absent')";
+     $where.=" AND".$where2;
+ 
+ /*
+   SELECT id_usager, SEC_TO_TIME(SUM(TIME_TO_SEC(fin)-TIME_TO_SEC(debut))) AS 
nbmaxheure FROM sessions LEFT JOIN parcours ON (sessions.id=id_session) WHERE 
(sessions.etat<>'annulée') AND (parcours.etat<>'absent') GROUP BY id_usager 
ORDER BY nbmaxheure DESC
+ 
+ */
+     // Calcul de l'usager le plus grand utilisateur de l'accès individuel
+               $req1="SELECT 
SEC_TO_TIME(SUM(TIME_TO_SEC(fin)-TIME_TO_SEC(debut))) AS nbmaxheure
+                                               FROM sessions
+             LEFT JOIN parcours ON (sessions.id=id_session)
+                                               WHERE $where
+                                               GROUP BY id_usager ORDER BY 
nbmaxheure DESC";
+               $res1=executeRequete($req1);
+               $stat1=mysql_fetch_object($res1);
+                       //if ($nbmaxheure<$stat1->nbmaxheure)
+               $nbmaxheure=$stat1->nbmaxheure;
+     //debug($nbmaxheure." - ".$stat1->id_usager);
+     // Convertir en nombre de minutes (pour faciliter tous les calculs
+     $nbmaxheure=heure2minute($nbmaxheure);
+     //debug($nbmaxheure);
+     // Découper en déciles, on contruit le tableau des valeurs
+     $decile=0;
+     $ndecile=1;
+     $ntotdeciles=12;
+ 
+     // Nombre d'usagers n'ayant jamais été en activités collectives
+     // TODO : réparer parce que ça ne marche pas...
+     $req2="SELECT id_usager
+              FROM parcours
+                       WHERE (id_session>0)
+               AND (parcours.etat<>'absent')
+             GROUP BY id_usager";
+               $res2=executeRequete($req2);
+               $stat2=mysql_num_rows($res2);
+     $valeurs=$nbmaxusagers-$stat2; $n=0;
+ 
+     // Les utilisateurs
+     $req3="SELECT id_usager, 
SEC_TO_TIME(SUM(TIME_TO_SEC(fin)-TIME_TO_SEC(debut))) AS nbmaxheure
+             FROM usagers
+             LEFT JOIN parcours ON (usagers.id=id_usager)
+             LEFT JOIN sessions ON (sessions.id=id_session)
+                       WHERE $where
+                       GROUP BY usagers.id
+             ORDER BY nbmaxheure";
+               $res3=executeRequete($req3);
+ 
+     // Construction du tableau en même temps
+     $i=0;  // indice des lignes
+     $j=0;  // indicie des colonnes
+     $tableau[$i][$j]["contenu"]="<b>Graphe</b>";
+     $j++;
+     
$tableau[$i][$j]["contenu"]="<b>Bénéficiaire<br>d'acitivités<br>collectives</b>";
+     $j++;
+     $tableau[$i][$j]["contenu"]="<b>Nombre<br>d'usagers<br>concernés</b>";
+     $j=0; $i++;
+ 
+     echo "<table align='center' border='1'>\n";
+     while ($stat3=mysql_fetch_object($res3))
+     {
+       $nbminute=heure2minute($stat3->nbmaxheure);
+       while ($nbminute>$decile)
+       {  // On passe au décile suivant
+         //$tableau[$i][$j]["param"]= "";
+         
$tableau[$i][$j]["contenu"]=traitu(1+round($valeurs/$nbmaxusagers*50*$ntotdeciles));
+         $tableau[$i][$j]["param"]=" align='center' valign='bottom'";
+         $j++;
+         $tableau[$i][$j]["contenu"]=datetoheure(minute2heure($decile));
+         $tableau[$i][$j]["param"]=" align='right'";
+         $j++;
+         $tableau[$i][$j]["contenu"]=" ".$valeurs;
+         $tableau[$i][$j]["param"]=" align='right'";
+         $j=0; $i++;
+         $n+=$valeurs; // calcul du total
+         $ndecile++;
+         $valeurs=0;
+         $decile+=$nbmaxheure/$ntotdeciles;
+       }
+                       $valeurs++;
+     }
+     
$tableau[$i][$j]["contenu"]=traitu(round($valeurs/$nbmaxusagers*50*$ntotdeciles));
+     $tableau[$i][$j]["param"]=" align='center' valign='bottom'";
+     $j++;
+     $tableau[$i][$j]["contenu"]=datetoheure(minute2heure($decile));
+     $tableau[$i][$j]["param"]=" align='right'";
+     $j++;
+     $tableau[$i][$j]["contenu"]=$valeurs;
+     $tableau[$i][$j]["param"]=" align='right'";
+     $j=0; $i++;
+     $j++;
+     $tableau[$i][$j]["contenu"]="Total";
+     $tableau[$i][$j]["param"]=" align='right'";
+     $j++;
+     $tableau[$i][$j]["contenu"]=$n;
+     $tableau[$i][$j]["param"]=" align='right'";
+ 
+     // Affichage du tableau
+     //$sens="transposé"; //normal ou transposé";
+     Affiche_tableau($tableau, "transposé");
+     unset($tableau);
+     echo "</table>\n";
+ 
+     break;
  }
  

Index: table_horaire.php
===================================================================
RCS file: /cvsroot/epnadmin/epnadmin/table_horaire.php,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -r1.8 -r1.9
*** table_horaire.php   7 Aug 2002 17:31:05 -0000       1.8
--- table_horaire.php   4 Jan 2003 13:24:59 -0000       1.9
***************
*** 71,74 ****
--- 71,75 ----
                       WHERE date=\"$datev\"
                         AND id_localisation=\"$reponse->id_localisation\"
+                                                                               
         AND ouverture=\"accès individuels\"
                       ORDER BY debut";
       $res1 = executeRequete($req1);
***************
*** 140,143 ****
--- 141,145 ----
                        WHERE date=\"$datev\"
                        AND id_localisation=\"$reponse->id_localisation\"
+                                                                               
        AND ouverture=\"accès individuels\"
                        AND debut<=\"$heure\" AND \"$heure\"<fin";
           $res3 = executeRequete($req3);





reply via email to

[Prev in Thread] Current Thread [Next in Thread]