İçeriğe atla
PERPLUS WEB PDKS Giriş

Hesap motoru

Fark ayrıntıda ortaya çıkar

Her PDKS yazılımı normal bir ayı doğru hesaplar. Ayrım, ikinci yılda karşınıza çıkan vakalarda başlar: Şubat ayı, yılbaşına denk gelen gece vardiyası, 52 yaşındaki personelin izin hakkı, ayın ortasında işe giren biri.

Aşağıdakiler uydurma örnekler değil — her biri motorda bulunup düzeltilmiş gerçek vakalardır. Bugün doğru hesaplanıyor.

Şubat ayı ve 31 çeken aylar

Türkiye'de bordro geleneği (SGK) her ayı 30 gün sayar. Ama 30 tabanı düşünmeden uygulanırsa tam ay çalışan personelde bozulur.

Düşünmeden 30'a bölmek

Tam ay çalışan personel, ayın kaç gün çektiğine göre eksik ya da fazla ücret alır.

Temmuz (31 gün): 31 / 30 = 1,033 → maaşın %103'ü
Şubat (28 gün): 28 / 30 = 0,933 → maaşın %93'ü

Perplus

Ücret kayıtları ayın tamamını kapsıyorsa oran 1,0'a normalize edilir. Tam ay çalışan her ayda tam maaşını alır.

Tam ay → 1,000 · her ay aynı
Ay ortasında giren → 16 / 30 (SGK oranı korunur)

Yılbaşına denk gelen gece vardiyası

Gece vardiyası, başladığı takvim gününe yazılır. 31 Aralık 22:00 – 1 Ocak 06:00 vardiyası “31 Aralık”ın satırıdır — peki 1 Ocak tam gün tatilse?

Yalnızca başlangıç gününe bakmak

31 Aralık tatil olmadığı için vardiyanın tamamı normal mesai sayılır. 1 Ocak'a taşan 6 saate tatil çarpanı hiç uygulanmaz.

01:00–06:00 arası → normal mesai
Her yılbaşı ve bayram geçişinde tekrarlanır

Perplus

Ertesi günün tatil penceresine düşen mola-net kısım ayrılıp tatil mesaisine yazılır. Aynı dakika iki kez sayılmaz.

00:00–06:00 arası → tatil mesaisi
Arife (yarım gün) için simetrik kural işler

Tolerans ödünç alınamaz

Geç giriş ve erken çıkış için ayrı toleranslar tanımlarsınız. Bunlar toplanıp tek havuz gibi kullanılırsa kural delinir.

Toleransları toplamak

Tam zamanında gelip çok erken çıkan personel, hiç kullanmadığı geç-giriş payından ödünç alarak kesintiden kaçar.

Geç giriş 15 dk + erken çıkış 15 dk = 30 dk havuz
25 dk erken çıkış → kesinti yok

Perplus

Açığın kaynağı ayrıştırılır; her biri kendi toleransına karşı sınanır. Vardiya saati bilinmiyorsa eski davranışa düşülür, geriye uyum bozulmaz.

Geç giriş 0 dk → sınır 15 dk, sorun yok
Erken çıkış 25 dk → sınır 15 dk → 10 dk kesinti

İş Kanunu md. 53'ün son fıkrası

Yıllık izin kıdeme göre 14 / 20 / 26 gündür. Ama aynı maddenin son fıkrası, hizmet süresinden bağımsız bir yaş alt sınırı koyar.

Yalnızca kıdeme bakmak

52 yaşında, 3 yıllık bir personele 14 gün yazılır. 18 yaşındaki çalışan da eksik hak eder. Doğrudan yasal uyumsuzluk.

52 yaş · 3 yıl kıdem → 14 gün

Perplus

“Onsekiz ve daha küçük yaştaki işçilerle elli ve daha yukarı yaştaki işçilere verilecek yıllık ücretli izin süresi yirmi günden az olamaz.”

52 yaş · 3 yıl kıdem → 20 gün
18 yaş · 1 yıl kıdem → 20 gün

Eksik bordro muhasebeye gitmez

Bir personelin çalışma grubu tanımsızsa, ücret kaydı yoksa ya da o aya ait günlük puantaj hiç çalıştırılmamışsa ne olmalı?

Sessizce atlamak

Personel bordroda 0 TL taban maaşla, yalnızca mesai ücretleriyle çıkar. Hiçbir yerde uyarı görünmez; hata ay sonunda değil, şikâyet geldiğinde fark edilir.

Ücret kaydı yok → taban 0,00 ₺
Devamsızlık kesintisi de hiç yapılmaz

Perplus

Ya hep ya hiç. Hesaplama durur, kimde ve neden durduğu adıyla söylenir. Eksik bir bordro üretilip muhasebeye aktarılmaz.

Tahakkuk iptal · “Ahmet Çelik: ücret kaydı yok”
Eksik günler varsa hangileri olduğu yazılır

Komşu günün damgası iki kez sayılmaz

Vardiyalı grupta gün penceresi 24 saatlik olduğu için komşu günün vardiyasına ait damgaları da kapsar. Vardiya tespit edilemeyen bir günde ne olur?

Pencereye düşen her damgayı toplamak

Aynı damga iki güne birden yazılır. Personelin gelmediği gün “Eksik Geçiş” damgası alır, çalıştığı gün ise şişer.

Boş gün → eksik geçiş (oysa hiç gelmemiş)

Perplus

Vardiya tespit edilemeyen günde damga toplanmaz. Gerçek devamsızlık, devamsızlık olarak kalır.

Boş gün → devamsız · damga komşu güne ait

Bir firmanın verisi başka firmada görünemez

Aynı sistemde birden çok firma barınır. İzolasyon her sorguya elle filtre yazmaya bırakılırsa, bir gün biri unutulur.

Her sorguda elle filtre

Yüzlerce sorgunun her birinde firma filtresi yazılmalıdır. Biri atlandığında hata alınmaz — sorgu sessizce başka firmanın verisini de döndürür.

Unutulan tek satır → veri sızıntısı

Perplus

İzolasyon veritabanı katmanında kurulur: firma kimliği taşıyan her kayıt türü otomatik filtreye tabidir. Filtre yazmayı unutmak mümkün değildir, çünkü filtre sorguya sonradan eklenmez — baştan oradadır.

Yabancı anahtarlar da ayrıca doğrulanır
(doğru firma + yanlış personel bağı da engellenir)

Denetim izinde “Sistem” yazmaz, adı yazar

Bordro bir ücret belgesidir; bir kaydı kimin değiştirdiği izlenebilir olmalı. Ama kullanıcı adını yanlış yerden okumak izi sessizce boşaltır.

Kullanıcıyı isteğin bağlamından okumak

Bu uygulamada kimlik, klasik oturum çerezi yerine tarayıcı depolamasıyla yürür. Kullanıcı adı istek bağlamından okunursa her satır “Sistem” yazar ve denetim izi hiçbir işe yaramaz.

Ölçüldü: 745 “Sistem” / 7 gerçek kullanıcı

Perplus

Kullanıcı adı, firma kimliğiyle aynı yoldan taşınır. Bilinçli olarak aynı nesnede: ayrı olsaydı biri taşınıp diğeri unutulabilirdi.

Arka plan işleri “Sistem” yazar — doğrusu bu
Elle eklenen geçiş ayrıca işaretlenir

Denkleştirme

Fazla mesai devamsızlığı kapatırken
hangi saat önce erir?

Bir personel bu hafta 6 saat fazla mesai yapmış, 4 saat de devamsızlık üretmişse denkleştirme devreye girer. Ama fazla mesai saatlerinin hepsi aynı değerde değildir — gece ve tatil mesaisi daha pahalıdır. Hangisinden düşüleceği bordroyu değiştirir.

Standart

Fazla mesai ile devamsızlık, ayrım gözetmeden karşılıklı denkleştirilir.

İşveren dostu

Önce pahalı saatten düşülür — tatil ve gece mesaisi önce erir, işverenin maliyeti azalır.

Çalışan dostu

Önce ucuz saatten düşülür — pahalı mesai personelde kalır, eline geçen tutar korunur.

Seçim çalışma grubu ayarındadır ve firmanızın politikasıdır. Çoğu yazılımda böyle bir ayar yoktur; hangi saatin eridiğini bilmezsiniz.

Güvenlik

Şifreler ve giriş denemeleri

Bordro ve kişisel veri tutan bir sistemde en zayıf halka giriş ekranıdır. İki somut önlem:

PBKDF2-HMAC-SHA256 · 600.000 iterasyon

Şifreler geri döndürülemez biçimde saklanır; iterasyon sayısı OWASP'ın 2023 ve sonrası tavsiyesindedir. Doğrulama sabit zamanlı karşılaştırmayla yapılır.

Kademeli kilit: 1 → 5 → 15 dakika

Art arda hatalı denemede hesap kısa süreli kilitlenir. Kalıcı kilit bilerek yoktur: kötü niyetli biri yanlış şifre girerek meşru kullanıcıyı gün boyu dışarıda bırakamasın diye.

Kendi vakanızı sorun

İşletmenizde hesabı tartışmalı hâle getiren bir durum varsa anlatın — motorun onu nasıl ele aldığını gösterelim.