PYBS (Personel Yönetim Bilgi Sistemi) / Ramsa/panels/yonetici-panel.php
yonetici-panel.php 166 satır • 7.81 KB
<?php
// panels/yonetici-panel.php
session_start();

// Yetki kontrolü
if (!isset($_SESSION['rol']) || !in_array($_SESSION['rol'], ['yonetici', 'root'])) {
    header("Location: ../index.php");
    exit;
}

include '../includes/header.php';
include '../includes/menu.php';

$id = $_SESSION['kullanici_id'];

// --- VERİLERİ ÇEK (Sadece bu yöneticiye gelenler) ---

// 1. Onay Bekleyen İzinler
$sql_izin = "SELECT COUNT(*) FROM izin_talepleri WHERE hedef_yonetici_id = ? AND durum = 'beklemede'";
$stmt_izin = $pdo->prepare($sql_izin);
$stmt_izin->execute([$id]);
$bekleyen_izin = $stmt_izin->fetchColumn();

// 2. Onay Bekleyen Mesailer
$sql_mesai = "SELECT COUNT(*) FROM mesai_hareketleri WHERE hedef_yonetici_id = ? AND durum = 'beklemede'";
$stmt_mesai = $pdo->prepare($sql_mesai);
$stmt_mesai->execute([$id]);
$bekleyen_mesai = $stmt_mesai->fetchColumn();

// 3. Bugün Onayladığım İşlemler (Performans Göstergesi)
$bugun = date('Y-m-d');
$sql_onay = "SELECT 
    (SELECT COUNT(*) FROM izin_talepleri WHERE hedef_yonetici_id = $id AND durum = 'onaylandi' AND DATE(onaylanma_tarihi) = '$bugun') +
    (SELECT COUNT(*) FROM mesai_hareketleri WHERE hedef_yonetici_id = $id AND durum = 'onaylandi' AND DATE(onaylanma_tarihi) = '$bugun') 
    as toplam";
$gunluk_onay = $pdo->query($sql_onay)->fetchColumn();

// 4. Toplam Aktif Personel (Genel Bilgi)
$total_personel = $pdo->query("SELECT COUNT(*) FROM kullanicilar WHERE durum=1 AND rol != 'root'")->fetchColumn();
?>

<div class="container-fluid">
    <div class="d-flex justify-content-between align-items-center mb-4 mt-2">
        <h3 class="m-0 text-dark fw-bold">Yönetici Paneli</h3>
        <span class="badge bg-secondary"><?php echo date("d.m.Y"); ?></span>
    </div>

    <div class="row g-3 mb-4">
        
        <div class="col-12 col-sm-6 col-xl-3">
            <a href="../modules/personel-yonetimi.php" class="text-decoration-none">
                <div class="card stat-card text-white bg-primary h-100">
                    <div class="card-body d-flex justify-content-between align-items-center">
                        <div>
                            <h6 class="card-title text-uppercase mb-1" style="opacity: 0.8;">Personel</h6>
                            <h2 class="mb-0 fw-bold"><?php echo $total_personel; ?></h2>
                        </div>
                        <i class="fas fa-users fa-3x" style="opacity: 0.3;"></i>
                    </div>
                    <div class="card-footer bg-transparent border-0 small d-flex justify-content-between align-items-center" style="background: rgba(0,0,0,0.1);">
                        <span>Personel Listesi</span>
                        <i class="fas fa-arrow-circle-right"></i>
                    </div>
                </div>
            </a>
        </div>

        <div class="col-12 col-sm-6 col-xl-3">
            <a href="../modules/tum-izinler.php" class="text-decoration-none">
                <div class="card stat-card text-white bg-warning h-100">
                    <div class="card-body d-flex justify-content-between align-items-center">
                        <div>
                            <h6 class="card-title text-uppercase mb-1 text-dark" style="opacity: 0.7;">İzin Talebi</h6>
                            <h2 class="mb-0 fw-bold text-dark"><?php echo $bekleyen_izin; ?></h2>
                        </div>
                        <i class="fas fa-file-signature fa-3x text-dark" style="opacity: 0.2;"></i>
                    </div>
                    <div class="card-footer bg-transparent border-0 small d-flex justify-content-between align-items-center text-dark" style="background: rgba(0,0,0,0.05);">
                        <span>Onaylamanızı Bekliyor</span>
                        <i class="fas fa-arrow-circle-right"></i>
                    </div>
                </div>
            </a>
        </div>

        <div class="col-12 col-sm-6 col-xl-3">
            <a href="../modules/tum-mesailer.php" class="text-decoration-none">
                <div class="card stat-card text-white bg-success h-100">
                    <div class="card-body d-flex justify-content-between align-items-center">
                        <div>
                            <h6 class="card-title text-uppercase mb-1" style="opacity: 0.8;">Mesai Onayı</h6>
                            <h2 class="mb-0 fw-bold"><?php echo $bekleyen_mesai; ?></h2>
                        </div>
                        <i class="fas fa-clock fa-3x" style="opacity: 0.3;"></i>
                    </div>
                    <div class="card-footer bg-transparent border-0 small d-flex justify-content-between align-items-center" style="background: rgba(0,0,0,0.1);">
                        <span>Puantaj Kontrolü</span>
                        <i class="fas fa-arrow-circle-right"></i>
                    </div>
                </div>
            </a>
        </div>

        <div class="col-12 col-sm-6 col-xl-3">
            <div class="card stat-card text-white bg-info h-100">
                <div class="card-body d-flex justify-content-between align-items-center">
                    <div>
                        <h6 class="card-title text-uppercase mb-1" style="opacity: 0.8;">Bugün Onaylanan</h6>
                        <h2 class="mb-0 fw-bold"><?php echo $gunluk_onay; ?></h2>
                    </div>
                    <i class="fas fa-check-double fa-3x" style="opacity: 0.3;"></i>
                </div>
                <div class="card-footer bg-transparent border-0 small" style="background: rgba(0,0,0,0.1);">
                    İşlem Adedi
                </div>
            </div>
        </div>

    </div>

    <div class="row g-4">
        <div class="col-lg-6">
            <div class="card-box p-4 h-100">
                <h5 class="mb-3"><i class="fas fa-tasks text-primary"></i> Hızlı Erişim</h5>
                <div class="d-grid gap-3">
                    <a href="../modules/personel-ekle.php" class="btn btn-outline-primary btn-lg text-start">
                        <i class="fas fa-user-plus me-3"></i> Yeni Personel Ekle
                    </a>
                    <a href="../modules/tum-izinler.php" class="btn btn-outline-warning btn-lg text-start text-dark">
                        <i class="fas fa-list-ul me-3"></i> Tüm İzinleri Listele
                    </a>
                </div>
            </div>
        </div>

        <div class="col-lg-6">
            <div class="card-box p-4 h-100">
                <h5 class="mb-3"><i class="fas fa-bell text-danger"></i> Bekleyen İşler Özeti</h5>
                <?php if($bekleyen_izin == 0 && $bekleyen_mesai == 0): ?>
                    <div class="alert alert-success text-center">
                        <i class="fas fa-check-circle fa-2x mb-2"></i><br>
                        Harika! Onay bekleyen hiçbir talep yok.
                    </div>
                <?php else: ?>
                    <ul class="list-group">
                        <?php if($bekleyen_izin > 0): ?>
                        <li class="list-group-item d-flex justify-content-between align-items-center list-group-item-warning">
                            İzin Talepleri
                            <span class="badge bg-dark rounded-pill"><?php echo $bekleyen_izin; ?></span>
                        </li>
                        <?php endif; ?>
                        
                        <?php if($bekleyen_mesai > 0): ?>
                        <li class="list-group-item d-flex justify-content-between align-items-center list-group-item-success">
                            Mesai / Puantaj Girişleri
                            <span class="badge bg-dark rounded-pill"><?php echo $bekleyen_mesai; ?></span>
                        </li>
                        <?php endif; ?>
                    </ul>
                <?php endif; ?>
            </div>
        </div>
    </div>
</div>

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