<?php
// modules/personel-duzenle.php
session_start();
require_once '../config/db.php';
require_once '../config/functions.php';
// Yetki: Root, Yönetici, Muhasebe, İnsan Kaynakları
yetkiKontrol(['root', 'yonetici', 'muhasebe', 'insan_kaynaklari']);
include '../includes/header.php';
include '../includes/menu.php';
$id = (int)$_GET['id'];
$mesaj = '';
// Mevcut veriyi çek
$stmt = $pdo->prepare("SELECT * FROM kullanicilar WHERE id = ?");
$stmt->execute([$id]);
$k = $stmt->fetch();
if (!$k) die("Kullanıcı bulunamadı.");
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
csrfKontrol($_POST['csrf_token']);
// Temel Bilgiler
$ad = guvenlik($_POST['ad']);
$soyad = guvenlik($_POST['soyad']);
$email = guvenlik($_POST['email']);
$kan_grubu = $_POST['kan_grubu'];
$adres = guvenlik($_POST['adres']);
// Yeni Maaş Alanı
$aylik_net_maas = (float)$_POST['aylik_net_maas'];
// Telefonu formatla
$ham_tel = !empty($_POST['telefon']) ? $_POST['telefon'] : '';
$telefon = telefonFormatla($ham_tel);
// --- Gerekli Alanlar ---
$ise_giris_tarihi = $_POST['ise_giris_tarihi'];
// DÜZELTME: SQL'den kaldırılan/olmayan alanlar PHP'de de çıkarıldı.
// bolum_id, unvan ve cinsiyet artık SQL'e dahil edilmeyecek.
$rol = $_POST['rol'];
$sgk_no = !empty($_POST['sgk_no']) ? guvenlik($_POST['sgk_no']) : NULL;
$tc_no = guvenlik($_POST['tc_no']);
$dogum_tarihi = $_POST['dogum_tarihi'];
$medeni_durum = $_POST['medeni_durum'];
$cocuk_sayisi = (int)$_POST['cocuk_sayisi'];
$isten_cikis_tarihi = !empty($_POST['isten_cikis_tarihi']) ? $_POST['isten_cikis_tarihi'] : NULL;
// FOTOĞRAF İŞLEMLERİ (fotograf_yolu kullanıldı)
$foto_yolu = $k['fotograf_yolu'];
// Şifre
$yeni_sifre = !empty($_POST['yeni_sifre']) ? password_hash($_POST['yeni_sifre'], PASSWORD_DEFAULT) : NULL;
if (isset($_FILES['fotograf']) && $_FILES['fotograf']['error'] === UPLOAD_ERR_OK) {
$yukleme_hedefi = yukle($_FILES['fotograf'], 'uploads');
if($yukleme_hedefi) {
if (!empty($k['fotograf_yolu']) && file_exists('../'.$k['fotograf_yolu'])) {
@unlink('../'.$k['fotograf_yolu']);
}
$foto_yolu = $yukleme_hedefi;
} else {
$mesaj = '<div class="alert alert-danger">Fotoğraf yüklenirken bir hata oluştu.</div>';
goto end_of_post_logic;
}
}
try {
// DÜZELTME: SQL Sorgusundan 'bolum_id', 'unvan' ve 'cinsiyet' sütunları KALDIRILDI.
$sql = "UPDATE kullanicilar SET ad = ?, soyad = ?, email = ?, kan_grubu = ?, adres = ?, aylik_net_maas = ?,
ise_giris_tarihi = ?, rol = ?, sgk_no = ?, tc_no = ?, telefon = ?,
dogum_tarihi = ?, medeni_durum = ?, cocuk_sayisi = ?, isten_cikis_tarihi = ?";
$params = [
$ad, $soyad, $email, $kan_grubu, $adres, $aylik_net_maas,
$ise_giris_tarihi, $rol, $sgk_no, $tc_no, $telefon,
$dogum_tarihi, $medeni_durum, $cocuk_sayisi, $isten_cikis_tarihi
];
// Şifre Güncellemesi
if (!empty($yeni_sifre)) {
$sql .= ", sifre_hash = ?";
$params[] = $yeni_sifre;
}
// Fotoğraf Güncellemesi
if ($foto_yolu !== $k['fotograf_yolu']) {
$sql .= ", fotograf_yolu = ?";
$params[] = $foto_yolu;
}
$sql .= " WHERE id = ?";
$params[] = $id;
$stmt_up = $pdo->prepare($sql);
$stmt_up->execute($params);
// LOG KAYDI
logKaydet($pdo, $_SESSION['kullanici_id'], 'guncelleme', "Personel {$k['ad']} {$k['soyad']} bilgileri güncellendi.", 'kullanicilar', $id);
$mesaj = '<div class="alert alert-success">Personel bilgileri başarıyla güncellendi.</div>';
// Güncel veriyi tekrar çek
$stmt->execute([$id]);
$k = $stmt->fetch();
} catch (PDOException $e) {
$mesaj = '<div class="alert alert-danger">Veritabanı Hatası: ' . $e->getMessage() . '</div>';
}
end_of_post_logic:
}
?>
<div class="container-fluid">
<div class="row justify-content-center">
<div class="col-md-10">
<div class="card-box p-4">
<h4 class="mb-3 border-bottom pb-2"><i class="fas fa-user-edit text-primary me-2"></i> Personel Düzenle: <?php echo htmlspecialchars($k['ad'].' '.$k['soyad']); ?></h4>
<?php echo $mesaj; ?>
<form method="POST" enctype="multipart/form-data" novalidate>
<input type="hidden" name="csrf_token" value="<?php echo csrfTokenOlustur(); ?>">
<h5 class="mt-4 mb-3 text-primary"><i class="fas fa-lock me-2"></i> Giriş Bilgileri</h5>
<div class="row mb-3">
<div class="col-md-4">
<label class="form-label small">Kullanıcı Adı (Giriş İçin) <span class="text-danger">*</span></label>
<input type="text" class="form-control" value="<?php echo htmlspecialchars($k['kullanici_adi']); ?>" disabled title="Kullanıcı adı değiştirilemez.">
</div>
<div class="col-md-4">
<label class="form-label small">Şifre (Değiştirmek için) <span class="text-danger">*</span></label>
<input type="text" name="yeni_sifre" class="form-control" placeholder="Yeni şifreyi giriniz.">
<small class="text-muted">Boş bırakılırsa şifre değişmez.</small>
</div>
<div class="col-md-4">
<label class="form-label small">Sistem Rolü <span class="text-danger">*</span></label>
<select name="rol" class="form-select" required>
<?php
$roller = ['calisan' => 'Çalışan', 'stajyer' => 'Stajyer', 'vardiya_amiri' => 'Vardiya Amiri', 'yonetici' => 'Yönetici', 'mudur' => 'Müdür', 'muhasebe' => 'Muhasebe', 'insan_kaynaklari' => 'İnsan Kaynakları', 'root' => 'Sistem Yöneticisi'];
foreach($roller as $val => $text):
?>
<option value="<?php echo $val; ?>" <?php echo $k['rol'] == $val ? 'selected' : ''; ?>><?php echo $text; ?></option>
<?php endforeach; ?>
</select>
</div>
</div>
<hr>
<h5 class="mt-4 mb-3 text-primary"><i class="fas fa-user me-2"></i> Kişisel & Kimlik Bilgileri</h5>
<div class="row mb-3">
<div class="col-md-4">
<label class="form-label small">Ad <span class="text-danger">*</span></label>
<input type="text" name="ad" class="form-control" value="<?php echo htmlspecialchars($k['ad']); ?>" required>
</div>
<div class="col-md-4">
<label class="form-label small">Soyad <span class="text-danger">*</span></label>
<input type="text" name="soyad" class="form-control" value="<?php echo htmlspecialchars($k['soyad']); ?>" required>
</div>
<div class="col-md-4">
<label class="form-label small">TC Kimlik No <span class="text-danger">*</span></label>
<input type="text" name="tc_no" class="form-control" value="<?php echo htmlspecialchars($k['tc_no']); ?>" required maxlength="11" pattern="\d{11}" title="11 haneli TC kimlik numarası">
</div>
</div>
<div class="row mb-3">
<div class="col-md-4">
<label class="form-label small">SGK Sicil No</label>
<input type="text" name="sgk_no" class="form-control" value="<?php echo htmlspecialchars($k['sgk_no']); ?>">
</div>
<div class="col-md-4">
<label class="form-label small">Doğum Tarihi <span class="text-danger">*</span></label>
<input type="date" name="dogum_tarihi" class="form-control" value="<?php echo $k['dogum_tarihi']; ?>" required>
</div>
<div class="col-md-4">
<label class="form-label small">Kan Grubu</label>
<select name="kan_grubu" class="form-select">
<option value="">Seçiniz</option>
<?php
$kan_gruplari = ['0 Rh+', '0 Rh-', 'A Rh+', 'A Rh-', 'B Rh+', 'B Rh-', 'AB Rh+', 'AB Rh-'];
foreach($kan_gruplari as $grup):
?>
<option value="<?php echo $grup; ?>" <?php echo $k['kan_grubu'] == $grup ? 'selected' : ''; ?>>
<?php echo $grup; ?>
</option>
<?php endforeach; ?>
</select>
</div>
</div>
<div class="row mb-3">
<div class="col-md-4">
<label class="form-label small">Telefon</label>
<input type="tel" name="telefon" class="form-control" value="<?php echo htmlspecialchars($k['telefon']); ?>">
</div>
<div class="col-md-4">
<label class="form-label small">E-Posta Adresi</label>
<input type="email" name="email" class="form-control" value="<?php echo htmlspecialchars($k['email']); ?>">
</div>
<div class="col-md-4">
<label class="form-label small">Adres</label>
<input type="text" name="adres" class="form-control" value="<?php echo htmlspecialchars($k['adres']); ?>">
</div>
</div>
<hr>
<h5 class="mt-4 mb-3 text-primary"><i class="fas fa-dollar-sign me-2"></i> Finansal & Aile Bilgileri</h5>
<div class="row mb-3">
<div class="col-md-4">
<label class="form-label small">Aylık Net Maaş (₺) <span class="text-danger">*</span></label>
<input type="number" step="0.01" name="aylik_net_maas" class="form-control" value="<?php echo $k['aylik_net_maas']; ?>" required>
</div>
<div class="col-md-4">
<label class="form-label small">Medeni Hali</label>
<select name="medeni_durum" class="form-select">
<option value="">Seçiniz</option>
<option value="Bekar" <?php echo $k['medeni_durum'] == 'Bekar' ? 'selected' : ''; ?>>Bekar</option>
<option value="Evli" <?php echo $k['medeni_durum'] == 'Evli' ? 'selected' : ''; ?>>Evli</option>
<option value="Dul" <?php echo $k['medeni_durum'] == 'Dul' ? 'selected' : ''; ?>>Dul</option>
<option value="Boşanmış" <?php echo $k['medeni_durum'] == 'Boşanmış' ? 'selected' : ''; ?>>Boşanmış</option>
</select>
</div>
<div class="col-md-4">
<label class="form-label small">Çocuk Sayısı</label>
<input type="number" name="cocuk_sayisi" class="form-control" min="0" value="<?php echo (int)$k['cocuk_sayisi']; ?>">
</div>
</div>
<h5 class="mt-4 mb-3 text-primary"><i class="fas fa-calendar-alt me-2"></i> Giriş/Çıkış Tarihleri</h5>
<div class="row mb-3">
<div class="col-md-4">
<label class="form-label small">İşe Giriş Tarihi <span class="text-danger">*</span></label>
<input type="date" name="ise_giris_tarihi" class="form-control" value="<?php echo $k['ise_giris_tarihi']; ?>" required>
</div>
<div class="col-md-4">
<label class="form-label fw-bold text-danger"><i class="fas fa-calendar-times me-1"></i> İşten Çıkış Tarihi</label>
<input type="date" name="isten_cikis_tarihi" class="form-control" value="<?php echo $k['isten_cikis_tarihi']; ?>">
<div class="form-text small">Personel ayrıldıysa giriniz. Boşsa çalışıyor demektir.</div>
</div>
</div>
<hr class="my-4">
<h5 class="mt-4 mb-3 text-primary"><i class="fas fa-image me-2"></i> Fotoğraf</h5>
<div class="row mb-3">
<?php if (!empty($k['fotograf_yolu'])): ?>
<div class="col-md-4 mb-3">
<label class="form-label small">Mevcut Fotoğraf</label>
<div class="border p-2 rounded text-center bg-light">
<img src="../<?php echo $k['fotograf_yolu']; ?>" alt="Mevcut Fotoğraf" class="img-fluid rounded" style="max-height: 150px;">
</div>
</div>
<?php endif; ?>
<div class="col-md-8">
<label class="form-label small">Profil Fotoğrafı (Yeni Yükleme)</label>
<input type="file" name="fotograf" class="form-control">
<div class="form-text small">Maksimum 2MB, JPG/PNG. Değiştirmek istemiyorsanız boş bırakın.</div>
</div>
</div>
<div class="d-grid gap-2 mt-4">
<button type="submit" class="btn btn-primary btn-lg"><i class="fas fa-save me-2"></i> Değişiklikleri Kaydet</button>
<a href="personel-yonetimi.php" class="btn btn-secondary">İptal / Geri Dön</a>
</div>
</form>
</div>
</div>
</div>
</div>
<?php include '../includes/footer.php'; ?>