<?php
session_start();
require_once 'config/db.php';
require_once 'includes/auth_check.php';

$pageTitle = 'تسجيل المبيعات - نظام إدارة البقالة';
include 'includes/header.php';

$db = new Database();
$pdo = $db->getConnection();

// الحصول على قائمة المنتجات
try {
    $stmt = $pdo->query("SELECT id, name, price, quantity FROM products ORDER BY name");
    $products = $stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
    $error = "حدث خطأ في قاعدة البيانات: " . $e->getMessage();
}
?>

<div class="container mt-4">
    <div class="row">
        <div class="col-md-12">
            <div class="card">
                <div class="card-header d-flex justify-content-between align-items-center">
                    <h4 class="mb-0">تسجيل المبيعات</h4>
                    <a href="stock.php" class="btn btn-secondary">
                        <i class="fas fa-arrow-right me-2"></i>رجوع
                    </a>
                </div>
                <div class="card-body">
                    <form id="batchSalesForm">
                        <div class="table-responsive">
                            <table class="table table-bordered" id="salesTable">
                                <thead>
                                    <tr>
                                        <th>المنتج</th>
                                        <th>السعر</th>
                                        <th>الكمية المتوفرة</th>
                                        <th>الكمية المباعة</th>
                                        <th>المجموع</th>
                                        <th>إجراءات</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <tr class="sale-row">
                                        <td>
                                            <select class="form-select product-select" name="products[]" required>
                                                <option value="">اختر منتجاً</option>
                                                <?php foreach ($products as $product): ?>
                                                    <option value="<?= $product['id'] ?>" 
                                                            data-price="<?= $product['price'] ?>"
                                                            data-available="<?= $product['quantity'] ?>">
                                                        <?= htmlspecialchars($product['name']) ?>
                                                        (<?= $product['quantity'] ?> متوفر)
                                                    </option>
                                                <?php endforeach; ?>
                                            </select>
                                        </td>
                                        <td class="price-cell">0.00</td>
                                        <td class="available-cell">0</td>
                                        <td>
                                            <input type="number" 
                                                   class="form-control quantity-input" 
                                                   name="quantities[]" 
                                                   min="1" 
                                                   required>
                                        </td>
                                        <td class="total-cell">0.00</td>
                                        <td>
                                            <button type="button" class="btn btn-danger btn-sm remove-row">
                                                <i class="fas fa-trash"></i>
                                            </button>
                                        </td>
                                    </tr>
                                </tbody>
                                <tfoot>
                                    <tr>
                                        <td colspan="4" class="text-end">المجموع الكلي:</td>
                                        <td id="grandTotal">0.00</td>
                                        <td></td>
                                    </tr>
                                </tfoot>
                            </table>
                        </div>

                        <div class="mb-3">
                            <button type="button" class="btn btn-success" id="addRow">
                                <i class="fas fa-plus me-2"></i>إضافة منتج
                            </button>
                        </div>

                        <div class="d-flex justify-content-end">
                            <button type="submit" class="btn btn-primary">
                                <i class="fas fa-save me-2"></i>تسجيل المبيعات
                            </button>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const salesTable = document.getElementById('salesTable');
    const addRowBtn = document.getElementById('addRow');
    const form = document.getElementById('batchSalesForm');

    // دالة لتحديث المجموع
    function updateTotals() {
        const rows = document.querySelectorAll('.sale-row');
        let grandTotal = 0;

        rows.forEach(row => {
            const price = parseFloat(row.querySelector('.price-cell').textContent);
            const quantity = parseFloat(row.querySelector('.quantity-input').value) || 0;
            const total = price * quantity;
            row.querySelector('.total-cell').textContent = total.toFixed(2);
            grandTotal += total;
        });

        document.getElementById('grandTotal').textContent = grandTotal.toFixed(2);
    }

    // دالة لإضافة صف جديد
    function addNewRow() {
        const tbody = salesTable.querySelector('tbody');
        const firstRow = tbody.querySelector('.sale-row');
        const newRow = firstRow.cloneNode(true);
        
        // إعادة تعيين القيم
        newRow.querySelector('.product-select').value = '';
        newRow.querySelector('.quantity-input').value = '';
        newRow.querySelector('.price-cell').textContent = '0.00';
        newRow.querySelector('.available-cell').textContent = '0';
        newRow.querySelector('.total-cell').textContent = '0.00';
        
        // إضافة مستمعي الأحداث
        addRowListeners(newRow);
        
        tbody.appendChild(newRow);
    }

    // دالة لإضافة مستمعي الأحداث للصف
    function addRowListeners(row) {
        const productSelect = row.querySelector('.product-select');
        const quantityInput = row.querySelector('.quantity-input');
        const removeBtn = row.querySelector('.remove-row');

        productSelect.addEventListener('change', function() {
            const option = this.options[this.selectedIndex];
            const price = option.dataset.price || 0;
            const available = option.dataset.available || 0;
            
            row.querySelector('.price-cell').textContent = parseFloat(price).toFixed(2);
            row.querySelector('.available-cell').textContent = available;
            row.querySelector('.quantity-input').max = available;
            
            updateTotals();
        });

        quantityInput.addEventListener('input', function() {
            const available = parseInt(row.querySelector('.available-cell').textContent);
            if (this.value > available) {
                this.value = available;
            }
            updateTotals();
        });

        removeBtn.addEventListener('click', function() {
            const rows = document.querySelectorAll('.sale-row');
            if (rows.length > 1) {
                row.remove();
                updateTotals();
            }
        });
    }

    // إضافة مستمعي الأحداث للصف الأول
    addRowListeners(document.querySelector('.sale-row'));

    // مستمع حدث لزر إضافة صف
    addRowBtn.addEventListener('click', addNewRow);

    // معالجة تقديم النموذج
    form.addEventListener('submit', function(e) {
        e.preventDefault();

        const sales = [];
        const rows = document.querySelectorAll('.sale-row');
        let isValid = true;

        rows.forEach(row => {
            const productId = row.querySelector('.product-select').value;
            const quantity = row.querySelector('.quantity-input').value;
            const available = parseInt(row.querySelector('.available-cell').textContent);

            if (productId && quantity) {
                if (quantity > available) {
                    alert('الكمية المطلوبة أكبر من المتوفر');
                    isValid = false;
                    return;
                }
                sales.push({
                    product_id: productId,
                    quantity: quantity
                });
            }
        });

        if (!isValid) return;
        if (sales.length === 0) {
            alert('يرجى إضافة منتج واحد على الأقل');
            return;
        }

        // إرسال البيانات إلى الخادم
        fetch('api/batch_sales.php', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json'
            },
            body: JSON.stringify({ sales: sales })
        })
        .then(response => response.json())
        .then(data => {
            if (data.success) {
                alert('تم تسجيل المبيعات بنجاح');
                window.location.href = 'stock.php';
            } else {
                alert(data.error || 'حدث خطأ أثناء تسجيل المبيعات');
            }
        })
        .catch(error => {
            console.error('Error:', error);
            alert('حدث خطأ أثناء تسجيل المبيعات');
        });
    });
});
</script>

<?php include 'includes/footer.php'; ?>
