<?php
if (session_status() === PHP_SESSION_NONE) {
    session_start();
}
include 'config.php';

// 1. التأكد من تسجيل الدخول
if (!isset($_SESSION['user_id'])) {
    // لو مش مسجل دخول، اطرده لصفحة اللوجين
    header("Location: login.php");
    exit();
}

// 2. جلب المتغيرات الأساسية واسم الصفحة الحالية
$user_id = $_SESSION['user_id'];
$current_branch_id = $_SESSION['branch_id'] ?? 1;
$current_page = basename($_SERVER['PHP_SELF']); 

// 3. فحص الصلاحية بربط جدول الصلاحيات بجدول الصفحات
$stmt_perm = $pdo->prepare("
    SELECT up.id 
    FROM user_permissions up
    JOIN pages p ON up.page_id = p.id
    WHERE up.user_id = ? AND p.page_url = ?
");
$stmt_perm->execute([$user_id, $current_page]);
$has_permission = $stmt_perm->fetch();

// 4. فحص الأكسس: لو ملوش صلاحية في الجدول، نمنعه من الدخول
if (!$has_permission) {
    echo "<div style='text-align:center; margin-top:50px; font-family:sans-serif; direction:rtl;'>
            <h2 style='color:#dc3545;'>عفواً! لا تمتلك صلاحية للوصول إلى هذه الصفحة.</h2>
            <p>يرجى مراجعة مدير النظام لفتح صلاحية (".$current_page.") لحسابك.</p>
            <a href='dashboard.php' style='text-decoration:none; color:#fff; background:#4e342e; padding:10px 20px; border-radius:5px; font-weight:bold;'>العودة للرئيسية</a>
          </div>";
    exit;
}

// ... من أول هنا يكمل الكود العادي لباقي الصفحة ...
?>

<style>
    :root { --o-purple: #714B67; --o-teal: #008784; --o-bg: #f9f9f9; }
    body { background: var(--o-bg); font-family: 'Segoe UI', Tahoma, sans-serif; direction: rtl; margin: 0; }
    
    /* أودو Control Panel */
    .o_control_panel { background: #fff; border-bottom: 1px solid #d9d9d9; padding: 10px 20px; display: flex; justify-content: space-between; align-items: center; }
    .o_breadcrumb { font-size: 1.2rem; color: #4c4c4c; }
    .o_breadcrumb span { color: #212529; font-weight: bold; }
    .o_cp_buttons .btn-o-primary { background: var(--o-purple); color: white; border: 1px solid var(--o-purple); padding: 6px 12px; border-radius: 4px; font-weight: bold; cursor: pointer; }
    .o_cp_buttons .btn-o-primary:hover { background: #5a3b52; }
    
    /* محتوى الصفحة */
    .o_content { padding: 20px; max-width: 1200px; margin: 0 auto; }
    .o_form_sheet { background: white; border: 1px solid #c8c8c8; border-radius: 2px; padding: 30px; box-shadow: 0 4px 20px rgba(0,0,0,0.05); }
    
    .o_group { display: flex; flex-wrap: wrap; margin-bottom: 20px; gap: 20px; }
    .o_inner_group { flex: 1; min-width: 280px; }
    .o_field_widget { display: flex; align-items: center; margin-bottom: 12px; }
    .o_field_widget label { width: 120px; color: #4c4c4c; font-weight: bold; font-size: 0.95rem; }
    .o_input { flex: 1; padding: 6px 10px; border: 1px solid #ccc; border-radius: 4px; font-size: 0.95rem; }
    .o_input:focus { border-color: var(--o-purple); outline: none; }

    /* جدول المشتريات */
    .o_list_view { width: 100%; border-collapse: collapse; margin-top: 20px; text-align: right; }
    .o_list_view th { background: #f3f3f3; border-bottom: 2px solid #d9d9d9; padding: 10px; color: #4c4c4c; font-weight: bold; }
    .o_list_view td { padding: 8px 10px; border-bottom: 1px solid #e6e6e6; }
    
    .o_form_statusbar { display: flex; justify-content: flex-end; border-bottom: 1px solid #e2e2e2; padding-bottom: 15px; margin-bottom: 20px; }
    .status_badge { background: #e2e7eb; color: #4c4c4c; padding: 4px 12px; border-radius: 20px; font-size: 0.85rem; font-weight: bold; }
    .status_badge.active { background: #d4edda; color: #155724; }
</style>

<div class="o_control_panel">
    <div class="o_breadcrumb">
        M purchases / <span>إنشاء فاتورة مشتريات جديدة</span>
    </div>
    <div class="o_cp_buttons">
        <button type="button" class="btn-o-primary" onclick="submitPurchaseForm()"><i class="fa fa-cloud-upload-alt"></i> حفظ واعتماد الفاتورة</button>
    </div>
</div>

<div class="o_content">
    <div class="o_form_sheet">
        <div class="o_form_statusbar">
            <div class="status_badge active">مسودة شراء مخزني</div>
        </div>

        <div class="o_group">
            <div class="o_inner_group">
                <div class="o_field_widget">
                    <label>المورد الحالي:</label>
                    <select id="supplier_id" class="o_input">
                        <option value="">اختر مورد...</option>
                        <?php if(!empty($suppliers)): foreach($suppliers as $s): ?>
                            <option value="<?= $s['id'] ?>"><?= htmlspecialchars($s['name']) ?></option>
                        <?php endforeach; endif; ?>
                    </select>
                </div>
            </div>
            <div class="o_inner_group">
                <div class="o_field_widget">
                    <label>تاريخ الاستلام:</label>
                    <input type="text" class="o_input" value="<?= date('Y-m-d H:i') ?>" readonly style="background:#e9ecef;">
                </div>
            </div>
        </div>

        <h4 style="color:var(--o-purple); border-bottom:1px solid #eee; padding-bottom:8px; margin-top:30px;">إضافة الأصناف والمواد الخام</h4>
        <div class="o_group" style="background: #fafafa; padding: 15px; border-radius: 4px; border: 1px solid #eee;">
            <div style="flex:2;">
                <label style="display:block; margin-bottom:5px; font-weight:bold;">الصنف:</label>
                <select id="product_selector" class="o_input" style="width:100%;">
                    <option value="">اختر صنف...</option>
                    <?php if(!empty($products)): foreach($products as $p): ?>
                        <option value="<?= $p['id'] ?>" data-name="<?= htmlspecialchars($p['product_name']) ?>"><?= htmlspecialchars($p['product_name']) ?></option>
                    <?php endforeach; endif; ?>
                </select>
            </div>
            <div style="flex:1;">
                <label style="display:block; margin-bottom:5px; font-weight:bold;">الكمية (كجم/عدد):</label>
                <input type="number" step="0.001" id="product_qty" class="o_input" style="width:100%;" placeholder="0.00">
            </div>
            <div style="flex:1;">
                <label style="display:block; margin-bottom:5px; font-weight:bold;">سعر الشراء:</label>
                <input type="number" step="0.01" id="product_cost" class="o_input" style="width:100%;" placeholder="0.00">
            </div>
            <div style="flex:0.5; display:flex; align-items:flex-end;">
                <button type="button" class="btn-o-primary" style="background:var(--o-teal); border-color:var(--o-teal); width:100%; padding:8px;" onclick="addItemToPurchase()"><i class="fa fa-plus"></i></button>
            </div>
        </div>

        <table class="o_list_view">
            <thead>
                <tr>
                    <th>الصنف</th>
                    <th style="width:15%;">الكمية</th>
                    <th style="width:15%;">سعر الشراء</th>
                    <th style="width:15%;">الإجمالي</th>
                    <th style="width:10%; text-align:center;">إجراء</th>
                </tr>
            </thead>
            <tbody id="purchase_table_body">
            </tbody>
        </table>

        <div style="margin-top:30px; display:flex; justify-content:flex-end;">
            <div style="width:300px; background:#f8f9fa; padding:15px; border-radius:4px; border:1px solid #ddd;">
                <div style="display:flex; justify-content:space-between; margin-bottom:10px; font-size:1.1rem;">
                    <span>إجمالي الفاتورة:</span>
                    <span style="font-weight:bold; color:var(--o-purple);"><span id="invoice_total">0.00</span> ج.م</span>
                </div>
                <div style="display:flex; justify-content:space-between; align-items:center;">
                    <span style="font-size:0.9rem;">المبلغ المدفوع:</span>
                    <input type="number" step="0.01" id="paid_amount" class="o_input" style="width:120px; text-align:center;" placeholder="0.00">
                </div>
            </div>
        </div>
    </div>
</div>

<script>
let purchaseCart = [];
const branchId = <?= $current_branch_id ?>;

function addItemToPurchase() {
    const sel = document.getElementById('product_selector');
    const id = sel.value;
    const name = sel.options[sel.selectedIndex].getAttribute('data-name');
    const qty = parseFloat(document.getElementById('product_qty').value);
    const cost = parseFloat(document.getElementById('product_cost').value);

    if(!id || isNaN(qty) || qty <= 0 || isNaN(cost) || cost <= 0) {
        return alert("الرجاء تحديد الصنف والكمية وسعر الشراء بشكل صحيح.");
    }

    purchaseCart.push({ product_id: id, name: name, qty: qty, cost_price: cost, total: qty * cost });
    
    // تفريغ حقول الإدخال
    sel.value = "";
    document.getElementById('product_qty').value = "";
    document.getElementById('product_cost').value = "";
    
    renderTable();
}

function renderTable() {
    const tbody = document.getElementById('purchase_table_body');
    let total = 0;
    tbody.innerHTML = purchaseCart.map((item, index) => {
        total += item.total;
        return `<tr>
            <td>${item.name}</td>
            <td>${item.qty.toFixed(3)}</td>
            <td>${item.cost_price.toFixed(2)}</td>
            <td>${item.total.toFixed(2)}</td>
            <td style="text-align:center;"><i class="fa fa-trash text-danger" style="cursor:pointer;" onclick="deleteItem(${index})"></i></td>
        </tr>`;
    }).join('');
    
    document.getElementById('invoice_total').innerText = total.toFixed(2);
    document.getElementById('paid_amount').value = total.toFixed(2); // افتراضياً مدفوع بالكامل كاش
}

function deleteItem(index) {
    purchaseCart.splice(index, 1);
    renderTable();
}

async function submitPurchaseForm() {
    const suppId = document.getElementById('supplier_id').value;
    if(!suppId) return alert("الرجاء اختيار المورد أولاً.");
    if(purchaseCart.length === 0) return alert("الفاتورة فارغة! أضف أصناف أولاً.");

    const payload = {
        branch_id: branchId,
        supplier_id: parseInt(suppId),
        total_amount: parseFloat(document.getElementById('invoice_total').innerText),
        paid_amount: parseFloat(document.getElementById('paid_amount').value) || 0,
        cart: purchaseCart
    };

    try {
        const response = await fetch('save_purchase.php', {
            method: 'POST',
            headers: { 'Content-Type': 'application/json' },
            body: JSON.stringify(payload)
        });
        const res = await response.json();
        if(res.status === 'success') {
            alert("تم اعتماد الفاتورة وتحديث كميات المخزن بنجاح!");
            window.open('print_purchase_a4.php?id=' + res.purchase_id, '_blank');
            location.reload();
        } else {
            alert("خطأ: " + res.message);
        }
    } catch(err) {
        alert("فشل الاتصال بالسيرفر لحفظ الحركة.");
    }
}
</script>