-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathbilling_form.py
More file actions
137 lines (113 loc) · 6.67 KB
/
billing_form.py
File metadata and controls
137 lines (113 loc) · 6.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
from tkinter import *
import tkinter.messagebox
from tkinter import ttk
from tkinter import font
import sqlite3
conn=sqlite3.connect("SQL.db")
print("DATABASE CONNECTION SUCCESSFUL")
class Billing:
def __init__(self,master):
self.master = master
self.master.title("HOSPITAL MANAGEMENT SYSTEM")
self.master.geometry("1500x700+0+0")
self.master.config(bg="cadet blue")
self.frame = Frame(self.master,bg="cadet blue")
self.frame.pack()
#=============ATTRIBUTES===========
self.P_id=IntVar()
self.dd = StringVar()
self.treat_1=StringVar()
self.treat_2=StringVar()
self.cost_t=IntVar()
self.med=StringVar()
self.med_q=IntVar()
self.price=IntVar()
#===============TITLE==========
self.lblTitle = Label(self.frame,text = "BILLING WINDOW", font="Helvetica 20 bold",bg="cadet blue")
self.lblTitle.grid(row =0 ,column = 0,columnspan=2,pady=25)
#==============FRAME==========
self.LoginFrame = Frame(self.frame,width=400,height=80,relief="ridge",bg="cadet blue",bd=20)
self.LoginFrame.grid(row=1,column=0)
self.LoginFrame2 = Frame(self.frame,width=400,height=80,relief="ridge",bg="cadet blue",bd=20)
self.LoginFrame2.grid(row=2,column=0)
#===========LABELS=============
self.lblpid = Label(self.LoginFrame,text="PATIENT ID",font="Helvetica 14 bold",bg="cadet blue",bd=22)
self.lblpid.grid(row=0,column=0)
self.lblpid = Entry(self.LoginFrame,font="Helvetica 14 bold",bd=2,textvariable=self.P_id )
self.lblpid.grid(row=0,column=1)
self.lbldid = Label(self.LoginFrame,text="DATE DISCHARGED(YYYY-MM-DD)",font="Helvetica 14 bold",bg="cadet blue",bd=22)
self.lbldid.grid(row=1,column=0)
self.lbldid = Entry(self.LoginFrame,font="Helvetica 14 bold",bd=2,textvariable=self.dd )
self.lbldid.grid(row=1,column=1)
self.button2 = Button(self.LoginFrame, text="UPDATE DISCHARGE DATE",width =25,font="Helvetica 14 bold",bg="cadet blue",command = self.UPDATE_DATE)
self.button2.grid(row=1,column=3)
self.lbltreat= Label(self.LoginFrame,text="TREATMENT",font="Helvetica 14 bold",bg="cadet blue",bd=22)
self.lbltreat.grid(row=2,column=0)
self.lbltreat = Entry(self.LoginFrame,font="Helvetica 14 bold",bd=2,textvariable=self.treat_1 )
self.lbltreat.grid(row=2,column=1)
self.lblcode_t1= Label(self.LoginFrame,text="TREATMENT CODE",font="Helvetica 14 bold",bg="cadet blue",bd=22)
self.lblcode_t1.grid(row=3,column=0)
self.lblcode_t1= Entry(self.LoginFrame,font="Helvetica 14 bold",bd=2,textvariable=self.treat_2)
self.lblcode_t1.grid(row=3,column=1)
self.lblap = Label(self.LoginFrame,text="TREATMENT COST ₹",font="Helvetica 14 bold",bg="cadet blue",bd=22)
self.lblap.grid(row=4,column=0)
self.lblap = Entry(self.LoginFrame,font="Helvetica 14 bold",bd=2,textvariable=self.cost_t)
self.lblap.grid(row=4,column=1)
self.lblmed = Label(self.LoginFrame,text="MEDICINE",font="Helvetica 14 bold",bg="cadet blue",bd=22)
self.lblmed.grid(row=2,column=2)
self.lblmed = Entry(self.LoginFrame,font="Helvetica 14 bold",bd=2,textvariable=self.med)
self.lblmed.grid(row=2,column=3)
self.med_t1= Label(self.LoginFrame,text="MEDICINE QUANTITY",font="Helvetica 14 bold",bg="cadet blue",bd=22)
self.med_t1.grid(row=3,column=2)
self.med_t1 = Entry(self.LoginFrame,font="Helvetica 14 bold",bd=2,textvariable=self.med_q)
self.med_t1.grid(row=3,column=3)
self.lblapd = Label(self.LoginFrame,text="MEDICINE PRICE ₹",font="Helvetica 14 bold",bg="cadet blue",bd=22)
self.lblapd.grid(row=4,column=2)
self.lblapd = Entry(self.LoginFrame,font="Helvetica 14 bold",bd=2,textvariable=self.price)
self.lblapd.grid(row=4,column=3)
self.button3 = Button(self.LoginFrame2, text="UPDATE DATA",width =15,font="Helvetica 14 bold",bg="cadet blue",command= self.UPDATE_DATA)
self.button3.grid(row=3,column=2)
self.button3 = Button(self.LoginFrame2, text="GENERATE BILL",width =15,font="Helvetica 14 bold",bg="cadet blue",command= self.GEN_BILL)
self.button3.grid(row=3,column=3)
self.button6 = Button(self.LoginFrame2, text="EXIT",width =10,font="Helvetica 14 bold",bg="cadet blue",command = self.Exit)
self.button6.grid(row=3,column=4)
def UPDATE_DATE(self):
global b1,b2
conn = sqlite3.connect("SQL.db")
conn.cursor()
b1 = (self.P_id.get())
b2 =(self.dd.get())
conn.execute("UPDATE ROOM SET DATE_DISCHARGED=? where PATIENT_ID=?", (b2, b1,))
conn.commit()
tkinter.messagebox.showinfo("HOSPITAL DATABASE SYSTEM", "DISCHARGE DATE UPDATED")
def UPDATE_DATA(self):
global c1, b1, P_id, b3, b4, b5, b6, dd, treat_1, treat_2, cost_t, b7, b8, med, med_q, price, u
conn = sqlite3.connect("SQL.db")
c1 = conn.cursor()
b1 = (self.P_id.get())
b3 = (self.treat_1.get())
b4 = (self.treat_2.get())
b5 = (self.cost_t.get())
b6 = (self.med.get())
b7 = (self.med_q.get())
b8 = (self.price.get())
p = list(conn.execute("Select * from TREATMENT where TREATMENT.PATIENT_ID=?", (b1,)))
if len(p) != 0:
tkinter.messagebox.showerror("HOSPITAL DATABSE SYSTEM", "PATIENT ID IS ALREADY REGISTERED")
else:
conn.execute("INSERT INTO TREATMENT VALUES(?,?,?,?)", (b1, b3, b4, b5,))
conn.execute("INSERT INTO MEDICINE VALUES(?,?,?,?)", (b1, b6, b7, b8,))
conn.commit()
tkinter.messagebox.showinfo("HOSPITAL DATABASE SYSTEM", "BILLING DATA SAVED")
def GEN_BILL(self):
global b1
b1 = (self.P_id.get())
conn = sqlite3.connect("SQL.db")
u=conn.execute("Select sum(T_COST+ (M_COST*M_QTY) +(DATE_DISCHARGED-DATE_ADMITTED)*RATE) FROM ROOM NATURAL JOIN TREATMENT natural JOIN MEDICINE where PATIENT_ID=?",(b1,) )
for ii in u:
self.pp=Label(self.LoginFrame,text="TOTAL AMOUNT OUTSTANDING",font="Helvetica 14 bold",bg="cadet blue",bd=22)
self.pp.grid(row=5,column=0)
self.uu=Label(self.LoginFrame,font="Helvetica 14 bold",bg="cadet blue",bd=22,text=ii[0])
self.uu.grid(row=5,column=1)
def Exit(self):
self.master.destroy()