<?php
// On démarre la session AVANT d'écrire du code HTML
if (session_status() != PHP_SESSION_ACTIVE)
  session_start();
//include 'INCLUDE/MySQL_PDO_transaction_include_sprog_commun_web.php';
include 'INCLUDE/MySQL_PDO_transaction_include_param_dbb.php';
//define("WEB_EOL","<br/>");
// --- Numéro de l'agence ---
if(isset($_POST["agenceD"]) && $_POST["agenceD"] != 'vide')
{
 $contexte="Débit - Agence : MySQL";
 try
 {
  // -- Si la variable $include_clients_debit n'existe pas,
  // -- c'est que le numéro de l'agence est envoyé par AJAX,
  // -- On a alors besoin d'avoir une connexion avec la base de données.
  // -- Quand on poste le formulaire, cette page est inclue directement dans le div "blocClientDebit",
  // -- la connexion devient inutile.
  // -- Si on inclut cette page au moment de la validation,
  // -- c'est uniquement pour garder la sélection "selected" de la liste.
  if(!isset($include_clients_debit))
  {
   // --- On indique le Content-Type utilisé ---
   header('Content-Type: text/html; charset="utf-8"');
   // === connexion de la base de données ===
   $bdd = new PDO($TYPE_DBB.":host=".$SERVEUR.";dbname=".$BASEDD,$LOGIN_ADM,$MDP_ADM,
                  array(PDO::ATTR_PERSISTENT => true));
   // --- initialisation des Exceptions PDO  ---
   $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
   // --- définition du codage en UTF8 ---    
   $bdd->exec("SET CHARACTER SET utf8");
  }
  $agenceD=$_POST["agenceD"];
  $_SESSION["agenceD"]=$agenceD;
  ?>
  <!-- Liste déroulante des clients -->
  <label>Client : </label>
  <select name="clientD" id="clientD" onchange="FctClientDebit(this.value);">
  <?php
  if ($reinitialiser)
  {
   ?>
   <option value="vide"  selected>--- Choisissez un client ---</option>
   <?php
  }
  else
  {
   ?>
   <option value="vide">--- Choisissez un client ---</option>
   <?php
  }
  // --- on récupère la liste des clients uniquement pour cette agence ---
  // --- préparation de la requête ---
  $requete_sql='SELECT cb.ID_Clt,cl.Nom,cl.Prenom FROM '.$TABLECOMPTES.' cb INNER JOIN '.$TABLECLIENTS.' cl ON cb.ID_Clt=cl.ID_Clt WHERE agence=:agenceD AND Type<>"Carte_Différé" GROUP BY CONCAT(Nom,Prenom)';
  $RequetePreparee = $bdd->prepare($requete_sql);
  // --- liaison avec les paramètres ---
  $RequetePreparee->bindParam(':agenceD', $agenceD, PDO::PARAM_STR);
  // --- exécution de la requête ---
  $RequetePreparee->execute();
  // ---retourne un tableau associatif ---
  $RequetePreparee->setFetchMode(PDO::FETCH_ASSOC); 
  // --- boucle de traitement de chaque client --- 
  $Liste_Clients_dans_Agence=$RequetePreparee->fetchAll();
  // --- fermeture de la requête ---
  $RequetePreparee->closeCursor();
  // --- boucle de génération  de la liste déroulante ---
  $Tab_Clients=$_SESSION['Tab_Clients'];
  foreach ($Liste_Clients_dans_Agence as $num => $un_client)
  {
   $Client_ID      = $un_client['ID_Clt'];
   $Client_Nom     = $un_client['Nom'];
   $Client_Prenom  = str_replace(" ","-",ucwords(strtolower(str_replace("-"," ",$un_client['Prenom']))));
   $CeClient['ID_Clt'] = $Client_ID    ;
   $CeClient['Nom']    = $Client_Nom   ;
   $CeClient['Prenom'] = $Client_Prenom;
   echo '<option value="'.$Client_ID.'"';
   if(isset($_POST["clientD"]) && ($_POST["clientD"]==$Client_ID) && (!$reinitialiser)){ echo " selected"; }
   echo '>';
   echo $Client_Nom." ".$Client_Prenom;
   echo '</option>';
   $Tab_Clients[$Client_ID]=$CeClient;
  }
  $_SESSION['Tab_Clients']=$Tab_Clients;
  ?>
   </select><br/>
   <!-- ---------------------------------------- -->
   <!-- Bloc d'affichage de la liste des comptes -->
   <!-- ---------------------------------------- -->
   <div id="blocCompteDebit">
   <?php
   // --- Si la sélection du client a été faite, on affiche la liste déroulante des comptes ---
   // --- sinon il n'y a aucun affichage de la liste déroulante suivante ---
   if(isset($_POST['clientD']))
   {
    // --- variable utilisée dans la page traitement_comptes.php ---
    $include_comptes_debit = 1;
    // --- On inclut le traitement pour la liste déroulante des comptes ---
    include('traitement_comptes_debit_prepare.php');
    $compte=$_POST["compteD"];
    $_SESSION["compteD"]=$compte;
   }
   ?>
   </div>
  <?php
 }
 catch(Exception $e)
 {
  $TitreMessage = $contexte       ;
  $TexteMessage = $e->getMessage();
  echo '<br /><div id="erreur">'.$TitreMessage.' : '.$TexteMessage.'</div>';
 }   
}
?>