<?php
// Include database connection
include 'config/connexion.php';
// Include log module
require_once 'includes/simple_log.php';
// Initialize variables
$errors = [
    'client_cin' => '',
    'immat_part1' => '',
    'immat_part2' => '',
    'immat_part3' => '',
    'n_policy' => '',
    'start_date' => '',
    'end_date' => '',
    'montant_to_paie' => ''
];
$success = "";
$policy = null;

// Récupérer toutes les lettres de la table lettre (sauf celles contenant '*')
$lettres = [];
$queryLettres = "SELECT lettre FROM lettres_table WHERE lettre NOT LIKE '%*%'";
$resultLettres = $conn->query($queryLettres);
if ($resultLettres && $resultLettres->num_rows > 0) {
    while ($row = $resultLettres->fetch_assoc()) {
        $lettres[] = $row['lettre'];
    }
}

// Récupérer toutes les marques depuis marques_transport
$marques = [];
$queryMarques = "SELECT marque FROM marques_transport ORDER BY marque ASC";
$resultMarques = $conn->query($queryMarques);
if ($resultMarques && $resultMarques->num_rows > 0) {
    while ($row = $resultMarques->fetch_assoc()) {
        $marques[] = $row['marque'];
    }
}

// Récupérer tous les types de police depuis policy_type avec leur risque
// D'abord, déterminer la catégorie de police avant de filtrer les types
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 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, $n_policy, $immatriculation, $start_date, $end_date, $montant_to_paie, $total_reste, $policy_type, $policy_category_result, $marque, $client_id, $client_cin, $client_name);
    $policy = null;
    if ($stmt->fetch()) {
        $policy = array(
            'id' => $policy_id,
            'n_policy' => $n_policy,
            'immatriculation' => $immatriculation,
            'start_date' => $start_date,
            'end_date' => $end_date,
            'montant_to_paie' => $montant_to_paie,
            'total_reste' => $total_reste,
            'policy_type' => $policy_type,
            'policy_category' => $policy_category_result,
            'marque' => $marque,
            'client_id' => $client_id,
            'client_cin' => $client_cin,
            'client_name' => $client_name
        );
    }
    $stmt->close();
    // Catégorie de police (V ou RD)
    $policy_category = isset($policy['policy_category']) ? $policy['policy_category'] : 'V';
    if (!empty($policy['immatriculation'])) {
        $immat_parts = array_map('trim', explode('|', $policy['immatriculation']));
        $immat_num1 = isset($immat_parts[0]) ? $immat_parts[0] : '';
        $immat_letter = isset($immat_parts[1]) ? $immat_parts[1] : '';
        $immat_num2 = isset($immat_parts[2]) ? $immat_parts[2] : '';
    } else {
        $immat_num1 = '';
        $immat_letter = '';
        $immat_num2 = '';
    }
} else {
    $policy_category = 'V';
    $immat_num1 = '';
    $immat_letter = '';
    $immat_num2 = '';
}

// Récupérer tous les types de police depuis policy_type avec leur risque
$policy_types = [];
$queryTypes = "SELECT type, risque FROM policy_type ORDER BY type ASC";
$resultTypes = $conn->query($queryTypes);
if ($resultTypes && $resultTypes->num_rows > 0) {
    while ($row = $resultTypes->fetch_assoc()) {
        $risque = isset($row['risque']) ? $row['risque'] : 'V';
        // Filtrer selon la catégorie de police
        if ($risque === $policy_category) {
            $policy_types[] = $row['type'];
        }
    }
}

// Note: Les détails de la police ont déjà été récupérés plus haut

// Handle form submission
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $id = intval($_POST['id']);
    // Récupérer la catégorie de police depuis la base (sécurité)
    $stmtCat = $conn->prepare("SELECT policy_category FROM policy_table WHERE id = ?");
    $stmtCat->bind_param("i", $id);
    $stmtCat->execute();
    $stmtCat->bind_result($policy_category);
    $stmtCat->fetch();
    $stmtCat->close();
    if (!$policy_category) { $policy_category = 'V'; }
    $client_cin = strtoupper(trim($_POST['client_cin']));
    $policy_type = trim($_POST['policy_type'] ?? '');
    // Initialiser les champs immatriculation selon la catégorie
    if ($policy_category === 'RD') {
        $immatriculation = '';
        $marque = '';
    } else {
        // Récupérer l'immatriculation depuis le champ caché ou construire à partir des 3 champs
        $immatriculation = trim($_POST['immatriculation'] ?? '');
        if (empty($immatriculation)) {
            $immat_num1 = trim($_POST['immat_num1'] ?? '');
            $immat_letter = strtoupper(trim($_POST['immat_letter'] ?? ''));
            $immat_num2 = trim($_POST['immat_num2'] ?? '');
            if ($immat_num1 || $immat_letter || $immat_num2) {
                $immatriculation = $immat_num1 . ' | ' . $immat_letter . ' | ' . $immat_num2;
            }
        }
        $marque = trim($_POST['marque'] ?? '');
    }
    $n_policy = trim($_POST['n_policy']);
    $start_date = trim($_POST['start_date']);
    $end_date = trim($_POST['end_date']);
    $montant_to_paie = trim($_POST['montant_to_paie']);
    $client_name = '';

    // Validate client CIN and get client_id
    $client_id = null;
    if (empty($client_cin)) {
        $errors['client_cin'] = "Le CIN du client est obligatoire.";
    } else {
        $query = "SELECT id, client_name FROM clients_table WHERE client_cin = ?";
        $stmt = $conn->prepare($query);
        $stmt->bind_param("s", $client_cin);
        $stmt->execute();
        $stmt->bind_result($client_id_result, $client_name_result);
        if (!$stmt->fetch()) {
            $errors['client_cin'] = "Le CIN n'existe pas dans la table des clients.";
        } else {
            $client_id = $client_id_result;
            $client_name = $client_name_result;
        }
        $stmt->close();
    }

    // Validate immatriculation
    if ($policy_category === 'V') {
        if (empty($immatriculation)) {
            $errors['immatriculation'] = "L'immatriculation est obligatoire.";
        }
    }

    // Validate policy number (unique)
    if (empty($n_policy)) {
        $errors['n_policy'] = "Le numéro de police est obligatoire.";
    } else {
        // Vérifier l'unicité seulement si le numéro de police a été modifié
        if ($policy && $n_policy !== $policy['n_policy']) {
            $query = "SELECT id FROM policy_table WHERE n_policy = ?";
            $stmt = $conn->prepare($query);
            $stmt->bind_param("s", $n_policy);
            $stmt->execute();
            $stmt->bind_result($existing_id);
            if ($stmt->fetch()) {
                $errors['n_policy'] = "Le numéro de police existe déjà.";
            }
            $stmt->close();
        }
    }

    // Validate start date
    if (empty($start_date)) {
        $errors['start_date'] = "La date de début est obligatoire.";
    }

    // Validate end date
    if (empty($end_date)) {
        $errors['end_date'] = "La date de fin est obligatoire.";
    } elseif (!empty($start_date) && $end_date <= $start_date) {
        $errors['end_date'] = "La date de fin doit être supérieure à la date de début.";
    }

    // Validate montant to pay (numeric)
    if (empty($montant_to_paie)) {
        $errors['montant_to_paie'] = "Le montant à payer est obligatoire.";
    } elseif (!is_numeric($montant_to_paie)) {
        $errors['montant_to_paie'] = "Le montant doit être un nombre.";
    }    // Récupérer l'ancien numéro de police et montant à payer pour l'historique
    $old_n_policy = '';    $old_montant_to_paie = null;
    $old_client_cin = '';
    $old_client_name = '';
    $old_immat = '';
    $old_start_date = '';
    $old_end_date = '';
    $old_marque = '';
    $old_policy_type = '';
    if (!empty($id)) {
        $stmtOld = $conn->prepare("SELECT p.n_policy, p.montant_to_paie, c.client_cin, c.client_name, p.immatriculation, p.start_date, p.end_date, p.marque, p.policy_type FROM policy_table p LEFT JOIN clients_table c ON p.client_id = c.id WHERE p.id = ?");
        $stmtOld->bind_param("i", $id);
        $stmtOld->execute();
        $stmtOld->bind_result($old_n_policy, $old_montant_to_paie, $old_client_cin, $old_client_name, $old_immat, $old_start_date, $old_end_date, $old_marque, $old_policy_type);
        $stmtOld->fetch();
        $stmtOld->close();
    }// Par défaut, ne pas changer le total_reste
    $total_reste = null;

    // Si le montant à payer a changé, recalculer le reste
    if ($old_montant_to_paie !== null && $montant_to_paie != $old_montant_to_paie) {
        $montant_paye = 0;
        // Utiliser l'ancien numéro de police pour récupérer les paiements existants
        if (!empty($old_n_policy)) {
            $sqlPaye = "SELECT SUM(montant_paye) as total_paye FROM receipts_table WHERE policy_number = ? AND paiement_statut = 1";
            $stmtPaye = $conn->prepare($sqlPaye);
            $stmtPaye->bind_param("s", $old_n_policy);
            $stmtPaye->execute();
            $stmtPaye->bind_result($total_paye);
            if ($stmtPaye->fetch()) {
                $montant_paye = floatval($total_paye);
            }
            $stmtPaye->close();
        }
        $total_reste = is_numeric($montant_to_paie) ? max(0, floatval($montant_to_paie) - $montant_paye) : 0;
    }

    // Update policy if no validation errors
    if (!array_filter($errors)) {
        // Récupérer l'ancien numéro de police avant la mise à jour (toujours depuis la base pour éviter les soucis)
        $old_n_policy = '';
        $getOldPolicy = $conn->prepare("SELECT n_policy FROM policy_table WHERE id = ?");
        $getOldPolicy->bind_param("i", $id);
        $getOldPolicy->execute();
        $getOldPolicy->bind_result($old_n_policy);
        $getOldPolicy->fetch();
        $getOldPolicy->close();        // Préparer la requête de mise à jour
        if ($total_reste !== null) {
            $updateQuery = "UPDATE policy_table SET client_id = ?, immatriculation = ?, n_policy = ?, start_date = ?, end_date = ?, montant_to_paie = ?, total_reste = ?, marque = ?, policy_type = ? WHERE id = ?";
            $stmt = $conn->prepare($updateQuery);
            $stmt->bind_param("isssssdssi", $client_id, $immatriculation, $n_policy, $start_date, $end_date, $montant_to_paie, $total_reste, $marque, $policy_type, $id);
        } else {
            $updateQuery = "UPDATE policy_table SET client_id = ?, immatriculation = ?, n_policy = ?, start_date = ?, end_date = ?, montant_to_paie = ?, marque = ?, policy_type = ? WHERE id = ?";
            $stmt = $conn->prepare($updateQuery);
            $stmt->bind_param("isssssssi", $client_id, $immatriculation, $n_policy, $start_date, $end_date, $montant_to_paie, $marque, $policy_type, $id);
        }

        if ($stmt->execute()) {
            // Mettre à jour receipts_table pour cette police (y compris le numéro de police et reste_a_payer si besoin)
            if ($total_reste !== null) {
                $updateReceipt = $conn->prepare("
                    UPDATE receipts_table 
                    SET client_id = ?, immatriculation = ?, montant_total = ?, policy_number = ?, reste_a_payer = ?
                    WHERE policy_number = ?
                ");
                $updateReceipt->bind_param(
                    "isssss",
                    $client_id,
                    $immatriculation,
                    $montant_to_paie,
                    $n_policy,      // nouveau numéro de police
                    $total_reste,   // nouveau reste à payer
                    $old_n_policy   // ancien numéro de police
                );
            } else {
                $updateReceipt = $conn->prepare("
                    UPDATE receipts_table 
                    SET client_id = ?, immatriculation = ?, montant_total = ?, policy_number = ?
                    WHERE policy_number = ?
                ");
                $updateReceipt->bind_param(
                    "issss",
                    $client_id,
                    $immatriculation,
                    $montant_to_paie,
                    $n_policy,      // nouveau numéro de police
                    $old_n_policy   // ancien numéro de police
                );
            }            $updateReceipt->execute();
            $updateReceipt->close();

            // Mettre à jour facture_table si elle existe pour cette police
            $checkFacture = $conn->prepare("SELECT COUNT(*) FROM facture_table WHERE libelle = ?");
            $checkFacture->bind_param("s", $old_n_policy);
            $checkFacture->execute();
            $checkFacture->bind_result($factureExists);
            $checkFacture->fetch();
            $checkFacture->close();

            if ($factureExists > 0) {
                // Mettre à jour les informations dans facture_table
                $updateFacture = $conn->prepare("
                    UPDATE facture_table 
                    SET libelle = ?, objet_assure = ?, start_date = ?, end_date = ?, total = ?
                    WHERE libelle = ?
                ");
                $updateFacture->bind_param(
                    "ssssds",
                    $n_policy,          // nouveau libelle (numéro de police)
                    $immatriculation,   // nouvel objet assuré
                    $start_date,        // nouvelle date de début
                    $end_date,          // nouvelle date de fin
                    $montant_to_paie,   // nouveau total
                    $old_n_policy       // ancien libelle pour identifier la facture
                );
                $updateFacture->execute();                $updateFacture->close();
            }            // Enregistrer les modifications dans le journal global
            $oldData = [
                'client_cin' => $old_client_cin,
                'client_name' => $old_client_name,
                'immatriculation' => $old_immat,
                'n_policy' => $old_n_policy,
                'start_date' => $old_start_date,
                'end_date' => $old_end_date,
                'montant_to_paie' => $old_montant_to_paie,
                'marque' => $old_marque,
                'policy_type' => $old_policy_type
            ];
            
            $newData = [
                'client_cin' => $client_cin,
                'client_name' => $client_name,
                'immatriculation' => $immatriculation,
                'n_policy' => $n_policy,
                'start_date' => $start_date,
                'end_date' => $end_date,
                'montant_to_paie' => $montant_to_paie,
                'marque' => $marque,
                'policy_type' => $policy_type
            ];
              logPolicyEdit($n_policy, $oldData, $newData);

            // Redirection pour éviter la resoumission du formulaire
            header("Location: edit_policy.php?id=" . $id . "&success=1");
            exit;
        } else {
            $errors['general'] = "Erreur lors de la mise à jour de la police.";
        }

        $stmt->close();
    }
}

// Ne pas fermer la connexion ici !
// $conn->close();
?>
<!DOCTYPE html>
<html lang="en">

<head>
 <?php include ('includes/head.php'); ?>
  <!-- Select2 CSS -->
  <link href="vendor/select2/dist/css/select2.min.css" rel="stylesheet">  <!-- Styles pour l'immatriculation -->
  <style>
  .immat-group {
    display: flex;
    gap: 10px;
  }
  .immat-part {
    flex: 1;
    text-align: center;
  }
  </style>
</head>

<body id="page-top">
  <div id="wrapper">
    <!-- Sidebar -->
    <?php include ('includes/sidebar.php'); ?>
    <!-- Sidebar -->

    <div id="content-wrapper" class="d-flex flex-column">
      <div id="content">
        <!-- TopBar -->
       <?php include ('includes/topbar.php'); ?>
        <!-- Topbar -->

        <!-- Container Fluid-->
        <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">Modifier une Police</h1>
            <ol class="breadcrumb">
              <li class="breadcrumb-item"><a href="./">Accueil</a></li>
              <li class="breadcrumb-item">Polices</li>
              <li class="breadcrumb-item active" aria-current="page">Modifier une Police</li>
            </ol>
          </div>

          <div class="row">
            <div class="col-lg-6">
              <!-- Form -->
              <div class="card mb-4">
                <div class="card-header py-3 d-flex flex-row align-items-center justify-content-between">
                  <h6 class="m-0 font-weight-bold text-primary">Formulaire de modification</h6>
                </div>
                <div class="card-body">
                  <!-- Affichage catégorie de police -->
                  <div class="mb-3">
                    <?php if ($policy_category === 'RD'): ?>
                      <span class="badge badge-warning px-3 py-2"><i class="fas fa-shield-alt mr-2"></i><strong>Risque Divers (RD)</strong></span>
                    <?php else: ?>
                      <span class="badge badge-info px-3 py-2"><i class="fas fa-car mr-2"></i><strong>Véhicule (V)</strong></span>
                    <?php endif; ?>
                  </div>

                  <?php if (!empty($errors['general'])): ?>
                      <div class="alert alert-danger">
                          <?php echo $errors['general']; ?>
                      </div>
                  <?php endif; ?>

                  <form method="POST" action="edit_policy.php">
                      <input type="hidden" name="id" value="<?php if(!empty($policy)){ echo $policy['id'];} ?>">                      <div class="form-group">
                          <label for="client_cin">CIN du client</label>
                          <select class="form-control select2-client" id="client_cin" name="client_cin" required>
                              <option value="">-- Sélectionner un client --</option>
                              <?php
                              // Récupérer tous les clients depuis la table clients_table
                              $sql_clients = "SELECT client_cin, client_name FROM clients_table ORDER BY client_name ASC";
                              $res_clients = $conn->query($sql_clients);
                              if ($res_clients) {
                                  while ($row_client = $res_clients->fetch_assoc()) {
                                      $selected = '';
                                      if (!empty($client_cin) && $client_cin === $row_client['client_cin']) {
                                          $selected = 'selected';
                                      } elseif (empty($client_cin) && isset($policy['client_cin']) && $policy['client_cin'] === $row_client['client_cin']) {
                                          $selected = 'selected';
                                      }
                                      echo '<option value="' . htmlspecialchars($row_client['client_cin']) . '" ' . $selected . '>' . 
                                           htmlspecialchars($row_client['client_name']) . ' (' . htmlspecialchars($row_client['client_cin']) . ')</option>';
                                  }
                              }
                              ?>
                          </select>
                          <?php if (!empty($errors['client_cin'])): ?>
                              <small class="text-danger"><?php echo $errors['client_cin']; ?></small>
                          <?php endif; ?>                      </div>
                      <div class="form-group">
                          <label for="n_policy">Numéro de police</label>
                          <input type="text" class="form-control" id="n_policy" name="n_policy" 
                                 value="<?php echo htmlspecialchars($n_policy ?? ($policy['n_policy'] ?? '')); ?>" required>
                          <?php if (!empty($errors['n_policy'])): ?>
                              <small class="text-danger"><?php echo $errors['n_policy']; ?></small>
                          <?php endif; ?>
                      </div>
                      <div class="form-group">
                          <label for="policy_type">Type de police</label>
                          <select class="form-control" id="policy_type" name="policy_type" required>
                              <option value="">-- Sélectionner --</option>
                              <?php foreach($policy_types as $type_item): ?>
                                  <option value="<?php echo htmlspecialchars($type_item); ?>" <?php if((!empty($policy_type) && $policy_type === $type_item) || (empty($policy_type) && isset($policy['policy_type']) && $policy['policy_type'] === $type_item)) echo 'selected'; ?>>
                                      <?php echo htmlspecialchars($type_item); ?>
                                  </option>
                              <?php endforeach; ?>
                          </select>
                      </div>
                      <div id="vehicle_fields">
                        <div class="form-group">
                          <label for="marque">Marque du véhicule</label>
                          <select class="form-control select2-marque" id="marque" name="marque">
                            <option value="">-- Sélectionner une marque --</option>
                            <?php foreach($marques as $marque_item): ?>
                              <option value="<?php echo htmlspecialchars($marque_item); ?>" <?php if((!empty($marque) && $marque === $marque_item) || (empty($marque) && isset($policy['marque']) && $policy['marque'] === $marque_item)) echo 'selected'; ?>>
                                <?php echo htmlspecialchars($marque_item); ?>
                              </option>
                            <?php endforeach; ?>
                          </select>
                        </div>
                        <div class="form-group">
                          <label for="immatriculation">Immatriculation</label>
                          <div class="d-flex align-items-center gap-2" style="gap: 10px;">
                              <input type="text" class="form-control" id="immat_num1" placeholder="1234" style="flex: 1; text-align: center;" value="<?php echo htmlspecialchars($immat_num1 ?? ''); ?>">
                              <span style="font-weight: bold;">|</span>
                              <input type="text" class="form-control" id="immat_letter" placeholder="ب" style="flex: 0 0 60px; text-align: center; text-transform: uppercase;" value="<?php echo htmlspecialchars($immat_letter ?? ''); ?>">
                              <span style="font-weight: bold;">|</span>
                              <input type="text" class="form-control" id="immat_num2" placeholder="12" style="flex: 0 0 80px; text-align: center;" value="<?php echo htmlspecialchars($immat_num2 ?? ''); ?>">
                          </div>
                            <input type="hidden" id="immatriculation" name="immatriculation" value="<?php echo htmlspecialchars(isset($immatriculation) && $immatriculation !== '' ? $immatriculation : ($policy['immatriculation'] ?? '')); ?>">
                          <small class="form-text text-muted">Saisissez les trois parties de l'immatriculation</small>
                          <?php if (isset($errors['immatriculation']) && $errors['immatriculation']): ?>
                              <small class="text-danger"><?php echo $errors['immatriculation']; ?></small>
                          <?php endif; ?>
                        </div>
                      </div>
                      <div class="form-group">
                          <label for="start_date">Date de début</label>
                          <input type="date" class="form-control" id="start_date" name="start_date" 
                                 value="<?php echo htmlspecialchars($start_date ?? $policy['start_date']); ?>" required>
                          <?php if (!empty($errors['start_date'])): ?>
                              <small class="text-danger"><?php echo $errors['start_date']; ?></small>
                          <?php endif; ?>
                      </div>
                      <div class="form-group">
                          <label for="end_date">Date de fin</label>
                          <input type="date" class="form-control" id="end_date" name="end_date" 
                                 value="<?php echo htmlspecialchars($end_date ?? $policy['end_date']); ?>" required>
                          <?php if (!empty($errors['end_date'])): ?>
                              <small class="text-danger"><?php echo $errors['end_date']; ?></small>                          <?php endif; ?>                      </div>
                      <div class="form-group">
                          <label for="montant_to_paie">Montant à payer</label>
                          <input type="text" class="form-control" id="montant_to_paie" name="montant_to_paie" 
                                 value="<?php echo htmlspecialchars($montant_to_paie ?? ($policy['montant_to_paie'] ?? '')); ?>" required>
                          <?php if (!empty($errors['montant_to_paie'])): ?>
                              <small class="text-danger"><?php echo $errors['montant_to_paie']; ?></small>
                          <?php endif; ?>
                      </div>
                      <div class="d-flex justify-content-between">
                          <button type="submit" class="btn btn-primary">Mettre à jour</button>
                          <a href="policys_table.php" class="btn btn-secondary">Annuler</a>
                      </div>
                  </form>
                </div>
              </div>
            </div>
          </div>
          <!--Row-->
        </div>
        <!---Container Fluid-->
      </div>
      <!-- Footer -->
      <?php include ('includes/footer.php'); ?>
      <!-- Footer -->
    </div>  </div>

  <!-- Include required scripts --><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="vendor/select2/dist/js/select2.min.js"></script>
  <script src="js/ruang-admin.min.js"></script>  <script>
    $(document).ready(function () {
      // Initialiser Select2 pour le champ client avec recherche
      $('.select2-client').select2({
        placeholder: "-- Sélectionner un client --",
        allowClear: true,
        width: '100%'
      });

      // Initialiser Select2 pour le champ marque avec recherche
      $('.select2-marque').select2({
        placeholder: "Rechercher une marque...",
        allowClear: true,
        width: '100%'
      });

      // Gestion des trois champs d'immatriculation qui se combinent en un seul
      function updateImmatriculation() {
        var num1 = $('#immat_num1').val().trim();
        var letter = $('#immat_letter').val().trim().toUpperCase();
        var num2 = $('#immat_num2').val().trim();
        
        if (num1 || letter || num2) {
          $('#immatriculation').val(num1 + ' | ' + letter + ' | ' + num2);
        } else {
          $('#immatriculation').val('');
        }
      }
      
      $('#immat_num1, #immat_letter, #immat_num2').on('input change blur', updateImmatriculation);
      
      // Mettre à jour avant la soumission du formulaire
      $('form').on('submit', function() {
        updateImmatriculation();
      });
      
      // Initialiser les valeurs si l'immatriculation existe déjà
      var existingImmat = $('#immatriculation').val();
      if (existingImmat) {
        var parts = existingImmat.split('|').map(function(p) { return p.trim(); });
        if (parts.length >= 3) {
          if (!$('#immat_num1').val().trim()) { $('#immat_num1').val(parts[0]); }
          if (!$('#immat_letter').val().trim()) { $('#immat_letter').val(parts[1]); }
          if (!$('#immat_num2').val().trim()) { $('#immat_num2').val(parts[2]); }
        }
      }

      // Masquer/afficher les champs véhicule selon la catégorie
      function toggleVehicleFields() {
        var policyCategory = '<?php echo $policy_category; ?>';
        if (policyCategory === 'RD') {
          $('#vehicle_fields').hide();
          $('#marque').prop('disabled', true);
          $('#immat_num1').prop('disabled', true);
          $('#immat_letter').prop('disabled', true);
          $('#immat_num2').prop('disabled', true);
        } else {
          $('#vehicle_fields').show();
          $('#marque').prop('disabled', false);
          $('#immat_num1').prop('disabled', false);
          $('#immat_letter').prop('disabled', false);
          $('#immat_num2').prop('disabled', false);
        }
      }
      toggleVehicleFields();
    });
  </script>

  <!-- Modal de succès -->
  <div class="modal fade" id="successModal" tabindex="-1" role="dialog" aria-labelledby="successModalLabel" aria-hidden="true">
    <div class="modal-dialog modal-dialog-centered" role="document">
      <div class="modal-content">
        <div class="modal-header bg-success text-white">
          <h5 class="modal-title" id="successModalLabel">
            <i class="fas fa-check-circle"></i> Succès
          </h5>
        </div>
        <div class="modal-body text-center">
          <p class="mb-0">La police a été mise à jour avec succès.</p>
        </div>
        <div class="modal-footer justify-content-center">
          <button type="button" class="btn btn-success" id="btnReturnToInfo">
            <i class="fas fa-arrow-left"></i> OK
          </button>
        </div>
      </div>
    </div>
  </div>

  <script>
    <?php if (isset($_GET['success']) && $_GET['success'] == 1): ?>
      $(document).ready(function() {
        $('#successModal').modal('show');
        $('#btnReturnToInfo').click(function() {
          window.location.href = 'info_policy.php?id=<?php echo $id; ?>';
        });
      });
    <?php endif; ?>
  </script>
</body>

</html>