<?php
require_once __DIR__ . '/config/db.php';
require_once __DIR__ . '/src/auth.php';
require_login();

$purchase_id = intval($_GET['id']);
$supplier_id = intval($_GET['supplier']);

if (!$purchase_id || !$supplier_id) {
    die("Invalid parameters.");
}

// ─────────────────────────────
// احضار إجمالي الفاتورة قبل الحذف
// ─────────────────────────────
$stmt = $pdo->prepare("SELECT total FROM purchases WHERE id = ?");
$stmt->execute([$purchase_id]);
$purchase = $stmt->fetch(PDO::FETCH_ASSOC);

if (!$purchase) {
    die("Invoice not found.");
}

$invoice_total = floatval($purchase['total']);

try {
    $pdo->beginTransaction();

    // ─────────────────────────────
    // 1) إعادة المخزون كما كان
    // ─────────────────────────────
    $items = $pdo->prepare("SELECT product_id, qty FROM purchase_items WHERE purchase_id = ?");
    $items->execute([$purchase_id]);

    while ($row = $items->fetch(PDO::FETCH_ASSOC)) {
        $pdo->prepare("UPDATE products SET stock = stock - ? WHERE id = ?")
            ->execute([$row['qty'], $row['product_id']]);
    }

    // ─────────────────────────────
    // 2) تعديل رصيد المورد
    // ─────────────────────────────
    $pdo->prepare("UPDATE suppliers SET balance = balance - ? WHERE id = ?")
        ->execute([$invoice_total, $supplier_id]);

    // ─────────────────────────────
    // 3) حذف تفاصيل الفاتورة
    // ─────────────────────────────
    $pdo->prepare("DELETE FROM purchase_items WHERE purchase_id = ?")
        ->execute([$purchase_id]);

    // ─────────────────────────────
    // 4) حذف الفاتورة نفسها
    // ─────────────────────────────
    $pdo->prepare("DELETE FROM purchases WHERE id = ?")
        ->execute([$purchase_id]);

    $pdo->commit();

    header("Location: purchase_invoices.php?deleted=1");
    exit;

} catch (Exception $e) {
    $pdo->rollBack();
    die("Error deleting invoice: " . $e->getMessage());
}
?>
