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

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

// Récupérer tous les produits avec leur niveau de stock actuel
$stmt = $conn->query("SELECT id, name, quantity FROM products ORDER BY name");
$products = $stmt->fetchAll(PDO::FETCH_ASSOC);

// Récupérer les derniers mouvements de stock
$stmt = $conn->query("
    SELECT sm.*, p.name as product_name 
    FROM stock_movements sm 
    JOIN products p ON sm.product_id = p.id 
    ORDER BY movement_date DESC 
    LIMIT 50
");
$movements = $stmt->fetchAll(PDO::FETCH_ASSOC);

// Récupérer les messages
$success = $_SESSION['success'] ?? null;
$error = $_SESSION['error'] ?? null;
unset($_SESSION['success'], $_SESSION['error']);

// Définir le titre de la page
$pageTitle = 'إدارة المخزون - نظام إدارة البقالة';

include 'includes/header.php';
?>

<div class="container mt-4">
    <?php if ($success): ?>
        <div class="alert alert-success alert-dismissible fade show">
            <?php echo htmlspecialchars($success); ?>
            <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
        </div>
    <?php endif; ?>

    <?php if ($error): ?>
        <div class="alert alert-danger alert-dismissible fade show">
            <?php echo htmlspecialchars($error); ?>
            <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
        </div>
    <?php endif; ?>

    <div class="d-flex justify-content-between align-items-center mb-4">
        <h2>إدارة المخزون</h2>
        <div>
            <a href="batch_sales.php" class="btn btn-success me-2">
                <i class="fas fa-shopping-cart me-2"></i>تسجيل المبيعات
            </a>
            <button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#addMovementModal">
                <i class="fas fa-plus-circle me-2"></i>إضافة حركة
            </button>
        </div>
    </div>

    <div class="row">
        <div class="col-md-6">
            <div class="card mb-4">
                <div class="card-header bg-primary text-white">
                    <h5 class="card-title mb-0">
                        <i class="fas fa-plus-circle me-2"></i>
                        إضافة حركة مخزون
                    </h5>
                </div>
                <div class="card-body">
                    <form action="stock_movement_add.php" method="post">
                        <div class="mb-3">
                            <label for="product_id" class="form-label">المنتج</label>
                            <select name="product_id" id="product_id" class="form-select" required>
                                <option value="">اختر المنتج</option>
                                <?php foreach ($products as $product): ?>
                                    <option value="<?= $product['id'] ?>">
                                        <?= htmlspecialchars($product['name']) ?> 
                                        (الكمية الحالية: <?= $product['quantity'] ?>)
                                    </option>
                                <?php endforeach; ?>
                            </select>
                        </div>
                        <div class="mb-3">
                            <label for="type" class="form-label">نوع الحركة</label>
                            <select name="type" id="type" class="form-select" required>
                                <option value="in">إضافة مخزون</option>
                                <option value="out">سحب مخزون</option>
                            </select>
                        </div>
                        <div class="mb-3">
                            <label for="quantity" class="form-label">الكمية</label>
                            <input type="number" name="quantity" id="quantity" class="form-control" required min="1">
                        </div>
                        <div class="mb-3">
                            <label for="reason" class="form-label">السبب</label>
                            <input type="text" name="reason" id="reason" class="form-control">
                        </div>
                        <button type="submit" class="btn btn-primary">
                            <i class="fas fa-save me-2"></i>
                            حفظ
                        </button>
                    </form>
                </div>
            </div>
        </div>

        <div class="col-md-6">
            <div class="card">
                <div class="card-header bg-primary text-white">
                    <h5 class="card-title mb-0">
                        <i class="fas fa-history me-2"></i>
                        آخر حركات المخزون
                    </h5>
                </div>
                <div class="card-body">
                    <div class="table-responsive">
                        <table class="table table-striped table-hover">
                            <thead>
                                <tr>
                                    <th>المنتج</th>
                                    <th>النوع</th>
                                    <th>الكمية</th>
                                    <th>السبب</th>
                                    <th>التاريخ</th>
                                    <th>إجراءات</th>
                                </tr>
                            </thead>
                            <tbody>
                                <?php foreach ($movements as $movement): ?>
                                    <tr>
                                        <td><?= htmlspecialchars($movement['product_name']) ?></td>
                                        <td>
                                            <?php if ($movement['type'] == 'in'): ?>
                                                <span class="badge bg-success">إضافة</span>
                                            <?php else: ?>
                                                <span class="badge bg-warning">سحب</span>
                                            <?php endif; ?>
                                        </td>
                                        <td><?= $movement['quantity'] ?></td>
                                        <td><?= htmlspecialchars($movement['reason'] ?? '') ?></td>
                                        <td><?= date('Y-m-d H:i', strtotime($movement['movement_date'])) ?></td>
                                        <td>
                                            <button type="button" 
                                                    class="btn btn-sm btn-danger" 
                                                    onclick="deleteStockMovement(<?= $movement['id'] ?>)"
                                                    title="حذف">
                                                <i class="fas fa-trash"></i>
                                            </button>
                                        </td>
                                    </tr>
                                <?php endforeach; ?>
                                <?php if (empty($movements)): ?>
                                    <tr>
                                        <td colspan="6" class="text-center">لا توجد حركات مخزون</td>
                                    </tr>
                                <?php endif; ?>
                            </tbody>
                        </table>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- Modal إعادة تعيين المخزون -->
<div class="modal fade" id="resetStockModal" tabindex="-1">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title">إعادة تعيين المخزون</h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
            </div>
            <div class="modal-body">
                <form id="resetStockForm">
                    <input type="hidden" id="resetProductId" name="id">
                    <div class="mb-3">
                        <label for="newQuantity" class="form-label">الكمية الجديدة</label>
                        <input type="number" 
                               class="form-control" 
                               id="newQuantity" 
                               name="quantity" 
                               required 
                               min="0">
                    </div>
                </form>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">إلغاء</button>
                <button type="button" class="btn btn-primary" onclick="submitResetStock()">حفظ</button>
            </div>
        </div>
    </div>
</div>

<script>
// حذف حركة مخزون
function deleteStockMovement(id) {
    if (confirm('هل أنت متأكد من حذف هذه الحركة؟ سيتم تعديل كمية المخزون وفقاً لذلك.')) {
        const formData = new FormData();
        formData.append('id', id);

        fetch('api/delete_stock_movement.php', {
            method: 'POST',
            body: formData
        })
        .then(response => response.json())
        .then(data => {
            if (data.success) {
                location.reload();
            } else {
                alert(data.error || 'حدث خطأ أثناء حذف الحركة');
            }
        })
        .catch(error => {
            console.error('Error:', error);
            alert('حدث خطأ أثناء حذف الحركة');
        });
    }
}

// فتح نافذة إعادة تعيين المخزون
function openResetStockModal(productId, currentQuantity) {
    document.getElementById('resetProductId').value = productId;
    document.getElementById('newQuantity').value = currentQuantity;
    new bootstrap.Modal(document.getElementById('resetStockModal')).show();
}

// إرسال نموذج إعادة تعيين المخزون
function submitResetStock() {
    const form = document.getElementById('resetStockForm');
    const formData = new FormData(form);

    fetch('api/reset_product_stock.php', {
        method: 'POST',
        body: formData
    })
    .then(response => response.json())
    .then(data => {
        if (data.success) {
            location.reload();
        } else {
            alert(data.error || 'حدث خطأ أثناء إعادة تعيين المخزون');
        }
    })
    .catch(error => {
        console.error('Error:', error);
        alert('حدث خطأ أثناء إعادة تعيين المخزون');
    });
}
</script>

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