示例#1
0
    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
示例#2
0
 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
示例#3
0
 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
示例#4
0
 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
示例#5
0
 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
示例#6
0
    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
示例#7
0
    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
示例#8
0
 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