PYBS (Personel Yönetim Bilgi Sistemi) / Ramsa/modules/raporlar.php
raporlar.php 207 satır • 11.24 KB
<?php
// modules/raporlar.php
session_start();
require_once '../config/db.php';
require_once '../config/functions.php';

// Yetki: Sadece Yönetim ve İlgili Birimler
yetkiKontrol(['root', 'yonetici', 'muhasebe', 'insan_kaynaklari']);

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

// Personel Listesi (Filtreleme için)
// Not: Maaş hesaplamada aktif/pasif kontrolü yapıldığı için burada tüm listeyi getiriyoruz, 
// ancak istenirse sadece "aktif" olanlar da getirilebilir. Şimdilik tümünü getiriyoruz ki eski personelin bordrosu da alınabilsin.
$personeller = $pdo->query("SELECT id, ad, soyad FROM kullanicilar WHERE rol != 'root' ORDER BY ad ASC")->fetchAll();

// Varsayılan Tarihler
$bu_yil = date('Y');
$bu_ay = date('m');
$aylar = ['01'=>'Ocak','02'=>'Şubat','03'=>'Mart','04'=>'Nisan','05'=>'Mayıs','06'=>'Haziran','07'=>'Temmuz','08'=>'Ağustos','09'=>'Eylül','10'=>'Ekim','11'=>'Kasım','12'=>'Aralık'];
?>

<div class="container-fluid pb-5">
    <div class="d-flex justify-content-between align-items-center mb-4 border-bottom pb-2">
        <div>
            <h3 class="fw-bold text-dark"><i class="fas fa-chart-pie text-primary me-2"></i> Raporlama Merkezi</h3>
            <p class="text-muted mb-0">Finansal, idari ve operasyonel raporlara tek ekrandan erişin.</p>
        </div>
        <div class="text-end text-muted small">
            <i class="far fa-calendar-alt"></i> Bugün: <?php echo date('d.m.Y'); ?>
        </div>
    </div>

    <div class="row g-4">
        
        <div class="col-md-6 col-lg-4">
            <div class="card border-0 shadow-sm rounded-4 h-100">
                <div class="card-header bg-white border-bottom-0 pt-4 px-4">
                    <div class="d-flex align-items-center">
                        <div class="bg-success bg-opacity-10 text-success p-3 rounded-3 me-3">
                            <i class="fas fa-file-invoice-dollar fa-2x"></i>
                        </div>
                        <div>
                            <h5 class="fw-bold mb-0 text-dark">Maaş & Bordro</h5>
                            <small class="text-muted">Personel ödeme dökümleri</small>
                        </div>
                    </div>
                </div>
                <div class="card-body px-4">
                    <form action="maas-rapor.php" method="GET" target="_blank">
                        <div class="mb-3">
                            <label class="form-label small fw-bold text-muted">Dönem Seçimi</label>
                            <div class="input-group">
                                <select name="ay" class="form-select bg-light">
                                    <?php foreach($aylar as $k=>$v) echo "<option value='$k' ".($k==$bu_ay?'selected':'').">$v</option>"; ?>
                                </select>
                                <select name="yil" class="form-select bg-light">
                                    <?php for($y=2024; $y<=2030; $y++) echo "<option value='$y' ".($y==$bu_yil?'selected':'').">$y</option>"; ?>
                                </select>
                            </div>
                        </div>
                        <div class="mb-4">
                            <label class="form-label small fw-bold text-muted">Personel Filtresi</label>
                            <select name="personel_id" class="form-select bg-light">
                                <option value="tumu">Tüm Personel (Toplu Liste)</option>
                                <?php foreach($personeller as $p) echo "<option value='{$p['id']}'>{$p['ad']} {$p['soyad']}</option>"; ?>
                            </select>
                        </div>
                        <div class="d-flex gap-2">
                            <button type="submit" name="format" value="pdf" class="btn btn-outline-danger flex-fill fw-bold"><i class="fas fa-file-pdf me-2"></i> PDF</button>
                            <button type="submit" name="format" value="excel" class="btn btn-outline-success flex-fill fw-bold"><i class="fas fa-file-excel me-2"></i> Excel</button>
                        </div>
                    </form>
                </div>
            </div>
        </div>

        <div class="col-md-6 col-lg-4">
            <div class="card border-0 shadow-sm rounded-4 h-100">
                <div class="card-header bg-white border-bottom-0 pt-4 px-4">
                    <div class="d-flex align-items-center">
                        <div class="bg-primary bg-opacity-10 text-primary p-3 rounded-3 me-3">
                            <i class="fas fa-calendar-check fa-2x"></i>
                        </div>
                        <div>
                            <h5 class="fw-bold mb-0 text-dark">Puantaj Cetveli</h5>
                            <small class="text-muted">Günlük devam/devamsızlık</small>
                        </div>
                    </div>
                </div>
                <div class="card-body px-4">
                    <form action="puantaj-cetveli.php" method="GET">
                        <div class="mb-3">
                            <label class="form-label small fw-bold text-muted">Dönem Seçimi</label>
                            <div class="input-group">
                                <select name="ay" class="form-select bg-light">
                                    <?php foreach($aylar as $k=>$v) echo "<option value='$k' ".($k==$bu_ay?'selected':'').">$v</option>"; ?>
                                </select>
                                <select name="yil" class="form-select bg-light">
                                    <?php for($y=2024; $y<=2030; $y++) echo "<option value='$y' ".($y==$bu_yil?'selected':'').">$y</option>"; ?>
                                </select>
                            </div>
                        </div>
                        <div class="alert alert-light border small text-muted mb-4">
                            <i class="fas fa-info-circle text-primary me-1"></i> İzinler, raporlar ve tatil günleri puantajda otomatik işlenir.
                        </div>
                        <div class="d-grid">
                            <button type="submit" class="btn btn-primary fw-bold py-2">GÖRÜNTÜLE <i class="fas fa-arrow-right ms-2"></i></button>
                        </div>
                    </form>
                </div>
            </div>
        </div>

        <div class="col-md-6 col-lg-4">
            <div class="card border-0 shadow-sm rounded-4 h-100">
                <div class="card-header bg-white border-bottom-0 pt-4 px-4">
                    <div class="d-flex align-items-center">
                        <div class="bg-dark bg-opacity-10 text-dark p-3 rounded-3 me-3">
                            <i class="fas fa-chart-line fa-2x"></i>
                        </div>
                        <div>
                            <h5 class="fw-bold mb-0 text-dark">Mali Özet Raporu</h5>
                            <small class="text-muted">Şirket geneli maliyet analizi</small>
                        </div>
                    </div>
                </div>
                <div class="card-body px-4">
                    <form action="mali-rapor.php" method="GET">
                        <input type="hidden" name="filtre" value="tarih">
                        
                        <div class="mb-3">
                            <label class="form-label small fw-bold text-muted">Dönem Seçimi</label>
                            <div class="input-group">
                                <select name="ay" class="form-select bg-light">
                                    <?php foreach($aylar as $k=>$v) echo "<option value='$k' ".($k==$bu_ay?'selected':'').">$v</option>"; ?>
                                </select>
                                <select name="yil" class="form-select bg-light">
                                    <?php for($y=2024; $y<=2030; $y++) echo "<option value='$y' ".($y==$bu_yil?'selected':'').">$y</option>"; ?>
                                </select>
                            </div>
                        </div>
                        <div class="alert alert-light border small text-muted mb-4">
                            <i class="fas fa-coins text-warning me-1"></i> Maaş, Mesai ve Kesinti toplamlarını tek tabloda analiz edin.
                        </div>
                        <div class="d-grid">
                            <button type="submit" class="btn btn-dark fw-bold py-2">RAPORU AÇ <i class="fas fa-external-link-alt ms-2"></i></button>
                        </div>
                    </form>
                </div>
            </div>
        </div>

        <div class="col-md-6 col-lg-4">
            <div class="card border-0 shadow-sm rounded-4 h-100">
                <div class="card-header bg-white border-bottom-0 pt-4 px-4">
                    <div class="d-flex align-items-center">
                        <div class="bg-warning bg-opacity-10 text-warning p-3 rounded-3 me-3">
                            <i class="fas fa-list-ul fa-2x"></i>
                        </div>
                        <div>
                            <h5 class="fw-bold mb-0 text-dark">Hareket Dökümleri</h5>
                            <small class="text-muted">İzin ve Mesai listeleri</small>
                        </div>
                    </div>
                </div>
                <div class="card-body px-4">
                    <form method="GET" target="_blank" id="hareketForm">
                        <div class="mb-3">
                            <label class="form-label small fw-bold text-muted">Dönem Seçimi</label>
                            <div class="input-group">
                                <select name="ay" class="form-select bg-light">
                                    <option value="">Tüm Aylar</option>
                                    <?php foreach($aylar as $k=>$v) echo "<option value='$k' ".($k==$bu_ay?'selected':'').">$v</option>"; ?>
                                </select>
                                <select name="yil" class="form-select bg-light">
                                    <?php for($y=2024; $y<=2030; $y++) echo "<option value='$y' ".($y==$bu_yil?'selected':'').">$y</option>"; ?>
                                </select>
                            </div>
                        </div>
                        <div class="d-grid gap-2">
                            <button type="button" onclick="submitHareket('tum-izinler-rapor.php')" class="btn btn-outline-warning text-dark text-start fw-bold">
                                <i class="fas fa-umbrella-beach me-2"></i> İzin Listesi İndir (Excel)
                            </button>
                            <button type="button" onclick="submitHareket('tum-mesailer-rapor.php')" class="btn btn-outline-warning text-dark text-start fw-bold">
                                <i class="fas fa-clock me-2"></i> Mesai Listesi İndir (Excel)
                            </button>
                        </div>
                        <input type="hidden" name="format" value="excel">
                    </form>
                </div>
            </div>
        </div>

    </div> 
</div>

<script>
function submitHareket(actionUrl) {
    const form = document.getElementById('hareketForm');
    form.action = actionUrl;
    form.submit();
}
</script>

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