Subversion Repositories Sites.obs-saisons.fr

Rev

Rev 83 | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?php
// declare(encoding='UTF-8');
/**
 * Classe de gestion des epeces.
 *
 * @package     Collection
 * @category    Php 5.2
 * @author      Aurélien PERONNET <aurelien@tela-botanica.org>
 * @copyright   2010 Tela-Botanica
 * @license     http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
 * @license     http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
 * @version     SVN: $Id: Espece.php 152 2010-09-06 16:19:12Z jpm $
 */
class Espece extends aControleur {
   
        private $id_espece_en_cours = null;
   
    public function __construct()  {
        
                parent::__construct();
        $this->initialiser();
    }
    
    public function initialiser() {
        
        if(isset($_GET['$id_espece'])) {
                $this->id_espece_en_cours = $_GET['$id_espece'];
        }
        $this->setNavigation();
    }
    
    private function setNavigation() {          
                $station = new Station();
        $this->setSortie(self::RENDU_NAVIGATION, $station->construireMenuNavigation());
    }
    
    public function executerActionParDefaut() {
        return $this->afficherFormulaireSaisieIndividu();
    }
    
        // +---------------------------------------------------------------------------------------------------------------+
    // METHODES D'AFFICHAGE DE FORMULAIRE 
    public function afficherFormulaireSaisieEspece() {
        
        $donnees = array();
        
        if(!isset($_GET['id_station'])) {
                return;
        }
        
        $donnees['id_station'] = $_GET['id_station'];
                
                $donnees['types'] = $this->renvoyerListeEspeceParTypeMoinsEspecePresentesDansStation($donnees['id_station']);
        
        $formulaire = $this->getVue('formulaires/espece_saisie',$donnees);
        $this->setSortie(self::RENDU_CORPS, $formulaire);   
    }
    
    public function validerFormulaireSaisieEspece() {
        
        $valeurs_verifiees = $this->collecterValeursFormulaireSaisieEspece();

        $individu = new Individu();
        $this->setNavigation();
        $this->setSortie(self::RENDU_CORPS,$individu->getFormulaireSaisieIndividu($valeurs_verifiees));
    
    }
    
    private function renvoyerListeEspeceParTypeMoinsEspecePresentesDansStation($id_station) {
        
        $espece_dao = new EspeceDao();
        
        return $liste_espece_par_type_complete = $espece_dao->getListeEspecesParType();
        $liste_plate_especes_dans_station = $espece_dao->getListeEspecesPourStation($id_station);
        
        $liste_especes_pouvant_etre_ajoutees = array();
        
        foreach($liste_espece_par_type_complete as $type => $especes_pour_type) {
                                
                foreach($liste_plate_especes_dans_station as $indice => $espece_dans_station) {
                        
                        $id_espece = $espece_dans_station['id_espece'];
                        
                        if($this->especeEstPresenteDansTableauIndexeParId($id_espece, $especes_pour_type)) {
                                                                
                                unset($liste_plate_especes_dans_station[$indice]);
                                unset($especes_pour_type['especes'][$id_espece]);
                        }
                }
                
                $liste_especes_pouvant_etre_ajoutees[$type] = $especes_pour_type;
        }
        
        return $liste_especes_pouvant_etre_ajoutee;
                
    }
    
    private function especeEstPresenteDansTableauIndexeParId($id_espece, $tableau_espece) {
        return isset($tableau_espece['especes'][$id_espece]);
    }
    
    // +---------------------------------------------------------------------------------------------------------------+
    // METHODES DE VALIDATION DE FORMULAIRE 
    private function collecterValeursFormulaireSaisieEspece() {
        
        $valeurs_verifiees['id_espece'] = $_POST['id_espece'];
        
        if(!isset($_POST['id_station'])) {
                $valeurs_verifiees['id_station'] =  $_GET['id_station'];
        } else {
                $valeurs_verifiees['id_station'] =  $_POST['id_station'];
        }
            
            //TODO: verifier valeurs plus complètement
            
            return $valeurs_verifiees;
        
    }
    
    public function getListeEvenementPourEspece($id_espece) {
        
        $evenementDao = new EvenementDao();
        $liste_evenements = $evenementDao->getListeEvenementPourEspece($id_espece);
        
        return $liste_evenements;
    }
}
?>