'''
آموزشگاه کامپیوتر راهکار تبریز
04135574231 - 09146585123
www.rahkar01.ir
پیشنهاد میکنیم سورس برنامه را خودتان چند بار صفر تا صد پیاده سازی کنید
تا برای آزمون عملی به مشکل نخورید
از حفظ کردن برنامه خودداری کنید و با مطالعه ویدئو و یادداشت برداری
برای خودتان منطق برنامه را درک کنید
درصورت نیاز به هرگونه توضیح تکمیلی یا آموزش بهتر با ما تماس بگیرید
'''
from tkinter import *
import sqlite3

global kod
conn = sqlite3.connect('lib.db')
curs = conn.cursor()
curs.execute('create table if not exists library (id integer primary key autoincrement , onvan text, nevisande text, sal integer , isbn integer)')
conn.commit()

def addbook():
    eonvan=e1.get();        enevisande=e2.get();        esal=e3.get();      eisbn=e4.get()
    curs.execute('insert into library (onvan,nevisande,sal,isbn) values(?,?,?,?)' , (eonvan, enevisande, esal, eisbn))
    conn.commit()
    e1.delete(0,END);       e2.delete(0,END);       e3.delete(0,END);       e4.delete(0,END);       e1.focus_set()
    show()

def show():
    mylist.delete(0,END)
    curs.execute('select * from library')
    info = curs.fetchall()
    for i in info:
        mylist.insert(END , i)


def search():
    enovan=e1.get();    enevisande=e2.get();        esal=e3.get();      eisbn=e4.get()
    shart=[]
    megdar=[]
    if enovan:
        shart.append('onvan=?');        megdar.append(enovan)
    if enevisande:
        shart.append('nevisande=?');        megdar.append(enevisande)
    if esal:
        shart.append('sal=?');          megdar.append(esal)
    if eisbn:
        shart.append('isbn=?');         megdar.append(eisbn)

    text='select * from library where ' + ' and '.join(shart)


    mylist.delete(0,END)
    if enovan or enevisande or esal or eisbn :
        curs.execute(text , megdar)
    else:
        curs.execute('select * from library')

    info = curs.fetchall()
    for i in info:
        mylist.insert(END , i)

def entekhab(event):
    global kod
    sartno = mylist.curselection()
    neveshte = mylist.get(sartno)
    e1.delete(0,END);   e2.delete(0,END);   e3.delete(0,END);       e4.delete(0,END);
    e1.insert(0,neveshte[1]);       e2.insert(0,neveshte[2])
    e3.insert(0,neveshte[3]);       e4.insert(0,neveshte[4])
    kod=neveshte[0]


def hazf():
    curs.execute('delete from library where id =?' , (kod,))
    conn.commit()
    show()


def close():
    conn.close()
    win.destroy()

win = Tk()
win.title('مدیریت کتابخانه')
win.geometry('500x350')

l1 = Label(win , text='عنوان').place(x=30,y=20)
l2 = Label(win , text='نویسنده').place(x=260,y=20)
l3 = Label(win , text='سال انتشار').place(x=30 , y= 50)
l4 = Label(win , text='ISBN').place(x=260 , y =50)


e1 = Entry(win);        e1.place(x=100,y=20)
e2 = Entry(win);        e2.place(x=320 , y=20)
e3 = Entry(win);        e3.place(x=100 ,y=50)
e4 = Entry(win);        e4.place(x=320 , y=50)


mylist=Listbox(win);        mylist.place(x=20 , y=80 , width=200)
show()
mylist.bind('<<ListboxSelect>>' , entekhab)


b1=Button(win , text='مشاهده' , command=show).place(x=250 , y=80 ,width=100)
b2=Button(win , text='جستجو' , command=search).place(x=250 , y=110 ,width=100)
b3=Button(win , text='اضافه کردن' , command=addbook).place(x=250 , y=140 ,width=100)
b4=Button(win , text='حذف' , command=hazf).place(x=250 , y=170 ,width=100)
b5=Button(win , text='بستن' , command=close).place(x=250 , y=200 ,width=100)


mainloop()