PYBS (Personel Yönetim Bilgi Sistemi)
<?php
// modules/avans-rapor.php
session_start();
require_once '../config/db.php';
require_once '../config/functions.php';
// Yetkili Roller: Root, Yönetici, Muhasebe, İnsan Kaynakları
yetkiKontrol(['root', 'yonetici', 'muhasebe', 'insan_kaynaklari']);
// --- FİLTRELER VE PARAMETRELER ---
$yil = guvenlik($_GET['yil'] ?? date('Y'));
$ay = guvenlik($_GET['ay'] ?? date('m'));
$format = guvenlik($_GET['format'] ?? 'print'); // 'excel' veya 'pdf' (print)
// Rapor tarihi, saat ve zaman dilimi ayarı
date_default_timezone_set('Europe/Istanbul');
$rapor_tarihi_saati = date('d.m.Y H:i');
$ay_isimleri = ['01'=>'OCAK','02'=>'ŞUBAT','03'=>'MART','04'=>'NİSAN','05'=>'MAYIS','06'=>'HAZİRAN','07'=>'TEMMUZ','08'=>'AĞUSTOS','09'=>'EYLÜL','10'=>'EKİM','11'=>'KASIM','12'=>'ARALIK'];
// BAŞLIK
$baslik = "PERSONEL AVANS HAREKETLERİ - " . $ay_isimleri[$ay] . " " . $yil;
$ay_baslangici = date('Y-m-01', strtotime("$yil-$ay-01"));
$ay_sonu = date('Y-m-t', strtotime("$yil-$ay-01"));
// --- AVANS VERİSİNİ ÇEKME ---
$sql_avans = "
SELECT ah.*, k.ad, k.soyad, k.rol
FROM avans_hareketleri ah
JOIN kullanicilar k ON ah.calisan_id = k.id
WHERE ah.islem_tarihi BETWEEN :baslangic AND :sonu
AND k.rol != 'root' -- Root rolünü rapordan hariç tut
ORDER BY k.ad ASC, ah.islem_tarihi DESC
";
$stmt_avans = $pdo->prepare($sql_avans);
$stmt_avans->execute([':baslangic' => $ay_baslangici, ':sonu' => $ay_sonu]);
$rapor_verileri = $stmt_avans->fetchAll();
// Toplam Avans Miktarını Hesapla
$toplam_avans = array_sum(array_column($rapor_verileri, 'avans_miktari'));
// --- RAPOR ÇIKTI BAŞLIKLARI (Excel/PDF) ---
if ($format == 'excel') {
header("Content-Type: application/vnd.ms-excel; charset=utf-8");
header("Content-Disposition: attachment; filename=Avans_Raporu_{$yil}_{$ay}.xls");
header("Pragma: no-cache");
header("Expires: 0");
echo "\xEF\xBB\xBF"; // BOM
} elseif ($format == 'pdf') {
// Print/PDF çıktısı için özel CSS eklenecek
}
?>
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<title>Ramsa Makine Sanayii Personel Yönetim Bilgi Sistemi - Avans Raporu</title>
<style>
body { font-family: Arial, sans-serif; font-size: 11px; margin: 0; padding: 20px; }
/* RAPOR ANTEPİ VE LOGO */
.rapor-header {
display: flex;
justify-content: space-between;
align-items: center;
border-bottom: 3px solid #333;
padding-bottom: 10px;
margin-bottom: 20px;
}
.rapor-header img { max-height: 50px; }
.rapor-header h1 {
font-size: 16px;
font-weight: bold;
margin: 0;
color: #333;
}
.rapor-header p {
font-size: 10px;
margin: 0;
color: #666;
}
/* TABLO STİLİ */
table { width: 100%; border-collapse: collapse; margin-bottom: 20px; }
th, td { border: 1px solid #000; padding: 5px; text-align: center; }
th { background-color: #ddd; font-weight: bold; }
.text-start { text-align: left !important; }
.text-end { text-align: right !important; }
.bg-danger-light { background-color: #f8d7da; }
.bg-info-light { background-color: #e2f3ff; }
/* İmza Alanı Stilleri */
.imza-blogu { display: flex; justify-content: space-around; margin-top: 50px; page-break-inside: avoid; }
.imza-kutu { width: 25%; text-align: center; padding: 10px; }
.imza-baslik { font-weight: bold; border-top: 1px solid #000; padding-top: 5px; margin-top: 40px; font-size: 11px; }
/* PDF/PRINT ÖZEL STİLLER */
@media print {
body { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.no-print { display: none; }
.rapor-header { border-bottom-color: #000; }
th { background-color: #eee !important; }
.bg-danger-light { background-color: #f8d7da !important; }
.bg-info-light { background-color: #e2f3ff !important; }
/* Sayfa URL'sini gizlemek için altbilgi ayarları */
@page {
size: portrait; /* Genellikle avans raporu dikey sığar */
margin: 15mm;
@bottom-left { content: ""; }
@bottom-right { content: ""; }
@top-left { content: ""; }
@top-right { content: ""; }
}
}
</style>
</head>
<body>
<?php if($format == 'pdf'): ?>
<div class="no-print" style="margin-bottom: 20px;">
<button onclick="window.print()" style="padding: 10px 20px; font-weight: bold; cursor: pointer;">🖨️ YAZDIR / PDF OLUŞTUR</button>
</div>
<?php endif; ?>
<div class="rapor-header">
<img src="../assets/img/logo.png" alt="Şirket Logosu">
<div class="text-center">
<h1><?php echo $baslik; ?></h1>
<p>Rapor Tarihi: <?php echo $rapor_tarihi_saati; ?></p>
</div>
<div style="width: 50px;"></div>
</div>
<?php if (empty($rapor_verileri)): ?>
<div style="text-align: center; padding: 50px; border: 1px dashed #ccc;">
Seçilen dönemde avans hareketi bulunmamaktadır.
</div>
<?php else: ?>
<table style="font-size: 10px;">
<thead>
<tr>
<th class="text-start" style="width: 25%;">PERSONEL</th>
<th style="width: 15%;">ROL</th>
<th style="width: 15%;">İŞLEM TARİHİ</th>
<th class="text-end" style="width: 20%;">AVANS MİKTARI (TL)</th>
<th style="width: 25%;">AÇIKLAMA</th>
</tr>
</thead>
<tbody>
<?php foreach($rapor_verileri as $veri): ?>
<tr>
<td class="text-start"><?php echo $veri['ad'] . ' ' . $veri['soyad']; ?></td>
<td><?php echo strtoupper($veri['rol']); ?></td>
<td><?php echo tarihTurkce($veri['islem_tarihi']); ?></td>
<td class="text-end bg-danger-light" style="font-weight: bold;">
<?php echo number_format($veri['avans_miktari'], 2); ?> ₺
</td>
<td><?php echo guvenlik($veri['aciklama']); ?></td>
</tr>
<?php endforeach; ?>
<tr style="border-top: 3px double #000;">
<td colspan="3" class="text-end" style="font-weight: bold; font-size: 12px;">GENEL TOPLAM:</td>
<td class="text-end bg-info-light" style="font-weight: bold; font-size: 12px;">
<?php echo number_format($toplam_avans, 2); ?> ₺
</td>
<td></td>
</tr>
</tbody>
</table>
<?php endif; ?>
<div class="imza-blogu">
<div class="imza-kutu">
<div class="imza-baslik">MUHASEBE YETKİLİSİ</div>
</div>
<div class="imza-kutu">
<div class="imza-baslik">YÖNETİCİ ONAYI</div>
</div>
</div>
<?php if($format == 'pdf'): ?>
<script>
// PDF/Print için otomatik tetikleme
window.onload = function() { setTimeout(function() { window.print(); }, 500); }
</script>
<?php endif; ?>
</body>
</html>
DEMO SÜRÜMÜDÜR TAM SÜRÜM İÇİN İLETİŞİM KURUN
📖 PYBS (Personel Yönetim Bilgi Sistemi) Kullanım Kılavuzu
🚀 Proje Tanımı
PYBS, personel bilgilerini, izinleri, maaş bordrolarını ve performans değerlendirmelerini merkezi ve dijital bir platformda yönetmek için tasarlanmış kapsamlı bir Personel Yönetim Bilgi Sistemi'dir. Amacımız, İnsan Kaynakları (İK) süreçlerini otomatikleştirerek verimliliği artırmak ve veri tutarlılığını sağlamaktır.
✨ Temel Özellikler
Personel Yönetimi: Çalışanların kişisel, iletişim ve görev bilgilerini kaydetme/güncelleme.
İzin Yönetimi: Çalışanların izin taleplerini oluşturma, onaylama/reddetme ve kalan izin haklarını takip etme.
Performans Değerlendirme: Yöneticilerin ve çalışanların performans hedeflerini belirlemesi ve değerlendirmeleri kaydetmesi.
Bordro Entegrasyonu: Maaş ve avans bilgilerini kaydetme ve bordro çıktılarını oluşturma (Harici sistemlerle entegrasyon potansiyeli).
Raporlama: İK yöneticileri için özet ve detaylı personel, izin ve bordro raporları oluşturma.
💻 Son Kullanıcı Kullanımı🔑 Giriş Yapma
Demo için kullanıcı adı : test.test
Demo için şifre : 123456
Demo hesabında root / yonetici vb yetki yoktur.
Tam sürüm için iletişime geçin.
Sistem "Ramsa Makine" tarafından aktif olarak kullanılmaktadır
Meta Veri (Özet)
İşyeri çalışanlarının maaş, fazla mesai ve puantaj ile bordro takip, kontrol ve raporlama sistemi