Skip to content

Commit

Permalink
hello
Browse files Browse the repository at this point in the history
  • Loading branch information
miladbarooni committed Jan 23, 2020
2 parents 5c47d87 + 3234977 commit ec5540b
Showing 1 changed file with 133 additions and 7 deletions.
140 changes: 133 additions & 7 deletions snapFood.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,11 @@ def addAddress(self, x, y, user_id, city_id, street = "", alley = "", plaque = "
self._mydb.commit()
return address_id

def searchShopByLocation(self, x, y, radius):
def searchShopByLocation(self, address_id, radius):
self._mycursor.execute("SELECT * FROM LOCATION WHERE ADDRESSaddressid = \'{}\';".format(address_id))
data = self._mycursor.fetchall()
x = data[0][1]
y = data[0][2]
self._mycursor.execute("SELECT * FROM LOCATION;")
data = self._mycursor.fetchall()
sql = "SELECT * FROM SHOP WHERE ADDRESSaddressid IN ("
Expand Down Expand Up @@ -112,12 +116,134 @@ def showFoodsOfShop(self, shop_id): #NOT CHECKED
return self._mycursor.fetchall()

def showCategoryOfShop(self, shop_id): #NOT CHECKED
self._mycursor.execute("SELECT CATEGORY.* FROM CATEGORY JOIN ")
self._mycursor.execute("SELECT CATEGORY.* FROM (CATEGORY JOIN FOOD ON CATEGORYcategoryid = categoryid WHERE SHOPshopid = \'{}\'"
.format(shop_id))
return self._mycursor.fetchall()

def addShopAndAdmin(self, user_name, password, city_id, x, y, shop_name = "", shop_about = "", shop_bill_value = "",
street = "", alley = "", plaque = "", address = ""): #NOT CHECKED
address_id = self.addAddress(x, y, NULL, city_id, street=street, alley=allay, plaque=plaque, address_text=address)
self._mycursor.execute("INSERT INTO SHOP(name, `about-text`, `minimum-bill-value`, ADDRESSaddressid) VALUES (\'{}\', \'{}\', \'{}\', \'{}\');"
.format(shop_name, shop_about, shop_bill_value, address_id))
shop_id = self._mycursor.lastrowid
self._mycursor.execute("INSERT INTO ADMIN(username, password, SHOPshopid) VALUES (?, ?, ?);"
.format(user_name, password, shop_id))
self._mydb.commit()
return self._mycursor.lastrowid

def addFoodToCart(self, food_id, user_id): #NOT CHECKED
self._mycursor.execute("INSERT INTO CART(USERuserid, FOODfoodid) VALUES (\'{}\', \'{}\');"
.format(user_id, food_id))
self._mydb.commit()
return self._mycursor.lastrowid

def finalizeCart(self, user_id, address_id, discount_code = None): #NOT CHECKED
self._mycursor.execute("SELECT FOODfoodid FROM CART WHERE USERuserid = \'{}\';".format(user_id))
foods = self._mycursor.fetchall()
if discount_code != None :
self._mycursor.execute("""SELECT discountid, percent FROM DISCOUNT_USER JOIN DISCOUNT ON discountid = DISCOUNTdiscountid
WHERE Useruserid = \'{}\' AND text = \'{}\';""".format(user_id, discount_code))
data = self._mycursor.fetchall()
if len(data) != 0:
discount_id = data[0][0]
discount_percent = int(data[0][1])
else:
discount_id = NULL
discount_percent = 0
self._mycursor.execute("INSERT INTO STATUS(name) VALUES (\'preparation\');")
status_id = self._mycursor.lastrowid
self._mycursor.execute("SELECT WALLETwalletid FROM USER WHERE userid = \'{}\';".format(user_id))
wallet_id = self._mycursor.fetchall()[0][0]
self._mycursor.execute("""INSERT INTO INVOIC(DISCOUNTdiscountid, COMMENTcommentid, STATUSstatusid, ADDRESSaddressid, WALLETwalletid, `total-price`)
VALUES (\'{}\', \'{}\', \'{}\', \'{}\', \'{}\', 0);""".format(discount_id, NULL, status_id, address_id, wallet_id))
invoic_id = self._mycursor.lastrowid
total_price = 0
for food in foods:
self._mycursor.execute("INSERT INTO FOOD_INVOIC(FOODfoodid, INVOICinvoiceid) VALUES (\'{}\', \'{}\');"
.format(food[0], invoic_id))
self._mycursor.execute("SELECT minimum-bill-value, price FROM SHOP JOIN FOOD ON shopid = SHOPshopid AND foodid = \'{}\'"
.format(food[0]))
data = self._mycursor.fetchall()
price = int(data[0][1])
shop_bill_value = int(data[0][0])
if shop_bill_value > price - (price * discount_percent):
total_price += shop_bill_value
else:
total_price += price - (price * discount_percent);
self._mycursor.execute("SELECT balance FROM WALLET WHERE walletid = \'{}\'".format(wallet_id))
balance = int(self._mycursor.fetchall()[0][0])
self._mycursor.execute("UPDATE WALLET SET balance = \'{}\' WHERE walletid = \'{}\';".format(balance - total_price, wallet_id))
self._mycursor.execute("UPDATE INVOIC SET `total-price` = \'{}\' WHERE invoicid = \'{}\';".format(total_price, invoic_id))
self._mydb.commit()
return invoic_id

def showBuyHistory(self, user_id): #NOT CHECKED
"""
invoiceid, total-price, DISCOUNT.text, ADDRESSaddressid, FOODfoodid, COMMENT.commentid, STATUS.name
"""
self._mycursor.execute("""SELECT invoiceid, `total-price`, DISCOUNT.text, ADDRESSaddressid, FOODfoodid, COMMENT.commentid, STATUS.name FROM
((((((INVOIC JOIN DISCOUNT ON DISCOUNTdiscountid = discountid)
JOIN COMMENT ON COMMENTcomentid = commentid)
JOIN (FOOD_INVOIC ON INVOICinvoicid = invoiceid) JOIN FOOD ON FOODfoodid = foodid)
JOIN STATUS ON STATUSstatusid = statusid)
JOIN ADDRESS ON ADDRESSaddressid = addressid)
JOIN WALLET ON WALLETwalletid = walletid)
JOIN USER ON WALLET.walletid = USER.WALLETwalletid WHERE USER.userid = \'{}\'""".format(user_id))
return self._mycursor.fetchall()

def addComment(self, invoic_id, rate, text = None): #NOT CHECKED
self._mycursor.execute("INSERT INTO COMMENT(rate, text) VALUES (\'{}\', \'{}\');".format(rate, text))
comment_id = self._mycursor.lastrowid
self._mycursor.execute("UPDATE INVOIC SET COMMENTcommentid = \'{}\' WHERE invoiceid = \'{}\';".format(comment_id,invoic_id))
self._mydb.commit()
return comment_id

def showFoods(self, food_ids): #NOT CHECKED
"""
food_ids in a list
"""
sql = "SELECT * FROM FOOD WHERE foodid IN ("
lst = ""
for food_id in food_ids:
if len(lst) == 0:
lst += str(food_id)
else:
lst += (", " + str(food_id))
sql += (lst + ");")
self._mycursor.execute(sql)
return self._mycursor.fetchall()

def ShowStatus(self, invoic_id): #NOT CHECKED
self._mycursor.execute("SELECT STATUS.name FROM STATUS JOIN INVOICE ON statusid = STATUSstatusid WHERE invoiceid = \'{}\'"
.format(invoic_id))
return self._mycursor.fetchall()

def showOrderByShop(self, user_id, shop_id): #NOT CHECKED
self._mycursor.execute("""SELECT FOOD.* FROM
((FOOD JOIN JOIN `FOOD-INVOIC` ON FOODfoodid = foodid)
JOIN INVOIC ON INVOICEinvoiceid = invoiceid)
JOIN USER ON USER.WALLETwalletid = INVOIC.WALLETwalletid
WHERE USER.userid = \'{}\' AND FOOD.SHOPshopid = \'{}\'""".format(user_id, shop_id))
return self._mycursor.fetchall()

def searchShop(self, city_id = None, name = None, min_bill_val = -1): #NOT CHECKED
sql = "SELECT SHOP.* FROM SHOP JOIN ADDRESS ON ADDRESSaddressid = addressid WHERE "
need_and = 0
if city_id != None :
sql += ("ADDRESS.CITYcityid = \'{}\'".format(city_id))
need_and = 1
if name != None :
if need_and == 1 :
sql += " AND "
sql += ("SHOP.name LIKE \'{}%\'".format(name))
need_and = 1
if min_bill_val != -1:
if need_and == 1 :
sql += " AND "
sql += ("SHOP.minimum-bill-value > \'{}\'".format(min_bill_val))
sql += ";"
self._mycursor.execute(sql)
return self._mycursor.fetchall()

def close(self):
self._mydb.close()

db = SnapFoodDB()
# print(db.addAddress("0", "0", 1, 2, "Pasdaran BLVD.", "Aghaee St.", "22", "Hadis St."))
# print(db.showAddress(1))
db.close()

0 comments on commit ec5540b

Please sign in to comment.