<?php
/*	=======================================================================================
	gesTech : Affichage d'un article
	
	permet d'accéder à la modif de l'article.
	Rédaction en cours ...
  =======================================================================================*/
include "library/DB_fct.inc.php";
include "library/_gesTechDesign.inc.php";
// ========================================================================================
// FONCTIONS LOCALES
// ========================================================================================
// -------------------------------------------------------------------
function _menuRight(){
global $itemKey;
echo "<a href=beArtUpd.php?artCode=$itemKey>Modifier cet article</a>"; 
}
// -------------------------------------------------------------------
function _isInTab($tab, $testValue){
	// attention, petit pbm si l'indice = 0
	$indice=-1;
	if(is_array($tab))
	foreach($tab as $key => $val)
		if ($val==$testValue){
			$indice=$key;
			break;
		}
	return $indice;
}
// -------------------------------------------------------------------
function updArt(){
}
// ========================================================================================
// MAIN()
// ========================================================================================
$userId="";
$pageName="erpDspArt.php";
$headTitle="Liste des Articles";
$contentTitle="Gestion de production";

$dspPage="erpDspArt.php";
$updPage="erpDspArt.php";
$delPage="erpDspArt.php";
$addPage="erpDspArt.php";

// Récup des paramètres
// Récup de l'enregistrement, vérif s'il n'y a pas d'erreur de code.
(isset($_REQUEST['artCode']))?$recordKey=$_REQUEST['artCode']:$recordKey=""; // 

(isset($_REQUEST['action']))?$action=$_REQUEST['action']:$action="dsp"; // 

$connexion=DB_connecter(); 
//------------------------------------------------------------------------------------------------------------
// PARTIE A : Traitement de l'item choisi
//------------------------------------------------------------------------------------------------------------
//if ($action=="dsp" || $action=="del" || $action=="upd"){ // affichage ou suppression ou mise à jour : on recherche l'existant
	// récup des données courantes	
	$requete="Select article.artCode, artDesc, artPrixHT, stockInit, stockDate, article.artTypeCode, article.artCatCode, artTypeDesc
		FROM article, arttype 
		WHERE article.artTypeCode=arttype.artTypeCode 
		AND artCode='$recordKey' ;";
	//echo mysql_error();
	if (!$t_record=DB_chercherEnreg($requete, $connexion)){
		echo "Erreur de paramètre ($recordKey) ; <a href=\"javascript:history.back()\">Retour page précédente !</a>";
		_bodyRight();
		_footer(); // pied de page
		exit(0);
	}
	$itemKey=$t_record['artCode'];
//}else{
//	$itemKey="";
//}

//------------------------------------------------------------------------------------------------------------
// PARTIE B : Traitement des données techniques de l'article
//------------------------------------------------------------------------------------------------------------
// on va faire simple pour ces différents modes : il n'y a pas de soustraitance (produits F ou S achetés) il n'y a pas de produit non fini vendu (kit, sous-ensemble) 
// mais un PF peut figurer dans la Nom d'un autre PF.
// Attente = of en prod, cde fournisseur.
// Demande = Cdes Client ou besoins pour OF
// Indus = Données industrielles : Gammes et Nomenclatures
/* old Solution
$dspAttente=$dspDemande=$dspIndus=false;
if ($t_record['artTypeCode']=='M'){ // matière première (achetee, non vendue)
	$dspAttente=$dspDemande=true;
}elseif ($t_record['artTypeCode']=='S'){ // semi-fini (non vendu, peut être acheté - soustraité)
	$dspAttente=$dspDemande=$dspIndus=true;
}elseif ($t_record['artTypeCode']=='F'){ // produit fini (ou semi-fini vendu, non acheté)
	$dspAttente=$dspDemande=$dspIndus=true;
}elseif ($t_record['artTypeCode']=='N'){ // négoce (non transformé)
	$dspAttente=$dspDemande=true;
}
*/
// voir combien de ligne il y a pour  : ressources (Cde fournisseur , OF à faire, gamme fille , nomenclature fille) , besoins (nomenclature parent, OF à consommer, Cde client)
// besoins réels ----------------------------------
	// bcc : Besoins de commandes client en cours
	$selectBesoinCdeClient="Select * from LigneCdeClientArt, CdeClient 
	where LigneCdeClientArt.cdeNum=CdeClient.cdeNum
	and artCode='$itemKey' ;"; // and cdeType='Vente' ;"; // besoins client
	$bcc_id=DB_ouvrirRequete($selectBesoinCdeClient, $connexion);
	$bccNbRow=mysql_num_rows($bcc_id);
	
	// bof : besoins pour ordres de fabrication
/* old requete. 
J'ai ajouté un champ spécial dans opNomenclature pour contenir la qté théorique qui va être consommée. 
C'est un champ qui peut être calculé mais c'est + simple de le faire lors de la création de l'OF.
	$selectBesoinOF="
	Select ordFab.ofNum, opNomenclature.opNum, opGamme.opDateFin, 
		(ordFab.ofQte*artNomenclature.compQte) as ofCompQte 
	from ...
*/
	$selectBesoinOF="Select ofNomenclature.ofNum, ofNomenclature.opNum, ofGamme.opDateFin, ofQteTheo
	from ofNomenclature, ofGamme
	where ofNomenclature.ofNum=ofGamme.ofNum
	and ofNomenclature.opNum=ofGamme.opNum
	and ofComp_artCode='$itemKey' ;"; // besoins issus des OF
	$bof_id=DB_ouvrirRequete($selectBesoinOF, $connexion);
	$bofNbRow=mysql_num_rows($bof_id);
	
// ressources réelles ---------------------------------------------------------------------------------------------------
	// rcf : ressource commandes fournisseur
	$selectRessourceCdeFou="Select * from LigneCdeFourArt where artCode='$itemKey' ;"; // and cdeType='Achat' ;"; // commandes fournisseur
	$rcf_id=DB_ouvrirRequete($selectRessourceCdeFou, $connexion);
	$rcfNbRow=mysql_num_rows($rcf_id);
	
	// ressource ordre de fabrication en cours
	$selectRessourceOF="Select * from OrdFab where artCode='$itemKey' ;"; // ordres de fabrication
	$rof_id=DB_ouvrirRequete($selectRessourceOF, $connexion);
	$rofNbRow=mysql_num_rows($rof_id);

// Données techniques théoriques gamme et nomenclature -----------------------------------------------------
	// bno : Besoin issus des nomenclatures (besoins en tant que composant) = OF en cours
	$selectBesoinNom="Select * from artNomenclature, article 
	Where artNomenclature.comp_artCode=article.artCode
	and comp_artCode='$itemKey' ;";  // besoin théorique
	$bno_id=DB_ouvrirRequete($selectBesoinNom, $connexion);
	$bnoNbRow=mysql_num_rows($bno_id);
	
	// rga : Gamme (Ressources)
	$selectRessourceGamm="Select * from artGamme where artCode='$itemKey' ;";
	$rga_id=DB_ouvrirRequete($selectRessourceGamm, $connexion);
	$rgaNbRow=mysql_num_rows($rga_id);

	// rno : Ressources issus des nomenclature (ressource, en tant que composé)
	$selectRessourceNom="Select * from artNomenclature
	where artNomenclature.artCode='$itemKey' ;";
	$rno_id=DB_ouvrirRequete($selectRessourceNom, $connexion);
	$rnoNbRow=mysql_num_rows($rno_id);

//========================================================================
// AFFICHAGE
//========================================================================
_pageHeader($userId);	// entête de page et menu
//------------------------------------------------------------------------------------------------------------
// PARTIE A : Affichage de l'item choisi
//------------------------------------------------------------------------------------------------------------
// a) afficher le formulaire de modification de l'article
//	$requete="Select article.artCode, artDesc, artPrixHT, stockInit, stockDate, article.artTypeCode, article.artCatCode, artTypeDesc
// -------------------------------------------------------------------
echo "<table align=center border=1>\n";
echo "<caption>Afficher un article</caption>";
echo "<tr>";
echo "<tr><td align=right>Référence </td><td align=left >".$t_record['artCode']."</td></tr>\n";
echo "<tr><td align=right>Description </td><td align=left >".$t_record['artDesc']."</td></tr>\n";
echo "<tr><td align=right>Prix HT</td><td align=left >".$t_record['artPrixHT']."</td></tr>\n";
echo "<tr><td align=right>Stock initial</td><td align=left >".$t_record['stockInit']."</td></tr>\n";
echo "<tr><td align=right>Date du stock initial</td><td align=left >".COM_YMDtoDMY($t_record['stockDate'])."</td></tr>\n";
echo "<tr><td align=right>Code type article </td><td align=left >";
		$arttype_sql="SELECT * FROM arttype WHERE artTypCode='".$t_record['artTypeCode']."' ORDER BY artTypeDesc ;";
		$arttype_id=DB_chercherEnreg($arttype_sql, $connexion);
echo "</td></tr>\n";
echo "<tr><td align=right>Code Catégorie </td><td align=left >".$t_record['artCatCode']."</td></tr>\n";
echo "</table>\n";
echo "<br>";

//------------------------------------------------------------------------------------------------------------
// PARTIE B : Affichage de des données techniques
//------------------------------------------------------------------------------------------------------------
$action="dsp";
// Déterminer la div à mettre en affichage
$dspBesoins="divOn";		// défaut : afficher
$dspRessources="divOn";		// défaut : masqué
$dspIndus  ="divDsp";		// défaut : masqué
if ($bofNbRow<=0 && $bccNbRow<=0) { // aucun besoin (ord fab ou cde client)
	$dspBesoins="divOff";
	$dspRessources="divDsp";	// défaut
}
if ($rofNbRow<=0 && $rcfNbRow<=0) { // aucune ressource (ord fab ou cde four)
	$dspRessources="divOff";	// défaut
	if ($dspBesoins!="divDsp")
		$dspIndus="divDsp";
}

if ($rgaNbRow<=0 && $rnoNbRow<=0 && $bnoNbRow<=0) { // aucune donnée indus (gamme ou nomenclature)
	$dspIndus="divOff";	// défaut
}

?>
<script type="text/javascript">
function calque(objet, cible) { // On déclare la fonction affiche qui prend en param l'objet qui alppelle et l'id de la cible à modifier		image1a.jpg
	var divReport = document.getElementById('report'); // On récupère le div ciblé grâce à l'id
	var t_tabDiv1 = new Array('besoins', 'ressources', 'indus');
	for (var i=0 ; i< t_tabDiv1.length ; i++){
		var div=document.getElementById(t_tabDiv1[i]);
		if (div.style.display!="none"){
			divReport.innerHTML = 'tit' + t_tabDiv1[i]; // ... on le masque...
			var divTitre = document.getElementById('tit' + t_tabDiv1[i]); // On récupère le div ciblé grâce à l'id
			divTitre.class = "tit_divOn"; // ... on le masque...
			divTitre.style.background = "#449"; // ... on le masque...
			divTitre.style.color = "#fff;"; // ... on le masque...
		}
		div.style.display="none";
	
	}
	
	//var obj = document.getElementById(objet); // On récupère le div objet grâce à l'id
	var div = document.getElementById(cible); // On récupère le div ciblé grâce à l'id
	// var hiddenFieldCalque=document.getElementById('calque'); // je voulais conserver le type de calque à chaque changement de calque demandé
	//if(div.style.display=="none") { // Si le div est masqué...
	if(div.class = "divOn"){ // ... on l'affiche...
		objet.class = "tit_divDsp"; // ... on l'affiche...
		objet.style.background = "#ffe"; // ... on le masque...
		objet.style.color = "#449;"; // ... on le masque...
		div.class = "divDsp"; // ... on l'affiche...
		div.style.display = "block"; // ... on l'affiche...
		//objet.style.background = "url(../segami/menuAticleBg1.gif) repeat bottom center"; // ... on l'affiche...
		//objet.innerHTML = "-"; // ... et on change le contenu du bouton.
		//hiddenFieldCalque.value=cible;
		//alert("mise à On ; "+objet.class);
	} else { // S'il est visible...
		objet.class = "tit_divOn"; // ... on le masque...
		objet.style.background = "#449"; // ... on le masque...
		objet.style.color = "#fff;"; // ... on le masque...
		div.class = "divOn"; // ... on le masque...
		div.style.display = "none"; // ... on le masque...
		//objet.innerHTML = "+"; // ... et on change le contenu du bouton.
		//alert("mise à Off ; "+objet.class);
	}
}

function change_image(objet, img) { // On déclare la fonction affiche qui prend en param l'objet qui alppelle et l'id de la cible à modifier		image1a.jpg
var	image = objet.src; // On récupère le div ciblé grâce à l'id
	objet.src='segami/'+img;
}
</script>
<?php
/*
	echo "<table id=menuArticle border=1 width=100%>";
	echo "	<tr>";
	if ($bofNbRow>0 || $bccNbRow>0) echo "		<td class=tit_$dspBesoins onclick=\"calque(this,'besoins');\">Besoins ($dspBesoins)</li>";	// toujours
	else echo "<td class=tit_divOff >no Besoins</li>";	// toujours
	
	if ($rofNbRow>0 || $rcfNbRow>0) echo "		<td class=tit_$dspRessources onclick=\"calque(this,'ressources');\">Ressources ($dspRessources)</li>";	// toujours
	else echo "<td class=tit_divOff >no Ressources</li>";	// toujours
	
	if ($bnoNbRow>0 || $rgaNbRow>0 || $rnoNbRow>0) echo "		<td class=tit_$dspIndus onclick=\"calque(this,'indus');\">Donnés industrielles ($dspIndus)</li>";	// toujours
	else echo "<td class=tit_divOff  >no Indus</li>";	// toujours
	
	echo "	</tr>";
	echo "</table>\n";
*/
	echo "<div id=sous-menu><ul>";
	if ($bofNbRow>0 || $bccNbRow>0) 
		echo "	<li id=titbesoins class=tit_$dspBesoins onclick=\"calque(this,'besoins');\">Besoins</li>";	// toujours
	else echo "	<li id=titbesoins class=tit_divOff >no Besoins</li>";	// toujours
	
	if ($rofNbRow>0 || $rcfNbRow>0) 
		echo "	<li id=titressources class=tit_$dspRessources onclick=\"calque(this,'ressources');\">Ressources</li>";	// toujours
	else echo "	<li id=titressources class=tit_divOff >no Ressources</li>";	// toujours
	
	if ($bnoNbRow>0 || $rgaNbRow>0 || $rnoNbRow>0) 
		echo "	<li id=titindus class=tit_$dspIndus onclick=\"calque(this,'indus');\">Donnés industrielles</li>";	// toujours
	else echo "	<li id=titindus class=tit_divOff  >no Indus</li>";	// toujours
	
	echo "	</ul></div>\n";

//------------------------------------------------------------------------------------------------------------
// Espace de visualisation
//------------------------------------------------------------------------------------------------------------
echo "<div id=espaceVisu >";
//------ BESOINS :
echo "<div id=besoins class='$dspBesoins' >";
if($dspBesoins=="divDsp" ||$dspBesoins=="divOn" ){
	//echo "Besoins : bof=".$bofNbRow." ; bcc=".$bccNbRow;
	echo "<table border=1 align=center>";
	echo "<th>voir";
	echo "<th>Date";
	echo "<th>Type";
	echo "<th>Motif";
	echo "<th>Quantité";
	echo "<th>Valeur";
	$selectBesoins="Select cdeDate as besDate, \"cc\" as besType, cliNum as besRef, LigneCdeClientArt.cdeNum as besNum, 
		LigneCdeClientArt.artCode as besArtCode, qte as besQte, qte*artPrixHT as montantHT
	from CdeClient, LigneCdeClientArt, article
	Where CdeClient.cdeNum=LigneCdeClientArt.cdeNum
	and LigneCdeClientArt.artCode=article.artCode
	and LigneCdeClientArt.artCode='$itemKey' 
	union
	Select ofGamme.opDateFin as besDate, \"of\" as besType, artCode as besRef, ofNomenclature.ofNum as besNum, ofComp_artCode as besArtCode, ofQteTheo as besQte, 0 as montantHT
	from ordFab, ofNomenclature, ofGamme
	Where ordFab.ofNum=ofNomenclature.ofNum
	and ofNomenclature.ofNum=ofGamme.ofNum
	and ofNomenclature.opNum=ofGamme.opNum
	and ofComp_artCode='$itemKey' 
	order by besDate
	;";
	$poubelle="ofNomenclature.opNum ;"; // reste le n° d'OPération : qu'en faire ?
	
	$besoin_id=DB_ouvrirRequete($selectBesoins, $connexion);
		$color=1;
		while ($t_record=DB_lireLigne($besoin_id)){
			// définition de la classe de style en fonction du type et du n° de ligne :
			($color)?$color=0:$color=1;
			$classe="td".$t_record['besType'].$color;
			
			// affichage de la ligne
			$recordKey=$t_record['besNum'];
			echo "	<tr class=$classe>";
			($t_record['besType']!="of")?$url="gesComDspCde.php?id=$recordKey&type=".$t_record['besType']."":$url="erpDspOF.php?id=$recordKey&type=bes";
			echo "		<td><a href=\"$url\" ><img src=\"segami/btnDetail.png\" border=0 /></a></td>";
			print "<td>".$t_record['besDate']."</td>";
			($t_record['besType']=="cc")?print "<td>Commande ".$t_record['besNum']."</td>":print "<td>OF ".$t_record['besNum']." en Cours</td>";
			($t_record['besType']=="cc")?print "<td>Client ".$t_record['besRef']."</td>":print "<td>Article ".$t_record['besRef']."</td>";
			//print "<td>".$t_record['besArtCode']."</td>";
			print "<td>".$t_record['besQte']."</td>";
			echo "	</tr>\n";
		}
	echo "</table>";
}else echo "No data";
echo "</div>";
//------ RESSOURCES :
echo "<div id=ressources class='$dspRessources'  >";
if($dspRessources=="divDsp" ||$dspRessources=="divOn" ){
	//echo "Ressources : rof=".$rofNbRow." ; rcf=".$rcfNbRow;
	echo "<table border=1 align=center>";
	echo "<th>voir";
	echo "<th>Date";
	echo "<th>Type origine";
	echo "<th>N° de ref.";
	echo "<th>Quantité";
	echo "<th>Valeur";
	$selectRessources="
		Select ofDateFin as resDate, \"of\" as resType, artCode as resRef, ofNum as resNum, artCode as resArtCode, ofQte as resQte, 0 as montantHT
			from OrdFab
			Where artCode='$itemKey' 
		union
		Select cdeDate as resDate, \"cf\" as resType, fourNum as resRef, cdeFour.cdeNum as resNum, LigneCdeFourArt.artCode as resArtCode, Qte as resQte, artPrixHT*qte as montantHT
			from cdeFour, ligneCdeFourArt, article
			Where cdeFour.cdeNum=LigneCdeFourArt.cdeNum
			and LigneCdeFourArt.artCode=article.artCode
			and LigneCdeFourArt.artCode='$itemKey' 
			order by resDate
		;";
	// attention, on ne tiens pas compte de la quantité finie réellement et des éventuels reliquats de ressources (le pbm est le même pour les besoins ...) C'est vraiment un ERP de base !!!.
	//$selectRessourceCdeFou="Select * from LigneCdeFouArt where artCode=$itemKey ;"; // and cdeType='Achat' ;"; // commandes fournisseur
	$ressource_id=DB_ouvrirRequete($selectRessources, $connexion);
	//echo "<br>$selectRessources";
	echo "<br>".mysql_error();
			$color=1;
			while ($t_record=DB_lireLigne($ressource_id)){
				// définition de la classe de style en fonction du type et du n° de ligne :
				($color)?$color=0:$color=1;
				$classe="td".$t_record['resType'].$color;
				
				// affichage de la ligne
				$recordKey=$t_record['resNum'];
				echo "	<tr class=$classe>";
				($t_record['resType']!="of")?$url="gesComDspCde.php?id=$recordKey&type=".$t_record['resType']."":$url="erpDspOF.php?id=$recordKey&type=res";
				echo "		<td><a href=\"$url\" ><img src=\"segami/btnDetail.png\" border=0 /></a></td>";
				print "<td>".$t_record['resDate']."</td>";
				($t_record['resType']=="cf")?print "<td>Commande ".$t_record['resNum']."</td>":print "<td>OF ".$t_record['resNum']." en Prod</td>";
				($t_record['resType']=="cf")?print "<td>Fournisseur ".$t_record['resRef']."</td>":print "<td>Article ".$t_record['resRef']."</td>";
				//print "<td>".$t_record['besArtCode']."</td>";
				print "<td>".$t_record['resQte']."</td>";
				print "<td>".$t_record['montantHT']."</td>";
				echo "	</tr>\n";
			}

	echo "</table>";
}else echo "No data";
echo "</div>";

//------ DONNEES INDUSTRIELLES  :
echo "<div id=indus class='$dspIndus' >";
if($dspIndus=="divDsp" ||$dspIndus=="divOn" ){
	//echo "Données Industrielles : info indus \t: rno=".$rnoNbRow." ; rga=".$rgaNbRow." ; bno=".$bnoNbRow;
	// ici, on présente deux tableaux : le premier est la gamme et la nomenclature de fabrication (en tableau //)
	// le second contiendra la liste des articles qui ont besoin de celui-ci.

	// RNo et RGa : ressources nomanclature et gamme
	if ($rgaNbRow>0 || $rnoNbRow>0){
		// a)  G&N
		echo "<table border=1 align=center>";
		echo "<caption>Gamme et Nomenclature</caption>";
		echo "<th>opération";
		echo "<th>Designation";
		echo "<th>Duree";
		echo "<th>Composant";
		echo "<th>Description";
		echo "<th>Quantité";
		$selectGamme="Select * from artGamme
			Where artCode='$itemKey' 
			order by opNum
			;";
		$selectNomen="Select opNum, comp_artCode, compQte, artDesc as compDesc from artNomenclature, article
			Where comp_artCode=article.artCode
			and artNomenclature.artCode='$itemKey' 
			order by opNum, comp_artCode
			;";
		$gamme_id=DB_ouvrirRequete($selectGamme, $connexion);
		$t_gamme=DB_lireLigne($gamme_id);
		$nomen_id=DB_ouvrirRequete($selectNomen, $connexion);
		$t_nomen=DB_lireLigne($nomen_id);

		$opNum=0;$opDesc="";$opDuree=0;

		//echo "<br>$selectRessources";
				$continue=true;
				$color=1;
				$compNbr=0;
				$opOpen=false;
				while ($continue){ // traiter la table dont le n° est le + petit
					// définition de la classe de style en fonction du type et du n° de ligne :
					($color)?$color=0:$color=1;
					$classe="td".$color;
					if($continue && $t_gamme['opNum']==$t_nomen['opNum'] ){ // ils vont ensemble
						echo "<tr>";
						$opNum=$t_gamme['opNum'];
						$opDesc=$t_gamme['opDesc'];
						$opDuree=$t_gamme['opDuree'];
						if (!$opOpen){ // opération vide à écrire
							echo "<td>".$opNum;
							echo "<td>".$opDesc;
							echo "<td>".$opDuree;
						}else{
							echo "<td>&nbsp;";
							echo "<td>&nbsp;";
							echo "<td>&nbsp;";
						}
						echo "<td>".$t_nomen['comp_artCode'];
						echo "<td>".$t_nomen['compDesc'];
						echo "<td>".$t_nomen['compQte'];
						echo "</tr>";
						$opOpen=true;
						
						$compNbr++;
						$t_nomen=DB_lireLigne($nomen_id);
					}elseif (!$t_nomen && $t_gamme || $t_gamme['opNum']<$t_nomen['opNum']){ // on a une op nomen d'avance, fermer op courante (après l'avoir ouverte si ce n'est pas le cas)
						$opNum=$t_gamme['opNum'];
						$opDesc=$t_gamme['opDesc'];
						$opDuree=$t_gamme['opDuree'];
						if (!$opOpen){ // opération vide à écrire
							echo "<tr>";
							echo "<td>".$opNum;
							echo "<td>".$opDesc;
							echo "<td>".$opDuree;
							echo "<td>&nbsp;";
							echo "<td>&nbsp;";
							echo "<td>&nbsp;";
							$opOpen=true;
						}
						if ($opOpen)
							echo "</tr>"; // fin de l'opération courante
						$opOpen=false;
						$t_gamme=DB_lireLigne($gamme_id);
					}elseif(!$t_gamme && $t_nomen || $t_gamme['opNum']>$t_nomen['opNum']){ // on a une op gamme d'avance, écrire nomen dans l'op gamme courante
							echo "<tr>";
							echo "<td>-";
							echo "<td>&nbsp;";
							echo "<td>&nbsp;";
							echo "<td>".$t_nomen['comp_artCode'];
							echo "<td>".$t_nomen['compDesc'];
							echo "<td>".$t_nomen['compQte'];
							echo "</tr>"; // fin de l'opération courante
						$t_nomen=DB_lireLigne($nomen_id);
					}
					if(!$t_gamme && !$t_nomen)
						$continue=false;
				}

		echo "</table>";
	}
	if ($bnoNbRow>0){
		$selectBNomen="
		Select comp_artCode, artNomenclature.artCode, artDesc , compQte, artNomenclature.opNum, opDesc, opDuree from artNomenclature, article, artGamme
			Where artNomenclature.artCode=article.artCode 
			and artNomenclature.artCode=artGamme.artCode 
			and artNomenclature.opNum=artGamme.opNum 
			and comp_artCode='$itemKey' 
			;";
	/*
		union
		Select comp_artCode, artNomenclature.artCode, artDesc, compQte, artNomenclature.opNum, '' as opDesc, 0 as opDuree from artNomenclature, article, artGamme
			Where artNomenclature.artCode=article.artCode 
			and artNomenclature.opNum=0 
			and comp_artCode='$itemKey' 
	*/
		$bNomen_id=DB_ouvrirRequete($selectBNomen, $connexion);
		$t_bNomen=DB_lireLigne($bNomen_id);
		echo mysql_error();
		
		echo "<table border=1 align=center>";
		echo "<caption>Utilistations</caption>";
		echo "<th>Composé";
		echo "<th>Description";
		echo "<th>Quantité requise";
		echo "<th>Opération";
		echo "<th>Designation";
		echo "<th>Duree";
		
		$color=1;
		$bNomNbr=0;
		while ($t_bNomen){ // traiter la table dont le n° est le + petit
			// définition de la classe de style en fonction du type et du n° de ligne :
			($color)?$color=0:$color=1;
			$classe="td".$color;
			echo "<tr>";
			echo "<td>".$t_bNomen['artCode'];
			echo "<td>".$t_bNomen['artDesc'];
			echo "<td>".$t_bNomen['compQte'];
			($t_bNomen['opNum']<>"")?print "<td>".$t_bNomen['opNum']:print"<td>&nbsp;";
			($t_bNomen['opDesc']<>"")?print "<td>".$t_bNomen['opDesc']:print"<td>&nbsp;";
			($t_bNomen['opDuree']<>"")?print "<td>".$t_bNomen['opDuree']:print"<td>&nbsp;";
			$t_bNomen=DB_lireLigne($bNomen_id);
		}
		
		echo "</table>";
	}
}else echo "No data";
echo "</div>";
// FIN de l'affichage des besoins, données techniques et ressources
echo "</div>";// findiv espaceVisu

//========================================================================
// fin de page
//========================================================================
echo "<div id=report>
</div>";
_pageFooter(); // pied de page
?>