Subversion Repositories eFlore/Applications.coel

Rev

Rev 1919 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?php

/**
 * Exemple lancement:
 * /opt/lampp/bin/php -d memory_limit=3500M cli.php desontologisation -a unitebase
 */

class Desontologisation extends Script {

        private $bdd = null;
        private $structures = array();
        private $communes = array();
        private $nonTrouvees = array();

        public function __construct($script_nom, $parametres) {
                parent::__construct($script_nom, $parametres);
                $this->bdd = new Bdd();
        }

        public function executer() {
                try {
                        $cmd = $this->getParametre('a');
                        switch ($cmd) {
                                case "unitebase" :
                                        $this->desontologiserUniteBase(); break;
                                default :
                                        $this->traiterErreur('Erreur : la commande "%s" n\'existe pas!', array($cmd));
                        }
                } catch (Exception $erreur) {
                        $this->traiterErreur($erreur->getMessage());
                }
        }
        
        private function desontologiserUniteBase() {
                $requete = "SELECT ccb_id_collection, ccb_truk_unite_base ".
                                        "FROM coel_collection_botanique ".
                                        "WHERE ccb_truk_unite_base IS NOT NULL AND ccb_truk_unite_base != ''";

                $infos_truk = $this->bdd->recupererTous($requete);
                
                $resultats_fmt = array();
                                
                foreach($infos_truk as $truk) {
                        
                        $id_collection = $truk['ccb_id_collection'];
                        
                        // Séparation de chaque catégorie d'unite de truk
                        $categories_truk = explode(';;', $truk['ccb_truk_unite_base']);
                        // Iteration sur toutes les catégories de truk trouvées
                        foreach($categories_truk as $categorie_truk) {                                          
                                // extraction du numéro d'ontologie de la liste concernée
                                $categorie_truk_unite_infos = explode('##', $categorie_truk);           
                                // Seules les infos de planche d'herbier nous interessent (donc numéro d'ontologie 2270)
                                if($categorie_truk_unite_infos[0] == '2270') {
                                        $truk_unite_infos = $categorie_truk_unite_infos[1];
                                        
                                        $truk_unite_infos = explode('||', $truk_unite_infos);
                                        $nb_planches_herbiers = $truk_unite_infos[0];
                                        $nb_especes =  $truk_unite_infos[5];
                                        
                                        $resultats_fmt[$id_collection] = array(
                                                'brut' => $truk_unite_infos,
                                                'nb_planches_herbier' => $nb_planches_herbiers,
                                                'nb_especes' => $nb_especes
                                        );
                                        
                                        $update = 'UPDATE coel_collection_botanique '.
                                                                'SET '.
                                                                        'cccb_nb_planches_herbiers = "'.$nb_planches_herbiers.'", '.
                                                                        'cccb_nb_especes = "'.$nb_especes.'" '.
                                                                'WHERE ccb_id_collection = "'.$id_collection.'"';
                                        
                                        $this->bdd->executer($update);
                                }
                        }
                }
        }
}
?>