<?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 i.*, u.full_name as created_by_name 
          FROM income i 
          LEFT JOIN users u ON i.created_by = u.id 
          WHERE i.payment_date BETWEEN :start_date AND :end_date 
          ORDER BY i.payment_date DESC";
$params = [':start_date' => $startDate, ':end_date' => $endDate];
$incomeRecords = fetchAll($query, $params);

// حساب إجمالي الإيرادات
$totalIncome = calculateTotalIncome($startDate, $endDate);

// حساب الإيرادات حسب المصدر
$incomeBySource = [];
$query = "SELECT source, SUM(amount) as total 
          FROM income 
          WHERE payment_date BETWEEN :start_date AND :end_date 
          GROUP BY source";
$incomeBySourceRecords = fetchAll($query, $params);

foreach ($incomeBySourceRecords as $record) {
    $incomeBySource[$record['source']] = $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-wave me-2"></i> إدارة الإيرادات</h1>
    <div>
        <a href="<?php echo SITE_URL; ?>/finance/income/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/income/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-success 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-success"><?php echo number_format((float)$totalIncome, 2); ?> درهم</h2>
                    <p class="text-center text-muted">
                        للفترة من <?php echo formatDate($startDate); ?> إلى <?php echo formatDate($endDate); ?>
                    </p>
                </div>
                
                <?php if (!empty($incomeBySource)): ?>
                    <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 ($incomeBySource as $source => $amount): ?>
                                    <tr>
                                        <td>
                                            <?php
                                            $sourcesLabels = [
                                                'subscription' => 'اشتراكات الأعضاء',
                                                'donation' => 'تبرعات',
                                                'event' => 'فعاليات',
                                                'sponsorship' => 'رعاية',
                                                'other' => 'أخرى'
                                            ];
                                            echo $sourcesLabels[$source] ?? $source;
                                            ?>
                                        </td>
                                        <td><?php echo number_format((float)$amount, 2); ?> درهم</td>
                                        <td><?php echo $totalIncome > 0 ? number_format((float)(($amount / $totalIncome) * 100), 1) : '0.0'; ?>%</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="incomeChart" 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="income-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($incomeRecords) > 0): ?>
                        <?php foreach ($incomeRecords as $record): ?>
                            <tr>
                                <td><?php echo formatDate($record['payment_date']); ?></td>
                                <td>
                                    <?php
                                    $sourcesLabels = [
                                        'subscription' => 'اشتراكات الأعضاء',
                                        'donation' => 'تبرعات',
                                        'event' => 'فعاليات',
                                        'sponsorship' => 'رعاية',
                                        'other' => 'أخرى'
                                    ];
                                    echo $sourcesLabels[$record['source']] ?? $record['source'];
                                    ?>
                                </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/income/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/income/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() {
    // تهيئة جدول الإيرادات
    $('#income-table').DataTable({
        "language": {
            "url": "//cdn.datatables.net/plug-ins/1.10.25/i18n/Arabic.json"
        },
        "order": [[0, "desc"]]
    });
    
    // رسم الرسم البياني للإيرادات
    <?php if (!empty($incomeBySource)): ?>
    var ctx = document.getElementById('incomeChart').getContext('2d');
    var incomeChart = new Chart(ctx, {
        type: 'pie',
        data: {
            labels: [
                <?php
                foreach ($incomeBySource as $source => $amount) {
                    $label = $sourcesLabels[$source] ?? $source;
                    echo "'" . $label . "', ";
                }
                ?>
            ],
            datasets: [{
                data: [
                    <?php
                    foreach ($incomeBySource as $amount) {
                        echo $amount . ", ";
                    }
                    ?>
                ],
                backgroundColor: [
                    'rgba(75, 192, 192, 0.7)',
                    'rgba(54, 162, 235, 0.7)',
                    'rgba(255, 206, 86, 0.7)',
                    'rgba(255, 99, 132, 0.7)',
                    'rgba(153, 102, 255, 0.7)'
                ],
                borderColor: [
                    'rgba(75, 192, 192, 1)',
                    'rgba(54, 162, 235, 1)',
                    'rgba(255, 206, 86, 1)',
                    'rgba(255, 99, 132, 1)',
                    'rgba(153, 102, 255, 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 $totalIncome; ?>) * 100).toFixed(1);
                            return label + ': ' + value.toFixed(2) + ' درهم (' + percentage + '%)';
                        }
                    }
                }
            }
        }
    });
    <?php endif; ?>
});
</script>

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