Example #1
0
  private function get_db_nbre_total_sanctions($liste=Null) {

    $this->sql='SELECT COUNT(san.id_sanction) from s_sanctions san 
        INNER JOIN s_incidents sin  ON  san.id_incident=sin.id_incident
        INNER JOIN s_protagonistes spr ON (spr.id_incident=san.id_incident AND spr.login=san.login)
        WHERE sin.date BETWEEN \''.Gepi_Date::format_date_fr_iso($_SESSION['stats_periodes']['du']).
            '\' AND \''.Gepi_Date::format_date_fr_iso($_SESSION['stats_periodes']['au']).'\'  ';
    if($liste)$this->sql.=" AND sin.id_incident IN ('".parent::make_list_for_request_in($liste)."')";
    //$this->sql.=" OR sin.id_incident is null"; (je pense que les sanctions ne sont pas supprimées)
    return(mysqli_fetch_row($this->res=mysqli_query($GLOBALS["mysqli"], $this->sql)));
  }
  private function traite_evolution_roles($filtres_roles=Null,$filtres_categories=Null,$filtres_mesures=Null,$filtres_sanctions=Null) {
    $this->liste_roles=$this->objet_filtre->get_liste_roles();
    //on cree la liste type
    if($filtres_roles) {
      $this->filtres_roles=$this->objet_filtre->get_roles_selected();
      foreach($this->filtres_roles as $role) {
        $this->liste_type[]=$role;
      }
    } else {
      foreach($this->liste_roles as $role) {
        $this->liste_type[]=$role->qualite;
      }
      $this->liste_type[]='Non défini';
    }

    //On traite mois par mois
    foreach($this->months as $key=>$month) {
      $this->objet_incident= new ClassIncidents();
      $this->data_months=Gepi_Date::get_begin_end_month($key);
      $this->objet_incident->traite_incidents_criteres(Gepi_Date::format_date_fr_iso($this->data_months['du']),Gepi_Date::format_date_fr_iso( $this->data_months['au']), $filtres_categories,$filtres_mesures,$filtres_sanctions,$filtres_roles);
      $this->incidents_mois=$this->objet_incident->get_incidents();
      $this->protagonistes_mois=$this->objet_incident->get_protagonistes();

      foreach( $this->incidents_mois as $selection=>$incidents) {
        //on met les compteurs à 0
        foreach($this->liste_type as $role) {
          $this->evolution[$selection][$role][$key]=0;
          if(!isset($this->totaux_par_type[$selection][$role])) $this->totaux_par_type[$selection][$role]=0;
          $this->totaux_par_mois[$selection][$key]=0;
          if(!isset($this->total_general[$selection])) $this->total_general[$selection]=0;
        }
        //On compte les incidents du mois et le total global
        foreach($incidents as $titre=>$incident) {
          if($titre!='error') {
            if(isset($this->protagonistes_mois[$incident->id_incident])) {
              foreach($this->protagonistes_mois[$incident->id_incident] as $protagoniste) {
                if ($protagoniste->qualite =='')$protagoniste->qualite='Non défini';
                //si le type n'est pas initialisée on le fait
                if(!in_array($protagoniste->qualite,$this->liste_type)) {
                  foreach($this->months as $key2=>$month2) {
                    $this->evolution[$selection][$protagoniste->qualite][$key2]=0;
                  }
                  $this->totaux_par_type[$selection][$protagoniste->qualite]=0;
                  $this->liste_type[]=$protagoniste->qualite;
                }
                if($selection !='L\'Etablissement' && $selection !='Tous les élèves'&& $selection !='Tous les personnels' && !is_null($_SESSION['stats_classes_selected'])) {
                     //on a une classe ou un eleve
                    if($this->is_classe($selection)){
                       if(!$this->is_in_classe($protagoniste->login, $selection)){
                         break;  //le rôle ne correspond pas à un eleve de la classe
                       }
                    }else{
                        //on a un eleve on verifie si le rôle est à lui
                        if($protagoniste->login!=$selection)break;
                    }
                  }
                $this->evolution[$selection][$protagoniste->qualite][$key]+=1;
                $this->totaux_par_type[$selection][$protagoniste->qualite]+=1;
                $this->totaux_par_mois[$selection][$key]+=1;
                $this->total_general[$selection]+=1;
              }
            }
          }
        }
      }
    }
    $this->infos_individus=$this->objet_incident->get_infos_individus();
  }
Example #3
0
 public function top() {
   try {
     $this->teste_selection();
     $this->action_from='top';
     $this->vue->setVar('action_from',$this->action_from);
     $this->affichage_etab=isset($_SESSION['etab_all'])? $_SESSION['etab_all']:null ;
     $this->traite_filtres();
     $this->objet_incidents= new ClassIncidents();
     $this->top_incidents=$this->objet_incidents->get_top_incidents(Gepi_Date::format_date_fr_iso($_SESSION['stats_periodes']['du']),Gepi_Date::format_date_fr_iso($_SESSION['stats_periodes']['au']),$this->filtres_categories,$this->filtres_mesures,$this->filtres_sanctions,$this->filtres_roles);
     $this->vue->setVar('top_incidents', $this->top_incidents);
     $this->top_sanctions=$this->objet_incidents->get_top_sanctions(Gepi_Date::format_date_fr_iso($_SESSION['stats_periodes']['du']),Gepi_Date::format_date_fr_iso($_SESSION['stats_periodes']['au']),$this->filtres_categories,$this->filtres_mesures,$this->filtres_sanctions,$this->filtres_roles);
     $this->vue->setVar('top_sanctions', $this->top_sanctions);
     $this->top_retenues=$this->objet_incidents->get_top_retenues(Gepi_Date::format_date_fr_iso($_SESSION['stats_periodes']['du']),Gepi_Date::format_date_fr_iso($_SESSION['stats_periodes']['au']),$this->filtres_categories,$this->filtres_mesures,$this->filtres_sanctions,$this->filtres_roles);
     $this->vue->setVar('top_retenues', $this->top_retenues);
     $this->top_exclusions=$this->objet_incidents->get_top_exclusions(Gepi_Date::format_date_fr_iso($_SESSION['stats_periodes']['du']),Gepi_Date::format_date_fr_iso($_SESSION['stats_periodes']['au']),$this->filtres_categories,$this->filtres_mesures,$this->filtres_sanctions,$this->filtres_roles);
     $this->vue->setVar('top_exclusions', $this->top_exclusions);
     $this->vue->afficheVue('top.php',$this->vue->getVars());
     //echo"<script type='text/javascript'>inittab();</script>";
   }
   catch (Exception $e) {
     echo 'Exception reçue : ',  $e->getMessage(), "\n";
   }
 }