Subversion Repositories Applications.gtt

Rev

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

Rev Author Line No. Line
48 jpm 1
<?php
2
class GttCtrlActionAdminAbsenceMotif extends aControlleurAction {
3
 
4
	public function __construct(Registre $Registre)
5
	{
6
		$Registre->ajouterEspace('AdminAbsenceMotif', 'admin_absence_motif');
89 jpm 7
		$Registre->setTitre("Administrer les motifs d'absence");
48 jpm 8
	}
9
 
10
	public function executer()
11
    {
12
    	$aso_admin_absence_motif = array();
13
 
103 jpm 14
		// Récupération des catégories
48 jpm 15
		$AbsenceMotif = new AbsenceMotif();
89 jpm 16
 
103 jpm 17
		// Utilisateur vide par défaut
89 jpm 18
		$aso_admin_absence_motif['AbsenceMotif'] = clone $AbsenceMotif;
19
 
48 jpm 20
    	$tab_am = $AbsenceMotif->consulter(AbsenceMotif::GAM_TOUS);
89 jpm 21
    	if ($tab_am) {
22
	    	if ($tab_am instanceof AbsenceMotif) {
23
	    		$tab_am = array($tab_am);
24
	    	}
25
	    	foreach ($tab_am as $am) {
26
	    		if ($am->getIdAbsenceMotif() != 0) {
27
	    			$aso_motif['id'] = $am->getIdAbsenceMotif();
28
	    			$aso_motif['libelle'] = $am->getLibelle();
29
	    			$aso_admin_absence_motif['motifs'][] = $aso_motif;
30
	    		}
31
	    	}
48 jpm 32
    	}
89 jpm 33
 
103 jpm 34
		// Modification des titres, légendes et bouton
89 jpm 35
		$aso_admin_absence_motif['form_legend'] = "Ajouter un motif d'abscence";
36
		$aso_admin_absence_motif['form_bouton_value'] = 'Ajouter';
37
		$aso_admin_absence_motif['form_bouton_id'] = 'btn_absence_motif_ajouter';
38
		$aso_admin_absence_motif['form_url'] = 'index.php?action=admin-absence-motif_valider-ajouter';
39
 
48 jpm 40
    	//echo '<pre>'.print_r($aso_admin_absence_motif, true).'</pre>';
41
		$this->getRegistre()->ajouterDonnee('admin_absence_motif', $aso_admin_absence_motif);
42
    }
89 jpm 43
 
44
	public function executerEditer()
45
    {
46
		// Initialisation de variable
47
		$aso_admin_absence_motif = array();
48 jpm 48
 
103 jpm 49
		// Récupération d'info en fonction du bouton selectionné
89 jpm 50
		if (isset($_POST['btn_absence_motif_modifier'])) {
103 jpm 51
			// Récupération des données du motif à modifier
89 jpm 52
			$AbsenceMotif = new AbsenceMotif();
53
			$AbsenceMotif ->consulter(AbsenceMotif::GAM_ID, $_POST['amsu_id'], true);
54
			$aso_admin_absence_motif['AbsenceMotif'] = $AbsenceMotif;
55
 
103 jpm 56
			// Modification des titres, légendes et bouton
89 jpm 57
			$aso_admin_absence_motif['form_legend'] = "Modifier un motif d'absence";
58
			$aso_admin_absence_motif['form_bouton_value'] = 'Modifier';
59
			$aso_admin_absence_motif['form_bouton_id'] = 'btn_absence_motif_modifier';
60
			$aso_admin_absence_motif['form_url'] = 'index.php?action=admin-absence-motif_valider-modifier';
61
 
62
			$this->getRegistre()->ajouterDonnee('admin_absence_motif', $aso_admin_absence_motif);
63
		} else if (isset($_POST['btn_absence_motif_supprimer'])) {
64
			// Action suivante
65
    		$this->setSuivant('ValiderSupprimer');
66
		}
67
    }
68
 
48 jpm 69
    public function executerValiderAjouter()
70
    {
89 jpm 71
		if (isset($_POST['btn_absence_motif_annuler'])) {
72
			// Action suivante
73
    		$this->setSuivant('__defaut__');
74
    	} else if (isset($_POST['btn_absence_motif_ajouter'])) {
103 jpm 75
			// Vérification du motif à ajouter
89 jpm 76
			$bool_modifier = true;
77
			$AbsenceMotif = new AbsenceMotif();
78
			$AmLibelle = $AbsenceMotif->consulter(AbsenceMotif::GAM_LIBELLE, array($_POST['amaj_libelle']));
79
			if ((is_array($AmLibelle) && count($AmLibelle) > 1) || ($AmLibelle instanceof AbsenceMotif && $AmLibelle->getIdAbsenceMotif() != $_POST['amaj_id_absence_motif'])) {
103 jpm 80
				$aso_admin_absence_motif['messages'][] = "Un motif d'absence avec le même libellé existe déjà !";
89 jpm 81
				$bool_modifier = false;
82
			}
83
 
84
			//$this->verifierChampsCommuns(&$aso_admin_absence_motif, &$bool_modifier);
85
			if ($bool_modifier) {
86
				// Action suivante
87
		    	$this->setSuivant('ajouter');
88
			} else {
89
				// Action suivante
90
		    	$this->setSuivant('__defaut__');
91
				$this->getRegistre()->ajouterDonnee('admin_absence_motif', $aso_admin_absence_motif);
92
			}
93
		}
94
    }
95
 
96
	public function executerAjouter()
97
	{
98
		// Initialisation de variable
99
		$aso_admin_motif = array();
100
 
103 jpm 101
		// Création de l'objet AbsenceMotif à ajouter
48 jpm 102
		$AbsenceMotif = new AbsenceMotif();
89 jpm 103
		$AbsenceMotif->setLibelle($_POST['amaj_libelle']);
104
		if (!isset($_POST['amaj_mark_cp_diminuer'])) {
105
			$_POST['amaj_mark_cp_diminuer'] = 0;
48 jpm 106
		}
89 jpm 107
		$AbsenceMotif->setMarkCpDiminuer($_POST['amaj_mark_cp_diminuer']);
108
		if (!isset($_POST['amaj_mark_hs_diminuer'])) {
109
			$_POST['amaj_mark_hs_diminuer'] = 0;
110
		}
111
		$AbsenceMotif->setMarkHsDiminuer($_POST['amaj_mark_hs_diminuer']);
112
    	if ($AbsenceMotif->ajouter()) {
103 jpm 113
	    	$aso_admin_motif['messages'][] = "Le motif d'absence ${_POST['amaj_libelle']} a été ajouté.";
89 jpm 114
	    }
115
 
116
	    // Ajout du message d'information
117
		$this->getRegistre()->ajouterDonnee('admin_absence_motif', $aso_admin_motif);
118
 
48 jpm 119
		// Action suivante
120
    	$this->setSuivant('__defaut__');
89 jpm 121
	}
122
 
123
	public function executerValiderModifier()
124
    {
125
    	if (isset($_POST['btn_absence_motif_annuler'])) {
126
			// Action suivante
127
    		$this->setSuivant('__defaut__');
128
    	} else if (isset($_POST['btn_absence_motif_modifier'])) {
129
			// Initialisation de variable
130
			$aso_admin_motif = array();
131
 
103 jpm 132
			// Vérification du motif à modifier
89 jpm 133
			$bool_modifier = true;
134
			$AbsenceMotif = new AbsenceMotif();
135
			$AmLibelle = $AbsenceMotif->consulter(AbsenceMotif::GAM_LIBELLE, array($_POST['amaj_libelle']));
136
			if ((is_array($AmLibelle) && count($AmLibelle) > 1) || ($AmLibelle instanceof AbsenceMotif && $AmLibelle->getIdAbsenceMotif() != $_POST['amaj_id_absence_motif'])) {
103 jpm 137
				$aso_admin_motif['messages'][] = "Un motif d'absence avec le même libellé existe déjà !";
89 jpm 138
				$bool_modifier = false;
139
			}
140
			//$this->verifierChampsCommuns(&$aso_admin_absence_motif, &$bool_modifier);
141
			if ($bool_modifier) {
142
				// Action suivante
143
		    	$this->setSuivant('modifier');
144
			} else {
145
				// Action suivante
146
				$_POST['btn_motif_absence_modifier'] = 'btn_absence_motif_modifier';
147
				$_POST['amsu_id'] = $_POST['amaj_id_absence_motif'];
148
		    	$this->setSuivant('editer');
149
				$this->getRegistre()->ajouterDonnee('admin_absence_motif', $aso_admin_motif);
150
			}
151
		}
48 jpm 152
    }
153
 
89 jpm 154
	public function executerModifier()
155
	{
156
		// Initialisation de variable
157
		$aso_admin_motif = array();
158
 
103 jpm 159
		// Création de l'objet AbsenceMotif à modifier
89 jpm 160
		$AbsenceMotif = new AbsenceMotif();
161
		$AbsenceMotif->setIdAbsenceMotif($_POST['amaj_id_absence_motif']);
162
		$AbsenceMotif->setLibelle($_POST['amaj_libelle']);
163
		if (!isset($_POST['amaj_mark_cp_diminuer'])) {
164
			$_POST['amaj_mark_cp_diminuer'] = 0;
165
		}
166
		$AbsenceMotif->setMarkCpDiminuer($_POST['amaj_mark_cp_diminuer']);
167
		if (!isset($_POST['amaj_mark_hs_diminuer'])) {
168
			$_POST['amaj_mark_hs_diminuer'] = 0;
169
		}
170
		$AbsenceMotif->setMarkHsDiminuer($_POST['amaj_mark_hs_diminuer']);
171
 
172
		if ($AbsenceMotif->modifier()) {
103 jpm 173
	    	$aso_admin_motif['messages'][] = "Le motif d'absence ${_POST['amaj_libelle']} a été modifié.";
89 jpm 174
	    }
175
 
176
	    // Ajout du message d'information
177
		$this->getRegistre()->ajouterDonnee('admin_absence_motif', $aso_admin_motif);
178
 
179
		// Action suivante
180
    	$this->setSuivant('__defaut__');
181
	}
182
 
48 jpm 183
    public function executerValiderSupprimer()
184
    {
89 jpm 185
		// Initialisation des variables
186
		$aso_admin_motif = array();
48 jpm 187
 
103 jpm 188
		// Vérif des absences
48 jpm 189
		$Absence = new Absence();
89 jpm 190
		$bool_existe = $Absence->consulter(Absence::GA_ID_ABSENCE_MOTIF, array($_POST['amsu_id']));
191
		if ($bool_existe == false) {
192
			trigger_error('Absence -> OK', E_USER_NOTICE);
193
			// Suppression du motif d'absence
194
			$AbsenceMotif = new AbsenceMotif();
195
			$AbsenceMotif->setIdAbsenceMotif($_POST['amsu_id']);
196
	    	if ($AbsenceMotif->supprimer()) {
103 jpm 197
	    		$aso_admin_motif['messages'][] = "Le motif d'absence a été supprimé.";
48 jpm 198
	    	}
199
		}
103 jpm 200
		// Message d'erreur si le motif d'absence est utilisé
89 jpm 201
		if ($bool_existe != false) {
103 jpm 202
			$aso_admin_motif['messages'][	] = "Il n'est pas possible de supprimer un motif d'absence contenant des données!";
89 jpm 203
		}
48 jpm 204
 
89 jpm 205
		// Enregistrement du message
206
		$this->getRegistre()->ajouterDonnee('admin_absence_motif', $aso_admin_motif);
207
 
48 jpm 208
		// Action suivante
209
    	$this->setSuivant('__defaut__');
210
    }
89 jpm 211
 
212
 
48 jpm 213
}
214
?>