Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Parkhyemin #2

Open
wants to merge 45 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
aa47a84
최진솔(연결확인)
choijeensol Jan 19, 2021
12395dc
연결 여부 확인
Jiiihun Jan 19, 2021
fb17297
최진솔(연결확인2)
choijeensol Jan 19, 2021
e9b1922
기존 ledger.py 파일에 주석으로 설명 추가
Jiiihun Jan 20, 2021
5f98854
Revert "기존 ledger.py 파일에 주석으로 설명 추가"
Jiiihun Jan 20, 2021
a4bbbfc
주석01
choijeensol Jan 20, 2021
45e6b22
Merge branch 'choijeensol' into ryujihun
choijeensol Jan 20, 2021
8cdd793
Merge pull request #1 from choijeensol/ryujihun
Jiiihun Jan 20, 2021
299071b
연결확인
Jan 20, 2021
7262884
연결확인
Jan 20, 2021
a24f921
Merge branch 'choijeensol' into parkhyemin
amy9356 Jan 20, 2021
2cf0e41
Merge pull request #2 from amy9356/parkhyemin
choijeensol Jan 20, 2021
beae811
Merge pull request #3 from choijeensol/choijeensol
choijeensol Jan 20, 2021
df09e7e
Merge branch 'choijeensol' into parkhyemin
choijeensol Jan 20, 2021
696ef55
Merge pull request #4 from choijeensol/parkhyemin
choijeensol Jan 20, 2021
d4816cf
병합테스트03
choijeensol Jan 20, 2021
eb6f6fe
Merge branch 'choijeensol' of https://github.com/choijeensol/Account-…
choijeensol Jan 20, 2021
d73ea85
병합테스트04
choijeensol Jan 20, 2021
3364c61
Merge pull request #5 from choijeensol/choijeensol
choijeensol Jan 20, 2021
39e1cd9
병합테스트05
choijeensol Jan 20, 2021
bc18328
Merge pull request #6 from choijeensol/choijeensol
choijeensol Jan 20, 2021
679be1a
Merge pull request #7 from choijeensol/parkhyemin
choijeensol Jan 20, 2021
a6a9cf5
Merge pull request #8 from choijeensol/choijeensol
choijeensol Jan 20, 2021
61c0308
Merge pull request #9 from choijeensol/master
choijeensol Jan 20, 2021
7d0671a
병합테스트06
choijeensol Jan 20, 2021
5baaf09
Merge branch 'master' into choijeensol
choijeensol Jan 20, 2021
c3a1655
Merge pull request #10 from choijeensol/choijeensol
choijeensol Jan 20, 2021
3f4c8e3
병합테스트07
choijeensol Jan 20, 2021
606d9df
Merge pull request #12 from choijeensol/choijeensol
choijeensol Jan 20, 2021
b28d46f
Merge pull request #13 from choijeensol/choijeensol
choijeensol Jan 20, 2021
bf16878
44번 줄 이후 중복된 부분 삭제
choijeensol Jan 20, 2021
3f5bb93
테스트
Jiiihun Jan 20, 2021
721d1dd
계좌 개설 부분 수정
Jiiihun Jan 20, 2021
42118b8
Merge branch 'choijeensol' into ryujihun
choijeensol Jan 21, 2021
f08ed74
Merge pull request #14 from choijeensol/ryujihun
choijeensol Jan 21, 2021
e37f37e
영어->한글, DB에 money부분 추가
choijeensol Jan 21, 2021
7e538c5
Merge pull request #15 from choijeensol/choijeensol
choijeensol Jan 21, 2021
0537234
Merge branch 'ryujihun' of https://github.com/choijeensol/Account-man…
Jiiihun Jan 20, 2021
31929c2
계좌이체_1
Jan 21, 2021
98d8e4f
영어->한글, DB money 02
choijeensol Jan 21, 2021
58bfc90
Merge pull request #11 from choijeensol/choijeensol
choijeensol Jan 21, 2021
b7ff28d
계좌이체 입력, 버튼 생성
Jan 21, 2021
a42c06a
테스트
Jan 21, 2021
128df21
Merge branch 'master' of https://github.com/choijeensol/Account-manag…
Jan 21, 2021
2dadd1e
Merge branch 'master' into parkhyemin
Jan 21, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file removed aledger.db
Binary file not shown.
173 changes: 117 additions & 56 deletions ledger.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,120 +2,181 @@
# Copyright 2017 by Martial Himanshu. All rights reserved.
# Distributed under the MPL license. See LICENSE.txt for details.

from tkinter import *
import ledger_bk
window = Tk()
window.title("Account Ledger")
import tkinter.messagebox as msgbox # 메세지박스를 msgbox라는 이름으로 가져옴
from tkinter import * #tkinter밑에있는 모든 정보 가져옴
import ledger_bk #ledger_bk 정보 가져옴
import datetime # datetime 정보 가져옴
import random # random 정보 가져옴
window = Tk() #윈도우 창 생성
window.title("계좌 관리 프로그램") #윈도우 창 타이틀
#window.geometry("너비 x 높이 + x좌표 + y좌표") 윈도우 창의 너비, 높이, 초기화면 크기 설정
#window.resizable(상하(True or False), 좌우) 윈도우 창의 창 크기 조절 가능 여부 설정, True로 설정 시 윈도우 창 크기 조절 가능

menu = Menu(window) #menu = Menu(윈도우 창) 윈도우 창에서 메뉴 사용

def rand_accnum() : # 랜덤한 계좌번호를 문자열로 생성해서 리턴 하는 함수
accnum_list = []
acc_num = ""

for i in range(16) :
accnum_list.append(random.randint(0, 9))
accnum_list[6] = '-'
accnum_list[9] = '-'

for j in range(16):
acc_num += str(accnum_list[j])
return acc_num

def view_command():
lb.delete(0,END)
for row in ledger_bk.viewall():
lb.insert(END,row)
#lb=Listbox(window,height=20,width=94) (111번 줄에 정의)
lb.delete(0,END) #0항목부터 END까지 삭제
for row in ledger_bk.viewall(name.get()): #ledger_bk파일에 있는 viewall()함수 이용
lb.insert(END,row) #lb(리스트박스) 끝에서부터 하나씩 DB에 있는 정보 하나씩 기입

def search_command():
lb.delete(0,END)
for row in ledger_bk.search(name=name.get(),user=user.get(),password=password.get(),category=category.get()):
lb.insert(END,row)
# def search_command():
# lb.delete(0,END) #0항목부터 END까지 삭제
# for row in ledger_bk.search(name=name.get(),user=user.get(),password=password.get(),category=category.get()):
# #ledger_bk파일에 있는 search()함수 이용
# lb.insert(END,row) #lb 끝에서부터 하나씩 DB에 있는 정보 기입

def add_command():
ledger_bk.add(name.get(),user.get(),password.get(),category.get(),cdate.get())
lb.delete(0,END)
lb.insert(END,name.get(),user.get(),password.get(),category.get(),cdate.get())
# 정보 입력 시 빈칸이 있으면 에러 발생하고 저장 x
if name.get() == "" or password.get() == "" or money.get() == "" :
msgbox.showerror("에러", "정보 칸을 모두 입력해주세요!")
return -1

acc_number = rand_accnum()
ledger_bk.add(acc_number, name.get(), password.get(), money.get())
#ledger_bk파일에 있는 add()함수 이용
lb.delete(0,END) #0항목부터 END까지 삭제
lb.insert(END,"이름 : " + name.get(),"계좌번호 : " + acc_number, "패스워드 : " + "*" * len(password.get()),"계좌잔고 : " + money.get(), "계좌 개설 시간 : " + datetime.datetime.now().strftime('%Y년 %m월 %d일 %H시 %M분 %S초'))
#lb에 ledger_bk파일에 있는 add()함수에서 받아온 정보와 계좌번호, 그리고 계좌를 생성한 시간을 화면에 출력

def get_selected_row(event):
try:
global selected_tuple
index=lb.curselection()[0]
selected_tuple = lb.get(index)
e1.delete(0,END)
global selected_tuple #전역 변수
index=lb.curselection()[0] #curselection() 선택된 항목들을 반환
selected_tuple = lb.get(index) #selected_tuple에 lb에 있는 index 항목 반환
#e1 = Entry(window,textvariable=name,width=50)
#Entry(윈도우 창, 파라미터, ...)
e1.delete(0,END) #
e1.insert(END,selected_tuple[1])
e2.delete(0,END)
e2.insert(END,selected_tuple[2])
#e2.delete(0,END)
#e2.insert(END,selected_tuple[2])
e3.delete(0,END)
e3.insert(END,selected_tuple[3])
e4.delete(0,END)
e4.insert(END,selected_tuple[4])
e5.delete(0,END)
e5.insert(END,selected_tuple[5])
# e5.delete(0,END)
# e5.insert(END,selected_tuple[5])
e6.delete(0,END)
e6.insert(END,selected_tuple[6])
e7.delete(0,END)
e7.insert(END,selected_tuple[7])

except IndexError:
pass

def update_command():
ledger_bk.update(selected_tuple[0],name.get(),user.get(),password.get(),category.get(),cdate.get())
view_command()
# def update_command():
# ledger_bk.update(selected_tuple[0],account_num.get(),name.get(),password.get(),money.get())
# view_command()

def delete_command():
ledger_bk.delete(selected_tuple[0])
view_command()
#lb.delete(END,get_selected_row.selected_tuple)

def clear_command():
lb.delete(0,END)
lb.delete(0,END) #0항목부터 END까지 삭제
e1.delete(0,END)
e2.delete(0,END)
# e2.delete(0,END)
e3.delete(0,END)
e4.delete(0,END)
e5.delete(0,END)
# e5.delete(0,END)
e6.delete(0,END)
e7.delete(0,END)


# def remittance_command():
# lb.delete(0,END)

l1 = Label(window,text="Name")
l1 = Label(window,text="성명")
l1.grid(row=0,column=0,columnspan=2)
l2 = Label(window,text="Username/Email")
l2.grid(row=1,column=0,columnspan=2)
l3 = Label(window,text="Password")
# l2 = Label(window,text="Username/Email")
# l2.grid(row=1,column=0,columnspan=2)
l3 = Label(window,text="비밀번호")
l3.grid(row=2,column=0,columnspan=2)
l4 = Label(window,text="Category")
l4 = Label(window,text="잔고")
l4.grid(row=3,column=0,columnspan=2)
l5 = Label(window,text="Date")
l5.grid(row=4,column=0,columnspan=2)
# l5 = Label(window,text="Date")
# l5.grid(row=4,column=0,columnspan=2)
l6 = Label(window,text="start_account")
l6.grid(row=5,column=0,columnspan=2)
l7 = Label(window,text="target_account")
l7.grid(row=6,column=0,columnspan=2)


name=StringVar()
e1 = Entry(window,textvariable=name,width=50)
e1.grid(row=0,column=0,columnspan=10)

user=StringVar()
e2 = Entry(window,textvariable=user,width=50)
e2.grid(row=1,column=0,columnspan=10)
# user=StringVar()
# e2 = Entry(window,textvariable=user,width=50)
# e2.grid(row=1,column=0,columnspan=10)

password=StringVar()
e3 = Entry(window,textvariable=password,width=50)
e3.grid(row=2,column=0,columnspan=10)

category=StringVar()
e4 = Entry(window,textvariable=category,width=50)
money=StringVar()
e4 = Entry(window,textvariable=money,width=50)
e4.grid(row=3,column=0,columnspan=10)

cdate=StringVar()
e5 = Entry(window,textvariable=cdate,width=50)
e5.grid(row=4,column=0,columnspan=10)
# cdate=StringVar()
# e5 = Entry(window,textvariable=cdate,width=50)
# e5.grid(row=4,column=0,columnspan=10)

start_account=StringVar()
e6 = Entry(window,textvariable=start_account, width=50)
e6.grid(row=5,column=0,columnspan=10)

b1 = Button(window,text="Add",width=12,command=add_command)
b1.grid(row=5,column=0)
target_account=StringVar()
e7 = Entry(window,textvariable=target_account,width=50)
e7.grid(row=6,column=0,columnspan=10)

b2 = Button(window,text="Update",width=12,command=update_command)
b2.grid(row=5,column=1)
b1 = Button(window,text="계좌생성",width=12,command=add_command)
#Button(윈도우 창, 파라미터, ...)
b1.grid(row=7,column=0)

b3 = Button(window,text="Search",width=12,command=search_command)
b3.grid(row=5,column=2)
#b2 = Button(window,text="deposit",width=12,command=update_command)
#b2.grid(row=5,column=1)

b4 = Button(window,text="View All",width=12,command=view_command)
#b3 = Button(window,text="withdraw",width=12,command=update_command)
#b3.grid(row=5,column=2)

b4 = Button(window,text="계좌보기",width=12,command=view_command)
b4.grid(row=5,column=3)

b5 = Button(window,text="Delete",width=12,command=delete_command)
b5 = Button(window,text="계좌폐기",width=12,command=delete_command)
b5.grid(row=5,column=4)

b6 = Button(window,text="Cancel",width=12,command=window.destroy)
b6 = Button(window,text="나가기",width=12,command=window.destroy)
b6.grid(row=5,column=5)

b7 = Button(window,text="Clear All",width=12,command=clear_command)
b7 = Button(window,text="초기화",width=12,command=clear_command)
b7.grid(row=0,column=5)

b8 = Button(window, text="계좌이체",width=12)#command=remittance_command)
b8.grid(row=7,column=3)

lb=Listbox(window,height=20,width=94)
lb.grid(row=6,column=0,columnspan=6)
lb.grid(row=8,column=0,columnspan=6)

sb=Scrollbar(window)
sb.grid(row=6,column=6,rowspan=6)
sb.grid(row=8,column=6,rowspan=6)

lb.configure(yscrollcommand=sb.set)
sb.configure(command=lb.yview)

lb.bind('<<ListboxSelect>>',get_selected_row)
window.mainloop()
window.mainloop() #윈도우 창 종료
151 changes: 109 additions & 42 deletions ledger_bk.py
Original file line number Diff line number Diff line change
@@ -1,42 +1,109 @@
import sqlite3
def create():
con = sqlite3.connect("aledger.db")
cur = con.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS account(id INTEGER PRIMARY KEY,name TEXT,user TEXT, password TEXT,category TEXT,cdate TEXT)")
con.commit()
con.close()
def viewall():
con = sqlite3.connect("aledger.db")
cur = con.cursor()
cur.execute("SELECT * FROM account")
rows = cur.fetchall()
con.close()
return rows

def search(name="",user="",password="",category=""):
con = sqlite3.connect("aledger.db")
cur = con.cursor()
cur.execute("SELECT * FROM account WHERE name=? OR user=? OR password=? OR category=?",(name,user,password,category))
rows = cur.fetchall()
con.close()
return rows
def add(name,user,password,category,cdate):
con = sqlite3.connect("aledger.db")
cur = con.cursor()
cur.execute("INSERT INTO account VALUES(NULL,?,?,?,?,?)",(name,user,password,category,cdate))
con.commit()
con.close()
def update(id,name,user,password,category,cdate):
con = sqlite3.connect("aledger.db")
cur = con.cursor()
cur.execute("UPDATE account SET name=?,user=?,password=?,category=?,cdate=? WHERE id=?",(name,user,password,category,cdate,id))
con.commit()
con.close()
def delete(id):
con = sqlite3.connect("aledger.db")
cur = con.cursor()
cur.execute("DELETE FROM account WHERE id=?",(id,))
con.commit()
con.close()
create()
#print(search(category="social"))
#04
import sqlite3
def create():
con = sqlite3.connect("aledger.db")
cur = con.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS account(account_num TEXT PRIMARY KEY, name TEXT, password TEXT, money INTEGER)")
con.commit()
con.close()

<<<<<<< HEAD
def viewall(name):
=======
def viewall():
>>>>>>> master
con = sqlite3.connect("aledger.db")
cur = con.cursor()
cur.execute("SELECT * FROM account WHERE name={}".format(name))
rows = cur.fetchall()
con.close()
return rows

<<<<<<< HEAD
=======
<<<<<<< HEAD
def search(name="",user="",password="",category=""):
con = sqlite3.connect("aledger.db")
cur = con.cursor()
cur.execute("SELECT * FROM account WHERE name=? OR user=? OR password=? OR category=?",(name,user,password,category))
rows = cur.fetchall()
con.close()
return rows
def add(name,user,password,category,cdate):
con = sqlite3.connect("aledger.db")
cur = con.cursor()
cur.execute("INSERT INTO account VALUES(NULL,?,?,?,?,?)",(name,user,password,category,cdate))
con.commit()
con.close()
def update(id,name,user,password,category,cdate):
con = sqlite3.connect("aledger.db")
cur = con.cursor()
cur.execute("UPDATE account SET name=?,user=?,password=?,category=?,cdate=? WHERE id=?",(name,user,password,category,cdate,id))
con.commit()
con.close()
def delete(id):
con = sqlite3.connect("aledger.db")
cur = con.cursor()
cur.execute("DELETE FROM account WHERE id=?",(id,))
=======
>>>>>>> master
# def search(name="",user="",password="",category=""):
# con = sqlite3.connect("aledger.db")
# cur = con.cursor()
# cur.execute("SELECT * FROM account WHERE name=? OR user=? OR password=? OR category=?",(name,user,password,category))
# rows = cur.fetchall()
# con.close()
# return rows
<<<<<<< HEAD

def add(account_num, name, password, money):
con = sqlite3.connect("aledger.db")
cur = con.cursor()
cur.execute("INSERT INTO account VALUES(?,?,?,?)",(account_num, name, password, money))
con.commit()
con.close()

# def update(account_num,name,password):
# con = sqlite3.connect("aledger.db")
# cur = con.cursor()
# cur.execute("UPDATE account SET account_num=?, name=?,password=?,money=?",(account_num,name,password,money))
# con.commit()
# con.close()

def delete(account_num):
con = sqlite3.connect("aledger.db")
cur = con.cursor()
cur.execute("DELETE FROM account WHERE account_num=?",(account_num,))
con.commit()
con.close()

def remittance(self,start_number, target_number, amount, password):
con = sqlite3.connect("aledger.db")
cur = con.cursor()
cur.execute("REMETTANCE from account=?, to account=?, money=?, password=?",(start_number, target_number, amount, password))
=======

def add(account_num, name, password, money):
con = sqlite3.connect("aledger.db")
cur = con.cursor()
cur.execute("INSERT INTO account VALUES(?,?,?,?)",(account_num, name, password, money))
con.commit()
con.close()

# def update(account_num,name,password):
# con = sqlite3.connect("aledger.db")
# cur = con.cursor()
# cur.execute("UPDATE account SET account_num=?, name=?,password=?,money=?",(account_num,name,password,money))
# con.commit()
# con.close()

def delete(account_num):
con = sqlite3.connect("aledger.db")
cur = con.cursor()
cur.execute("DELETE FROM account WHERE account_num=?",(account_num,))
>>>>>>> 58bfc90fbdc00e34acc5bcc256aacd89a30c80ff
>>>>>>> master
con.commit()
con.close()
create()
#print(search(category="social"))