sys/veri_detay/#008

PYBS (Personel Yönetim Bilgi Sistemi)

Son Senkronizasyon: 16.12.2025
sistem-ayarlari.php 136 satır • 6.09 KB
<?php
// modules/sistem-ayarlari.php
session_start();
require_once '../config/db.php';
require_once '../config/functions.php';

// Yetki Kontrolü: Yalnızca Root erişebilir
yetkiKontrol(['root']);

// Hata gösterimlerini kapatıyoruz
error_reporting(0);
ini_set('display_errors', 0);

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

$mesaj = '';

// Ayarları Kaydet
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['onaylandi'])) {
    csrfKontrol($_POST['csrf_token']);
    
    foreach ($_POST as $key => $val) {
        if ($key != 'csrf_token' && $key != 'onaylandi') {
            // Varsa güncelle, yoksa ekle (site_ayarlari tablosu)
            $sql = "INSERT INTO site_ayarlari (ayar_anahtari, ayar_degeri) VALUES (?, ?) 
                    ON DUPLICATE KEY UPDATE ayar_degeri = ?";
            
            // Güvenlik: Sadece izin verilen ayarları temizleyip kaydedelim
            $temiz_val = guvenlik($val);
            $pdo->prepare($sql)->execute([$key, $temiz_val, $temiz_val]);
        }
    }
    
    // Log Kaydı
    logKaydet($pdo, $_SESSION['kullanici_id'], 'guncelleme', "Sistem ayarları güncellendi.", 'site_ayarlari', 0);
    
    $mesaj = '<div class="alert alert-success shadow-sm"><i class="fas fa-check-circle me-2"></i> Ayarlar başarıyla güncellendi.</div>';
}

// Mevcut Ayarları Çek
// Veritabanından verileri çekme (Hata yakalama kaldırıldı, çünkü loglamayla çözüldü)
$ayarlar_db = $pdo->query("SELECT ayar_anahtari, ayar_degeri FROM site_ayarlari")->fetchAll(PDO::FETCH_KEY_PAIR);
?>

<div class="container-fluid">
    <div class="row justify-content-center">
        <div class="col-md-8">
            <div class="card border-0 shadow-sm mt-4">
                <div class="card-header bg-white py-3 border-bottom">
                    <h5 class="mb-0 fw-bold text-primary"><i class="fas fa-cogs me-2"></i> Sistem Yapılandırması</h5>
                </div>
                <div class="card-body p-4">
                    <?php echo $mesaj; ?>
                    
                    <div class="alert alert-info border-start border-info border-4 small">
                        <i class="fas fa-info-circle me-2"></i> Bu ayarlar tüm sistem genelinde puantaj hesaplamalarını ve mesai kurallarını etkiler.
                    </div>

                    <form method="POST" id="ayarFormu">
                        <input type="hidden" name="csrf_token" value="<?php echo csrfTokenOlustur(); ?>">
                        
                        <div class="mb-4">
                            <label class="form-label fw-bold">Haftalık Çalışma Günü</label>
                            <select name="haftalik_calisma_gunu" class="form-select bg-light">
                                <option value="5" <?php echo ($ayarlar_db['haftalik_calisma_gunu'] ?? '5') == '5' ? 'selected' : ''; ?>>5 Gün (Pazartesi - Cuma)</option>
                                <option value="6" <?php echo ($ayarlar_db['haftalik_calisma_gunu'] ?? '5') == '6' ? 'selected' : ''; ?>>6 Gün (Pazartesi - Cumartesi)</option>
                            </select>
                            <div class="form-text">Puantaj hesaplanırken hafta tatili buna göre belirlenir.</div>
                        </div>

                        <div class="mb-4">
                            <label class="form-label fw-bold">Günlük Standart Mesai</label>
                            <div class="input-group">
                                <input type="number" name="gunluk_mesai_saati" class="form-control bg-light" step="0.5" value="<?php echo $ayarlar_db['gunluk_mesai_saati'] ?? '9'; ?>">
                                <span class="input-group-text">Saat</span>
                            </div>
                            <div class="form-text">Standart bir iş gününün kaç saat olduğu (Örn: 9 veya 7.5).</div>
                        </div>

                        <div class="d-grid">
                            <button type="button" class="btn btn-primary btn-lg shadow-sm" data-bs-toggle="modal" data-bs-target="#onayModal">
                                <i class="fas fa-save me-2"></i> Ayarları Güncelle
                            </button>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>

<div class="modal fade" id="onayModal" tabindex="-1" aria-labelledby="onayModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header bg-warning text-dark">
                <h5 class="modal-title" id="onayModalLabel"><i class="fas fa-exclamation-triangle me-2"></i> Onay Gerekiyor</h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Kapat"></button>
            </div>
            <div class="modal-body">
                <p><strong>DİKKAT:</strong> Sistem ayarlarını değiştirmek tüm bordro ve puantaj hesaplamalarını etkileyecektir.</p>
                <p>Bu ayarları kaydetmek istediğinizden **Emin misiniz**?</p>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">İptal Et</button>
                <button type="button" class="btn btn-warning text-dark fw-bold" onclick="onaylaVeGonder()">
                    <i class="fas fa-check me-1"></i> Evet, Eminim (Güncelle)
                </button>
            </div>
        </div>
    </div>
</div>

<script>
function onaylaVeGonder() {
    // Hidden input'u forma ekle
    const form = document.getElementById('ayarFormu');
    const input = document.createElement('input');
    input.type = 'hidden';
    input.name = 'onaylandi';
    input.value = '1';
    form.appendChild(input);
    
    // Modalı kapat (isteğe bağlı)
    const modalElement = document.getElementById('onayModal');
    const modalInstance = bootstrap.Modal.getInstance(modalElement);
    modalInstance.hide();
    
    // Formu gönder
    form.submit();
}

// Bootstrap 5 modal'ı kullanabilmek için Footer'daki Bootstrap JS'nin yüklendiğinden emin olun.
</script>

<?php include '../includes/footer.php'; ?>
DATA_PAYLOAD (Açıklama)
Kapak

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

9,605
Sinyal (Ağ Hiti)
1.54 MB
Kapasite

Ağda Paylaş