Çok basit ve özensizce hazırlanmış bir bordro hesaplama scripti. Aylık brüt maaşı girin, aylık net maaş ve işveren maliyetini çıkarsın.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#encoding: utf-8 | |
import math | |
ay = 1 | |
BM = {} | |
EK = {} | |
AGI = {} | |
SM = {} | |
SK = {} | |
SKI = {} | |
IS = {} | |
ISI = {} | |
KVSP = {} | |
HY = {} | |
KES = {} | |
BES = {} | |
VM = {} | |
KVM = {0: 0.0} | |
GV = {0: 0.0} | |
VO = {} | |
DV = {} | |
NET = {} | |
MALIYET = {} | |
def hesapla(i, brut=None): | |
# SGK Tavan Ocak - Haziran | |
SGKT1 = 10705.50 | |
# SGK Tavan Temmuz - Aralık | |
SGKT2 = 10705.50 | |
# Vergi dilimi %15 < | |
VD15 = 12600.00 | |
# Vergi dilimi %20 < | |
VD20 = 30000.00 | |
# Vergi dilimi %27 < | |
VD27 = 110000.00 | |
# Brüt Maaş | |
if brut: | |
BM[i] = brut | |
else: | |
BM[i] = 1647.00 | |
# İkramiye, prim, fazla mesai | |
EK[i] = 0.00 | |
# Asgari geçim indirimi | |
AGI[i] = 123.53 | |
# SGK Matrahı | |
if i < 7: | |
SGKT = SGKT1 | |
else: | |
SGKT = SGKT2 | |
SM[i] = min(BM[i] + EK[i], SGKT) | |
# SGK Kesintisi (sigorta primi işçi payı) | |
SK[i] = SM[i] * 0.14 | |
# SGK Kesintisi (işveren payı) | |
SKI[i] = SM[i] * 0.185 | |
# İşsizlik Sigortası (işçi payı) | |
IS[i] = SM[i] * 0.01 | |
# İşsizlik Sigortası (işveren payı) | |
ISI[i] = SM[i] * 0.02 | |
# Kısa Vadeli Sigorta Primi (sadece işveren) | |
KVSP[i] = SM[i] * 0.02 | |
# Hazine Yardımı (sadece işverenden düşüyor) | |
HY[i] = SM[i] * 0.05 | |
# Bireysel Emeklilik Sigortası Kesintisi | |
BES[i] = BM[i] * 0.02 | |
# Diğer kesintiler | |
KES[i] = 0.0 | |
# Vergi Matrahı | |
VM[i] = BM[i] + EK[i] - SK[i] - IS[i] | |
# Kümüle Vergi Matrahı | |
KVM[i] = KVM[i-1] + VM[i] | |
# Gelir Vergisi | |
# TODO %35 dilim | |
GV1 = max((KVM[i]-VD27)*0.08, 0) + max((KVM[i]-VD20)*0.07, 0) + max((KVM[i]-VD15)*0.05, 0) + KVM[i]*0.15 | |
GV0 = max((KVM[i-1]-VD27)*0.08, 0) + max((KVM[i-1]-VD20)*0.07, 0) + max((KVM[i-1]-VD15)*0.05, 0) + KVM[i-1]*0.15 | |
GV[i] = (GV1 - GV0) | |
# Ortalama gelir vergisi oranı | |
VO[i] = GV[i] / VM[i] | |
# Damga vergisi | |
DV[i] = (BM[i] + EK[i]) * 0.00759 | |
kesintiler = SK[i] + IS[i] + GV[i] + DV[i] # + BES + KES | |
#print "Kesintiler=", kesintiler | |
NET[i] = BM[i] + EK[i] + AGI[i] - kesintiler | |
MALIYET[i] = SM[i] + SKI[i] + KVSP[i] + ISI[i] - HY[i] | |
print "NET=", NET[i] | |
print "İşveren Maliyet=", MALIYET[i] | |
BRUT_MAAS = 10000 | |
for ay in xrange(1, 13): | |
hesapla(ay, BRUT_MAAS) | |
print "Gelir Vergisi:" | |
print GV |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment