<?php

/**
 * Vérifie si un mouvement est autorisé par rapport à la clôture stock
 *
 * @param PDO $conn
 * @param string $date_mouvement  (Y-m-d ou Y-m-d H:i:s)
 * @param int|null $depot_id
 *
 * @throws Exception si bloqué
 */
function verifierClotureStock(PDO $conn, string $date_mouvement, ?int $depot_id): void
{
    $stmt = $conn->prepare("
        SELECT MAX(date_cloture) AS derniere_cloture
        FROM clotures_stock
        WHERE depot_id <=> ?
          AND statut = 'cloturee'
    ");
    $stmt->execute([$depot_id]);

    $row = $stmt->fetch(PDO::FETCH_ASSOC);

    if ($row && $row['derniere_cloture']) {
        if (strtotime($date_mouvement) <= strtotime($row['derniere_cloture'])) {
            throw new Exception(
                "Mouvement interdit : le stock est clôturé jusqu’au "
                . date('d/m/Y', strtotime($row['derniere_cloture']))
            );
        }
    }
}
