<?php
include "library/DB_fct.inc.php";
include "library/_gesComDesign.inc.php";
// ========================================================================================
// Fonctions locales
// ========================================================================================
function _menuRight(){
	echo "GESCOM";
	echo "<br>Liste des tiers.";
	echo "<div class='help'>
	Voir le détail d'un tiers et afficher ses commandes.
</div>";
}
// -------------------------------------------------------------------
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;
}
// ========================================================================================
// MAIN()
// ========================================================================================
$userId="";
$pageName="gesComTierLst.php";
$tableName="Tier";
$headTitle="Liste des Clients/Fournisseurs";
$contentTitle="Gestion de production";

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

// tableaux pour ne pas montrer le vrai nom des champs dans les paramètres transmis
$t_sortFieldNames=array("no", "rs", "ad", "pay", "rem");
$t_sortFieldDbTabNames=array("", "", "", "", "", "");  // mettre ici le nom de la table de la requête (avec le point !!!)
$t_sortFieldDbNames=array("tierNum", "tierRaisonSociale", "tierAdresse", "paysCode", "tierRemiseTier");
$t_sortFieldDesc=array("n°", "Raison Sociale", "Adresse", "Pays", "taux de remise");
$t_sortFieldDsp=array(true, true, true, true, true);
$t_sortFieldDir=array("", "", "", "", "");
$defaultSortClause=" ORDER BY Tier.tierNum desc";

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

//======================================================================
// gestion du tri et du filtre
//======================================================================
	//	Tris
	// -------------------------------------------------------------------
	// si le tri est nommé (desc ou asc) alors le tri demandé est changé, sinon il reste comme il est
	$sortDir="";
	$sortField="";

	// recup paramètres si existent
	(isset($_REQUEST['sortDir']))?$sortDir=$_REQUEST['sortDir']:$sortDir="desc"; // 
	(isset($_REQUEST['sortField']))?$sortField=$_REQUEST['sortField']:$sortField="artCode"; // 

	// si le tri est orienté, changer le tri : "">"asc">"desc">""
	if ($sortDir=="asc")
		$sortDirNew="desc";
	elseif ($sortDir=="desc")
		$sortDirNew="";
	else 
		$sortDirNew="asc";

	// construction de l'ordre de tri ; !!!! Actuellement, un tri annule les autres
	$sortClause="";
		foreach($t_sortFieldNames as $key => $val){
			if ($sortField == $val)
				$t_sortFieldDir[$key]=$sortDirNew;
			if ($t_sortFieldDir[$key]!=""){
				if (empty($sortClause))
					$sortClause=" ORDER BY ";
				else 
					$sortClause.=", ";
				$sortClause.=$t_sortFieldDbNames[$key]." ".$t_sortFieldDir[$key];
			}
		}
	// -------------------------------------------------------------------
	// filtre type de produit
	//	mode=0 : tous produits
	//	mode=1 : produits Finis
	//	mode=2 : profuits fini et matières
	// -------------------------------------------------------------------
	$mode=0;
	if (isset($_REQUEST['mode'])){
		$mode=$_REQUEST['mode'];
	}
//=======================================================================
// connexion et ouverture de la requête à afficher
//=======================================================================
	$connexion=DB_connecter(); 
	$requete_sql="SELECT tierNum, tierRaisonSociale, tierAdresse, paysCode, tierRemiseTier FROM $tableName ";
	$requete_sql.=" ";
	if ($mode==1) // tous clients
		$requete_sql.="   tier.tierTypeCode='C' or tier.tierTypeCode='B'";
	if ($mode==2) // tous fournisseurs
		$requete_sql.="   tier.tierTypeCode='F' or tier.tierTypeCode='B'";
		
	// ajout du tri
	(!empty($sortClause))?$requete_sql.=$sortClause:$requete_sql.=$defaultSortClause;
	
	$requete_id=DB_ouvrirRequete($requete_sql, $connexion);
	//echo "<br>>".$requete_sql."<";
	//echo "<br>".mysql_error();

//=======================================================================
// Affichage 
//=======================================================================
	// début de liste
	echo "<table border=1 align=center><!--Debut de liste-->\n";
	// Ouvrir et tester la requête. y a-t-il qqch à afficher ?
	$t_record=DB_lireLigne($requete_id);
	if ($t_record){
		// afficher l'entête de la liste :
		// a) construire la liste des champ de la requête
		foreach($t_record as $key=>$val)
			if(!is_numeric ($key))
				$t_fileList[]=$key;
		echo "<tr>";
		echo "<th>Voir</th>";
		echo "<th>n°</th>";
		echo "<th>Raison Sociale</th>";
		echo "<th>Adresse</th>";
		echo "<th>Pays</th>";
		echo "<th>Taux de remise</th>";
		echo "<th>nb Ventes</th>";
		echo "<th>nb Achats</th>";
		echo "</tr>";
		
		// b) afficher l'entête des colonnes en vérifiant si on peut faire du tri dessus
		echo "<tr>";
		echo "<th>Voir</th>";
		foreach($t_fileList as $key=>$val){
			echo "<th>";
			//if(_isInTab($t_sortFieldDbNames, $val)>=0){
			$i=_isInTab($t_sortFieldDbNames, $val);
			if($i>=0){
				$field=$t_sortFieldNames[$i];
				$desc=$t_sortFieldDesc[$i];
				$dir=$t_sortFieldDir[$i];
				if ($t_sortFieldDsp[$i]==true){
					$url=$pageName."?";
					if($mode) $url.="mode=$mode&";
					$url.="sortDir=$dir&sortField=$field";
					echo "<a href=\"".$url."\">";
					echo "<img src=\"segami/s_$dir.png\" border=0 /> $desc ";
					echo "</a>";
				}else
					echo "$desc";
			}else
				echo "$val";
			echo "</th>";
		}
		echo "<th>OV</th>";
		echo "<th>OA</th>";
		echo "</tr>\n";
		// c) afficher la liste des enregistrements
		$color=1;
		while ($t_record){
			$recordKey=$t_record['tierNum'];
			// 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['tierTypeCode'].$color;
			$classe="td".$color;
			// affichage de la ligne
			echo "	<tr class=$classe>";
			echo "		<td><a href=\"".$dspPage."?id=$recordKey\" ><img src=\"segami/btnDetail.png\" border=0 /></a></td>";
			foreach($t_fileList as $key=>$val)
				(empty($t_record[$val]))?print "<td>&nbsp;</td>":print "<td>".$t_record[$val]."</td>";
			
			$nbOVSql="SELECT count(*) FROM cdeclient WHERE cliNum=$recordKey ; ";
			$t_nbOVSql=DB_chercherEnreg($nbOVSql, $connexion);
			($t_nbOVSql[0]>0)?print "<td>".$t_nbOVSql[0]."</td>":print "<td>&nbsp;</td>";
			
			$nbOASql="SELECT count(*) FROM cdefour WHERE fourNum=$recordKey ; ";
			$t_nbOASql=DB_chercherEnreg($nbOASql, $connexion);
			($t_nbOASql[0]>0)?print "<td>".$t_nbOASql[0]."</td>":print "<td>&nbsp;</td>";
			
			echo "	</tr>\n";
			$t_record=DB_lireLigne($requete_id);
		}
		// fin de liste
	}else
		echo "<tr><td colspan=100%>aucun enreg trouvé</td></tr>";
	// Fin de liste
	echo "</table><!-- Fin de liste -->\n";
//========================================================================
// fin de page
//========================================================================
_pageFooter(); // pied de page
?>