<?php
session_start();
// ========================================================================================
// Liste des articles à commander
// ========================================================================================
include "library/DB_fct.inc.php";
include "library/CART_fct.inc.php";
include "library/_baseDesign.inc.php";
// ========================================================================================
// Fonctions locales
// ========================================================================================
// -------------------------------------------------------------------
function _menuRight(){
global $_SESSION;
global $connexion;
global $panierId;
	if (isset($_SESSION['num'])) echo "ok";
	// affichage du Panier
	CART_previewCart($panierId, "cdeArtLst.php?id=$panierId");
	echo "<div class=help>Choisir un article pour l'ajouter au panier.</div>\n";
}
/***** on vire tout ça, ça ne sert plus à rien, c'était juste un exemple ...
// Un petit bout de code trouvé sur le net (http://www.phpsources.org/scripts87-PHP.htm)
// Génère une chaine de longueur 20
function randomString($long=20) {
	$result = "";
	$chaineCle = "abcdefghijklmnpqrstuvwxyABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.";
	srand((double)microtime()*1000000);
	for($i=0; $i<$long; $i++) $result .= $chaineCle[rand()%strlen($chaineCle)];
	return $result;
}
// et un autre : ici, l'ancienne chaaîne clé, compliquée : "(aLABbC0cEd1[eDf2FghR3ij4kYXQl5Um-OPn6pVq7rJs8*tuW9I+vGw@xHTy&#)K]Z%§!M_S"
// l'ancienne chaîne clé expurgée : "aLABbC0cEd1e.Df2FghR3ij4kYXQl5Um-OPn6pVq7rJs8tuW9IvGwxHTyKZzM_S" // et si je faisais la mienne ?
// la nouvelle $chaineCle = "abcdefghijklmnpqrstuvwxyABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_."; // on part de là
// la nouvelle $chaineCle = "SaH.bvI_Gcw-Jd0TGe9Kuf8EgR7Lh6UDi5Mtj4Ckx3Nl2VBm1OsnZApQYPqXWyr"; // 1er mélange, mmm...
// la nouvelle $chaineCle = "rSaH.byvI_GcWw-Jd0XTGe9Kquf8EgPR7Lh6YUDi5MQtj4Ckpx3Nl2AVBm1OZsn"; // c'est mieux, non? aller, encore un coup
// la nouvelle $chaineCle = "rSaH.bNl2AVByvI_GcXTGe9Ki5MQtjPR7quf8EgLh6YUDWw-Jd04Ckpx3m1OZsn"; // bon, ça me plait bien, j'enlève le ., -, _ et les chiffres et on arrête là

function randomString2($long=40) {
	$result = "";
	$chaineCle = "rSaHbNAZAVByvIGcXTGeEKiRMQtjPRTqufYEgLhUYUDWwJd0ICkpxOmPOZsn";
	srand((double)microtime()*time());
	for($i=0; $i<$long; $i++) $result .= $chaineCle[rand()%strlen($chaineCle)];
	return $result;
} 
// APPEL  : $chaine = randomString(20);

// voici les tests : 
$tmpNum1=date("Y/m/d-H:i:s")."-".rand()*rand(); // le n° de session sera la date, suivi d'un numéro au hasard : mouais
$tmpNum=md5($tmpNum1); // et on le chiffre en md5 : c'est mieux
$tmpNum2=sha1($tmpNum1); // et chiffré en sha1 : bof c'est pas mieux 
$tmpNum2=hash( "sha256", $tmpNum1); // et chiffré en  "sha256" : bof c'est pas mieux, c'est surtout plus long
$tmpNum2=hash( "tiger128,3", $tmpNum1); // et chiffré en  "haval160,4" : bof c'est pas mieux, c'est surtout plus long
$tmpId=session_id(); // on récupère le n° de session, pour voir ... c'est pas mal non plus et la diversité de caratères est meilleure
// on va l'utiliser et ajouter le 1er numéro associé et ça donne (juste pour voir)...
$sessionId=$tmpId."A".$tmpNum;
echo $sessionId;
echo "<br>".$tmpNum2;
echo "<br>string1 : ".randomString();
echo "<br>string2 : ".randomString2();
// mmh! c'est plutôt bien. Bon on utilise ça comme n° d'identification temporaire de la transaction

*****/
// ========================================================================================
// MAIN()
// ========================================================================================
$userId="";
$pageName="cdeArtLst.php";
$tableName="Article";

$headTitle="Liste des Articles pour commande";
$contentTitle="Gestion commerciale";

// création du n° de panier (pour identifier le panier si on fait une commande)
// Récup ou création du n° de panier (pour identifier le panier si on fait une commande)
(isset($_REQUEST['id'])&&!empty($_REQUEST['id']))?$panierId=$_REQUEST['id']:$panierId=0; // 

_pageHeader($userId);	// entête de page et menu

//========================================================================
// Affichage de la liste
//========================================================================
// -------------------------------------------------------------------
// fonctions locales
// -------------------------------------------------------------------
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;
}
//=======================================================================
// Construction de la requête à afficher, connexion et ouverture.
//=======================================================================
// -------------------------------------------------------------------
// Gestion du filtre des produits
$mode=0;
if (isset($_REQUEST['mode'])){
	$mode=$_REQUEST['mode'];
}
// -------------------------------------------------------------------
	$requete_sql="SELECT * FROM Article, artType 
		WHERE article.artTypeCode=artType.artTypeCode ";
	if ($mode==0) // Tout article vendu (PF, négoce + matières, SF & consommables vendus)
		$requete_sql.=" and  article.artTypeCode in ('F', 'N')";
	if ($mode==1) // Article Fabriqués (PF, S)
		$requete_sql.=" and  article.artTypeCode in ('F', 'S')";
	if ($mode==2) // Articles achetés (N, MP & C)
		$requete_sql.=" and  article.artTypeCode in ('N', 'M', 'C')";
// -------------------------------------------------------------------
	$connexion=DB_connecter(); 
	$requete_id=DB_ouvrirRequete($requete_sql, $connexion);
	//echo "<br>>".$requete_sql."<";
	//echo "<br>".mysql_error();

//=======================================================================
// Affichage de la liste et de son filtre
//=======================================================================
// affichage du tableau de filtrage
	echo "<div border=1 align=center><!--Debut de liste-->\n";
	echo "<ul id='filtreList'>";
	echo "<li class='filtreTitre'>Filtres : </li>";
	echo "<li class='filtreItem'><a href=$pageName?mode=0><span title='Produits finis, Négoce, Matières, Semi-finis et Consommables'>Tout article vendu</span></a></li>";
	echo "<li class='filtreItem'><a href=$pageName?mode=1><span title='Produits finis et Semi-finis'>Produits Fabriqués</span></a></li>";
	echo "<li class='filtreItem'><a href=$pageName?mode=2><span title='Négoce, Matières et Consommables'>Produits Achetés</span></a></li>";
	echo "</ul>";
	echo "</div><!-- Fin de liste -->";
// Affichage de la liste commencé -----------------------------------
	echo "<!--Debut de liste-->\n<table border=1 align=center>\n";
	// Ouvrir et tester la requête. y a-t-il qqch à afficher ?
	$t_record=DB_lireLigne($requete_id);
	if ($t_record){ // si un enregistrement est trouvé :
		// Entête de la liste :
		echo "<tr><th>Référence</th><th>Description</th><th>Prix HT</th><th>Type</th><th>Catégorie</th></tr>\n";
		
		// -- Début de la liste
		$color=1; // pour changer de style (couleur) à chaque ligne
		while ($t_record){
			$artCode=$t_record['artCode']; // récup du code de l'article pour les liens de visu
			$lien ="<a href=\"cdeArtDsp.php?artCode=$artCode&id=$panierId\" >"; // construire le lien pour accéder à l'article
			(empty($t_record['artPrixHT']))?$prix="N/A":$prix=$t_record['artPrixHT']." €"; // convertir le prixHT
			($t_record['artTypeCode']=="F")?$categorie="Produit":$categorie="Accessoire"; //convertir la description du type (faudrait-il une table ???)
			
			// définition de la classe de style en fonction du type et du n° de ligne :
			($color)?$color=0:$color=1;
			
			// Affichage d'une ligne
			echo "	<tr class=td$color>";
			echo "<td class=tdArtCode>".$lien.$artCode."</a>"."</td>";
			echo "<td class=tdArtDesc>".$lien.$t_record['artDesc']."</a>"."</td>";
			echo "<td class=tdArtPrix align=right>$prix</td>";
			echo "<td class=tdArtTypeCode>".$lien.$t_record['artTypeCode']."</a>"."</td>";
			echo "<td class=tdArtTypeDesc>".$lien.$categorie."</a></td>";
			echo "</tr>\n";
			$t_record=DB_lireLigne($requete_id);
		}
		// -- Fin de liste
	}else // sinon (aucun enregistrement n'est trouvé)
		echo "<tr><td colspan=100%>aucun enreg trouvé</td></tr>";
	echo "</table>\n<!-- Fin de liste -->\n";
	// Affichage de la liste terminé -------------------------------------
//========================================================================
// fin de page
//========================================================================
_pageFooter(); // pied de page

/*
	Remarques sur le workflow :
	étapes vues sur différents site web :
	- choix des articles et remplissage du panier
	- validation du panier, correction de la liste
*/
?>