Subversion Repositories Applications.gtt

Rev

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