<?php
// Démarrer la session en premier
if (session_status() === PHP_SESSION_NONE) {
    session_start();
}

// Vérifier si l'utilisateur est connecté
if (!isset($_SESSION['user_id'])) {
    header('Location: login.php');
    exit;
}

ini_set('display_errors', 1);
// Include database connection
include 'config/connexion.php';
include 'includes/simple_log.php';

// Vérifier que la connexion à la base de données est établie
if (!$conn) {
    die("Erreur de connexion à la base de données.");
}

$message = '';
$error = '';
$policy = null;

// Fetch policy details if ID is provided
if (isset($_GET['id'])) {
    $id = intval($_GET['id']);
    $query = "
        SELECT 
            p.id, p.n_policy, p.immatriculation, p.start_date, p.end_date, p.montant_to_paie, p.total_reste, p.policy_type, p.policy_category, p.marque, 
            c.id as client_id, c.client_cin, c.client_name, c.client_phone, c.client_email
        FROM 
            policy_table p 
        LEFT JOIN clients_table c ON p.client_id = c.id
        WHERE 
            p.id = ?
    ";
    $stmt = $conn->prepare($query);
    $stmt->bind_param("i", $id);
    $stmt->execute();
    $stmt->bind_result($policy_id, $policy_n_policy, $policy_immatriculation, $policy_start_date, $policy_end_date, $policy_montant_to_paie, $policy_total_reste, $policy_policy_type, $policy_policy_category, $policy_marque, $policy_client_id, $policy_client_cin, $policy_client_name, $policy_client_phone, $policy_client_email);
    
    if ($stmt->fetch()) {
        $policy = array(
            'id' => $policy_id,
            'n_policy' => $policy_n_policy,
            'immatriculation' => $policy_immatriculation,
            'start_date' => $policy_start_date,
            'end_date' => $policy_end_date,
            'montant_to_paie' => $policy_montant_to_paie,
            'total_reste' => $policy_total_reste,
            'policy_type' => $policy_policy_type,
            'policy_category' => $policy_policy_category,
            'marque' => $policy_marque,
            'client_id' => $policy_client_id,
            'client_cin' => $policy_client_cin,
            'client_name' => $policy_client_name,
            'client_phone' => $policy_client_phone,
            'client_email' => $policy_client_email
        );
    }
    $stmt->close();
}

// Traitement du formulaire de renouvellement
if ($_SERVER['REQUEST_METHOD'] === 'POST' && $policy) {
    $duration_months = intval($_POST['duration_months']);
    $montant_to_paie = floatval($_POST['montant_to_paie']);
    $montant_paye = floatval($_POST['montant_paye']);
    $paiement_mode = isset($_POST['paiement_mode']) ? trim($_POST['paiement_mode']) : '';
    $paiement_ref = isset($_POST['paiement_ref']) ? trim($_POST['paiement_ref']) : '';
    $n_attestation = isset($_POST['n_attestation']) ? trim($_POST['n_attestation']) : '';
    $echeance_date = !empty($_POST['echeance_date']) ? $_POST['echeance_date'] : null;
    $next_paiement_date = !empty($_POST['next_paiement_date']) ? $_POST['next_paiement_date'] : null;
    
    // Vérifier l'unicité du numéro d'attestation
    if (!empty($n_attestation)) {
        $check_attestation = "SELECT id FROM policy_table WHERE n_attestation = ?";
        $stmt_check = $conn->prepare($check_attestation);
        $stmt_check->bind_param("s", $n_attestation);
        $stmt_check->execute();
        $stmt_check->store_result();
        if ($stmt_check->num_rows > 0) {
            $error = "Ce numéro d'attestation existe déjà.";
        }
        $stmt_check->close();
    }
    
    // Validation: montant_paye ne doit pas dépasser montant_to_paie
    if ($montant_paye > $montant_to_paie) {
        $error = "Le montant payé ne peut pas dépasser le montant à payer.";
    }
    
    // Continuer seulement si pas d'erreur
    if (empty($error)) {
        // Récupérer les dates du formulaire
        $new_start_date = $_POST['start_date_new'];
        $new_end_date = $_POST['end_date_new'];
        
        // Vérifier si la colonne next_paiement existe dans policy_table
        $chkCol = $conn->query("SHOW COLUMNS FROM policy_table LIKE 'next_paiement'");
        $hasNextPaiement = $chkCol && $chkCol->num_rows > 0;
        
        // Calculer le nouveau total_reste (en tenant compte du reste de l'ancienne police)
        $ancien_reste = $policy['total_reste']; // Reste de l'ancienne police
        $montant_policy = $montant_to_paie; // Le montant du renouvellement seul
        $nouveau_montant_total = $ancien_reste + $montant_to_paie; // Total à payer = ancien reste + nouveau montant
        
        // Calculer le nouveau montant_paye et reste après le paiement actuel
        if (strtoupper($paiement_mode) === 'ESPECE') {
            $new_montant_paye = $montant_paye; // Pour ESPECE, on compte le paiement immédiatement
            $new_total_reste = $nouveau_montant_total - $montant_paye;
        } else {
            // Pour les modes non-ESPECE, ne pas déduire le paiement (sera déduit lors de la validation)
            $new_montant_paye = 0; // Réinitialiser à 0, sera mis à jour lors de la validation
            $new_total_reste = $nouveau_montant_total;
        }
        
        // Préparer la requête UPDATE pour mettre à jour la police existante
        if ($hasNextPaiement) {
            // Si next_paiement existe, toujours le mettre à jour
            $sqlUpdate = "UPDATE policy_table 
                         SET start_date = ?, 
                             end_date = ?, 
                             montant_policy = ?,
                             montant_to_paie = ?, 
                             montant_paye = ?, 
                             total_reste = ?,
                             next_paiement = ?,
                             n_attestation = ?
                         WHERE id = ?";
            $stmtUpdate = $conn->prepare($sqlUpdate);
            $stmtUpdate->bind_param("ssddddssi", $new_start_date, $new_end_date, $montant_policy, $nouveau_montant_total, $new_montant_paye, $new_total_reste, $next_paiement_date, $n_attestation, $policy['id']);
        } else {
            // Sinon, ne pas mettre à jour next_paiement
            $sqlUpdate = "UPDATE policy_table 
                         SET start_date = ?, 
                             end_date = ?, 
                             montant_policy = ?,
                             montant_to_paie = ?, 
                             montant_paye = ?, 
                             total_reste = ?,
                             n_attestation = ?
                         WHERE id = ?";
            $stmtUpdate = $conn->prepare($sqlUpdate);
            $stmtUpdate->bind_param("ssddddsi", $new_start_date, $new_end_date, $montant_policy, $nouveau_montant_total, $new_montant_paye, $new_total_reste, $n_attestation, $policy['id']);
        }
    
        if ($stmtUpdate->execute()) {
            
            // Si un paiement a été effectué, créer un reçu
            if ($montant_paye > 0) {
                // Générer un numéro de reçu (même format que new_policy.php)
                $receipt_number = 'R-' . date('Ymd') . '-' . sprintf('%04d', mt_rand(1, 9999));
                
                // Déterminer le statut du paiement
                $paiement_statut = (strtoupper($paiement_mode) === 'ESPÈCE' || strtoupper($paiement_mode) === 'ESPECE') ? 1 : 0;
                
                // Calculer le reste à payer pour ce reçu (après ce paiement)
                $reste_a_payer_receipt = $nouveau_montant_total - $montant_paye;
                
                // Date de création du reçu
                $date_creation = date('Y-m-d H:i:s');
                
                // Insérer le reçu de paiement pour le renouvellement
                $sqlReceipt = "INSERT INTO receipts_table (receipt_number, date_creation, policy_number, client_id, immatriculation, montant_total, montant_paye, reste_a_payer, agent, paiement_mode, paiement_ref, echeance_date, paiement_statut, n_attestation) 
                              VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
                $stmtReceipt = $conn->prepare($sqlReceipt);
                $agent_id = $_SESSION['user_id'] ?? null;
                $stmtReceipt->bind_param("sssisddisssiss", $receipt_number, $date_creation, $policy['n_policy'], $policy['client_id'], $policy['immatriculation'], $nouveau_montant_total, $montant_paye, $reste_a_payer_receipt, $agent_id, $paiement_mode, $paiement_ref, $echeance_date, $paiement_statut, $n_attestation);
                $stmtReceipt->execute();
                $stmtReceipt->close();
            }
            
            $stmtUpdate->close();
            
            $message = "Police renouvelée avec succès ! Numéro : " . $policy['n_policy'];
            
            // Redirection vers la police mise à jour
            header("refresh:3;url=info_policy.php?id=" . $policy['id']);
        } else {
            $error = "Erreur lors du renouvellement de la police : " . $conn->error;
        }
    }
}

// Récupérer les modes de paiement
$paiement_modes = [];
$sql_modes = "SELECT paiement_mode FROM paiement_mode_table";
$result_modes = $conn->query($sql_modes);
if ($result_modes) {
    while ($row = $result_modes->fetch_assoc()) {
        $paiement_modes[] = $row['paiement_mode'];
    }
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
  <?php include('includes/head.php'); ?>
  <style>
    .info-section {
      background-color: #f8f9fa;
      border-left: 4px solid #007bff;
      padding: 15px;
      margin-bottom: 20px;
    }
    .period-btn {
      margin: 5px;
    }
  </style>
</head>
<body id="page-top">
  <div id="wrapper">
    <?php include('includes/sidebar.php'); ?>
    <div id="content-wrapper" class="d-flex flex-column">
      <div id="content">
        <?php include('includes/topbar.php'); ?>
        
        <div class="container-fluid" id="container-wrapper">
          <div class="d-sm-flex align-items-center justify-content-between mb-4">
            <h1 class="h3 mb-0 text-gray-800">Renouvellement de Police</h1>
            <ol class="breadcrumb">
              <li class="breadcrumb-item"><a href="./">Accueil</a></li>
              <li class="breadcrumb-item"><a href="policys_table.php">Polices</a></li>
              <li class="breadcrumb-item active">Renouvellement</li>
            </ol>
          </div>

          <?php if ($message): ?>
            <div class="alert alert-success alert-dismissible fade show" role="alert">
              <i class="fas fa-check-circle"></i> <?php echo $message; ?>
              <button type="button" class="close" data-dismiss="alert"><span>&times;</span></button>
            </div>
          <?php endif; ?>

          <?php if ($error): ?>
            <div class="alert alert-danger alert-dismissible fade show" role="alert">
              <i class="fas fa-exclamation-triangle"></i> <?php echo $error; ?>
              <button type="button" class="close" data-dismiss="alert"><span>&times;</span></button>
            </div>
          <?php endif; ?>

          <?php if ($policy): ?>
            <!-- Informations de la police actuelle -->
            <div class="card mb-4">
              <div class="card-header py-3">
                <h6 class="m-0 font-weight-bold text-primary">Informations de la Police Actuelle</h6>
              </div>
              <div class="card-body">
                <div class="row">
                  <div class="col-md-6">
                    <div class="info-section">
                      <h6><strong>Informations Client</strong></h6>
                      <p><strong>Nom:</strong> <?php echo htmlspecialchars($policy['client_name']); ?></p>
                      <p><strong>CIN:</strong> <?php echo htmlspecialchars($policy['client_cin']); ?></p>
                      <p><strong>Téléphone:</strong> <?php echo htmlspecialchars($policy['client_phone'] ?? ''); ?></p>
                    </div>
                  </div>
                  <div class="col-md-6">
                    <div class="info-section">
                      <h6><strong>Informations Police</strong></h6>
                      <p><strong>N° Police:</strong> <?php echo htmlspecialchars($policy['n_policy']); ?></p>
                      <p><strong>Immatriculation:</strong> <?php echo htmlspecialchars($policy['immatriculation']); ?></p>
                      <p><strong>Type:</strong> <?php echo htmlspecialchars($policy['policy_type']); ?></p>
                      <p><strong>Catégorie:</strong> <?php echo htmlspecialchars($policy['policy_category'] ?? ''); ?></p>
                      <p><strong>Marque:</strong> <?php echo htmlspecialchars($policy['marque'] ?? ''); ?></p>
                    </div>
                  </div>
                </div>
                <div class="row">
                  <div class="col-md-12">
                    <div class="info-section">
                      <h6><strong>Période Actuelle</strong></h6>
                      <p><strong>Date Début:</strong> <?php echo date('d/m/Y', strtotime($policy['start_date'])); ?></p>
                      <p><strong>Date Fin:</strong> <?php echo date('d/m/Y', strtotime($policy['end_date'])); ?></p>
                      <p><strong>Montant:</strong> <?php echo number_format($policy['montant_to_paie'], 2, ',', ' '); ?> DH</p>
                      <p><strong>Reste de l'ancienne police:</strong> <span class="text-danger font-weight-bold"><?php echo number_format($policy['total_reste'], 2, ',', ' '); ?> DH</span></p>
                      <?php if ($policy['total_reste'] > 0): ?>
                        <p class="text-warning"><em><i class="fas fa-exclamation-triangle"></i> Ce reste sera ajouté au montant du renouvellement</em></p>
                      <?php endif; ?>
                    </div>
                  </div>
                </div>
              </div>
            </div>

            <!-- Formulaire de renouvellement -->
            <div class="card mb-4">
              <div class="card-header py-3">
                <h6 class="m-0 font-weight-bold text-success">Nouvelle Période de Renouvellement</h6>
              </div>
              <div class="card-body">
                <form method="POST" action="">
                  <div class="row">
                    <div class="col-md-12 mb-3">
                      <label><strong>Choisir la Durée du Renouvellement:</strong></label>
                      <div>
                        <?php for ($i = 1; $i <= 12; $i++): ?>
                          <button type="button" class="btn btn-outline-primary period-btn" onclick="selectPeriod(<?php echo $i; ?>)">
                            <?php echo $i; ?> mois
                          </button>
                        <?php endfor; ?>
                      </div>
                      <input type="hidden" name="duration_months" id="duration_months" value="12" required>
                      <p class="mt-2"><strong>Période sélectionnée:</strong> <span id="selected_period" class="text-primary font-weight-bold">12 mois</span></p>
                    </div>
                  </div>

                  <div class="row">
                    <div class="col-md-6 mb-3">
                      <label for="start_date_new"><strong>Date de Départ:</strong> <span class="text-danger">*</span></label>
                      <?php
                      // Calculer la date de départ par défaut
                      $end_date = new DateTime($policy['end_date']);
                      $today_date = new DateTime();
                      
                      // Si la police n'est pas expirée, commencer le lendemain de l'expiration
                      if ($end_date >= $today_date) {
                          $default_start = clone $end_date;
                          $default_start->modify('+1 day');
                      } else {
                          // Sinon, commencer aujourd'hui
                          $default_start = $today_date;
                      }
                      $default_start_str = $default_start->format('Y-m-d');
                      
                      // Calculer la date de fin par défaut (12 mois après)
                      $default_end = clone $default_start;
                      $default_end->modify('+12 months');
                      $default_end_str = $default_end->format('Y-m-d');
                      $default_end_display = $default_end->format('d/m/Y');
                      ?>
                      <input type="date" class="form-control" id="start_date_new" name="start_date_new" value="<?php echo $default_start_str; ?>" required onchange="updateEndDate()">
                      <small class="form-text text-muted">
                        <?php 
                        if ($end_date >= $today_date) {
                            echo "Départ automatique: lendemain de l'expiration (" . $default_start->format('d/m/Y') . ")";
                        } else {
                            echo "Police expirée: départ aujourd'hui";
                        }
                        ?>
                      </small>
                    </div>
                    
                    <div class="col-md-6 mb-3">
                      <label><strong>Date de Fin:</strong></label>
                      <p class="form-control-plaintext" id="end_date_display">
                        <?php echo $default_end_display; ?>
                      </p>
                      <input type="hidden" name="end_date_new" id="end_date_new" value="<?php echo $default_end_str; ?>">
                    </div>
                  </div>

                  <div class="row">
                    <div class="col-md-6 mb-3">
                      <label for="montant_to_paie"><strong>Montant à Payer (DH):</strong> <span class="text-danger">*</span></label>
                      <input type="number" step="0.01" class="form-control" id="montant_to_paie" name="montant_to_paie" value="<?php echo $policy['montant_to_paie']; ?>" required>
                    </div>

                    <div class="col-md-6 mb-3">
                      <label for="n_attestation_main"><strong>Numéro d'Attestation:</strong> <span class="text-danger">*</span></label>
                      <input type="text" class="form-control" id="n_attestation_main" name="n_attestation" placeholder="N° attestation" required>
                    </div>
                  </div>

                  <div class="row">
                    <div class="col-md-6 mb-3">
                      <label for="montant_paye"><strong>Montant Payé Maintenant (DH):</strong></label>
                      <input type="number" step="0.01" class="form-control" id="montant_paye" name="montant_paye" value="0" min="0">
                      <small class="form-text text-muted">Laisser à 0 si aucun paiement pour le moment</small>
                    </div>

                    <div class="col-md-6 mb-3">
                      <label for="next_paiement_date"><strong>Date du Prochain Paiement:</strong> <span class="text-danger">*</span></label>
                      <input type="date" class="form-control" id="next_paiement_date" name="next_paiement_date" required>
                    </div>
                  </div>

                  <div class="row">
                    <div class="col-md-6 mb-3">
                      <label><strong>Reste à Payer:</strong></label>
                      <span id="reste_a_payer" class="form-control-plaintext text-primary font-weight-bold"><?php echo number_format($policy['montant_to_paie'], 2); ?> DH</span>
                    </div>
                  </div>

                  <div id="paiement_details" style="display: none;">
                    <div class="row">
                      <div class="col-md-6 mb-3">
                        <label for="paiement_mode"><strong>Mode de Paiement:</strong> <span class="text-danger">*</span></label>
                        <select class="form-control" id="paiement_mode" name="paiement_mode">
                          <option value="">-- Sélectionner --</option>
                          <?php foreach ($paiement_modes as $mode): ?>
                            <option value="<?php echo htmlspecialchars($mode); ?>"><?php echo htmlspecialchars($mode); ?></option>
                          <?php endforeach; ?>
                        </select>
                      </div>

                      <div class="col-md-6 mb-3">
                        <label for="paiement_ref"><strong>Référence de Paiement:</strong></label>
                        <input type="text" class="form-control" id="paiement_ref" name="paiement_ref" placeholder="N° chèque, effet, etc.">
                      </div>
                    </div>

                    <div class="row">
                      <div class="col-md-6 mb-3">
                        <label for="echeance_date"><strong>Date d'Échéance:</strong></label>
                        <input type="date" class="form-control" id="echeance_date" name="echeance_date">
                      </div>
                    </div>
                  </div>

                  <div class="row">
                    <div class="col-md-12">
                      <button type="submit" class="btn btn-success btn-lg">
                        <i class="fas fa-redo"></i> Renouveler la Police
                      </button>
                      <a href="info_policy.php?id=<?php echo $policy['id']; ?>" class="btn btn-secondary btn-lg">
                        <i class="fas fa-arrow-left"></i> Annuler
                      </a>
                    </div>
                  </div>
                </form>
              </div>
            </div>
          <?php else: ?>
            <div class="alert alert-warning">
              <i class="fas fa-exclamation-triangle"></i> Police introuvable.
            </div>
          <?php endif; ?>

        </div>
      </div>
      <?php include('includes/footer.php'); ?>
    </div>
  </div>

  <a class="scroll-to-top rounded" href="#page-top">
    <i class="fas fa-angle-up"></i>
  </a>

  <script src="vendor/jquery/jquery.min.js"></script>
  <script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
  <script src="vendor/jquery-easing/jquery.easing.min.js"></script>
  <script src="js/ruang-admin.min.js"></script>
  
  <script>
    // Date de fin de la police actuelle
    var policyEndDate = new Date('<?php echo $policy ? $policy['end_date'] : date('Y-m-d'); ?>');
    
    // Calculer et afficher les nouvelles dates
    function selectPeriod(months) {
      // Mettre à jour le champ caché
      document.getElementById('duration_months').value = months;
      document.getElementById('selected_period').textContent = months + ' mois';
      
      // Retirer la classe active de tous les boutons
      var buttons = document.querySelectorAll('.period-btn');
      buttons.forEach(function(btn) {
        btn.classList.remove('btn-primary');
        btn.classList.add('btn-outline-primary');
      });
      
      // Ajouter la classe active au bouton cliqué
      event.target.classList.remove('btn-outline-primary');
      event.target.classList.add('btn-primary');
      
      // Calculer et mettre à jour la date de fin sans changer la date de départ
      updateEndDate();
    }
    
    // Fonction pour mettre à jour la date de fin en fonction de la date de départ et de la durée
    function updateEndDate() {
      var startDateInput = document.getElementById('start_date_new').value;
      var months = parseInt(document.getElementById('duration_months').value) || 12;
      
      if (startDateInput) {
        var startDate = new Date(startDateInput);
        var endDate = new Date(startDate);
        endDate.setMonth(endDate.getMonth() + months);
        
        // Formater la date de fin pour l'affichage
        var options = { day: '2-digit', month: '2-digit', year: 'numeric' };
        var endStr = endDate.toLocaleDateString('fr-FR', options);
        document.getElementById('end_date_display').textContent = endStr;
        
        // Mettre à jour le champ caché
        var endDateStr = endDate.toISOString().split('T')[0];
        document.getElementById('end_date_new').value = endDateStr;
      }
    }
    
    // Afficher/masquer les détails de paiement
    document.getElementById('montant_paye').addEventListener('input', function() {
      var montant = parseFloat(this.value) || 0;
      var details = document.getElementById('paiement_details');
      var paiement_mode = document.getElementById('paiement_mode');
      
      if (montant > 0) {
        details.style.display = 'block';
        paiement_mode.required = true;
      } else {
        details.style.display = 'none';
        paiement_mode.required = false;
      }
      
      // Calculer et afficher le reste
      calculateRemaining();
    });
    
    // Écouter les changements du montant à payer
    document.getElementById('montant_to_paie').addEventListener('input', calculateRemaining);
    
    // Fonction pour calculer le reste à payer
    function calculateRemaining() {
      var montantTotal = parseFloat(document.getElementById('montant_to_paie').value) || 0;
      var montantPaye = parseFloat(document.getElementById('montant_paye').value) || 0;
      
      // Empêcher que montant_paye dépasse montant_to_paie
      if (montantPaye > montantTotal) {
        document.getElementById('montant_paye').value = montantTotal.toFixed(2);
        montantPaye = montantTotal;
      }
      
      var reste = montantTotal - montantPaye;
      document.getElementById('reste_a_payer').textContent = (reste > 0 ? reste.toFixed(2) : '0.00') + ' DH';
    }
    
    // Fonction pour afficher/masquer les champs référence et échéance selon le mode de paiement
    function togglePaiementFields() {
      var mode = document.getElementById('paiement_mode').value;
      var refGroup = document.querySelector('.col-md-6.mb-3:has(#paiement_ref)');
      var refInput = document.getElementById('paiement_ref');
      var echeanceRow = document.querySelector('.row:has(#echeance_date)');
      var echeanceInput = document.getElementById('echeance_date');
      
      if (mode && (mode.toUpperCase() === 'CHEQUE' || mode.toUpperCase() === 'EFFET')) {
        // Afficher les champs pour chèque et effet
        if (refGroup) refGroup.style.display = 'block';
        refInput.disabled = false;
        if (echeanceRow) {
          var echeanceCol = echeanceRow.querySelector('.col-md-6.mb-3:has(#echeance_date)');
          if (echeanceCol) echeanceCol.style.display = 'block';
        }
        echeanceInput.disabled = false;
      } else {
        // Masquer les champs pour espèce et virement
        if (refGroup) refGroup.style.display = 'none';
        refInput.disabled = true;
        refInput.value = '';
        if (echeanceRow) {
          var echeanceCol = echeanceRow.querySelector('.col-md-6.mb-3:has(#echeance_date)');
          if (echeanceCol) echeanceCol.style.display = 'none';
        }
        echeanceInput.disabled = true;
        
        // Pour espèce et virement, date d'échéance = aujourd'hui
        if (mode && ['ESPECE', 'ESPÈCE', 'VIREMENT BANCAIRE'].includes(mode.toUpperCase())) {
          var today = new Date().toISOString().split('T')[0];
          echeanceInput.value = today;
        } else {
          echeanceInput.value = '';
        }
      }
    }
    
    // Écouter les changements du mode de paiement
    document.getElementById('paiement_mode').addEventListener('change', function() {
      togglePaiementFields();
    });
    
    // Initialiser le premier bouton comme sélectionné
    document.addEventListener('DOMContentLoaded', function() {
      var buttons = document.querySelectorAll('.period-btn');
      if (buttons.length > 11) {
        buttons[11].classList.remove('btn-outline-primary');
        buttons[11].classList.add('btn-primary');
      }
      
      // Initialiser l'affichage des champs
      togglePaiementFields();
      calculateRemaining();
    });
  </script>
</body>
</html>
