Created
May 2, 2016 22:34
-
-
Save aladagemre/27a47b411407f7b1a85197fd8a8d054a to your computer and use it in GitHub Desktop.
Ç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