Ana içeriğe geç

İzin Talepleri

İzin talepleri, izin yönetimi iş akışının merkezini oluşturur. Çalışanlar izin talepleri gönderir ve bu talepler bir onay sürecinden geçer. Sistem, gönderimden onay veya redde kadar tüm yaşam döngüsünü takip eder ve her adımda otomatik bakiye güncellemeleri yapar.


İzin Talebi Gönderme

Çalışan Olarak (Portal)

  1. Kenar çubuğundan İzin Talepleri'ne gidin.
  2. Oluştur'a tıklayın.
  3. İzin Türü'nü seçin.
  4. Başlangıç Tarihi ve Bitiş Tarihi'ni girin.
  5. Gün sayısını girin (yarım gün desteklenir, örn. 0.5, 1.5).
  6. İsteğe bağlı olarak bir Neden ekleyin.
  7. Kaydet'e tıklayın.

Çalışan alanı otomatik olarak oturum açmış çalışana ayarlanır — formda görünmez.

Yönetici Olarak

Yöneticiler aynı formu görür, ancak talebin hangi çalışan için olduğunu seçmek üzere ek bir Çalışan alanı bulunur. Ayrıca Yönetici Notları alanını da doldurabilirler (çalışanlardan gizlidir).

Çalışan Detay Görünümünden

Yöneticiler, bir çalışanın detay sayfasından İzin Talebi Oluştur eylemini kullanarak doğrudan izin talebi oluşturabilir. Çalışan önceden doldurulmuştur ve kolaylık için ek bir Yarım Gün düğmesi mevcuttur.


Doğrulama Kuralları

Sistem, bir izin talebi gönderilirken veya düzenlenirken çeşitli doğrulama kuralları uygular:

Gün Doğrulama

Gün sayısı tarih aralığıyla eşleşmelidir:

  • Tam günler: Günler end_date - start_date + 1'e eşit olmalıdır
  • Yarım günler: Günler (end_date - start_date + 1) * 0.5'e eşit olmalıdır

Diğer herhangi bir değer hata mesajıyla reddedilir.

Çakışma Tespiti

Sistem, aynı çalışan için çakışan izin taleplerini kontrol eder. Tarih aralığı mevcut herhangi bir onaylanmış veya bekleyen taleple çakışırsa talep engellenir.

İki tarih aralığı şu durumda çakışır: start_date_1 <= end_date_2 AND start_date_2 <= end_date_1

Mevcut bir talebi düzenlerken, çakışma kontrolü geçerli kaydı hariç tutar.


Talep Durumları

DurumRozetAçıklama
BeklemedeSarıOnay bekliyor. Bakiye pending_days içinde ayrılmıştır.
OnaylandıYeşilYönetici tarafından onaylandı. Günler pending_days'den used_days'e taşındı.
ReddedildiKırmızıYönetici tarafından reddedildi. Günler pending_days'den kaldırıldı.
İptal EdildiGriÇalışan veya yönetici tarafından iptal edildi. Günler geri yüklendi.

Onay İş Akışı

Standart Akış

Çalışan talebi gönderir
|
Durum: Beklemede
(pending_days arttı)
|
Yönetici talebi inceler
|
+--- Onayla ---> Durum: Onaylandı
| (pending_days -> used_days)
| Çalışan bilgilendirildi
|
+--- Reddet ---> Durum: Reddedildi
| (pending_days kaldırıldı)
| Red nedeni kaydedildi
| Çalışan bilgilendirildi
|
+--- (Çalışan) İptal --> Durum: İptal Edildi
(pending_days kaldırıldı)

Otomatik Onay Akışı

Otomatik onay için yapılandırılmış izin türleri için (Ayarlar > İzin Yönetimi'nde):

Çalışan talebi gönderir
|
Gözlemci otomatik onay yapılandırmasını algılar
|
Durum: Hemen Onaylandı
(used_days arttı)
Yöneticiye bildirim gönderilmedi

Onay İş Akışı Ayarları

İş akışını yapılandırmak için Ayarlar > İKY Yapılandırması > İzin Yönetimi'ne gidin:

AyarSeçeneklerVarsayılan
Onay İş AkışıTek Seviye / Çok Seviye / Otomatik OnayTek Seviye
Otomatik Onaylanan İzin TürleriBelirli izin türlerini seçinYok

Bir İzin Talebini Onaylama

approve leave requests izni gerektirir.

  1. İzin Talepleri'ne gidin veya bekleyen talepler pano kartından açın.
  2. Bir veya daha fazla bekleyen talebi seçin.
  3. Onayla eylemini tıklayın.
  4. İsteğe bağlı olarak Yönetici Notları ekleyin.
  5. Onaylayın.

Ne olur:

  • Durum Onaylandı olarak değişir
  • approved_by mevcut kullanıcıya ayarlanır
  • approved_at mevcut zaman damgasına ayarlanır
  • İzin bakiyesi: pending_days azalır, used_days artar
  • Çalışan bildirim alır

Bir İzin Talebini Reddetme

approve leave requests izni gerektirir.

  1. Bir veya daha fazla bekleyen talebi seçin.
  2. Reddet eylemini tıklayın.
  3. Bir Red Nedeni girin (zorunlu).
  4. İsteğe bağlı olarak Yönetici Notları ekleyin.
  5. Onaylayın.

Ne olur:

  • Durum Reddedildi olarak değişir
  • rejection_reason kaydedilir ve çalışana görünür
  • İzin bakiyesi: pending_days azalır
  • Çalışan bildirim alır

Bir İzin Talebini İptal Etme

cancel leave requests izni gerektirir. Hem çalışanlar hem de yöneticiler talepleri iptal edebilir.

  1. Bekleyen veya onaylanmış bir talebi seçin.
  2. İptal Et eylemini tıklayın.
  3. Onaylayın.

Ne olur:

  • Durum İptal Edildi olarak değişir
  • Talep beklemede ise: pending_days azalır
  • Talep onaylanmış ise: used_days azalır (günler iade edilir)
bilgi

Yalnızca bekleyen ve onaylanmış talepler iptal edilebilir. Reddedilmiş ve zaten iptal edilmiş talepler iptal edilemez.


Tablo Görünümleri

İzin talepleri listesi dört önceden yapılandırılmış görünüm içerir:

GörünümFiltre
Tüm İzin TalepleriFiltre yok
Bekleyen TaleplerDurum = Beklemede
Onaylanan TaleplerDurum = Onaylandı
Reddedilen TaleplerDurum = Reddedildi

Mevcut Filtreler

  • Durum — Beklemede, Onaylandı, Reddedildi, İptal Edildi
  • Başlangıç Tarihi — tarih aralığı
  • Bitiş Tarihi — tarih aralığı
  • Günler — sayısal aralık

Bildirimler

Sistem, izin talebi yaşam döngüsünün önemli noktalarında e-posta bildirimleri gönderir:

Bir Talep Gönderildiğinde

approve leave requests iznine sahip tüm kullanıcılara bildirim gönderilir. E-posta şunları içerir:

  • Çalışan adı ve e-postası
  • İzin türü, başlangıç/bitiş tarihleri, toplam gün
  • Neden (sağlanmışsa)
  • Talebi görüntüleme bağlantısı

Talep Durumu Değiştiğinde

Çalışan, talebi onaylandığında, reddedildiğinde veya iptal edildiğinde bildirim alır. E-posta şunları içerir:

  • İzin türü, tarihler ve toplam gün
  • Yeni durum
  • Red nedeni (reddedildiyse)
  • Onaylayan kişinin adı
  • Talebi görüntüleme bağlantısı

E-posta şablonları Ayarlar > E-posta Hesapları > Şablonlar'dan özelleştirilebilir.


Pano Kartları

İzin yönetimi sistemi üç pano kartı sağlar:

KartTürAçıklama
Duruma Göre İzin TalepleriPasta grafikTaleplerin durumlara göre dağılımı
Türe Göre İzin TalepleriÇubuk grafikİzin türüne göre gruplandırılmış talep sayısı
Bekleyen İzin TalepleriTabloİşlem gerektiren en son 15 bekleyen talep

Onay ve Red İş Akışı

İzin onay iş akışı, izin taleplerinin gönderimden çözüme nasıl ilerlediğini kontrol eder. İKY modülü, ayarlar sayfasından yapılandırılabilen üç iş akışı modunu destekler.


İş Akışı Modları

Ayarlar > İKY Yapılandırması > İzin Yönetimi'nde iş akışı modunu yapılandırın.

Tek Seviye (Varsayılan)

En basit iş akışı. Yetkili bir kullanıcı talebi inceleyip onaylar veya reddeder.

Çalışan -> Gönder -> Yönetici/İK Onaylar veya Reddeder -> Tamamlandı

approve leave requests iznine sahip herhangi bir kullanıcı talepleri onaylayabilir veya reddedebilir.

Çok Seviyeli

Talepler birden fazla onay aşamasından geçer. Hem doğrudan yönetici hem de İK onayı gerektiren kuruluşlar için uygundur.

Çalışan -> Gönder -> Yönetici Onaylar -> İK Onaylar -> Tamamlandı

Otomatik Onay

Tüm izin talepleri gönderimde otomatik olarak onaylanır. İnsan incelemesi gerekmez.

Çalışan -> Gönder -> Otomatik Onaylandı -> Tamamlandı

ipucu

İş akışı modlarını Otomatik Onaylanan İzin Türleri ayarıyla birleştirerek belirli türleri (örn. Evden Çalışma) otomatik onaylayabilir, diğerleri (örn. Yıllık İzin) için onay gerektirebilirsiniz.


Belirli İzin Türleri için Otomatik Onay

Tüm talepleri otomatik onaylamak yerine, onayı atlayan belirli izin türlerini seçebilirsiniz:

  1. Ayarlar > İKY Yapılandırması > İzin Yönetimi'ne gidin.
  2. Otomatik Onaylanan İzin Türleri'nde türleri seçin (örn. Evden Çalışma, Telafi İzni).
  3. Kaydedin.

Bir çalışan otomatik onaylanan izin türü için talep gönderdiğinde:

  • Durum hemen Onaylandı olarak ayarlanır.
  • İzin bakiyesi güncellenir (used_days doğrudan artar, pending_days adımı yoktur).
  • Yöneticilere bildirim gönderilmez.
  • Çalışan onay bildirimi almaz (anlık olduğu için).

Otomatik onaylanmayan izin türleri için talepler, bu ayardan bağımsız olarak standart onay iş akışını takip eder.


Eyleme Göre Bakiye Güncellemeleri

EylemBekleyen GünlerKullanılan GünlerMevcut Günler
Talep gönder+günazalır
Talebi onayla-gün+gündeğişmez
Talebi reddet-günartar
İptal (beklemedeydi)-günartar
İptal (onaylanmıştı)-günartar

Kim Onaylayabilir

Onay eylemleri approve leave requests izniyle kontrol edilir. Bu iznin bir role açıkça verilmesi gerekir — varsayılan Çalışan rolünde yer almaz.

Bu izne sahip olması gereken tipik roller:

  • İK Yöneticisi
  • Departman Başkanı
  • Takım Lideri
  • Herhangi bir yönetici rolü

Süper yöneticiler talepleri her zaman onaylayabilir (Gate::before ile atlanır).


Red Nedenleri

Bir izin talebini reddederken Red Nedeni zorunludur. Bu neden:

  • İzin talebi kaydında saklanır
  • Çalışanın izin talebi detay görünümünde çalışana görünür
  • Durum değişikliği bildirim e-postasına dahil edilir

Yöneticiler ayrıca onay veya red sırasında Yönetici Notları ekleyebilir. Yönetici notları yalnızca diğer yöneticilere görünür, asla çalışana gösterilmez.


İzin Talebini İptal Etme

Çalışanlar ve yöneticiler, Beklemede veya Onaylandı durumundaki izin taleplerini iptal edebilir. İptal, tüketilen veya ayrılan izin günlerini çalışanın bakiyesine geri yükler.


Kim İptal Edebilir

İptal, cancel leave requests iznini gerektirir. Varsayılan olarak çalışanlar bu izne sahiptir ve kendi taleplerini iptal edebilir.

KullanıcıKendininkileri İptal EdebilirBaşkalarınınkileri İptal Edebilir
ÇalışanEvet (izinle)Hayır (veri kapsamı başkalarını görmeyi engeller)
YöneticiEvetEvet (izni varsa)
Süper YöneticiEvetEvet (tüm kontrolleri atlar)

Nasıl İptal Edilir

  1. İzin Talepleri'ne gidin.
  2. İptal edilecek talebi bulun (Beklemede veya Onaylandı durumunda olmalıdır).
  3. İzni İptal Et eylemini tıklayın (eylemler sütununda satır içi gösterilir).
  4. İptali onaylayın.

İptal Edildiğinde Ne Olur

Bekleyen Talebin İptali

Önce: pending_days = 5, used_days = 10, available_days = 3 2 günlük bekleyen talebi iptal et Sonra: pending_days = 3, used_days = 10, available_days = 5

  • pending_days talebin gün sayısı kadar azalır
  • available_days buna göre artar
  • Talep durumu İptal Edildi olarak değişir

Onaylanmış Talebin İptali

Önce: pending_days = 3, used_days = 12, available_days = 3 2 günlük onaylanmış talebi iptal et Sonra: pending_days = 3, used_days = 10, available_days = 5

  • used_days talebin gün sayısı kadar azalır
  • available_days buna göre artar
  • Talep durumu İptal Edildi olarak değişir

Kısıtlamalar

  • Reddedilen talepler iptal edilemez (zaten çözülmüştür).
  • Zaten iptal edilmiş talepler tekrar iptal edilemez.
  • İptal eylem düğmesi yalnızca Beklemede veya Onaylandı durumundaki talepler için görünür.

Çakışma Doğrulaması

İKY modülü, çalışanların mevcut onaylanmış veya bekleyen talepleriyle çakışan izin talepleri göndermesini engeller. Bu, doğru izin takibi sağlar ve izin çifte rezervasyonunu önler.


Nasıl Çalışır

Bir izin talebi oluşturulduğunda veya güncellendiğinde, sistem çakışan tarih aralıklarını kontrol eder:

  1. Aynı çalışan için tüm izin taleplerini sorgular.
  2. Yalnızca onaylanmış ve bekleyen talepleri filtreler (reddedilenler ve iptal edilenler göz ardı edilir).
  3. Düzenleme sırasında mevcut talebi kontrolden hariç tutar.
  4. Şu formülle çakışmayı test eder: existing_start <= new_end AND new_start <= existing_end.

Çakışma bulunursa, talep doğrulama hatasıyla reddedilir.


Örnekler

Engellendi (Çakışma)

Mevcut TalepYeni TalepSonuç
10-12 Oca (Onaylandı)11-14 OcaEngellendi — 11-12 Oca'da çakışma
15-15 Oca (Beklemede)15-15 OcaEngellendi — tam olarak aynı tarih
1-31 Oca (Onaylandı)10-10 OcaEngellendi — mevcut aralık içinde yer alıyor

İzin Verildi (Çakışma Yok)

Mevcut TalepYeni TalepSonuç
10-12 Oca (Onaylandı)13-15 Ocaİzin verildi — bitişik ama çakışma yok
10-12 Oca (Reddedildi)10-12 Ocaİzin verildi — reddedilen talepler göz ardı edilir
10-12 Oca (İptal Edildi)10-12 Ocaİzin verildi — iptal edilen talepler göz ardı edilir

Türler Arası Çakışma

Çakışma doğrulaması tüm izin türleri genelinde uygulanır. Bir çalışanın çakışan Yıllık İzin ve Hastalık İzni talepleri olamaz — izin türünden bağımsız olarak tarihler çakışmamalıdır.


İzin Devri

İzin devri, bir mali yıldan kullanılmayan izin günlerinin bir sonraki yıla devredilmesine olanak tanır. Bu özellik hem genel düzeyde (ayarlar) hem de bireysel izin türü düzeyinde yapılandırılabilir.


Devir Nasıl Çalışır

Her mali yıl sonunda sistem tüm çalışanlar için devri işler:

  1. Biten yıldan her çalışanın izin bakiyesi için:
    • İzin türünde Devir'in etkin olup olmadığını kontrol eder.
    • Kullanılmayan günleri hesaplar: total_days - used_days - pending_days.
    • Devir üst sınırını uygular (izin türünün Maks. Devir Günleri ve genel Maks. Devir Günleri ayarının küçük olanı).
    • Bir sonraki yılın izin bakiyesini Devredilen Günler ile oluşturur veya günceller.
  2. Devredilen günlerin Devir Sona Erme ayarına dayalı bir son kullanma tarihi vardır.

Yapılandırma

Genel Ayarlar

Ayarlar > İKY Yapılandırması > İzin Yönetimi'ne gidin:

AyarVarsayılanAçıklama
Devir EtkinEvetDevir özelliği için ana anahtar
Maks. Devir Günleri10Tüm izin türleri için devredilen günlerin genel üst sınırı
Devir Sona Erme (ay)3Devredilen günler yeni mali yılın bu kadar ay sonrasında sona erer

İzin Türü Başına Ayarlar

Her izin türünün kendi devir yapılandırması vardır:

AlanAçıklama
DevirBu belirli izin türü için devri etkinleştir/devre dışı bırak
Maks. Devir GünleriBu tür için devredilebilecek maksimum gün sayısı

Etkin devir üst sınırı, izin türü sınırı ve genel sınırın küçük olanıdır.

Örnek: İzin türü 10 gün devire izin veriyor, ancak genel maksimum 5. Yalnızca 5 gün devredilir.


Devir İşleme

Devir, mali yıl başlangıç ayının ilk gününde çalışan zamanlanmış bir komutla otomatik olarak işlenir:

php artisan hrm:process-leave-carryover

Devir Sona Ermesi

Devredilen günler kalıcı değildir — yapılandırılabilir bir süre sonunda sona erer. Sona erdikten sonra mevcut bakiyede artık sayılmaz.