Subversion Repositories Applications.gtt

Rev

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

<?php
class GttCtrlActionAdminCategorie extends aControlleurAction {

        public function __construct(Registre $Registre)
        {
                $Registre->ajouterEspace('AdminCategorie', 'admin_categorie');
                $Registre->ajouterSquelette('admin_categorie', 'admin_categorie.tpl.html');
                $Registre->setTitre('Administrer les catégories des projets');
        }

        public function executer()
    {
        $aso_admin_categ = array();

                // Récupération des catégories
                $ProjetCategorie = new ProjetCategorie();

                // Ajout de la catégorie par défaut
                $aso_admin_categ['ProjetCategorie'] = $ProjetCategorie;
                
                // Récupération des infos sur les categories existantes 
        $tab_pc = $ProjetCategorie->consulter(ProjetCategorie::GPC_TOUS);
        foreach ($tab_pc as $pc) {
                if ($pc->getIdCategorie() != 0) {
                        $aso_categ['id'] = $pc->getIdCategorie();
                        $aso_categ['libelle'] = $pc->getLibelle();
                        $aso_admin_categ['categories'][] = $aso_categ;
                }
        }
                // Modification des titres, légendes et bouton
                $aso_admin_categ['form_legend'] = 'Ajouter une categorie';
                $aso_admin_categ['form_bouton_value'] = 'Ajouter';
                $aso_admin_categ['form_bouton_id'] = 'btn_categorie_ajouter';
                $aso_admin_categ['form_url'] = 'index.php?action=admin-categorie_valider-ajouter';
                
        //echo '<pre>'.print_r($aso_admin_categ, true).'</pre>';
                $this->getRegistre()->ajouterDonnee('admin_categorie', $aso_admin_categ);
    }

        public function executerEditer()
    {
                // Ajout du statut d'utilisateur
                if (isset($_POST['btn_categorie_modifier'])) {
                        // Récupération des données de la categorie à modifier
                        $ProjetCategorie = new ProjetCategorie();
                        $ProjetCategorie->consulter(ProjetCategorie::GPC_ID, $_POST['casu_id'], true);
                        $aso_admin_categ['ProjetCategorie'] = $ProjetCategorie;

                        // Modification des titres, légendes et bouton
                        $aso_admin_categ['form_legend'] = 'Modifier une categorie';
                        $aso_admin_categ['form_bouton_value'] = 'Modifier';
                        $aso_admin_categ['form_bouton_id'] = 'btn_categorie_modifier';
                        $aso_admin_categ['form_url'] = 'index.php?action=admin-categorie_valider-modifier';

                        $this->getRegistre()->ajouterDonnee('admin_categorie', $aso_admin_categ);
                } else if (isset($_POST['btn_categorie_supprimer'])) {
                        // Action suivante
                $this->setSuivant('supprimer');
                }
    }

        public function executerValiderModifier()
        {
                if (isset($_POST['btn_categorie_annuler'])) {
                        // Action suivante
                $this->setSuivant('__defaut__');
        } else if (isset($_POST['btn_categorie_modifier'])) {
                        $ProjetCategorie = new ProjetCategorie();
                        $ProjetCategorie->setIdCategorie($_POST['caaj_id_categorie']);
                        $ProjetCategorie->setLibelle($_POST['caaj_libelle']);
                        $ProjetCategorie->setAbreviation($_POST['caaj_abreviation']);
                $ProjetCategorie->modifier();
                }
        }
        
    public function executerValiderAjouter()
    {
                // Ajout de la catégorie
                $ProjetCategorie = new ProjetCategorie();
                $bool_existe = $ProjetCategorie->consulter(ProjetCategorie::GPC_LIBELLE, array($_POST['caaj_libelle']));
                if ($bool_existe == false) {
                        $ProjetCategorieMax = $ProjetCategorie->consulter(ProjetCategorie::GPC_ID_MAX);
                        $id_max = $ProjetCategorieMax->getIdCategorie();
                        $ProjetCategorie->setIdCategorie(++$id_max);
                        $ProjetCategorie->setLibelle($_POST['caaj_libelle']);
                        $ProjetCategorie->setAbreviation($_POST['caaj_abreviation']);
                $ProjetCategorie->ajouter();
                } else {
                        $aso_admin_categ['message'] = 'Cette catégorie existe déjà !';
                        $this->getRegistre()->ajouterDonnee('admin_categorie', $aso_admin_categ);
                }

                // Action suivante
        $this->setSuivant('__defaut__');
    }

    public function executerValiderSupprimer()
    {
                // Suppression de la catégorie
                $ProjetCategorie = new ProjetCategorie();
                $ProjetCategorie->setIdCategorie($_POST['casu_id']);
        $ProjetCategorie->supprimer();

                // Mise à jour des projets appartenant à la catégorie
                $Projet = new Projet();
                $tab_p = $Projet->consulter(Projet::GP_CE_CATEGORIE, $_POST['casu_id']);
                if ($tab_p != false) {
                        if ($tab_p && count($tab_p) == 1) {
                                $tab_p = array($tab_p);
                        }
                        foreach ($tab_p as $p) {
                        $Ancien = clone $p;
                        $p->setCeCategorie(0);
                        $p->modifier($Ancien);
                }
                }

                // Action suivante
        $this->setSuivant('__defaut__');
    }
}
?>