-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
185 lines (169 loc) · 5.79 KB
/
main.py
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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
from livereload import Server
from flask import Flask, render_template,request, redirect
from flask_mysqldb import MySQL
from config import user,password,db,host
from werkzeug.security import generate_password_hash
from flask_login import LoginManager,current_user,login_user,logout_user
import datetime
import queries
app = Flask(__name__)
app.config['MYSQL_USER'] = user
app.config['MYSQL_PASSWORD'] = password
app.config['MYSQL_DB'] = db
app.config['MYSQL_HOST'] = host
mysql = MySQL(app)
login = LoginManager(app)
from models import user, product, customer, sale_order
open_order = False
curCID = 0
curOID = 0
total=0
curOrder = sale_order.Sale_order()
curCustomer = customer.Customer()
@app.route('/signup',methods=['POST','GET'])
def sign_up():
if current_user.is_authenticated:
return redirect('/')
if request.method == 'POST':
result = request.form
if user.get_user(result['username']) is None:
newUser = user.User()
newUser.User(username=result['username'],password=result['password'])
user.add_user(newUser)
return render_template('signup.html')
@app.route('/',methods =['POST','GET'])
def index():
global total
if request.method == 'POST':
result = request.form
print("result is: "+str(result))
item = {
'id':result['item-name'][:1],
'name':result['item-name'][2:],
'price':result['price'],
'quantity':result['quantity'],
'total':int(result['price']) * int(result['quantity'])
}
print(result['item-name'])
curOrder.add_item(item)
curOrder.add_total(item['total'])
print(curOrder.get_total())
myresult = queries.saveItem(item,curOID)
queries.updateTotal(item['total'],curOID)
total = item['total']
if open_order == True:
# queries.updateTotal(total,curOID)
# print(curOrder.get_items())
return render_template('index.html',customer=customer.getCustomer(curCID),items=product.getProducts(),result=curOrder.get_items(),total=curOrder.get_total(),curOID=curOID)
return render_template('index.html',customers=customer.getCustomers())
@app.route('/delete/<value>',methods=['GET'])
def delete_item(value):
global total
value = int(value)
price = queries.getItem(str(value))
total = total - (price[0]*price[1])
queries.deleteItem(str(value))
queries.updateTotal(total,curOID)
return redirect("/")
@app.route('/orders',methods=['GET'])
def showOrders():
global open_order
global total
open_order = False
total = 0
orders = queries.getOrders()
ttotal = 0
for key in orders:
ttotal = ttotal + key[2]
return render_template('sale_orders.html',orders=orders,total=ttotal)
@app.route('/orders/update/<id>',methods=['GET'])
def update_Order(id):
global open_order
global curCID
global curOID
global total
open_order = True
curOID = str(id)
curCID = str(queries.getCustomerBySO(id)[0])
total = int(queries.getTotal(curOID)[0])
return render_template('index.html',customer=queries.getCustomer(curCID),items=product.getProducts(),result=queries.getOrderItems(curOID),total=total,curOID=curOID)
@app.route('/orders/delete/<id>',methods=['GET'])
def delete_Order(id):
queries.deleteOrder(id)
return redirect('/orders')
@app.route('/invoices',methods=['GET','POST'])
def showInvoices():
global open_order
global total
if request.method == 'POST':
result = request.form
myresult = queries.paidOrder(curOID,curCID)
return redirect('/invoices')
open_order = False
total = 0
ttotal = 0
myresult = queries.getInvoices()
print(myresult)
for key in myresult:
ttotal = ttotal + key[2]
return render_template('invoice.html',orders=myresult,total=ttotal)
@app.route('/setCustomer/<id>',methods=['GET'])
def setCustomer(id):
global open_order
global curCID
global curOID
if (open_order != True):
curCustomer = customer.getCustomer(id)
curOrder.Sale_order(0,curCustomer,[])
curCID = curCustomer.get_cid()
print(curCID)
curOID = str(queries.setOrder(id)[0])
open_order = True
return redirect('/')
@app.route('/add',methods=['GET'])
def add():
print(request)
return render_template('add.html')
@app.route('/add/customer',methods=['POST'])
def addCustomer():
if request.method == 'POST':
result = request.form
newCustomer = customer.Customer()
newCustomer.Customer(result['name'],result['address'])
myresult = customer.addCustomer(newCustomer)
return redirect('/add/customer/success')
@app.route('/add/customer/success', methods=['GET'])
def addCustomerSuccess():
return render_template('add.html',alert="Custoemr has been added")
@app.route('/add/product',methods=['POST'])
def addProduct():
if request.method == 'POST':
result = request.form
newProduct = product.Product()
newProduct.Product(result['name'])
myresult = product.addProduct(newProduct)
return redirect('/add/product/success')
@app.route('/add/product/success',methods=['GET'])
def addProductSuccess():
return render_template('add.html',alert='Product has been added')
@app.route('/login', methods=['GET','POST'])
def login():
if current_user.is_authenticated:
print('signed in')
#if request.method == 'POST':
curUser = user.get_user('ahmed')
if curUser is None or not user.check_password('secret'):
print('Invalid username or password')
else:
login_user(user)
print(curUser)
return redirect('/')
@app.route('/logout',methods=['GET'])
def logout():
logout_user()
return redirect('/')
if __name__ == '__main__':
app.debug=True
server = Server(app.wsgi_app)
server.serve()
#app.run(debug='True')