<?php
// require_once 'db.php';

// function genererNumeroFacture($annee) {
//     global $pdo;
//     $prefix = "N°$annee/NT";
//     $stmt = $pdo->prepare("SELECT MAX(id) FROM factures WHERE numero LIKE :prefix");
//     $stmt->execute(['prefix' => $prefix . '%']);
//     $maxId = $stmt->fetchColumn();
//     $numeroOrdre = str_pad(($maxId ? $maxId : 0) + 1, 5, '0', STR_PAD_LEFT);
//     return "N°$annee/NT$numeroOrdre";
// }

// $annee = date('Y');
// $numero = genererNumeroFacture($annee);
// $stmt = $pdo->prepare("INSERT INTO factures (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 genererNumeroFacture($annee) {
    global $pdo;
    $prefix = "N°$annee/NT%";
    
    // LOCATE trouve la position de "NT", +2 permet de sauter ces 2 lettres
    // SUBSTRING extrait uniquement la partie numérique (ex: 00019)
    $stmt = $pdo->prepare("SELECT MAX(CAST(SUBSTRING(numero, LOCATE('NT', numero) + 2) AS UNSIGNED)) as max_num FROM factures WHERE numero LIKE :prefix");
    $stmt->execute(['prefix' => $prefix]);
    $maxNum = $stmt->fetchColumn();
    
    $prochainNumero = ($maxNum ? (int)$maxNum : 0) + 1;
    $numeroOrdre = str_pad($prochainNumero, 5, '0', STR_PAD_LEFT);
    
    return "N°$annee/NT$numeroOrdre";
}

$annee = date('Y');
$numero = genererNumeroFacture($annee);

$stmt = $pdo->prepare("INSERT INTO factures (numero) VALUES (:numero)");
$stmt->execute(['numero' => $numero]);

header("Location: index.php");
exit();

?>