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

if (!isset($_SESSION['user_id'])) {
    header('Location: login.php');
    exit();
}

$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();
}

// معالجة إضافة البيع
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    try {
        $product_id = $_POST['product_id'];
        $quantity = $_POST['quantity'];
        $price = $_POST['price'];
        
        // التحقق من توفر الكمية
        $stmt = $pdo->prepare("SELECT quantity FROM products WHERE id = ?");
        $stmt->execute([$product_id]);
        $product = $stmt->fetch(PDO::FETCH_ASSOC);
        
        if ($product['quantity'] < $quantity) {
            throw new Exception("الكمية المطلوبة غير متوفرة في المخزون");
        }
        
        // بدء المعاملة
        $pdo->beginTransaction();
        
        // إضافة البيع
        $stmt = $pdo->prepare("
            INSERT INTO sales (product_id, quantity, price, sale_date)
            VALUES (?, ?, ?, CURRENT_TIMESTAMP)
        ");
        $stmt->execute([$product_id, $quantity, $price]);
        
        // تحديث كمية المنتج
        $stmt = $pdo->prepare("
            UPDATE products 
            SET quantity = quantity - ? 
            WHERE id = ?
        ");
        $stmt->execute([$quantity, $product_id]);
        
        // إتمام المعاملة
        $pdo->commit();
        
        $_SESSION['message'] = 'تم تسجيل البيع بنجاح';
        header('Location: sales.php');
        exit();
        
    } catch (Exception $e) {
        $pdo->rollBack();
        $error = $e->getMessage();
    }
}
?>
<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>تسجيل بيع جديد - نظام إدارة البقالة</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet">
    <link href="assets/css/style.css" rel="stylesheet">
</head>
<body>
    <?php include 'includes/navbar.php'; ?>

    <div class="container mt-4">
        <div class="row justify-content-center">
            <div class="col-md-8">
                <div class="card">
                    <div class="card-header">
                        <h3 class="card-title">تسجيل بيع جديد</h3>
                    </div>
                    <div class="card-body">
                        <?php if (isset($error)): ?>
                            <div class="alert alert-danger">
                                <?php echo htmlspecialchars($error); ?>
                            </div>
                        <?php endif; ?>

                        <form method="POST" class="needs-validation" novalidate>
                            <div class="mb-3">
                                <label for="product_id" class="form-label">المنتج</label>
                                <select class="form-select select2" id="product_id" name="product_id" required>
                                    <option value="">اختر المنتج</option>
                                    <?php foreach ($products as $product): ?>
                                        <option value="<?php echo $product['id']; ?>" 
                                                data-price="<?php echo $product['price']; ?>"
                                                data-max-quantity="<?php echo $product['quantity']; ?>">
                                            <?php echo htmlspecialchars($product['name']); ?> 
                                            (المتوفر: <?php echo $product['quantity']; ?>)
                                        </option>
                                    <?php endforeach; ?>
                                </select>
                                <div class="invalid-feedback">
                                    يرجى اختيار المنتج
                                </div>
                            </div>

                            <div class="mb-3">
                                <label for="quantity" class="form-label">الكمية</label>
                                <input type="number" class="form-control" id="quantity" name="quantity" 
                                       min="1" required>
                                <div class="invalid-feedback">
                                    يرجى إدخال الكمية
                                </div>
                            </div>

                            <div class="mb-3">
                                <label for="price" class="form-label">السعر (DH)</label>
                                <div class="input-group">
                                    <input type="number" class="form-control" id="price" name="price" 
                                           step="0.01" min="0" required>
                                    <span class="input-group-text">DH</span>
                                </div>
                            </div>

                            <div class="mb-3">
                                <label for="total" class="form-label">المجموع (DH)</label>
                                <div class="input-group">
                                    <input type="number" class="form-control" id="total" name="total" 
                                           step="0.01" min="0" readonly>
                                    <span class="input-group-text">DH</span>
                                </div>
                            </div>

                            <div class="d-grid gap-2">
                                <button type="submit" class="btn btn-primary">تسجيل البيع</button>
                                <a href="sales.php" class="btn btn-secondary">إلغاء</a>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
    <script>
        $(document).ready(function() {
            // تهيئة Select2
            $('.select2').select2({
                theme: 'bootstrap-5',
                dir: 'rtl'
            });

            // تحديث السعر عند اختيار المنتج
            $('#product_id').change(function() {
                const selectedOption = $(this).find('option:selected');
                const price = selectedOption.data('price');
                const maxQuantity = selectedOption.data('max-quantity');
                
                $('#price').val(price);
                $('#quantity').attr('max', maxQuantity);
                updateTotal();
            });

            // تحديث الإجمالي عند تغيير الكمية أو السعر
            $('#quantity, #price').on('input', updateTotal);

            function updateTotal() {
                const quantity = $('#quantity').val();
                const price = $('#price').val();
                const total = quantity * price;
                $('#total').val(total.toFixed(2));
            }
        });

        // التحقق من صحة النموذج
        (function() {
            'use strict';
            const forms = document.querySelectorAll('.needs-validation');
            Array.from(forms).forEach(form => {
                form.addEventListener('submit', event => {
                    if (!form.checkValidity()) {
                        event.preventDefault();
                        event.stopPropagation();
                    }
                    form.classList.add('was-validated');
                }, false);
            });
        })();
    </script>
</body>
</html>
