PageRenderTime 26ms CodeModel.GetById 19ms app.highlight 2ms RepoModel.GetById 1ms app.codeStats 0ms

/gespac/gestion_inventaire/form_marques.php

http://gespac.googlecode.com/
PHP | 592 lines | 469 code | 79 blank | 44 comment | 5 complexity | 9c06c41d9cc77cf22a7e48e96f647398 MD5 | raw file
  1<?PHP
  2
  3	#formulaire d'ajout et de modification
  4	#des marques
  5
  6	// lib
  7	require_once ('../fonctions.php');
  8	include_once ('../config/databases.php');
  9	include_once ('../../class/Log.class.php');	
 10	include_once ('../../class/Sql.class.php');		
 11
 12	
 13	$id = $_GET['id'];
 14	
 15	// cnx ŕ la base de données GESPAC
 16	$con_gespac 	= new Sql ($host, $user, $pass, $gespac);
 17
 18	
 19	// *********************************************************************************
 20	//
 21	//			Formulaire vierge de création
 22	//
 23	// *********************************************************************************
 24	
 25	
 26	if ( $id == '-1' ) {
 27	
 28		echo "<h2>Formulaire de création d'une marque</h2><br>";
 29			
 30		
 31		?>
 32		
 33		<script>
 34			// Donne le focus au premier champ du formulaire
 35			$('filt').focus();
 36		</script>
 37
 38		
 39		
 40		
 41		<!--
 42		
 43			GESTION PAR CORRESPONDANCE DE L'INSERTION D'UNE MARQUE
 44		
 45		-->
 46		<div id='creer_modele_par_corr'>
 47			<form>
 48				<center>
 49			
 50				<p>Choisir un modčle : <input name="filt" id="filt" onKeyPress="return disableEnterKey(event)" onkeyup="filter(this, 'corr_table');" type="text"></p>
 51				
 52				
 53				<?PHP
 54				// ici il faut récupérer les lignes DISTINCTES histoire de ne pas surcharger le tableau
 55				$liste_correspondances = $con_gespac->QueryAll ( "SELECT corr_id, corr_marque_ocs, corr_type, corr_stype, corr_marque, corr_modele FROM correspondances GROUP BY corr_modele ORDER BY corr_modele" );
 56				?>
 57				
 58				<table id="corr_table">
 59
 60					<?PHP
 61						foreach ( $liste_correspondances as $corr ) {
 62						
 63							$corr_id 			= $corr['corr_id'];
 64							$corr_marque_ocs 	= $corr['corr_marque_ocs'];
 65							$corr_type 			= $corr['corr_type'];
 66							$corr_stype 		= $corr['corr_stype'];
 67							$corr_marque 		= $corr['corr_marque'];
 68							$corr_modele 		= $corr['corr_modele'];
 69						
 70							echo "<tr style='display:none' class='tr_filter'>";
 71								echo "<td width=200>&nbsp $corr_type</td>";
 72								echo "<td width=200>&nbsp $corr_stype</td>";
 73								echo "<td width=200>&nbsp $corr_marque</td>";
 74								echo "<td width=200>&nbsp $corr_modele</td>";
 75								echo "<td><a href='#' onclick=\"validation_ajout_marque($corr_id, '$corr_marque $corr_modele');\"><img src='img/add.png'> </a></td>";
 76							echo "</tr>";
 77						
 78						}
 79					
 80					?>
 81					
 82				</table>
 83
 84				<br>
 85				<span id='creer_modele' style='display:none;'><a href='#' onclick="affiche_creer_modele();">Créer un nouveau modčle</a></span>
 86				</center>
 87
 88			</FORM>
 89		</div>
 90		
 91		<!--
 92		
 93			GESTION MANUELLE DE L'INSERTION D'UNE MARQUE
 94		
 95		-->
 96		<div id='creer_nouveau_modele' style='display:none'>
 97			<form action="gestion_inventaire/post_marques.php?action=add" method="post" name="post_form" id="post_form">
 98
 99				<center>
100				<table width=500>
101								
102					<tr>
103						<TD>Famille</TD>
104						<TD>
105							<div id="combo_type">
106								<div id="listbox_type" style='display:inline;'>
107									<select name=select_type id=select_type>
108										<option value=''> >>> Selectionnez une valeur <<< </option>
109										<?PHP
110											$liste_des_types = $con_gespac->queryAll ( "SELECT DISTINCT marque_type FROM marques ORDER BY marque_type" );
111											foreach ( $liste_des_types as $record ) {	// on remplit la liste des types
112												$type = $record['marque_type'];
113												echo "<option value='$type'>$type</option>";
114											}	
115										?>
116									</select>
117								</div>
118								<div id="textbox_type" style='display:none;'><input name=text_type id=text_type type="text"></div>
119								<td><a href="#" onclick="change_combo('listbox_type', 'textbox_type', 'select_type', 'text_type');"> <img src='./img/add.png'> </a> </td>
120							</div>
121						</TD>
122					</tr>
123					
124					<tr>
125						<TD>Sous-famille</TD>
126						<TD>
127							<div id="combo_stype">
128								<div id="listbox_stype" style='display:inline;'>
129									<select name=select_stype id=select_stype>
130										<option value=''> >>> Selectionnez une valeur <<< </option>
131										<?PHP
132											$liste_des_stypes = $con_gespac->queryAll ( "SELECT DISTINCT marque_stype FROM marques ORDER BY marque_stype" );
133											foreach ( $liste_des_stypes as $record ) {	// on remplit la liste des types
134												$stype = $record['marque_stype'];
135												echo "<option value='$stype'>$stype</option>";
136											}	
137										?>
138									</select>
139								</div>
140								<div id="textbox_stype" style='display:none;'><input name=text_stype id=text_stype type="text"></div>
141								<td><a href="#" onclick="change_combo('listbox_stype', 'textbox_stype', 'select_stype', 'text_stype');"> <img src='./img/add.png'> </a> </td>
142							</div>
143						</TD>
144					</tr>
145					
146					<tr>
147						<TD>Marque</TD>
148						<TD>
149							<div id="combo_marque">
150								<div id="listbox_marque" style='display:inline;'>
151									<select name=select_marque id=select_marque>
152										<option value=''> >>> Selectionnez une valeur <<< </option>
153										<?PHP
154											$liste_des_marques = $con_gespac->queryAll ( "SELECT DISTINCT marque_marque FROM marques ORDER BY marque_marque" );
155											foreach ( $liste_des_marques as $record ) {	// on remplit la liste des types
156												$marque = $record['marque_marque'];
157												echo "<option value='$marque'>$marque</option>";
158											}	
159										?>
160									</select>
161								</div>
162								<div id="textbox_marque" style='display:none;'><input name=text_marque id=text_marque type="text"></div>
163								<td><a href="#" onclick="change_combo('listbox_marque', 'textbox_marque', 'select_marque', 'text_marque');"> <img src='./img/add.png'> </a> </td>
164							</div>					
165						</TD>
166					</tr>
167					
168					<tr>
169						<TD>Modčle</TD>
170						<TD>
171							<div id="combo_modele">
172								<div id="listbox_modele" style='display:inline;'>
173									<select name=select_modele id=select_modele>
174										<option value=''> >>> Selectionnez une valeur <<< </option>
175										<?PHP	
176											$liste_des_modeles = $con_gespac->queryAll ( "SELECT DISTINCT marque_model FROM marques ORDER BY marque_model" );
177											foreach ( $liste_des_modeles as $record ) {	// on remplit la liste des types
178												$modele = $record['marque_model'];
179												echo "<option value='$modele'>$modele</option>";
180											}	
181										?>
182									</select>
183								</div>
184								<div id="textbox_modele" style='display:none;'><input name=text_modele id=text_modele type="text"></div>
185								<td><a href="#" onclick="change_combo('listbox_modele', 'textbox_modele', 'select_modele', 'text_modele');"> <img src='./img/add.png'> </a> </td>
186							</div>						
187						</TD>
188					</tr>
189
190				</table>
191
192				<br>
193				<input type=submit value='Ajouter une marque'>
194				
195				<br><br>
196				<a href='#' onclick="affiche_liste_modele();">Liste des modčles</a>
197
198				</center>
199
200			</FORM>
201		<div>		
202				
203
204		<?PHP
205	} 
206	
207	
208	// *********************************************************************************
209	//
210	//			formulaire de modification prérempli
211	//
212	// *********************************************************************************
213	
214	
215	else {
216	
217		echo "<h2>Formulaire de modification d'une marque</h2><br>";
218		
219
220		// Requete pour récupérer les données des champs pour la marque ŕ modifier
221
222
223		// stockage des lignes retournées par sql dans un tableau nommé avec originalité "array" (mais "tableau" peut aussi marcher)
224		$marque_a_modifier = $con_gespac->queryRow ( "SELECT marque_id, marque_type, marque_stype, marque_marque, marque_model FROM marques WHERE marque_id=$id" );
225
226		// valeur ŕ affecter aux champs
227		$marque_id 		= $marque_a_modifier[0];
228		$marque_type 	= $marque_a_modifier[1];
229		$marque_stype 	= $marque_a_modifier[2];
230		$marque_marque 	= $marque_a_modifier[3];
231		$marque_modele	= $marque_a_modifier[4];
232		
233		?>
234		
235		<script>
236			// Donne le focus au premier champ du formulaire
237			$('select_type').focus();
238		</script>
239
240		
241		<!--
242		
243			GESTION PAR CORRESPONDANCE DE LA MODIFICATION D'UNE MARQUE
244		
245		-->
246		<DIV id='modif_modele_par_corr' >
247			<form>
248				<center>
249			
250				<p>Choisir un modčle : <input name="filt" id="filt" onKeyPress="return disableEnterKey(event)" onkeyup="filter(this, 'corr_table');" type="text"></p>
251				
252				
253				<?PHP
254				// ici il faut récupérer les lignes DISTINCTES histoire de ne pas surcharger le tableau
255				$liste_correspondances = $con_gespac->queryAll ( "SELECT corr_id, corr_marque_ocs, corr_type, corr_stype, corr_marque, corr_modele FROM correspondances GROUP BY corr_modele ORDER BY corr_modele" );
256				?>
257				
258				<table id="corr_table">
259
260					<?PHP
261						foreach ( $liste_correspondances as $corr ) {
262						
263							$corr_id 			= $corr['corr_id'];
264							$corr_marque_ocs 	= $corr['corr_marque_ocs'];
265							$corr_type 			= $corr['corr_type'];
266							$corr_stype 		= $corr['corr_stype'];
267							$corr_marque 		= $corr['corr_marque'];
268							$corr_modele 		= $corr['corr_modele'];
269						
270							echo "<tr style='display:none' class='tr_filter'>";
271								echo "<td width=200>$corr_type</td>";
272								echo "<td width=200>$corr_stype</td>";
273								echo "<td width=200>$corr_marque</td>";
274								echo "<td width=200>$corr_modele</td>";
275								echo "<td><a href='#' onclick=\"validation_modif_marque($corr_id, '$corr_marque $corr_modele', '$marque_marque $marque_modele', $marque_id);\"><img src='img/write.png'> </a></td>";
276							echo "</tr>";
277						
278						}
279					
280					?>
281					
282				</table>
283
284				<br>
285				<span id='modif_modele' style='display:none;'><a href='#' onclick="affiche_modif_modele();">Modification manuelle du modčle</a></span>
286				</center>
287
288			</FORM>
289		</DIV>
290		
291		
292		
293		
294		<!--
295		
296			GESTION MANUELLE DE LA MODIFICATION D'UNE MARQUE
297		
298		-->
299		<DIV id='modif_manuelle_modele' style='display:none'>
300			
301			<form action="gestion_inventaire/post_marques.php?action=mod" method="post" name="post_form" id="post_form">
302
303				<input type=hidden name=marqueid value=<?PHP echo $id;?> >
304				<center>
305				<table width=500>
306								
307					<tr>
308						<TD>Famille</TD>
309						<TD>
310							<div id="combo_type">
311								<div id="listbox_type" style='display:inline;'>
312									<select name=select_type id=select_type>
313										<?PHP
314											$liste_des_types = $con_gespac->queryAll ( "SELECT DISTINCT marque_type FROM marques" );
315											foreach ( $liste_des_types as $record ) {	// on remplit la liste des types
316												$type = $record['marque_type'];
317												$selected = $marque_type == $type ? "selected" : "";
318												echo "<option $selected value='$type'>$type</option>";
319											}	
320										?>
321									</select>
322								</div>
323								<div id="textbox_type" style='display:none;'><input name=text_type id=text_type type="text"></div>
324								<td><a href="#" onclick="change_combo('listbox_type', 'textbox_type', 'select_type', 'text_type');"> <img src='./img/add.png'> </a> </td>
325							</div>
326						</TD>
327					</tr>
328					
329					<tr>
330						<TD>Sous-famille</TD>
331						<TD>
332							<div id="combo_stype">
333								<div id="listbox_stype" style='display:inline;'>
334									<select name=select_stype id=select_stype>
335										<?PHP
336											$liste_des_stypes = $con_gespac->queryAll ( "SELECT DISTINCT marque_stype FROM marques" );
337											foreach ( $liste_des_stypes as $record ) {	// on remplit la liste des types
338												$stype = $record['marque_stype'];
339												$selected = $marque_stype == $stype ? "selected" : "";
340												echo "<option $selected value='$stype'>$stype</option>";
341											}	
342										?>
343									</select>
344								</div>
345								<div id="textbox_stype" style='display:none;'><input name=text_stype id=text_stype type="text"></div>
346								<td><a href="#" onclick="change_combo('listbox_stype', 'textbox_stype', 'select_stype', 'text_stype');"> <img src='./img/add.png'> </a> </td>
347							</div>
348						</TD>
349					</tr>
350					
351					<tr>
352						<TD>Marque</TD>
353						<TD>
354							<div id="combo_marque">
355								<div id="listbox_marque" style='display:inline;'>
356									<select name=select_marque id=select_marque>
357										<?PHP
358											$liste_des_marques = $con_gespac->queryAll ( "SELECT DISTINCT marque_marque FROM marques" );
359											foreach ( $liste_des_marques as $record ) {	// on remplit la liste des types
360												$marque = $record['marque_marque'];
361												$selected = $marque_marque == $marque ? "selected" : "";
362												echo "<option $selected value='$marque'>$marque</option>";
363											}	
364										?>
365									</select>
366								</div>
367								<div id="textbox_marque" style='display:none;'><input name=text_marque id=text_marque type="text"></div>
368								<td><a href="#" onclick="change_combo('listbox_marque', 'textbox_marque', 'select_marque', 'text_marque');"> <img src='./img/add.png'> </a> </td>
369							</div>					
370						</TD>
371					</tr>
372					
373					<tr>
374						<TD>Modčle</TD>
375						<TD>
376							<div id="combo_modele">
377								<div id="listbox_modele" style='display:inline;'>
378									<select name=select_modele id=select_modele>
379										<?PHP
380											$liste_des_modeles = $con_gespac->queryAll ( "SELECT DISTINCT marque_model FROM marques" );
381											foreach ( $liste_des_modeles as $record ) {	// on remplit la liste des types
382												$modele = $record['marque_model'];
383												$selected = $marque_modele == $modele ? "selected" : "";
384												echo "<option $selected value='$modele'>$modele</option>";
385											}	
386										?>
387									</select>
388								</div>
389								<div id="textbox_modele" style='display:none;'><input name=text_modele id=text_modele type="text"></div>
390								<td><a href="#" onclick="change_combo('listbox_modele', 'textbox_modele', 'select_modele', 'text_modele');"> <img src='./img/add.png'> </a> </td>
391							</div>						
392						</TD>
393					</tr>
394
395				</table>
396
397				<br>
398				<input type=submit value='Modifier cette marque' >
399
400				</center>
401
402			</FORM>
403		<DIV>
404				
405<?PHP
406
407	}	
408?>
409
410
411<script type="text/javascript"> 
412	
413	// masque le combo pour afficher le input et vis-versa
414	function change_combo(select_tr_id, input_tr_id, select_id, input_id) {
415		
416		var inputbox = document.getElementById (input_tr_id);
417		var list = document.getElementById (select_tr_id);
418		
419		var inputvalue = document.getElementById (input_id);
420		var selectvalue = document.getElementById (select_id);
421		
422
423		if (inputbox.style.display == "inline") {
424			inputvalue.value = "";
425			inputbox.style.display = 'none';
426			list.style.display = 'inline';		
427			
428		} else {
429			selectvalue.value = '';
430			inputbox.style.display = 'inline';
431			list.style.display = 'none';
432		}
433	}
434	
435	
436	// *********************************************************************************
437	//
438	//				Fonction de filtrage des tables
439	//
440	// *********************************************************************************
441
442	function filter (phrase, _id){
443
444		var words = phrase.value.toLowerCase().split(" ");
445		var table = document.getElementById(_id);
446		var ele;
447		var compte = 0;
448			
449		if (phrase.value == "") {	// Si la phrase est nulle, on masque toutes les lignes
450			for (var r = 1; r < table.rows.length; r++)	table.rows[r].style.display = "none";	
451		}
452		else {			
453			for (var r = 1; r < table.rows.length; r++){
454				
455				ele = table.rows[r].innerHTML.replace(/<[^>]+>/g,"");
456				var displayStyle = 'none';
457				
458				for (var i = 0; i < words.length; i++) {
459					if (ele.toLowerCase().indexOf(words[i])>=0) {	// la phrase de recherche est reconnue
460						displayStyle = '';
461						compte++;
462					}	
463					else {	// on masque les rows qui ne correspondent pas
464						displayStyle = 'none';
465						break;
466					}
467				}
468				
469				// Affichage on / off en fonction de displayStyle
470				table.rows[r].style.display = displayStyle;	
471				
472				if ($("creer_modele")) {
473					if (compte > 0) {$("creer_modele").setStyle("display", "none");}
474					else {$("creer_modele").setStyle("display", "block");}
475				}
476				
477				if ($("modif_modele")) {
478					if (compte > 0) {$("modif_modele").setStyle("display", "none");}
479					else {$("modif_modele").setStyle("display", "block");}
480				}
481			}
482		}
483	}	
484
485	
486	
487	// *********************************************************************************
488	//
489	//		PERMET DE PASSER A LA CREATION MANUELLE D'une MARQUE
490	//
491	// *********************************************************************************
492	
493	function affiche_creer_modele() {
494		$('creer_nouveau_modele').style.display = "";
495		$('creer_modele_par_corr').style.display = "none";
496		$('creer_modele').style.display = "none";
497	}
498	
499	
500	// *********************************************************************************
501	//
502	//		PERMET DE PASSER A LA LISTE des MODčLES
503	//
504	// *********************************************************************************
505	
506	function affiche_liste_modele() {
507		$('creer_nouveau_modele').style.display = "none";
508		$('creer_modele_par_corr').style.display = "";
509	}
510	
511	
512	// *********************************************************************************
513	//
514	//			AJOUT d'un MARQUE par sa CORRESPONDANCE
515	//
516	// *********************************************************************************
517	
518	function validation_ajout_marque (corr_id, marque) {
519			
520		var valida = confirm('Voulez-vous vraiment ajouter la marque ' + marque + ' ?');
521		
522		// si la réponse est TRUE ==> on lance la page post_marques.php
523		if (valida) {
524			$('targetback').setStyle("display","block"); $('target').setStyle("display","block");
525			$('target').load("gestion_inventaire/post_marques.php?action=add_corr&corr_id=" + corr_id);
526			SexyLightbox.close();
527			window.setTimeout("document.location.href='index.php?page=marques&filter=" + $('filt').value + "'", 1500);
528		}
529	}	
530		
531	
532		
533	// *********************************************************************************
534	//
535	//			MODIF d'une MARQUE par sa CORRESPONDANCE
536	//
537	// *********************************************************************************
538	
539	function validation_modif_marque (corr_id, marque, oldmarque, marque_id) {
540			
541		var valida = confirm('Voulez-vous vraiment modifier la marque ' + oldmarque + ' par la marque ' + marque + ' ?');
542		
543		// si la réponse est TRUE ==> on lance la page post_marques.php
544		if (valida) {
545			$('targetback').setStyle("display","block"); $('target').setStyle("display","block");
546			$('target').load("gestion_inventaire/post_marques.php?action=modif_corr&corr_id=" + corr_id + "&marque_id=" + marque_id);
547			SexyLightbox.close();
548			window.setTimeout("document.location.href='index.php?page=marques&filter=" + $('filt').value + "'", 1500);
549		}
550	}
551	
552	
553	// *********************************************************************************
554	//
555	//		PERMET DE PASSER A LA MODIFICATION MANUELLE D'une MARQUE
556	//
557	// *********************************************************************************
558	
559	function affiche_modif_modele() {
560		$('modif_manuelle_modele').style.display = "";
561		$('modif_modele_par_corr').style.display = "none";
562		$('modif_modele').style.display = "none";
563	}
564	
565	/******************************************
566	*
567	*		AJAX
568	*
569	*******************************************/
570	
571	window.addEvent('domready', function(){
572		
573		$('post_form').addEvent('submit', function(e) {	//	Pour poster un formulaire
574			new Event(e).stop();
575			new Request({
576
577				method: this.method,
578				url: this.action,
579
580				onSuccess: function(responseText, responseXML, filt) {
581					$('targetback').setStyle("display","block"); $('target').setStyle("display","block");
582					$('target').set('html', responseText);
583					SexyLightbox.close();
584					window.setTimeout("document.location.href='index.php?page=marques&filter=" + $('filt').value + "'", 1500);
585				}
586			
587			}).send(this.toQueryString());
588		});			
589	});
590	
591	
592</script>