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

// Sadece bu rollere açık
yetkiKontrol(['root', 'yonetici', 'muhasebe', 'insan_kaynaklari']);

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

// Personel Listesi (Filtre için) - Root hariç
$personeller = $pdo->query("SELECT id, ad, soyad FROM kullanicilar WHERE durum=1 AND rol != 'root' ORDER BY ad ASC")->fetchAll();

// Varsayılan Tarihler
$bu_ay_bas = date('Y-m-01');
$bu_ay_son = date('Y-m-t');
$gecen_ay_bas = date('Y-m-01', strtotime('-1 month'));
$gecen_ay_son = date('Y-m-t', strtotime('-1 month'));
$bu_yil = date('Y');
$gecen_yil = date('Y') - 1;
?>

<div class="container-fluid">
    <h3 class="mb-4"><i class="fas fa-chart-bar text-primary me-2"></i> Raporlama Merkezi</h3>
    <p class="text-muted">İhtiyacınız olan detayı ve dönemi seçerek hızlıca döküm alabilirsiniz.</p>

    <div class="row g-4">
        
        <div class="col-md-6 col-lg-4">
            <div class="card border-0 shadow-lg h-100" style="border-top: 5px solid #007bff;">
                <div class="card-header bg-white">
                    <h5 class="text-primary fw-bold mb-0"><i class="fas fa-clock me-2"></i> Mesai ve Puantaj Dökümü</h5>
                </div>
                <div class="card-body p-4">
                    <p class="small text-muted">Seçilen tarihler arasındaki onaylı fazla mesai hareketlerini ve puantaj detaylarını listeler.</p>

                    <form action="rapor-olustur.php" method="GET" target="_blank" id="mesaiForm">
                        <input type="hidden" name="tur" value="mesai">
                        
                        <div class="row g-2 mb-3">
                            <div class="col-6">
                                <label class="small fw-bold">Başlangıç</label>
                                <input type="date" name="baslangic" id="mesaiBaslangic" class="form-control form-control-sm" required value="<?php echo $bu_ay_bas; ?>">
                            </div>
                            <div class="col-6">
                                <label class="small fw-bold">Bitiş</label>
                                <input type="date" name="bitis" id="mesaiBitis" class="form-control form-control-sm" required value="<?php echo $bu_ay_son; ?>">
                            </div>
                        </div>

                        <div class="mb-3">
                            <label class="small fw-bold">Personel Filtresi</label>
                            <select name="personel_id" class="form-select form-select-sm">
                                <option value="tumu">Tüm Personel</option>
                                <?php foreach($personeller as $p): ?>
                                    <option value="<?php echo $p['id']; ?>"><?php echo $p['ad'].' '.$p['soyad']; ?></option>
                                <?php endforeach; ?>
                            </select>
                        </div>
                        
                        <div class="mb-3 d-flex gap-2 justify-content-between">
                            <button type="button" class="btn btn-sm btn-outline-secondary w-50" onclick="setMesaiDates('<?php echo $gecen_ay_bas; ?>', '<?php echo $gecen_ay_son; ?>')">Geçen Ay</button>
                            <button type="button" class="btn btn-sm btn-outline-secondary w-50" onclick="setMesaiDates('<?php echo $bu_ay_bas; ?>', '<?php echo $bu_ay_son; ?>')">Bu Ay</button>
                        </div>

                        <div class="d-grid gap-2 mt-3">
                            <button type="submit" name="format" value="yazdir" class="btn btn-outline-dark">
                                <i class="fas fa-print"></i> PDF Önizle
                            </button>
                            <button type="submit" name="format" value="excel" class="btn btn-success">
                                <i class="fas fa-file-excel"></i> Excel İndir
                            </button>
                        </div>
                    </form>
                </div>
            </div>
        </div>

        <div class="col-md-6 col-lg-4">
            <div class="card border-0 shadow-lg h-100" style="border-top: 5px solid #ffc107;">
                <div class="card-header bg-white">
                    <h5 class="text-warning fw-bold mb-0"><i class="fas fa-umbrella-beach me-2"></i> İzin Kullanım Raporu</h5>
                </div>
                <div class="card-body p-4">
                    <p class="small text-muted">Personelin seçilen yıl içindeki kullandığı tüm onaylı izinleri (yıllık, mazeret, saatlik vb.) listeler.</p>
                    <form action="rapor-olustur.php" method="GET" target="_blank" id="izinForm">
                        <input type="hidden" name="tur" value="izin">
                        
                        <div class="mb-3">
                            <label class="small fw-bold">Yıl Seçimi</label>
                            <select name="yil" id="izinYil" class="form-select form-select-sm">
                                <?php 
                                for($i=$bu_yil; $i>=$gecen_yil-2; $i--) { 
                                    echo "<option value='$i' ".($i==$bu_yil?'selected':'').">$i</option>"; 
                                }
                                ?>
                            </select>
                        </div>

                        <div class="mb-3">
                            <label class="small fw-bold">Personel Filtresi</label>
                            <select name="personel_id" class="form-select form-select-sm">
                                <option value="tumu">Tüm Personel</option>
                                <?php foreach($personeller as $p): ?>
                                    <option value="<?php echo $p['id']; ?>"><?php echo $p['ad'].' '.$p['soyad']; ?></option>
                                <?php endforeach; ?>
                            </select>
                        </div>
                        
                        <div class="alert alert-info small mt-4">
                            <i class="fas fa-info-circle"></i> Bu rapor, yıllık izin bakiyesi hesaplamaz, sadece kullanılan izinleri gösterir.
                        </div>

                        <div class="d-grid gap-2 mt-4">
                            <button type="submit" name="format" value="yazdir" class="btn btn-outline-dark">
                                <i class="fas fa-print"></i> PDF Önizle
                            </button>
                            <button type="submit" name="format" value="excel" class="btn btn-success">
                                <i class="fas fa-file-excel"></i> Excel İndir
                            </button>
                        </div>
                    </form>
                </div>
            </div>
        </div>

        <div class="col-md-6 col-lg-4">
            <div class="card border-0 shadow-lg h-100" style="border-top: 5px solid #dc3545;">
                <div class="card-header bg-white">
                    <h5 class="text-danger fw-bold mb-0"><i class="fas fa-chart-pie me-2"></i> Mali Genel Bakış (Özet)</h5>
                </div>
                <div class="card-body p-4 d-flex flex-column justify-content-between">
                    <div>
                        <p class="small text-muted">Seçilen aya ait **tüm personelin** net maaş maliyetini, mesai hakedişlerini, izin kesintilerini ve avans hareketlerini tek bir tabloda konsolide olarak gösterir.</p>
                        
                        <div class="alert alert-danger small mt-4">
                             <i class="fas fa-exclamation-triangle"></i> Bu rapor, genel muhasebe dökümü için tasarlanmıştır. Dönem seçimi için aşağıdaki butonu kullanınız.
                        </div>
                    </div>

                    <div class="d-grid mt-3">
                        <a href="mali-rapor.php" class="btn btn-danger btn-lg fw-bold">
                            <i class="fas fa-arrow-right me-2"></i> Mali Rapor Merkezi'ne Git
                        </a>
                    </div>
                </div>
            </div>
        </div>
        
        <div class="col-md-6 col-lg-4">
            <div class="card border-0 shadow-lg h-100" style="border-top: 5px solid #17a2b8;">
                <div class="card-header bg-white">
                    <h5 class="text-info fw-bold mb-0"><i class="fas fa-users-cog me-2"></i> Personel Bilgileri Dökümü</h5>
                </div>
                <div class="card-body p-4 d-flex flex-column justify-content-between">
                    <div>
                        <p class="small text-muted">Sistemdeki tüm personelin TC, Maaş, Rol, İletişim ve İşe Giriş tarihi gibi kritik bilgilerini toplu olarak listeler.</p>
                        
                        <form action="rapor-olustur.php" method="GET" target="_blank">
                            <input type="hidden" name="tur" value="personel_bilgi">
                            
                            <div class="mb-3">
                                <label class="small fw-bold">Rol Filtresi</label>
                                <select name="rol_filtre" class="form-select form-select-sm">
                                    <option value="tumu">Tüm Roller</option>
                                    <option value="yonetici">Yönetici</option>
                                    <option value="mudur">Müdür</option>
                                    <option value="insan_kaynaklari">İnsan Kaynakları</option>
                                    <option value="muhasebe">Muhasebe</option>
                                    <option value="vardiya_amiri">Vardiya Amiri</option>
                                    <option value="calisan">Çalışan</option>
                                    <option value="stajyer">Stajyer</option>
                                </select>
                            </div>
                            
                            <div class="mb-3">
                                <label class="small fw-bold">Durum Filtresi</label>
                                <select name="durum_filtre" class="form-select form-select-sm">
                                    <option value="1">Aktif Personel</option>
                                    <option value="0">Pasif (Ayrılmış) Personel</option>
                                    <option value="tumu">Tümü</option>
                                </select>
                            </div>

                            <div class="d-grid gap-2 mt-4">
                                <button type="submit" name="format" value="yazdir" class="btn btn-info text-white">
                                    <i class="fas fa-print"></i> PDF Önizle
                                </button>
                                <button type="submit" name="format" value="excel" class="btn btn-success">
                                    <i class="fas fa-file-excel"></i> Excel İndir
                                </button>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </div>
        
    </div> </div>

<script>
    // Mesai Formu için hızlı tarih ayarlama fonksiyonu
    function setMesaiDates(baslangic, bitis) {
        document.getElementById('mesaiBaslangic').value = baslangic;
        document.getElementById('mesaiBitis').value = bitis;
    }
</script>

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