<?php
require_once '../../config.php';

// التحقق من تسجيل الدخول
requireLogin();

// التحقق من الصلاحيات
requirePermission('admin');

// تحديد الفترة الزمنية للتقرير
$startDate = isset($_GET['start_date']) ? sanitizeInput($_GET['start_date']) : date('Y-m-01'); // بداية الشهر الحالي
$endDate = isset($_GET['end_date']) ? sanitizeInput($_GET['end_date']) : date('Y-m-t'); // نهاية الشهر الحالي

// الحصول على قائمة المصروفات
$query = "SELECT e.*, u.full_name as created_by_name 
          FROM expenses e 
          LEFT JOIN users u ON e.created_by = u.id 
          WHERE e.payment_date BETWEEN :start_date AND :end_date 
          ORDER BY e.payment_date DESC";
$params = [':start_date' => $startDate, ':end_date' => $endDate];
$expensesRecords = fetchAll($query, $params);

// حساب إجمالي المصروفات
$totalExpenses = 0;
foreach ($expensesRecords as $record) {
    $totalExpenses += $record['amount'];
}

// حساب المصروفات حسب الفئة
$expensesByCategory = [];
$query = "SELECT category, SUM(amount) as total 
          FROM expenses 
          WHERE payment_date BETWEEN :start_date AND :end_date 
          GROUP BY category";
$expensesByCategoryRecords = fetchAll($query, $params);

foreach ($expensesByCategoryRecords as $record) {
    $expensesByCategory[$record['category']] = $record['total'];
}

// عنوان الصفحة
$pageTitle = 'إدارة المصروفات';

// تضمين ملف الهيدر
include '../../includes/header.php';
?>

<div class="d-flex justify-content-between align-items-center mb-4">
    <h1 class="h3 mb-0"><i class="fas fa-money-bill-alt me-2"></i> إدارة المصروفات</h1>
    <div>
        <a href="<?php echo SITE_URL; ?>/finance/expenses/add.php" class="btn btn-primary">
            <i class="fas fa-plus"></i> إضافة مصروف جديد
        </a>
    </div>
</div>

<!-- فلتر البحث -->
<div class="card mb-4">
    <div class="card-body">
        <form action="" method="get" class="row g-3">
            <div class="col-md-4">
                <label for="start_date" class="form-label">من تاريخ</label>
                <input type="date" class="form-control" id="start_date" name="start_date" value="<?php echo $startDate; ?>">
            </div>
            <div class="col-md-4">
                <label for="end_date" class="form-label">إلى تاريخ</label>
                <input type="date" class="form-control" id="end_date" name="end_date" value="<?php echo $endDate; ?>">
            </div>
            <div class="col-md-4 d-flex align-items-end">
                <button type="submit" class="btn btn-primary me-2">
                    <i class="fas fa-search"></i> بحث
                </button>
                <a href="<?php echo SITE_URL; ?>/finance/expenses/index.php" class="btn btn-secondary">
                    <i class="fas fa-redo"></i> إعادة تعيين
                </a>
            </div>
        </form>
    </div>
</div>

<!-- ملخص المصروفات -->
<div class="row mb-4">
    <div class="col-md-6">
        <div class="card h-100">
            <div class="card-header bg-danger text-white">
                <i class="fas fa-chart-pie me-2"></i> ملخص المصروفات
            </div>
            <div class="card-body">
                <div class="mb-4">
                    <h5 class="text-center">إجمالي المصروفات</h5>
                    <h2 class="text-center text-danger"><?php echo number_format($totalExpenses, 2); ?> درهم</h2>
                    <p class="text-center text-muted">
                        للفترة من <?php echo formatDate($startDate); ?> إلى <?php echo formatDate($endDate); ?>
                    </p>
                </div>
                
                <?php if (!empty($expensesByCategory)): ?>
                    <h5 class="mb-3">المصروفات حسب الفئة</h5>
                    <div class="table-responsive">
                        <table class="table table-striped">
                            <thead>
                                <tr>
                                    <th>الفئة</th>
                                    <th>المبلغ</th>
                                    <th>النسبة</th>
                                </tr>
                            </thead>
                            <tbody>
                                <?php foreach ($expensesByCategory as $category => $amount): ?>
                                    <tr>
                                        <td>
                                            <?php
                                            $categoriesLabels = [
                                                'salaries' => 'رواتب ومكافآت',
                                                'equipment' => 'معدات وتجهيزات',
                                                'rent' => 'إيجارات',
                                                'utilities' => 'فواتير ومرافق',
                                                'transportation' => 'نقل ومواصلات',
                                                'maintenance' => 'صيانة',
                                                'events' => 'فعاليات ومسابقات',
                                                'administrative' => 'مصاريف إدارية',
                                                'other' => 'أخرى'
                                            ];
                                            echo $categoriesLabels[$category] ?? $category;
                                            ?>
                                        </td>
                                        <td><?php echo number_format($amount, 2); ?> درهم</td>
                                        <td><?php echo number_format(($amount / $totalExpenses) * 100, 1); ?>%</td>
                                    </tr>
                                <?php endforeach; ?>
                            </tbody>
                        </table>
                    </div>
                <?php endif; ?>
            </div>
        </div>
    </div>
    
    <div class="col-md-6">
        <div class="card h-100">
            <div class="card-header bg-primary text-white">
                <i class="fas fa-chart-bar me-2"></i> الرسم البياني للمصروفات
            </div>
            <div class="card-body">
                <canvas id="expensesChart" width="400" height="300"></canvas>
            </div>
        </div>
    </div>
</div>

<!-- قائمة المصروفات -->
<div class="card">
    <div class="card-header bg-white">
        <i class="fas fa-list me-2"></i> قائمة المصروفات
    </div>
    <div class="card-body">
        <div class="table-responsive">
            <table class="table table-striped table-hover" id="expenses-table">
                <thead>
                    <tr>
                        <th>التاريخ</th>
                        <th>الفئة</th>
                        <th>الوصف</th>
                        <th>طريقة الدفع</th>
                        <th>رقم الإيصال</th>
                        <th>المبلغ</th>
                        <th>مسجل بواسطة</th>
                        <th>الإجراءات</th>
                    </tr>
                </thead>
                <tbody>
                    <?php if (count($expensesRecords) > 0): ?>
                        <?php foreach ($expensesRecords as $record): ?>
                            <tr>
                                <td><?php echo formatDate($record['payment_date']); ?></td>
                                <td>
                                    <?php
                                    $categoriesLabels = [
                                        'salaries' => 'رواتب ومكافآت',
                                        'equipment' => 'معدات وتجهيزات',
                                        'rent' => 'إيجارات',
                                        'utilities' => 'فواتير ومرافق',
                                        'transportation' => 'نقل ومواصلات',
                                        'maintenance' => 'صيانة',
                                        'events' => 'فعاليات ومسابقات',
                                        'administrative' => 'مصاريف إدارية',
                                        'other' => 'أخرى'
                                    ];
                                    echo $categoriesLabels[$record['category']] ?? $record['category'];
                                    ?>
                                </td>
                                <td><?php echo $record['description']; ?></td>
                                <td>
                                    <?php
                                    $paymentMethods = [
                                        'cash' => 'نقدا',
                                        'bank_transfer' => 'تحويل بنكي',
                                        'check' => 'شيك'
                                    ];
                                    echo $paymentMethods[$record['payment_method']] ?? $record['payment_method'];
                                    ?>
                                </td>
                                <td><?php echo $record['receipt_number'] ?: '-'; ?></td>
                                <td><?php echo number_format($record['amount'], 2); ?> درهم</td>
                                <td><?php echo $record['created_by_name']; ?></td>
                                <td>
                                    <div class="btn-group btn-group-sm">
                                        <a href="<?php echo SITE_URL; ?>/finance/expenses/edit.php?id=<?php echo $record['id']; ?>" class="btn btn-primary" title="تعديل">
                                            <i class="fas fa-edit"></i>
                                        </a>
                                        <a href="<?php echo SITE_URL; ?>/finance/expenses/delete.php?id=<?php echo $record['id']; ?>" class="btn btn-danger" title="حذف" onclick="return confirm('هل أنت متأكد من حذف هذا المصروف؟')">
                                            <i class="fas fa-trash"></i>
                                        </a>
                                    </div>
                                </td>
                            </tr>
                        <?php endforeach; ?>
                    <?php else: ?>
                        <tr>
                            <td colspan="8" class="text-center">لا توجد مصروفات مسجلة خلال هذه الفترة.</td>
                        </tr>
                    <?php endif; ?>
                </tbody>
            </table>
        </div>
    </div>
</div>

<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
    // تهيئة جدول المصروفات
    $('#expenses-table').DataTable({
        "language": {
            "url": "//cdn.datatables.net/plug-ins/1.10.25/i18n/Arabic.json"
        },
        "order": [[0, "desc"]]
    });
    
    // رسم الرسم البياني للمصروفات
    <?php if (!empty($expensesByCategory)): ?>
    var ctx = document.getElementById('expensesChart').getContext('2d');
    var expensesChart = new Chart(ctx, {
        type: 'pie',
        data: {
            labels: [
                <?php
                foreach ($expensesByCategory as $category => $amount) {
                    $label = $categoriesLabels[$category] ?? $category;
                    echo "'" . $label . "', ";
                }
                ?>
            ],
            datasets: [{
                data: [
                    <?php
                    foreach ($expensesByCategory as $amount) {
                        echo $amount . ", ";
                    }
                    ?>
                ],
                backgroundColor: [
                    'rgba(255, 99, 132, 0.7)',
                    'rgba(54, 162, 235, 0.7)',
                    'rgba(255, 206, 86, 0.7)',
                    'rgba(75, 192, 192, 0.7)',
                    'rgba(153, 102, 255, 0.7)',
                    'rgba(255, 159, 64, 0.7)',
                    'rgba(199, 199, 199, 0.7)',
                    'rgba(83, 102, 255, 0.7)',
                    'rgba(40, 159, 64, 0.7)'
                ],
                borderColor: [
                    'rgba(255, 99, 132, 1)',
                    'rgba(54, 162, 235, 1)',
                    'rgba(255, 206, 86, 1)',
                    'rgba(75, 192, 192, 1)',
                    'rgba(153, 102, 255, 1)',
                    'rgba(255, 159, 64, 1)',
                    'rgba(199, 199, 199, 1)',
                    'rgba(83, 102, 255, 1)',
                    'rgba(40, 159, 64, 1)'
                ],
                borderWidth: 1
            }]
        },
        options: {
            responsive: true,
            plugins: {
                legend: {
                    position: 'bottom'
                },
                tooltip: {
                    callbacks: {
                        label: function(context) {
                            var label = context.label || '';
                            var value = context.raw || 0;
                            var percentage = ((value / <?php echo $totalExpenses; ?>) * 100).toFixed(1);
                            return label + ': ' + value.toFixed(2) + ' درهم (' + percentage + '%)';
                        }
                    }
                }
            }
        }
    });
    <?php endif; ?>
});
</script>

<?php
// تضمين ملف الفوتر
include '../../includes/footer.php';
?>
