def addItemInCartOfUser(userID, productID): result = {} print(productID) row = SqlExecuter.getOneRowsPacked( 'select * from Товар where id = {};'.format(productID)) if (row is None): result['status'] = 2 result['message'] = 'No such product' return result if (row['quantity'] == 0): result['status'] = 4 result['message'] = 'Zero quantity of called product' return result quantityOfProduct = row['quantity'] try: row = SqlExecuter.getOneRowsPacked( 'select * from Корзина where product_id = {} and user_id = {};' .format(productID, userID)) except: result['status'] = 1 result['message'] = 'SQL Runtime error' return result if (row is not None): if (row['count'] >= quantityOfProduct): result['status'] = 5 result['message'] = 'Not enough products' return result try: SqlExecuter.executeModif( 'update Корзина set count = count + 1 \ where product_id = {} and user_id = {}'.format( productID, userID)) except: result['status'] = 1 result['message'] = 'SQL Runtime error' return result result['status'] = 0 result['message'] = 'Inc count' return result try: SqlExecuter.executeModif( 'insert into Корзина values({},{},1)'.format( userID, productID)) except: result['status'] = 1 result['message'] = 'SQL Runtime error' return result result['status'] = 0 result['message'] = 'Add new values' return result
def cancelOrder(userID, orderID): result = {} if (not Order.checkIfUserHaveOrderWith(userID, orderID)): result['status'] = 3 result['message'] = 'Why are you so curious?' result['data'] = [] return result if (not Order.checkIfOrderExists(orderID)): result['status'] = 40 result['message'] = 'Not founded' result['data'] = [] return result query = 'update Заказ set status = 4 where id = {};'.format(orderID) SqlExecuter.executeModif(query) result['status'] = 0 result['message'] = 'OK' result['data'] = [] return result
def removeItemInCartOfUser(userID, productID): result = {} try: row = SqlExecuter.getOneRowsPacked( 'select * from Корзина where product_id = {} and user_id = {};' .format(productID, userID)) except IndexError: result['status'] = 1 result['message'] = 'SQL Runtime error' return result if (row is not None): if (row['count'] > 1): try: SqlExecuter.executeModif( 'update Корзина set count = count - 1 where \ product_id = {} and user_id = {};'.format( productID, userID)) except IndexError: result['status'] = 1 result['message'] = 'SQL Runtime error' return result result['status'] = 0 result['message'] = 'OK' return result try: SqlExecuter.executeModif('delete from Корзина where \ product_id = {} and user_id = {};'.format( productID, userID)) except IndexError: result['status'] = 1 result['message'] = 'SQL Runtime error' return result result['status'] = 0 result['message'] = 'OK' return result result['status'] = 2 result['message'] = 'Not found item' return result
def addUser(data): result = {} try: last_name = data['last_name'] first_name = data['first_name'] password = data['password'] birthdate = data['birthdate'] email = data['email'] except KeyError: result['status'] = 6 result['message'] = 'Required field is missing' return result try: SqlExecuter.executeModif( 'insert into Покупатель values("{}","{}",NULL,"{}","{}","{}");' .format(last_name, first_name, email, birthdate, md5helper.ecnrypt(password))) except Exception: result['status'] = 1 result['message'] = 'SQL runtime error' return result result['status'] = 0 result['message'] = 'OK' return result
def addNewRate(userID, productID, mark): result = {} row = SqlExecuter.getOneRowsPacked( 'select * from Рейтинг where user_id = {} and product_id = {};'. format(userID, productID)) if (row is not None): result['status'] = 9 result['message'] = 'User already set mark' result['data'] = [] return result lastrowid = SqlExecuter.executeModif( 'insert into Рейтинг values({},{},{});'.format( productID, userID, mark)) if (lastrowid != -1): result['status'] = 0 result['message'] = 'OK' result['data'] = lastrowid else: result['status'] = 1 result['message'] = 'SQL Runtime error' result['data'] = [] return result
def registerUser(email, password, last_name, first_name, birthdate): result = {} row = SqlExecuter.getOneRowsPacked( 'select * from Покупатель where email="{}";'.format(email)) if (row is not None ): # Проверка,если пользователь с таким email существует result['status'] = 8 result['message'] = 'User with same email already exists' return result if (not validationForm.validationEmail(email) ): # Если неправильно введен email result['status'] = 7 result['message'] = 'Incorrect email' return result lastrowid = SqlExecuter.executeModif( 'insert into Покупатель(`email`,`last_name`,`first_name`,`birthdate`,`password_hash`) \ values("{}","{}","{}","{}","{}")'.format( email, last_name, first_name, birthdate, md5helper.ecnrypt(password))) result["status"] = 0 result["message"] = "OK" result["userID"] = lastrowid return result
def addNewOrder(userID, district, flat, house, floor, street, porch='', email='', desc='', phone=''): result = {} try: quantityInCart = Cart.getCountOfItemsInCart(userID) if (quantityInCart['status'] == 2): result['status'] = 2 result['message'] = 'Empty cart' result['data'] = [] return result except IndexError: result['status'] = 1 result['message'] = 'SQL runtime error' result['data'] = [] return result cartOfUser = Cart.getCartOfUser(userID)['data'] isError = False for row in cartOfUser: product = SqlExecuter.getOneRowsPacked( 'select * from Товар where id = {};'.format(row['id'])) if (product['quantity'] < row['count']): isError = True SqlExecuter.executeModif( 'delete from Корзина where product_id = {} and user_id = {};' .format(row['id'], userID)) if (isError): result['status'] = 10 result[ 'message'] = 'Attempt to order product with incorrect quantity' return result try: lastrowidAddress = Address.addNewAddress(district, house, floor, flat, porch, street) except IndexError: result['status'] = 1 result['message'] = 'SQL runtime error' result['data'] = [] return result try: lastrowid = SqlExecuter.executeModif( 'insert into Заказ(`user_id`,`status`,`total`,`address_id`,`description`,`email`,`phone`) values({},{},{},{},"{}","{}","{}");' .format(userID, 0, Cart.countTotalCostOfUser(userID), lastrowidAddress, desc, email, phone)) except IndexError: result['status'] = 1 result['message'] = 'SQL runtime error' result['data'] = [] return result data = {'id': lastrowid, "data": cartOfUser} for row in cartOfUser: try: SqlExecuter.executeModif('insert into Забронированная_книга \ values({},{},{},{})'.format(row['id'], row['count'], lastrowid, row['cost'])) SqlExecuter.executeModif('delete from Корзина where \ user_id = {} and product_id = {};'.format( userID, row['id'])) SqlExecuter.executeModif( 'update Товар set quantity = quantity - {} where id = {};'. format(row['count'], row['id'])) except IndexError: result['status'] = 1 result['message'] = 'SQL runtime error' result['data'] = [] return result result['status'] = 0 result['message'] = 'OK' result['data'] = data # if(email is not None): # emailSender.EmailSender.sendEmailTo([email],orderDetails=result['data']) return result
def addNewAddress(district, house, floor, flat, porch, street): lastrowid = SqlExecuter.executeModif( 'insert into Адрес(`district`,`house`,`floor`,`flat`,`porch`,`street`) values("{}","{}","{}","{}","{}","{}");' .format(district, house, floor, flat, porch, street)) return lastrowid