Kısa Çalışma Ödeneği Hesaplama Aracı
Bilgi: Kısa çalışma kapsamında son 12 aylık prime esas kazançlarınızdan, günlük ortalama brüt ücretinizin %60'ını hesaplayıp, aylık asgari ücretin brüt tutarının %150'si tavanını uyguluyoruz.
Kısa Çalışma Ödeneği Hesaplama
Kısa çalışma kapsamında son 12 aylık prime esas kazançlarınızdan, günlük ortalama brüt ücretinizin %60’ını hesaplayıp, aylık asgari ücretin brüt tutarının %150’si tavanını uyguluyoruz.
// 12 aylık giriş satırlarını oluşturuyoruz:
for (let i = 1; i <= 12; i++) {
const row = document.createElement("div");
row.className = "monthly-row";
// Ay etiketi; label metni JavaScript ile güncellenecek.
const label = document.createElement("label");
label.id = "monthLabel" + i;
label.textContent = "Ay " + i; // Daha sonra güncellenecek
row.appendChild(label);
// Brüt Ücret girişi
const wageInput = document.createElement("input");
wageInput.type = "number";
wageInput.step = "0.01";
wageInput.placeholder = "Brüt Ücret (TL)";
wageInput.id = "wage" + i;
wageInput.name = "wage" + i;
wageInput.addEventListener("input", function() {
autoCopyWage(i);
});
row.appendChild(wageInput);
// Gün Sayısı girişi
const daysInput = document.createElement("input");
daysInput.type = "number";
daysInput.step = "1";
daysInput.placeholder = "Gün Sayısı";
daysInput.value = 30;
daysInput.id = "days" + i;
daysInput.name = "days" + i;
row.appendChild(daysInput);
monthlyInputsContainer.appendChild(row);
}
// Dönem seçimine göre her ayın etiketini güncelleyen fonksiyon:
function updateMonthLabels() {
const startMonth = parseInt(startMonthSelect.value); // 1-12
const startYear = parseInt(startYearSelect.value);
// Orijinal kodda olduğu gibi: seçilen tarihten 13 ay geri alıp, ardından her seferinde 1 ay ekleyerek 12 ayı belirliyoruz.
let baseDate = new Date(startYear, startMonth - 1, 1);
baseDate.setMonth(baseDate.getMonth() - 13);
for (let i = 1; i <= 12; i++) {
baseDate.setMonth(baseDate.getMonth() + 1);
const label = document.getElementById("monthLabel" + i);
label.textContent = monthNames[baseDate.getMonth()] + " " + baseDate.getFullYear() + ":";
}
}
startMonthSelect.addEventListener("change", updateMonthLabels);
startYearSelect.addEventListener("change", updateMonthLabels);
updateMonthLabels(); // Sayfa yüklendiğinde etiketleri ayarla
// Eğer bir ayın brüt ücreti değişirse, henüz doldurulmamış sonraki alanlara otomatik kopyalama yapar
function autoCopyWage(i) {
const currentWage = document.getElementById("wage" + i).value;
if (currentWage !== "" && i < 12) {
const nextWageInput = document.getElementById("wage" + (i + 1));
if (nextWageInput.value === "") {
nextWageInput.value = currentWage;
autoCopyWage(i + 1); // zincirleme kopyalama
}
}
}
// Form gönderildiğinde hesaplama yapar
form.addEventListener("submit", function(event) {
event.preventDefault();
let toplamGünlük = 0;
let hataliGiris = false;
for (let i = 1; i <= 12; i++) {
const wage = parseFloat(document.getElementById("wage" + i).value);
const days = parseFloat(document.getElementById("days" + i).value);
if (isNaN(wage) || isNaN(days) || days <= 0) {
hataliGiris = true;
break;
}
toplamGünlük += wage / days;
}
if (hataliGiris) {
resultDiv.innerHTML = "
Lütfen tüm brüt ücret ve gün sayısı alanlarını doğru şekilde doldurun.
";
return;
}
// Ortalama günlük brüt kazanç:
const ortalamaGünlük = toplamGünlük / 12;
// Hesaplanan günlük kısa çalışma ödeneği: ortalama kazancın %60’ı
const hesaplananGunluk = ortalamaGünlük * 0.60;
// Tavan: aylık asgari ücretin %150’si, günlük hesaba çevirmek için (varsayılan 30 gün üzerinden)
const aylikAsgari = parseFloat(minWageInput.value);
const tavanGunluk = (aylikAsgari * 1.5) / 30;
// Nihai ödenek, hesaplanan değer tavanı aşarsa tavan uygulanır.
const uygulananGunluk = Math.min(hesaplananGunluk, tavanGunluk);
resultDiv.innerHTML = `
Ortalama Günlük Brüt Ücret: ${ortalamaGünlük.toFixed(2)} TL
Hesaplanan Kısa Çalışma Ödeneği (Günlük %60): ${hesaplananGunluk.toFixed(2)} TL
Tavan (Aylık asgari ücretin %150’sinin günlük karşılığı): ${tavanGunluk.toFixed(2)} TL
Sonuçta Uygulanan Kısa Çalışma Ödeneği: ${uygulananGunluk.toFixed(2)} TL (günlük)
`;
});
// Resetlendiğinde sonuç alanını temizle
form.addEventListener("reset", function() {
resultDiv.innerHTML = "";
});
});