Skip to main content

AccessTr.neT


İzin Hesaplaması Yapan FOnksiyon

İzin Hesaplaması Yapan FOnksiyon

#5
Function izin$(giris, dtarih, ctarih)
If ctarih = "" Then
ctarih = Now
Else
ctarih = ctarih
End If

' Kıdem Yılı Hesaplama
a = DateDiff("m", giris, ctarih) ' Ay olarak fark
kidem = Fix(a / 12) ' Tam yılı doldurması için aşağı yuvarladık.

'İşe girdiğindeki yaşı
b = DateDiff("m", dtarih, giris) ' Ay olarak fark
yas = Fix(b / 12) ' Tam yılı doldurması için aşağı yuvarladık.

' Bir yıldan beş yıla kadar (beş yıl dahil) olanlara ondört günden,
' Beş yıldan fazla onbeş yıldan az olanlara yirmi günden,
' Onbeş yıl (dahil) ve daha fazla olanlara yirmialtı günden
' Ancak 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.

' İzin Kidem yılını doldurmayanalar
If kidem = 0 Then
sonuc = 0
' İzin Kıdem yılını beş yıla kadar olanlar
ElseIf kidem > 0 And kidem <= 5 Then
'İşe girme yaşı 18'den küçük olanlar
If yas > 14 And yas < 18 Then
d = kidem - (18 - yas)
If d < 0 Then
fark = 0
Else
fark = d
End If

sonuc = kidem * 20 - fark * 6
' İşe girme yaşı 19 ile 44 arasında olanlar
ElseIf yas > 17 And yas < 45 Then
sonuc = kidem * 14
'İşe girme yaşı 45-48 arasında olanlar
ElseIf yas >= 45 And yas < 49 Then
c = kidem - (49 - yas)
If c < 0 Then
fark = 0
Else
fark = c
End If

sonuc = kidem * 14 + fark * 6
'İşe girme yaşı 49 dan büyük olanlar
Else
sonuc = kidem * 20
End If

' İzin kıdem yılı beş yıl ile onbeş yıl olanlar
ElseIf kidem > 5 And kidem < 15 Then

'İşe girme yaşı 18'den küçük olanlar
If yas > 14 And yas < 18 Then
d = 5 - (18 - yas)
If d < 0 Then
fark = 0
Else
fark = d
End If

sonuc = kidem * 20 - fark * 6
' İşe girme yaşı 19 ile 44 arasında olanlar
ElseIf yas > 17 And yas < 45 Then
sonuc = kidem * 14 + (kidem - 5) * 6
'İşe girme yaşı 45-48 arasında olanlar
ElseIf yas >= 45 And yas < 49 Then
c = kidem - (49 - yas)
If c < 0 Then
fark = 0
Else
fark = c
End If

sonuc = kidem * 14 + fark * 6 + (kidem - 5) * 6
'İşe girme yaşı 49 dan büyük olanlar
Else
sonuc = kidem * 20
End If

' İzin kıdem yılı onbeşyıl ve fazla olanlar
Else

'İşe girme yaşı 18'den küçük olanlar
If yas > 14 And yas < 18 Then
d = 5 - (18 - yas)
If d < 0 Then
fark = 0
Else
fark = d
End If

sonuc = kidem * 20 - fark * 6 + (kidem - 14) * 6
' İşe girme yaşı 19 ile 44 arasında olanlar
ElseIf yas > 17 And yas < 45 Then
sonuc = kidem * 14 + (kidem - 5) * 6
'İşe girme yaşı 45-48 arasında olanlar
ElseIf yas >= 45 And yas < 49 Then
c = kidem - (49 - yas)
If c < 0 Then
fark = 0
Else
fark = c
End If

sonuc = kidem * 14 + fark * 6 + (kidem - 5) * 6 + (kidem - 14) * 6
'İşe girme yaşı 49 dan büyük olanlar
Else
sonuc = kidem * 20 + (kidem - 14) * 6
End If

End If


izin$ = sonuc

End Function

Formül revize edildi. Önceki formülde hata üreten bölümler vardı. Onlar düzeltildi. Ayrıca bizim işletmede 18 yaşından küçükler çalışmadığı için onu göz ardı etmiştim. Genel olduğu için onuda göz önüne aldım.
Formül üç değer alıyor. İlk değer işe giriş tarihi, ikinci değer doğum tarihi ve üçün cü değer işçi işten çıkmış ise çıkış tarihi olacak. Eğer işçi çıkmamış ve devam ediyor bu değer 0 olacak.

Yaralı olması dileğiyle. Kolay gelsin....
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da

Bu Konudaki Yorumlar
İzin Hesaplaması Yapan FOnksiyon - Yazar: mkucukk - 26/05/2012, 13:29
Cvp: İzin Hesaplaması Yapan FOnksiyon - Yazar: DUAYEN - 26/05/2012, 22:29
Cvp: İzin Hesaplaması Yapan FOnksiyon - Yazar: mkucukk - 31/05/2012, 18:18
Cvp: İzin Hesaplaması Yapan FOnksiyon - Yazar: afs11 - 30/10/2014, 23:16
Task