PageRenderTime 19ms CodeModel.GetById 4ms app.highlight 4ms RepoModel.GetById 1ms app.codeStats 1ms

/gespac/gestion_demandes/form_interventions.php

http://gespac.googlecode.com/
PHP | 365 lines | 251 code | 84 blank | 30 comment | 15 complexity | 1c9a63d25d66d65b007fe4e6ec0aa277 MD5 | raw file
  1<?PHP
  2
  3	#formulaire de cr?ation / modification d'une intervention
  4
  5	include ('../includes.php');	// fichier contenant les fonctions, la config pear, les mdp databases ...
  6
  7	$interv_id = $_GET['id'];
  8
  9?>
 10
 11
 12<!--	DIV target pour Ajax	-->
 13<div id="target"></div>
 14
 15
 16<!--  FONCTIONS JAVASCRIPT -->
 17<script>
 18
 19	// Sur changement du type on affiche ou pas la salle et les pc
 20	function change_type(type) {
 21		
 22		var tr_salle = $("tr_salle");
 23		var tr_pc 	 = $("tr_pc");
 24		var tr_texte = $("tr_texte");
 25		
 26		// Si le type de demande est "installation" ou "reparation"
 27		if ( type == "installation" || type == "reparation") {
 28			tr_salle.style.display = "";
 29			tr_pc.style.display = "none";
 30			tr_texte.style.display = "none";
 31		}
 32		else {	// Si c'est un autre type
 33			tr_salle.style.display = "none";
 34			tr_pc.style.display = "none";
 35			tr_texte.style.display = "";
 36		}
 37		
 38		// Si le type est vide ...
 39		if ( type == "" ) {
 40			tr_salle.style.display = "none";
 41			tr_pc.style.display = "none";
 42			tr_texte.style.display = "none";
 43		}
 44	}
 45
 46	// Sur changement de la salle on affiche le champ pc et on le remplit avec les pc de la salle <- [AMELIORATION] Ouh ! qu'il est laid ce code !
 47	function change_salle(salle_id) {
 48		var tr_pc = $("tr_pc");
 49		var pc_intervention = $("pc_intervention");
 50		tr_pc.style.display = "";
 51		
 52		pc_demande[0] = new Option(">>>S?lectionner un PC<<<","");
 53		pc_demande[1] = new Option("TOUTE LA SALLE",0);
 54		<?PHP
 55		
 56			// adresse de connexion ? la base de donn?es
 57			$dsn_gespac     = 'mysql://'. $user .':' . $pass . '@localhost/' . $gespac;
 58
 59			// cnx ? la base de donn?es GESPAC
 60			$db_gespac 	= & MDB2::factory($dsn_gespac);
 61
 62			// requ?te qui va afficher dans le menu d?roulant les pc de la salle selectionn?e
 63			$sql = "SELECT mat_id, mat_nom FROM materiels WHERE salle_id = 1";
 64			$req_salles_disponibles = $db_gespac->queryAll ( $sql );
 65						
 66			$compteur = 2;	// Commence ? 2 car on ajoute S?lectionner un PC et toute la salle ? 0 et 1
 67			foreach ( $req_salles_disponibles as $record) { 
 68			
 69				$mat_id 	= $record[0];
 70				$mat_nom 	= $record[1];
 71			?>
 72			// On remplit la liste du select en JS
 73			pc_intervention[<?PHP echo $compteur ?>] = new Option("<?PHP echo $mat_nom ?>",<?PHP echo $mat_id ?>);
 74			
 75		<?PHP	$compteur++; }	?>
 76			
 77	}		
 78	
 79	// affichage des anciennes demandes pour ce mat?riel
 80	function affiche_ancienne_inter (pc) {
 81		// a faire en ajax, un peu comme le chainage des CB
 82	}
 83	
 84	// Sur changement du PC on affiche le champ texte 
 85	function change_pc () {
 86		var tr_texte = $("tr_texte");
 87		tr_texte.style.display = "";
 88	}	
 89	
 90	
 91	// serveur AJAX mootools pour le chainage des combobox SALLE - PC
 92	function chainage_salle_pc( select, id, div_id ) {
 93		
 94		if ( select.options[0].value == '' ) {
 95			select.options[0] = null;
 96		}
 97	
 98		var myRequest = new Request(
 99		{
100			url: 'gestion_demandes/chain_salle-mat.php', 
101			method: 'get',
102			evalResponse: true,
103			
104			onRequest: function() {
105				$(div_id).style.display = 'none';
106			},
107
108			onFailure: function(xhr) {
109				window.alert("Erreur !");
110			},
111
112			
113			onComplete: function(response) { 
114				$(div_id).style.display = '';
115				
116			}
117		}
118		).send('value='+select.value+'&id_to_modify='+id+'&div_id='+div_id);
119	}
120
121	
122	// serveur AJAX mootools pour le chainage PC - historique des demandes
123	function chainage_pc_historique( pc_id, div_id ) {
124	
125		var salle_id = $("salle_intervention").value;
126	
127		var myRequest = new Request(
128		{
129			url: 'gestion_demandes/chain_pc-histo_interventions.php', 
130			method: 'get',
131			evalResponse: true,
132			
133			onRequest: function() {
134				$(div_id).style.display = 'none';
135			},
136
137			onFailure: function(xhr) {
138				window.alert("Erreur !");
139			},
140
141			
142			onComplete: function(response) { 
143				$(div_id).style.display = '';
144				
145			}
146		}
147		).send('mat='+pc_id.value+'&salle='+salle_id+'&div_id='+div_id);
148	}
149	
150	
151	// affiche / masque l'historique
152	function montre_masque_historique( ) {
153		var historique = $("historique");
154		
155		if ( historique.style.display == "none" )
156			historique.style.display = "";
157		else
158			historique.style.display = "none";
159	}
160	
161	
162	
163	
164	// v?rouille l'acc?s au bouton submit si les conditions ne sont pas remplies pour la r?ponse ? un dossier
165	function validation_reponse () {
166
167		var bt_submit  	= $("post_reponse");
168		var commentaire	= $("reponse_texte").value;
169
170		if (commentaire == "") {
171			bt_submit.disabled = true;
172		} else {
173			bt_submit.disabled = false;
174		}
175	}
176	
177	
178	/******************************************
179	*
180	*		AJAX
181	*
182	*******************************************/
183	
184	window.addEvent('domready', function(){
185		
186		$('post_form').addEvent('submit', function(e) {	//	Pour poster un formulaire
187			new Event(e).stop();
188			new Request({
189
190				method: this.method,
191				url: this.action,
192
193				onSuccess: function(responseText, responseXML) {
194					$('target').set('html', responseText);
195					$('conteneur').set('load', {method: 'post'});	//On change la methode d'affichage de la page de GET ? POST (en effet, avec GET il r?cup?re la totalit? du tableau get en param?tres et lorsqu'on poste la page formation on d?passe la taille maxi d'une url)
196					window.setTimeout("$('conteneur').load('gestion_demandes/voir_interventions.php');", 1500);
197					SexyLightbox.close();
198				}
199			
200			}).send(this.toQueryString());
201		});			
202	});
203</script>
204
205<style>
206	td { border : 1px solid #ccc; }
207</style>
208
209
210<?PHP
211
212	// adresse de connexion ? la base de donn?es
213	$dsn_gespac     = 'mysql://'. $user .':' . $pass . '@localhost/' . $gespac;
214
215	// cnx ? la base de donn?es GESPAC
216	$db_gespac 	= & MDB2::factory($dsn_gespac);
217
218	
219	
220	
221	/*******************************************************************
222	*
223	*				MODIFICATION INTERVENTION
224	*
225	*******************************************************************/
226		
227		//$req_info_demande = $db_gespac->queryAll ( "SELECT demandes.dem_id, dem_date, dem_text, dem_etat, user_demandeur_id, user_intervenant_id, demandes.mat_id, demandes.salle_id, salle_nom, user_nom, dem_type FROM demandes, salles, users, materiels, interventions WHERE salles.salle_id=demandes.salle_id AND demandes.user_demandeur_id=users.user_id AND interventions.dem_id = demandes.dem_id AND interv_id=$interv_id ORDER BY dem_date" );
228		$req_info_demande = $db_gespac->queryAll ( "SELECT demandes.dem_id, dem_date, dem_text, dem_etat, user_demandeur_id, user_intervenant_id, demandes.mat_id, demandes.salle_id, user_nom, dem_type FROM demandes, users, materiels, interventions WHERE demandes.user_demandeur_id=users.user_id AND interventions.dem_id = demandes.dem_id AND interv_id=$interv_id ORDER BY dem_date" );
229		
230		
231		$dem_id 				= $req_info_demande[0][0];
232		$dem_date 				= $req_info_demande[0][1];
233		$dem_text 				= stripslashes($req_info_demande[0][2]);
234		$dem_etat 				= $req_info_demande[0][3];
235		$user_demandeur_id 		= $req_info_demande[0][4];
236		$user_intervenant_id 	= $req_info_demande[0][5];
237		$mat_id 				= $req_info_demande[0][6];
238		$salle_id 				= $req_info_demande[0][7];
239		$user_demandeur_nom		= stripslashes($req_info_demande[0][8]);
240		$dem_type				= $req_info_demande[0][9];
241
242		
243		echo "<h2>MODIFIER l'intervention du dossier <b>$dem_id</b> cr?? le : $dem_date </h2><br>";
244		
245		
246		// on r?cup?re le nom de la salle
247					if ($salle_id <> 0) {
248						$salle_nom = $db_gespac->queryOne ("SELECT salle_nom FROM salles WHERE salle_id = $salle_id");
249						$salle_nom = stripslashes($salle_nom);
250					} else {
251						$salle_nom = "Pas de salle";
252					}
253					
254					// on change la valeur de mat_nom en fonction de si il y a une salle ou pas
255					if ($salle_nom != "Pas de salle") {
256						// On r?cup?re le nom du mat?riel
257						if ( $mat_id <> 0) {
258							$liste_nom_materiel = $db_gespac->queryAll ( "SELECT mat_nom FROM materiels WHERE mat_id=$mat_id" );
259							$mat_nom = stripslashes($liste_nom_materiel[0][0]);
260						} else {
261							$mat_nom = "TOUS";
262						}
263					} else {
264						$mat_nom = "Non  communiqu?";
265					}
266		
267
268		echo "	<center>
269				<table width=700px>
270					<th>Etat actuel</th>
271					<th>Type</th>
272					<th>Demandeur</th>
273					<th>Salle</th>
274					<th>Mat?riel</th>
275					
276					<tr>
277						<td>$dem_etat</td>
278						<td>$dem_type</td>
279						<td>$user_demandeur_nom</td>
280						<td>$salle_nom</td>
281						<td>$mat_nom</td>
282					</tr>
283
284					<tr>
285						<td colspan=7>$dem_text</td>
286					</tr>
287
288				</table>
289		";
290		
291		// on g?re ici le style:display du div reponse (si le dossier est clotur?, on n'affiche pas le div)
292		$montre_reponse = $dem_etat == "clos" ? "none" : "";
293	?>	
294
295	<br>
296
297	<!-- 	BLOC DE REPONSE A L'INTER	-->	
298
299	
300	<div id="reponse" style="display:<?PHP echo $montre_reponse; ?>">
301		<form action="gestion_demandes/post_interventions.php?action=mod" method="post" name="post_form" id="post_form" onsubmit="$('post_reponse').disabled=true;">
302			
303			<input type=hidden name="inter" value= <?PHP echo $interv_id;?> >
304			<input type=hidden name="dossier" value= <?PHP echo $dem_id;?> >
305			<input type=hidden name="salle" value= <?PHP echo $salle_id;?> >
306			<input type=hidden name="mat" value= <?PHP echo $mat_id;?> >
307			
308			<textarea name="reponse" id="reponse_texte" cols=65 rows=10  onkeyup="validation_reponse();" ></textarea>
309			<br>
310			<!--
311			<label>Changer l'?tat : </label>
312			<select name="etat">
313				<option value=rectifier>	Rectifier l'intervention	</option>
314				<option value=cloturer>		Clore l'intervention		</option>
315			</select>
316			-->
317			<br>
318			<input type=submit value="Clore l'intervention" id="post_reponse" disabled>
319	
320		</form>
321	
322	</div>
323	
324	<br>
325	<small><a href='#' onclick='javascript:montre_masque_historique();'>afficher/masquer l'historique</a></small>
326	<br>
327	
328	
329	<!-- 	BLOC HISTORIQUE DU DOSSIER	-->
330	<div id="historique" style='padding:10px;'>
331		
332		<?PHP 
333			// historique des demandes
334			$historique_demandes = $db_gespac->queryAll ( "SELECT txt_date, txt_texte, user_nom, txt_etat FROM demandes_textes, users WHERE dem_id=$dem_id AND users.user_id=demandes_textes.user_id ORDER BY txt_date DESC;" );
335		
336		echo "
337			<table style='border: 1px solid #ccc;width:700px;'>
338				<th>Date</th>
339				<th>Intervenant</th>
340				<th>Etat</th>
341				<th>Commentaire</th>
342		";
343		
344			foreach ( $historique_demandes as $record ) {
345			
346				$txt_date 	= $record[0];				
347				$txt_texte 	= stripslashes($record[1]);
348				$user_nom 	= stripslashes($record[2]);
349				$txt_etat	= $record[3];
350				
351				echo "
352					<tr>
353						<td>$txt_date</td>
354						<td>$user_nom</td>
355						<td>$txt_etat</td>
356						<td>$txt_texte</td>
357					</tr>";	
358			}
359			
360			echo "</table>";
361		
362		?>
363	
364			
365	</div>