Subversion Repositories Applications.gtt

Rev

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

<?php
class GttCtrlActionAdminAbsenceMotif extends aControlleurAction {

        public function __construct(Registre $Registre)
        {
                $Registre->ajouterEspace('AdminAbsenceMotif', 'admin_absence_motif');
                $Registre->setTitre("Administrer les motifs d'absence");
        }

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

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

                // Utilisateur vide par défaut
                $aso_admin_absence_motif['AbsenceMotif'] = clone $AbsenceMotif;
        
        $tab_am = $AbsenceMotif->consulter(AbsenceMotif::GAM_TOUS);
        if ($tab_am) {
                if ($tab_am instanceof AbsenceMotif) {
                        $tab_am = array($tab_am);
                }
                foreach ($tab_am as $am) {
                        if ($am->getIdAbsenceMotif() != 0) {
                                $aso_motif['id'] = $am->getIdAbsenceMotif();
                                $aso_motif['libelle'] = $am->getLibelle();
                                $aso_admin_absence_motif['motifs'][] = $aso_motif;
                        }
                }
        }
        
                // Modification des titres, légendes et bouton
                $aso_admin_absence_motif['form_legend'] = "Ajouter un motif d'abscence";
                $aso_admin_absence_motif['form_bouton_value'] = 'Ajouter';
                $aso_admin_absence_motif['form_bouton_id'] = 'btn_absence_motif_ajouter';
                $aso_admin_absence_motif['form_url'] = 'index.php?action=admin-absence-motif_valider-ajouter';
                
        //echo '<pre>'.print_r($aso_admin_absence_motif, true).'</pre>';
                $this->getRegistre()->ajouterDonnee('admin_absence_motif', $aso_admin_absence_motif);
    }
        
        public function executerEditer()
    {
                // Initialisation de variable
                $aso_admin_absence_motif = array();

                // Récupération d'info en fonction du bouton selectionné
                if (isset($_POST['btn_absence_motif_modifier'])) {
                        // Récupération des données du motif à modifier
                        $AbsenceMotif = new AbsenceMotif();
                        $AbsenceMotif ->consulter(AbsenceMotif::GAM_ID, $_POST['amsu_id'], true);
                        $aso_admin_absence_motif['AbsenceMotif'] = $AbsenceMotif;

                        // Modification des titres, légendes et bouton
                        $aso_admin_absence_motif['form_legend'] = "Modifier un motif d'absence";
                        $aso_admin_absence_motif['form_bouton_value'] = 'Modifier';
                        $aso_admin_absence_motif['form_bouton_id'] = 'btn_absence_motif_modifier';
                        $aso_admin_absence_motif['form_url'] = 'index.php?action=admin-absence-motif_valider-modifier';

                        $this->getRegistre()->ajouterDonnee('admin_absence_motif', $aso_admin_absence_motif);
                } else if (isset($_POST['btn_absence_motif_supprimer'])) {
                        // Action suivante
                $this->setSuivant('ValiderSupprimer');
                }
    }
    
    public function executerValiderAjouter()
    {
                if (isset($_POST['btn_absence_motif_annuler'])) {
                        // Action suivante
                $this->setSuivant('__defaut__');
        } else if (isset($_POST['btn_absence_motif_ajouter'])) {
                        // Vérification du motif à ajouter
                        $bool_modifier = true;
                        $AbsenceMotif = new AbsenceMotif();
                        $AmLibelle = $AbsenceMotif->consulter(AbsenceMotif::GAM_LIBELLE, array($_POST['amaj_libelle']));
                        if ((is_array($AmLibelle) && count($AmLibelle) > 1) || ($AmLibelle instanceof AbsenceMotif && $AmLibelle->getIdAbsenceMotif() != $_POST['amaj_id_absence_motif'])) {
                                $aso_admin_absence_motif['messages'][] = "Un motif d'absence avec le même libellé existe déjà !";
                                $bool_modifier = false;
                        }
                        
                        //$this->verifierChampsCommuns(&$aso_admin_absence_motif, &$bool_modifier);
                        if ($bool_modifier) {
                                // Action suivante
                        $this->setSuivant('ajouter');
                        } else {
                                // Action suivante
                        $this->setSuivant('__defaut__');
                                $this->getRegistre()->ajouterDonnee('admin_absence_motif', $aso_admin_absence_motif);
                        }
                }
    }

        public function executerAjouter()
        {
                // Initialisation de variable
                $aso_admin_motif = array();
                
                // Création de l'objet AbsenceMotif à ajouter
                $AbsenceMotif = new AbsenceMotif();
                $AbsenceMotif->setLibelle($_POST['amaj_libelle']);
                if (!isset($_POST['amaj_mark_cp_diminuer'])) {
                        $_POST['amaj_mark_cp_diminuer'] = 0;
                }
                $AbsenceMotif->setMarkCpDiminuer($_POST['amaj_mark_cp_diminuer']);
                if (!isset($_POST['amaj_mark_hs_diminuer'])) {
                        $_POST['amaj_mark_hs_diminuer'] = 0;
                }
                $AbsenceMotif->setMarkHsDiminuer($_POST['amaj_mark_hs_diminuer']);
        if ($AbsenceMotif->ajouter()) {
                $aso_admin_motif['messages'][] = "Le motif d'absence ${_POST['amaj_libelle']} a été ajouté.";
            }
            
            // Ajout du message d'information
                $this->getRegistre()->ajouterDonnee('admin_absence_motif', $aso_admin_motif);
            
                // Action suivante
        $this->setSuivant('__defaut__');
        }

        public function executerValiderModifier()
    {
        if (isset($_POST['btn_absence_motif_annuler'])) {
                        // Action suivante
                $this->setSuivant('__defaut__');
        } else if (isset($_POST['btn_absence_motif_modifier'])) {
                        // Initialisation de variable
                        $aso_admin_motif = array();
                
                        // Vérification du motif à modifier
                        $bool_modifier = true;
                        $AbsenceMotif = new AbsenceMotif();
                        $AmLibelle = $AbsenceMotif->consulter(AbsenceMotif::GAM_LIBELLE, array($_POST['amaj_libelle']));
                        if ((is_array($AmLibelle) && count($AmLibelle) > 1) || ($AmLibelle instanceof AbsenceMotif && $AmLibelle->getIdAbsenceMotif() != $_POST['amaj_id_absence_motif'])) {
                                $aso_admin_motif['messages'][] = "Un motif d'absence avec le même libellé existe déjà !";
                                $bool_modifier = false;
                        }
                        //$this->verifierChampsCommuns(&$aso_admin_absence_motif, &$bool_modifier);
                        if ($bool_modifier) {
                                // Action suivante
                        $this->setSuivant('modifier');
                        } else {
                                // Action suivante
                                $_POST['btn_motif_absence_modifier'] = 'btn_absence_motif_modifier';
                                $_POST['amsu_id'] = $_POST['amaj_id_absence_motif'];
                        $this->setSuivant('editer');
                                $this->getRegistre()->ajouterDonnee('admin_absence_motif', $aso_admin_motif);
                        }
                }
    }

        public function executerModifier()
        {
                // Initialisation de variable
                $aso_admin_motif = array();
                
                // Création de l'objet AbsenceMotif à modifier
                $AbsenceMotif = new AbsenceMotif();
                $AbsenceMotif->setIdAbsenceMotif($_POST['amaj_id_absence_motif']);
                $AbsenceMotif->setLibelle($_POST['amaj_libelle']);
                if (!isset($_POST['amaj_mark_cp_diminuer'])) {
                        $_POST['amaj_mark_cp_diminuer'] = 0;
                }
                $AbsenceMotif->setMarkCpDiminuer($_POST['amaj_mark_cp_diminuer']);
                if (!isset($_POST['amaj_mark_hs_diminuer'])) {
                        $_POST['amaj_mark_hs_diminuer'] = 0;
                }
                $AbsenceMotif->setMarkHsDiminuer($_POST['amaj_mark_hs_diminuer']);

                if ($AbsenceMotif->modifier()) {
                $aso_admin_motif['messages'][] = "Le motif d'absence ${_POST['amaj_libelle']} a été modifié.";
            }
            
            // Ajout du message d'information
                $this->getRegistre()->ajouterDonnee('admin_absence_motif', $aso_admin_motif);
            
                // Action suivante
        $this->setSuivant('__defaut__');
        }

    public function executerValiderSupprimer()
    {
                // Initialisation des variables
                $aso_admin_motif = array();

                // Vérif des absences
                $Absence = new Absence();
                $bool_existe = $Absence->consulter(Absence::GA_ID_ABSENCE_MOTIF, array($_POST['amsu_id']));
                if ($bool_existe == false) {
                        trigger_error('Absence -> OK', E_USER_NOTICE);
                        // Suppression du motif d'absence
                        $AbsenceMotif = new AbsenceMotif();
                        $AbsenceMotif->setIdAbsenceMotif($_POST['amsu_id']);
                if ($AbsenceMotif->supprimer()) {
                        $aso_admin_motif['messages'][] = "Le motif d'absence a été supprimé.";
                }
                }
                // Message d'erreur si le motif d'absence est utilisé
                if ($bool_existe != false) {
                        $aso_admin_motif['messages'][   ] = "Il n'est pas possible de supprimer un motif d'absence contenant des données!";
                }

                // Enregistrement du message
                $this->getRegistre()->ajouterDonnee('admin_absence_motif', $aso_admin_motif);
                
                // Action suivante
        $this->setSuivant('__defaut__');
    }
    
    
}
?>