Merhaba,
Sizlere tanıtmak istediğim, ihtiyaç duyduğunuz alanlar oluştuğu zaman kullanacağınız bir programım var. Öncelikle programda kullandığım modülleri belirteyim.
Programlama Dili >> Python
Kullanılan modül >> Tkinter
Program Versiyon >> date_12102020_ver_1.0.0
Programın kullanım amacı bireysel hesaplamalar içindir. Bireysel hesaplamalardan kastım kazançlarınız ve giderlerinizi 12 aylık bir tablo da düzenli bir şekilde görmek ve finansal durumunuz hakkında fikir sahibi olmaktasınız.
Her ay için hesaplanan gelir ve gideriniz ile ettiğiniz kâr ya da zararı görebilecek, bir önceki aydan bir sonraki aya devreden paranızı görebileceksiniz. Önünüzdeki 12 aylık sürecin finansal hesaplamasını yapabildiğiniz ve yorumlayabildiğiniz için paranızı harcamak ya da paranızı arttırmak için fikir sahibi olabileceksiniz.
Yeni bir eve taşınacak ve masraflarınız artacak diyelim, fakat bir anda ne kadar masrafım olacak ne kadar giderim olacak diye düşünüp zarar edip etmeyeceğinizi düşünürken, programı kullanarak 12 ay boyunca ne durumda olabildiğinizi görebileceksiniz.
Program şuan 1.0.0 versiyonunda. Bu versiyonda bir takım eksiklikler var. Zamanla bu konu altında güncellemeye çalışacağım ve eksikleri bitireceğim. Eksikler şunlar;
-
Programın girdi alanları ve hesaplama işlemleri için kontrol mekanizması yok. Bundan sebep programı kullanırken sadece ve sadece sayısal veriler girilmeli. Bir sonraki güncelleme de sayısal veri dışında girilen bir değer olursa program uyarı verip kullanıcının düzeltmesini isteyecek.
-
Program finansal hesaplama yaparken 12 aylık süreçteki gelir ve giderleri alıyor. Fakat programı kullandığınız anda birikmiş bir miktar paranız olabilir. Sisteme bunu da varlıklarım olarak girişini yapmak gerekir ki gelir-gider hesaplarken varlıkların da üstüne eklenerek hesaplama yapılsın. Bu kısım da güncelleme ile birlikte eklenecek.
-
Programdaki gelir ve gider kalemleri ortak bir tür belirtmesi için herkes tarafından kullanılabilecek tarzda oluşturuldu. Fakat herkesin birbirinden farklı gider kalemleri olabilir. Örneğin, spor harcamaları, eğlence, giyim, sağlık, hediye vb. İlerleyen güncellemeler ile kendi gider kalemlerini oluşturabilme imkanı da eklenecek.
-
Programdaki hesaplamaları kaydetmek ve daha sonra görmek isteyebilirsiniz. Bunun için sqlite ya da json gibi yerlere veriyi kaydettikten sonra tekrar çekip görmek yerine Excel’e Aktar seçeneği ekleyeceğim.
Şu anda gözüme görünen mevcut eksikleri bunlar. Zamanla eksikler ve hatalar kapanıp program daha iyi hale gelecek. Şuan ki hali de iyi iş görüyor. Kullananların yorumlarını, sorularını, öneri ve şikayetlerini duymak isterim.
Programa ait görseller;
from tkinter import *
class Application(object):
def __init__(self):
self.start()
def start(self):
self.ay_list = ["OCAK", "ŞUBAT", "MART", "NİSAN", "MAYIS", "HAZİRAN", "TEMMUZ",
"AĞUSTOS", "EYLÜL", "EKİM", "KASIM", "ARALIK"]
self.gelir_list = ["DEVİR", "MAAŞ", "MUHTELİF 1", "MUHTELİF 2"]
self.gider_list = ["KİRA", "AİDAT", "ELEKTRİK", "SU", "DOĞALGAZ", "İNTERNET", "TELEFON", "YOL", "MARKET",
"MUHTELİF GİDER 1", "MUHTELİF GİDER 2", "BORÇ 1", "BORÇ 2", "BAĞIŞ"]
self.durum_list = ["GELİR", "GİDER", "BAKİYE"]
self.pencere_1 = Tk()
self.pencere_1.resizable(FALSE, FALSE)
x = 0
y = 3
for self.i in self.ay_list:
self.aylar = Label(self.pencere_1, text=self.ay_list[x], width=10)
self.aylar.grid(row=1, column=y)
self.cizgi = Label(self.pencere_1, text="-----")
self.cizgi.grid(row=2, column=y)
x+=1
y+=1
x = 0
y = 3
for self.i in self.gelir_list:
self.gelirler = Label(self.pencere_1, text=self.gelir_list[x])
self.gelirler.grid(row=y, column=1)
x+=1
y+=1
y = 3
for self.i in self.ay_list:
self.cizgi = Label(self.pencere_1, text="-----")
self.cizgi.grid(row=7, column=y)
x += 1
y += 1
x = 0
y = 8
for self.i in self.gider_list:
self.giderler = Label(self.pencere_1, text=self.gider_list[x])
self.giderler.grid(row=y,column=1)
x+=1
y+=1
y = 3
for self.i in self.ay_list:
self.cizgi = Label(self.pencere_1, text="-----")
self.cizgi.grid(row=22, column=y)
y += 1
y = 3
for self.i in self.ay_list:
self.cizgi = Label(self.pencere_1, text="-----")
self.cizgi.grid(row=26, column=y)
y+=1
self.cizgi = Label(self.pencere_1, text="-----")
self.cizgi.grid(row=2, column=1)
self.cizgi = Label(self.pencere_1, text="-----")
self.cizgi.grid(row=2, column=2)
self.cizgi = Label(self.pencere_1, text="-----")
self.cizgi.grid(row=7, column=1)
self.cizgi = Label(self.pencere_1, text="-----")
self.cizgi.grid(row=7, column=2)
self.cizgi = Label(self.pencere_1, text="-----")
self.cizgi.grid(row=22, column=1)
self.cizgi = Label(self.pencere_1, text="-----")
self.cizgi.grid(row=22, column=2)
self.cizgi = Label(self.pencere_1, text="-----")
self.cizgi.grid(row=26, column=1)
self.cizgi = Label(self.pencere_1, text="-----")
self.cizgi.grid(row=26, column=2)
x = 4
self.a1 = Entry(self.pencere_1, width=10)
self.a1.grid(row=x, column=2)
x+=1
self.b1 = Entry(self.pencere_1, width=10)
self.b1.grid(row=x, column=2)
x += 1
self.c1 = Entry(self.pencere_1, width=10)
self.c1.grid(row=x, column=2)
x += 2
self.d1 = Entry(self.pencere_1, width=10)
self.d1.grid(row=x, column=2)
x += 1
self.e1 = Entry(self.pencere_1, width=10)
self.e1.grid(row=x, column=2)
x += 1
self.f1 = Entry(self.pencere_1, width=10)
self.f1.grid(row=x, column=2)
x += 1
self.g1 = Entry(self.pencere_1, width=10)
self.g1.grid(row=x, column=2)
x += 1
self.h1 = Entry(self.pencere_1, width=10)
self.h1.grid(row=x, column=2)
x += 1
self.j1 = Entry(self.pencere_1, width=10)
self.j1.grid(row=x, column=2)
x += 1
self.k1 = Entry(self.pencere_1, width=10)
self.k1.grid(row=x, column=2)
x += 1
self.l1 = Entry(self.pencere_1, width=10)
self.l1.grid(row=x, column=2)
x += 1
self.m1 = Entry(self.pencere_1, width=10)
self.m1.grid(row=x, column=2)
x += 1
self.n1 = Entry(self.pencere_1, width=10)
self.n1.grid(row=x, column=2)
x += 1
self.o1 = Entry(self.pencere_1, width=10)
self.o1.grid(row=x, column=2)
x += 1
self.p1 = Entry(self.pencere_1, width=10)
self.p1.grid(row=x, column=2)
x += 1
self.r1 = Entry(self.pencere_1, width=10)
self.r1.grid(row=x, column=2)
x += 1
self.s1 = Entry(self.pencere_1, width=10)
self.s1.grid(row=x, column=2)
x = 0
y = 23
for self.i in self.durum_list:
self.durumlar = Label(self.pencere_1, text=self.durum_list[x])
self.durumlar.grid(row=y,column=2)
x+=1
y+=1
self.hesaplama = Button(self.pencere_1, text="HESAPLA", width=10, command=self.register)
self.hesaplama.grid(row=23, column=1)
self.temizle = Button(self.pencere_1, text="TEMİZLE", width=10, command=self.clear)
self.temizle.grid(row=24, column=1)
self.cikis = Button(self.pencere_1, text="ÇIKIŞ YAP", width=10, comman=self.pencere_1.destroy)
self.cikis.grid(row=25, column=1)
y = 3
for self.i in self.ay_list:
self.marka = Label(self.pencere_1, text="SATEM SOFT")
self.marka.grid(row=27,column=y)
y += 1
self.marka = Label(self.pencere_1, text="SATEM SOFT")
self.marka.grid(row=27,column=1)
self.marka = Label(self.pencere_1, text="SATEM SOFT")
self.marka.grid(row=27,column=2)
self.talimatlar = Button(self.pencere_1, text="BİLGİLER", command=self.info)
self.talimatlar.grid(row=1, column=1)
def info(self):
self.pencere_2 = Tk()
self.pencere_2.resizable(FALSE, FALSE)
self.qwer = Label(self.pencere_2, text="| PROGRAMI KULLANIRKEN SADECE TAM SAYIl İLE GİRİŞ YAPINIZ. |")
self.qwer.pack()
self.qwer = Label(self.pencere_2, text="--")
self.qwer.pack()
self.qwer = Label(self.pencere_2, text="| TAM SAYI DIŞINDA GİRİLEN İFADELER DE HESAPLAMA YAPAMAZ. |")
self.qwer.pack()
self.qwer = Label(self.pencere_2, text="--")
self.qwer.pack()
self.qwer = Label(self.pencere_2, text="| BOŞ GEÇECEĞİNİZ KISIMLARA SADECE 0 (SIFIR) YAZINIZ |")
self.qwer.pack()
self.qwer = Label(self.pencere_2, text="--")
self.qwer.pack()
self.qwer = Label(self.pencere_2, text="| İLETİŞİM >> safatevhid@gmail.com. |")
self.qwer.pack()
self.qwer = Label(self.pencere_2, text="--")
self.qwer.pack()
self.qwer = Label(self.pencere_2, text="| WEB SİTE ADRESİ >> https://satemsoftware.com |")
self.qwer.pack()
self.qwer = Label(self.pencere_2, text="--")
self.qwer.pack()
self.qwer = Label(self.pencere_2, text="| FORUM ADRESİ >> https://forum.yazbel.com |")
self.qwer.pack()
self.qwer = Label(self.pencere_2, text="--")
self.qwer.pack()
def register(self):
self.maas = int(self.a1.get())
self.muhtelif_gelir_1 = int(self.b1.get())
self.muhtelif_gelir_2 = int(self.c1.get())
self.kazanc = self.maas + self.muhtelif_gelir_1 + self.muhtelif_gelir_1
self.kira = int(self.d1.get())
self.aidat = int(self.e1.get())
self.elektrik = int(self.f1.get())
self.su = int(self.g1.get())
self.dogalgaz = int(self.h1.get())
self.internet = int(self.j1.get())
self.telefon = int(self.k1.get())
self.yol = int(self.l1.get())
self.market = int(self.m1.get())
self.muhtelif_gider_1 = int(self.n1.get())
self.muhtelif_gider_2 = int(self.o1.get())
self.borc_1 = int(self.p1.get())
self.borc_2 = int(self.r1.get())
self.bagis = int(self.s1.get())
self.harcama = self.kira + self.aidat + self.elektrik + self.su + self.dogalgaz + self.internet + self.telefon + self.yol
self.harcamax = self.harcama + self.market + self.muhtelif_gider_1 + self.muhtelif_gider_2 + self.borc_1 + self.borc_2 + self.bagis
print(self.kazanc)
print(self.harcamax)
self.bakiye_list = list()
self.devir_list = [0]
x = 0
for self.i in self.ay_list:
self.hesapx = (self.devir_list[x] + self.kazanc) - self.harcamax
self.devir_list.append(self.hesapx)
self.bakiye_list.append(self.hesapx)
x += 1
self.devir_list.pop(12)
x = 23
z = 24
y = 3
w = 0
for self.i in self.ay_list:
self.kazancx = self.devir_list[w] + self.kazanc
rte = Label(self.pencere_1, text=str(self.kazancx) + " TL", width=10)
rte.grid(row=x, column=y)
tre = Label(self.pencere_1, text=str(self.harcamax) + " TL", width=10)
tre.grid(row=z, column=y)
y += 1
w += 1
x = 0
y = 3
for self.i in self.ay_list:
self.bakiyeler = Label(self.pencere_1, text=str(self.bakiye_list[x])+" TL", width=10)
self.bakiyeler.grid(row=25, column=y)
self.devirler = Label(self.pencere_1, text=str(self.devir_list[x])+" TL", width=10)
self.devirler.grid(row=3, column=y)
x += 1
y += 1
self.maas = self.a1.get()
self.muhtelif_gelir_1 = self.b1.get()
self.muhtelif_gelir_2 = self.c1.get()
self.kira = self.d1.get()
self.aidat = self.e1.get()
self.elektrik = self.f1.get()
self.su = self.g1.get()
self.dogalgaz = self.h1.get()
self.internet = self.j1.get()
self.telefon = self.k1.get()
self.yol = self.l1.get()
self.market = self.m1.get()
self.muhtelif_gider_1 = self.n1.get()
self.muhtelif_gider_2 = self.o1.get()
self.borc_1 = self.p1.get()
self.borc_2 = self.r1.get()
self.bagis = self.s1.get()
x = 4
y = x+1
z = y+1
a = 3
for self.i in self.ay_list:
self.aylar = Label(self.pencere_1, text=self.maas+" TL", width=10)
self.aylar.grid(row=x, column=a)
self.aylar = Label(self.pencere_1, text=self.muhtelif_gelir_1 + " TL", width=10)
self.aylar.grid(row=y, column=a)
self.aylar = Label(self.pencere_1, text=self.muhtelif_gelir_2 + " TL", width=10)
self.aylar.grid(row=z, column=a)
a += 1
x = 8
y = x + 1
z = y + 1
w = z + 1
v = w + 1
t = v + 1
s = t + 1
r = s + 1
u = r + 1
m = u + 1
c = m + 1
d = c + 1
h = d + 1
f = h + 1
a = 3
for self.i in self.ay_list:
self.aylar = Label(self.pencere_1, text=self.kira + " TL", width=10)
self.aylar.grid(row=x, column=a)
self.aylar = Label(self.pencere_1, text=self.aidat + " TL", width=10)
self.aylar.grid(row=y, column=a)
self.aylar = Label(self.pencere_1, text=self.elektrik + " TL", width=10)
self.aylar.grid(row=z, column=a)
self.aylar = Label(self.pencere_1, text=self.su + " TL", width=10)
self.aylar.grid(row=w, column=a)
self.aylar = Label(self.pencere_1, text=self.dogalgaz + " TL", width=10)
self.aylar.grid(row=v, column=a)
self.aylar = Label(self.pencere_1, text=self.internet + " TL", width=10)
self.aylar.grid(row=t, column=a)
self.aylar = Label(self.pencere_1, text=self.telefon + " TL", width=10)
self.aylar.grid(row=s, column=a)
self.aylar = Label(self.pencere_1, text=self.yol + " TL", width=10)
self.aylar.grid(row=r, column=a)
self.aylar = Label(self.pencere_1, text=self.market + " TL", width=10)
self.aylar.grid(row=u, column=a)
self.aylar = Label(self.pencere_1, text=self.muhtelif_gider_1 + " TL", width=10)
self.aylar.grid(row=m, column=a)
self.aylar = Label(self.pencere_1, text=self.muhtelif_gider_2 + " TL", width=10)
self.aylar.grid(row=c, column=a)
self.aylar = Label(self.pencere_1, text=self.borc_1 + " TL", width=10)
self.aylar.grid(row=d, column=a)
self.aylar = Label(self.pencere_1, text=self.borc_2 + " TL", width=10)
self.aylar.grid(row=h, column=a)
self.aylar = Label(self.pencere_1, text=self.bagis + " TL", width=10)
self.aylar.grid(row=f, column=a)
a += 1
def clear(self):
self.a1.delete(0, END)
self.b1.delete(0, END)
self.c1.delete(0, END)
self.d1.delete(0, END)
self.e1.delete(0, END)
self.f1.delete(0, END)
self.g1.delete(0, END)
self.h1.delete(0, END)
self.j1.delete(0, END)
self.k1.delete(0, END)
self.l1.delete(0, END)
self.m1.delete(0, END)
self.n1.delete(0, END)
self.o1.delete(0, END)
self.p1.delete(0, END)
self.r1.delete(0, END)
self.s1.delete(0, END)
x = 4
y = x + 1
z = y + 1
a = 3
for self.i in self.ay_list:
self.aylar = Label(self.pencere_1, text=" TL", width=10)
self.aylar.grid(row=x, column=a)
self.aylar = Label(self.pencere_1, text=" TL", width=10)
self.aylar.grid(row=y, column=a)
self.aylar = Label(self.pencere_1, text=" TL", width=10)
self.aylar.grid(row=z, column=a)
a += 1
x = 8
y = x + 1
z = y + 1
w = z + 1
v = w + 1
t = v + 1
s = t + 1
r = s + 1
u = r + 1
m = u + 1
c = m + 1
d = c + 1
h = d + 1
f = h + 1
a = 3
for self.i in self.ay_list:
self.aylar = Label(self.pencere_1, text=" TL", width=10)
self.aylar.grid(row=x, column=a)
self.aylar = Label(self.pencere_1, text=" TL", width=10)
self.aylar.grid(row=y, column=a)
self.aylar = Label(self.pencere_1, text=" TL", width=10)
self.aylar.grid(row=z, column=a)
self.aylar = Label(self.pencere_1, text=" TL", width=10)
self.aylar.grid(row=w, column=a)
self.aylar = Label(self.pencere_1, text=" TL", width=10)
self.aylar.grid(row=v, column=a)
self.aylar = Label(self.pencere_1, text=" TL", width=10)
self.aylar.grid(row=t, column=a)
self.aylar = Label(self.pencere_1, text=" TL", width=10)
self.aylar.grid(row=s, column=a)
self.aylar = Label(self.pencere_1, text=" TL", width=10)
self.aylar.grid(row=r, column=a)
self.aylar = Label(self.pencere_1, text=" TL", width=10)
self.aylar.grid(row=u, column=a)
self.aylar = Label(self.pencere_1, text=" TL", width=10)
self.aylar.grid(row=m, column=a)
self.aylar = Label(self.pencere_1, text=" TL", width=10)
self.aylar.grid(row=c, column=a)
self.aylar = Label(self.pencere_1, text=" TL", width=10)
self.aylar.grid(row=d, column=a)
self.aylar = Label(self.pencere_1, text=" TL", width=10)
self.aylar.grid(row=h, column=a)
self.aylar = Label(self.pencere_1, text=" TL", width=10)
self.aylar.grid(row=f, column=a)
a += 1
x = 23
z = 24
w = 25
y = 3
for self.i in self.ay_list:
self.aylar = Label(self.pencere_1, text=" TL", width=10)
self.aylar.grid(row=x, column=y)
self.aylar = Label(self.pencere_1, text=" TL", width=10)
self.aylar.grid(row=z, column=y)
self.aylar = Label(self.pencere_1, text=" TL", width=10)
self.aylar.grid(row=w, column=y)
y += 1
app = Application()
mainloop()
KULLANILABİLİR HALİNİ BURADAN İNDİREBİLİRSİNİZ >> tahmini_gelir_gider_indir_satem_software
Programın eksikleri ve ihtiyaç duyacağı yenilikleri için yardımcı olmak isteyen varsa memnuniyet duyarım.