<?php
/**
 * Fonction simple pour générer le prochain numéro de facture
 * Logic: prefixe + numero (commence par facture_ref si pas de factures) + suffixe
 */

function getNextFactureNumber($conn) {
    // Récupérer les paramètres de facturation
    $sql_company = "SELECT facture_ref, facture_prefixe, facture_suffixe FROM compagnie_table LIMIT 1";
    $result_company = $conn->query($sql_company);
    
    $facture_ref = '';
    $facture_prefixe = '';
    $facture_suffixe = '';
    
    if ($result_company && $row = $result_company->fetch_assoc()) {
        $facture_ref = $row['facture_ref'] ?? '';
        $facture_prefixe = $row['facture_prefixe'] ?? '';
        $facture_suffixe = $row['facture_suffixe'] ?? '';
    }
    
    // Vérifier s'il y a déjà des factures dans la table
    $sql_count = "SELECT COUNT(*) as total FROM facture_table";
    $result_count = $conn->query($sql_count);
    $count = 0;
    
    if ($result_count && $row_count = $result_count->fetch_assoc()) {
        $count = intval($row_count['total']);
    }
    
    // Déterminer le prochain numéro
    if ($count == 0) {
        // Aucune facture n'existe, commencer par facture_ref s'il existe
        if (!empty($facture_ref) && is_numeric($facture_ref)) {
            $next_number = intval($facture_ref);
        } else {
            $next_number = 1; // Par défaut commencer à 1
        }
    } else {
        // Il y a déjà des factures, prendre le dernier numéro + 1
        $sql_last = "SELECT MAX(CAST(facture_num AS UNSIGNED)) as last_num FROM facture_table";
        $result_last = $conn->query($sql_last);
        
        if ($result_last && $row_last = $result_last->fetch_assoc()) {
            $next_number = intval($row_last['last_num']) + 1;
        } else {
            $next_number = 1;
        }
    }
    
    // Construire le numéro complet : prefixe + numero + suffixe
    $numero_complet = '';
    if (!empty($facture_prefixe)) {
        $numero_complet .= $facture_prefixe;
    }
    $numero_complet .= $next_number;
    if (!empty($facture_suffixe)) {
        $numero_complet .= $facture_suffixe;
    }
    
    return [
        'numero_simple' => $next_number,
        'numero_complet' => $numero_complet
    ];
}

// Exemple d'utilisation dans create_facture.php :
/*
include 'generate_facture_number.php';

$next_facture = getNextFactureNumber($conn);
$numero_simple = $next_facture['numero_simple'];   // Ex: 5 (à stocker en DB)
$numero_complet = $next_facture['numero_complet']; // Ex: FAC5/HIBA (pour affichage)

// Insérer en base avec le numéro simple
$sql = "INSERT INTO facture_table (facture_num, ...) VALUES (?, ...)";
$stmt->bind_param("s", $numero_simple, ...);
*/
?>
