<?php
// modules/personel-kart.php
session_start();
require_once '../config/db.php';
require_once '../config/functions.php';
// Yetki Kontrolü
yetkiKontrol(['root', 'yonetici', 'mudur', 'vardiya_amiri', 'muhasebe', 'insan_kaynaklari', 'calisan', 'stajyer']);
$id = (int)$_GET['id'];
// Güvenlik: Çalışan sadece kendi kartını görebilir
if ($_SESSION['rol'] == 'calisan' && $_SESSION['kullanici_id'] != $id) {
die("Bu personel kartını görüntüleme yetkiniz yok.");
}
// 1. PERSONEL BİLGİLERİ (SELECT * kullanılır, yeni sütunların DB'de olduğu varsayılır)
$stmt = $pdo->prepare("SELECT * FROM kullanicilar WHERE id = ?");
$stmt->execute([$id]);
$p = $stmt->fetch();
if (!$p) die("Personel bulunamadı.");
// 2. İZİN VE MESAİ VERİLERİ (ÖZET)
$yil = date('Y');
// Kıdem
$ise_giris = new DateTime($p['ise_giris_tarihi']);
$bugun = new DateTime();
$kidem_yil = $ise_giris->diff($bugun)->y;
// İzin Hakkı
$hakedilen = ($kidem_yil >= 15) ? 26 : (($kidem_yil >= 5) ? 20 : 14);
if ($p['rol'] == 'stajyer') $hakedilen = 0;
$toplam_hak = $hakedilen + (float)$p['devreden_izin'];
// Kullanılan
$kullanilan_stmt = $pdo->prepare("SELECT SUM(toplam_gun) FROM izin_talepleri WHERE calisan_id = ? AND durum = 'onaylandi' AND izin_turu IN ('yillik', 'mazeret') AND YEAR(baslangic_tarihi) = ?");
$kullanilan_stmt->execute([$id, $yil]);
$kullanilan = $kullanilan_stmt->fetchColumn() ?: 0;
$kalan = $toplam_hak - $kullanilan;
// Toplam Mesai
$mesai_stmt = $pdo->prepare("SELECT SUM(toplam_saat) FROM mesai_hareketleri WHERE calisan_id = ? AND durum = 'onaylandi'");
$mesai_stmt->execute([$id]);
$toplam_mesai = $mesai_stmt->fetchColumn() ?: 0;
// MAAŞ HESAPLAMA BİLGİLERİ
$net_maas = (float)$p['aylik_net_maas'];
$saatlik_ucret = $net_maas > 0 ? $net_maas / 225 : 0;
$maas_gorme_yetkisi = in_array($_SESSION['rol'], ['root', 'yonetici', 'muhasebe', 'insan_kaynaklari']);
// --- DETAYLI LİSTELER (SON 5 KAYIT) ---
// GÜVENLİK RİSKİ: Sorgular parametreli olmalı. Buradaki $id zaten int'e cast edildiği için minimal risk taşır.
$son_izinler = $pdo->query("SELECT * FROM izin_talepleri WHERE calisan_id = $id ORDER BY baslangic_tarihi DESC LIMIT 5")->fetchAll();
$son_mesailer = $pdo->query("SELECT * FROM mesai_hareketleri WHERE calisan_id = $id ORDER BY tarih DESC LIMIT 5")->fetchAll();
// QR Kod
$qr_data = (isset($_SERVER['HTTPS']) ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$qr_src = "https://api.qrserver.com/v1/create-qr-code/?size=100x100&data=" . urlencode($qr_data);
?>
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<title>Personel Sicil Kartı - <?php echo $p['ad'] . ' ' . $p['soyad']; ?></title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
body { background: #f0f2f5; font-family: 'Segoe UI', Arial, sans-serif; font-size: 13px; }
.page-container {
max-width: 210mm;
margin: 20px auto;
background: white;
padding: 30px;
box-shadow: 0 0 15px rgba(0,0,0,0.1);
position: relative;
}
/* HEADER & LOGO */
.header { border-bottom: 2px solid #2A7BB8; padding-bottom: 15px; margin-bottom: 20px; display: flex; justify-content: space-between; align-items: center; }
.logo { max-height: 55px; }
.title-box h2 { margin: 0; color: #2A7BB8; font-weight: 700; text-transform: uppercase; font-size: 22px; }
.title-box p { margin: 0; color: #666; font-size: 12px; }
.qr-code { border: 1px solid #ddd; padding: 4px; width: 70px; height: 70px; }
/* PROFILE */
.profile-header { display: flex; gap: 20px; margin-bottom: 15px; }
.photo-box { width: 130px; height: 150px; border: 1px solid #ddd; padding: 4px; background: #fff; }
.photo-box img { width: 100%; height: 100%; object-fit: cover; }
.main-info { flex-grow: 1; }
.name { font-size: 24px; font-weight: bold; color: #333; border-bottom: 1px solid #eee; padding-bottom: 5px; margin-bottom: 10px; }
.info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.info-item { display: flex; border-bottom: 1px dashed #eee; padding-bottom: 3px; }
.label { font-weight: bold; width: 130px; color: #555; }
.value { color: #000; }
/* SECTIONS & TABLES */
.section-title { background: #eee; padding: 6px 12px; font-weight: bold; color: #333; border-left: 5px solid #2A7BB8; margin: 15px 0 10px 0; text-transform: uppercase; font-size: 13px; }
.stat-table { width: 100%; border-collapse: collapse; margin-bottom: 15px; }
.stat-table th, .stat-table td { border: 1px solid #ddd; padding: 6px; text-align: center; font-size: 12px; }
.stat-table th { background: #f9f9f9; font-weight: bold; color: #333; }
.text-start { text-align: left !important; }
/* YAZDIRMA BUTONLARINI GİZLEME KURALI */
.no-print { position: fixed; top: 20px; right: 20px; z-index: 9999; }
@media print {
.no-print { display: none !important; }
body { background: white; margin: 0; }
.page-container { box-shadow: none; margin: 0; padding: 10px; width: 100%; max-width: 100%; }
.section-title { background: #f0f0f0 !important; -webkit-print-color-adjust: exact; }
.header { border-bottom-color: #000 !important; }
.stat-table th { background-color: #f0f0f0 !important; -webkit-print-color-adjust: exact; }
}
</style>
</head>
<body>
<div class="no-print d-flex gap-2">
<button onclick="window.print()" class="btn btn-primary shadow"><i class="fas fa-print"></i> Yazdır</button>
<button onclick="window.close()" class="btn btn-secondary shadow"><i class="fas fa-times"></i> Kapat</button>
</div>
<div class="page-container">
<div class="header">
<img src="../assets/img/logo.png" alt="Ramsa Logo" class="logo">
<div class="title-box text-center">
<h2>Personel Sicil Kartı</h2>
<p>İnsan Kaynakları Yönetim Sistemi</p>
</div>
<img src="<?php echo $qr_src; ?>" alt="QR" class="qr-code">
</div>
<div class="profile-header">
<div class="photo-box">
<img src="../<?php echo !empty($p['fotograf_yolu']) ? $p['fotograf_yolu'] : 'assets/img/default-user.png'; ?>">
</div>
<div class="main-info">
<div class="name"><?php echo $p['ad'] . ' ' . $p['soyad']; ?></div>
<div class="info-grid">
<div class="info-item"><span class="label">TC Kimlik No:</span> <span class="value"><?php echo $p['tc_no']; ?></span></div>
<div class="info-item"><span class="label">SGK Sicil No:</span> <span class="value"><?php echo $p['sgk_no'] ?: '-'; ?></span></div>
<div class="info-item"><span class="label">Doğum Tarihi:</span> <span class="value"><?php echo $p['dogum_tarihi'] ? date('d.m.Y', strtotime($p['dogum_tarihi'])) : '-'; ?></span></div>
<div class="info-item"><span class="label">Sistem Rolü:</span> <span class="value"><?php echo strtoupper($p['rol']); ?></span></div>
<div class="info-item"><span class="label">İşe Giriş Tarihi:</span> <span class="value"><?php echo date('d.m.Y', strtotime($p['ise_giris_tarihi'])); ?></span></div>
<div class="info-item"><span class="label">Kıdem Yılı:</span> <span class="value"><?php echo $kidem_yil; ?> Yıl</span></div>
</div>
</div>
</div>
<div class="section-title">AİLE VE KİŞİSEL BİLGİLER</div>
<div class="info-grid">
<div class="info-item"><span class="label">Medeni Hali:</span> <span class="value"><?php echo $p['medeni_durum'] ?: '-'; ?></span></div>
<div class="info-item"><span class="label">Çocuk Sayısı:</span> <span class="value"><?php echo $p['cocuk_sayisi'] ?: '0'; ?></span></div>
<div class="info-item"><span class="label">Kan Grubu:</span> <span class="value"><?php echo $p['kan_grubu'] ?: '-'; ?></span></div>
<div class="info-item"><span class="label">Durum:</span> <span class="value"><?php echo ($p['durum']==1) ? 'AKTİF' : 'PASİF'; ?></span></div>
</div>
<div class="section-title">Finansal Bilgiler</div>
<div class="info-grid">
<?php if ($maas_gorme_yetkisi): ?>
<div class="info-item"><span class="label">Aylık Net Maaş:</span> <span class="value fw-bold text-success"><?php echo number_format($net_maas, 2); ?> ₺</span></div>
<div class="info-item"><span class="label">Saatlik Birim Ücret:</span> <span class="value fw-bold text-primary"><?php echo number_format($saatlik_ucret, 2); ?> ₺</span></div>
<?php else: ?>
<div class="alert alert-secondary w-100 p-2" style="grid-column: span 2;">Maaş bilgileri görüntüleme yetkiniz yoktur.</div>
<?php endif; ?>
</div>
<div class="section-title">İletişim Bilgileri</div>
<div class="info-grid">
<div class="info-item"><span class="label">Telefon:</span> <span class="value"><?php echo $p['telefon']; ?></span></div>
<div class="info-item"><span class="label">E-Posta:</span> <span class="value"><?php echo !empty($p['email']) ? $p['email'] : '-'; ?></span></div>
<div class="info-item" style="grid-column: span 2; border-bottom: none;">
<span class="label">Adres:</span> <span class="value"><?php echo !empty($p['adres']) ? $p['adres'] : '-'; ?></span>
</div>
</div>
<div class="section-title">İzin ve Bakiye Durumu (<?php echo $yil; ?> Yılı)</div>
<table class="stat-table">
<thead>
<tr>
<th>Hakedilen Yıllık İzin</th>
<th>Kullanılan (Yıllık+Mazeret)</th>
<th>Kalan Bakiye</th>
<th>Toplam Onaylı Mesai</th>
</tr>
</thead>
<tbody>
<tr>
<td><?php echo $toplam_hak; ?> Gün</td>
<td><?php echo $kullanilan; ?> Gün</td>
<td style="font-weight: bold; color: #2A7BB8; font-size: 14px;"><?php echo $kalan; ?> Gün</td>
<td style="font-weight: bold;"><?php echo number_format($toplam_mesai, 1); ?> Saat</td>
</tr>
</tbody>
</table>
<div class="section-title">Son İzin Hareketleri</div>
<table class="stat-table">
<thead>
<tr>
<th class="text-start">İzin Türü</th>
<th>Başlangıç Tarihi</th>
<th>Bitiş / İş Başı</th>
<th>Süre</th>
<th>Durum</th>
</tr>
</thead>
<tbody>
<?php foreach($son_izinler as $iz): ?>
<tr>
<td class="text-start">
<?php echo ($iz['izin_turu'] == 'saatlik') ? 'SAATLİK İZİN' : strtoupper($iz['izin_turu']); ?>
</td>
<td>
<?php echo tarihTurkce(date('Y-m-d', strtotime($iz['baslangic_tarihi']))); ?>
<?php if($iz['izin_turu'] == 'saatlik') echo '<br><small>'.date('H:i', strtotime($iz['baslangic_tarihi'])).'</small>'; ?>
</td>
<td>
<?php echo tarihTurkce(date('Y-m-d', strtotime($iz['bitis_tarihi']))); ?>
<?php if($iz['izin_turu'] == 'saatlik') echo '<br><small>'.date('H:i', strtotime($iz['bitis_tarihi'])).'</small>'; ?>
</td>
<td style="font-weight: bold;">
<?php echo ($iz['izin_turu'] == 'saatlik') ? $iz['saatlik_sure'].' Saat' : floatval($iz['toplam_gun']).' Gün'; ?>
</td>
<td>
<?php
if($iz['durum']=='onaylandi') echo '<span style="color:green">ONAYLI</span>';
elseif($iz['durum']=='reddedildi') echo '<span style="color:red">RED</span>';
else echo 'BEKLİYOR';
?>
</td>
</tr>
<?php endforeach; ?>
<?php if(empty($son_izinler)) echo "<tr><td colspan='5'>Kayıt bulunamadı.</td></tr>"; ?>
</tbody>
</table>
<div class="section-title">Son Fazla Mesai Hareketleri</div>
<table class="stat-table">
<thead>
<tr>
<th class="text-start">Tarih</th>
<th>Mesai Türü</th>
<th>Saat Aralığı</th>
<th>Süre</th>
<th>Durum</th>
</tr>
</thead>
<tbody>
<?php foreach($son_mesailer as $m): ?>
<tr>
<td class="text-start fw-bold">
<?php echo tarihTurkce($m['tarih']); ?>
</td>
<td>
<?php
if($m['mesai_turu']=='fazla_mesai') echo 'Fazla Mesai';
elseif($m['mesai_turu']=='resmi_tatil_mesaisi') echo 'Resmi Tatil';
else echo 'Normal';
?>
</td>
<td>
<?php echo substr($m['baslangic_saati'],0,5) . ' - ' . substr($m['bitis_saati'],0,5); ?>
</td>
<td style="font-weight: bold; color: #2A7BB8;">
<?php echo $m['toplam_saat']; ?> Saat
</td>
<td>
<?php
if($m['durum']=='onaylandi') echo '<span style="color:green">ONAYLI</span>';
elseif($m['durum']=='reddedildi') echo '<span style="color:red">RED</span>';
else echo 'BEKLİYOR';
?>
</td>
</tr>
<?php endforeach; ?>
<?php if(empty($son_mesailer)) echo "<tr><td colspan='5'>Kayıt bulunamadı.</td></tr>"; ?>
</tbody>
</table>
<div style="margin-top: 20px; font-size: 11px; color: #999; text-align: center; border-top: 1px solid #eee; padding-top: 10px;">
Ramsa Makina Portal Sistemi - Oluşturulma Tarihi: <?php echo date('d.m.Y H:i'); ?> <br>
Bu belge bilgilendirme amaçlıdır.
</div>
</div>
</body>
</html>