<?php
// require_once 'db.php';

// function genererNumeroBordereau($annee) {
//     global $pdo;
//     $stmt = $pdo->query("SELECT MAX(id) FROM bordereaux");
//     $maxId = $stmt->fetchColumn();
//     $numeroOrdre = str_pad(($maxId + 1), 3, '0', STR_PAD_LEFT);
//     return "$numeroOrdre/NERIS/DG/$annee";
// }

// $numero = genererNumeroBordereau(date('Y'));
// $stmt = $pdo->prepare("INSERT INTO bordereaux (numero) VALUES (:numero)");
// $stmt->execute(['numero' => $numero]);

// // Redirection vers index.php après la génération du numéro
// header("Location: index.php");
// exit();

//AVEC LA REINITIALISATION DE CHAQUE ANNEE

require_once 'db.php';

function genererNumeroBordereau($annee) {
    global $pdo;
    
    // On cible uniquement les numéros de l'année en cours
    $prefix = "%/NERIS/DG/$annee";
    
    // Récupération du dernier numéro d'ordre pour cette année
    // SUBSTRING_INDEX extrait la partie avant le premier '/' (ex: "005")
    // CAST(... AS UNSIGNED) convertit en entier pour une comparaison numérique correcte (évite que 9 > 10)
    $stmt = $pdo->prepare("SELECT MAX(CAST(SUBSTRING_INDEX(numero, '/', 1) AS UNSIGNED)) as max_num FROM bordereaux WHERE numero LIKE :prefix");
    $stmt->execute(['prefix' => $prefix]);
    $maxNum = $stmt->fetchColumn();
    
    // Si aucun bordereau n'existe pour cette année, on part de 0, sinon on prend le max trouvé
    $prochainNumero = ($maxNum ? (int)$maxNum : 0) + 1;
    
    // Formatage sur 3 chiffres avec zéros non significatifs
    $numeroOrdre = str_pad($prochainNumero, 3, '0', STR_PAD_LEFT);
    
    return "$numeroOrdre/NERIS/DG/$annee";
}

$annee = date('Y');
$numero = genererNumeroBordereau($annee);

$stmt = $pdo->prepare("INSERT INTO bordereaux (numero) VALUES (:numero)");
$stmt->execute(['numero' => $numero]);

// Redirection vers index.php après la génération
header("Location: index.php");
exit();

?>