Esempio n. 1
0
    def setUp(self):
        """
        Will be called before every test
        """
        # ensure there is no data in the test database when the test starts
        db.session.commit()
        db.drop_all()
        db.create_all()

        addStock = Stock(pizza_name="Test Pizza")

        addOrder = Orders(first_name="Ordero",
                          last_name="lastorder",
                          number="987654321",
                          address="61 Zoo Lane",
                          pizzaid="1",
                          order_quantity="2")

        addOrder2 = Orders(first_name="Orderino",
                           last_name="lastorderio",
                           number="9876543212",
                           address="66 Zoo Lane",
                           pizzaid="1",
                           order_quantity="2")
        db.session.add(addOrder)
        db.session.add(addOrder2)
        db.session.add(addStock)
        db.session.commit()
Esempio n. 2
0
def product(productItem):
    form = OrdersForm()
    theProduct = Product.query.filter_by(id=productItem).first()
    itemPrice = theProduct.price
    amountProduct = Product.query.order_by(Product.id.desc()).first()
    if int(productItem
           ) > amountProduct.id or not current_user.is_authenticated:
        return redirect(url_for('home'))
    elif form.validate_on_submit():
        orderData = Orders(customer=current_user)

        db.session.add(orderData)
        db.session.commit()
        theOrder = Orders.query.order_by(Orders.id.desc()).first()
        order_lineData = Order_line(order_id=theOrder.id,
                                    product_id=productItem,
                                    quantity=form.quantity.data,
                                    total=(form.quantity.data * itemPrice))
        if order_lineData.quantity > theProduct.stock:
            db.session.delete(theOrder)
            db.session.commit()
            return redirect(url_for('home'))

        db.session.add(order_lineData)
        theProduct.stock -= order_lineData.quantity
        db.session.commit()

        return redirect(url_for('home'))

    return render_template('product.html',
                           title='Product',
                           data=theProduct,
                           form=form)
Esempio n. 3
0
    def setUp(self):
        db.session.commit()
        db.drop_all()
        db.create_all()

        testUser = Users(first_name="test",
                         last_name="user",
                         email="*****@*****.**",
                         password=(bcrypt.generate_password_hash("test")))
        db.session.add(testUser)
        testProduct = Product(name="testBoard",
                              style="Fish",
                              volume=55.0,
                              size=9.0,
                              price=500,
                              stock=10,
                              user_id=1)
        db.session.add(testProduct)
        testOrder = Orders(user_id=1)
        db.session.add(testOrder)
        theOrder = Orders.query.order_by(Orders.id.desc()).first()
        testOrder_line = Order_line(order_id=theOrder.id,
                                    product_id=1,
                                    quantity=10,
                                    total=2500)
        db.session.add(testOrder_line)
        db.session.commit()
Esempio n. 4
0
def addorder():
    form = OrderForm()
    if form.validate_on_submit():
        order = Orders(date=form.date.data)
        db.session.add(order)
        db.session.commit()
        return redirect(url_for('order'))
    return render_template('addorder.html', title='Add an Order', form=form)
Esempio n. 5
0
    def setUp(self):
        db.create_all()

        new_user = Users(
            email="*****@*****.**",
            name="Test",
            house_number="8",
            postcode="G3 8PX",
            phone="07999999999",
        )
        db.session.add(new_user)

        new_order = Orders(customer_id=1)
        db.session.add(new_order)

        new_order = Orders(customer_id=1, order_status="out for delivery")
        db.session.add(new_order)

        new_order = Orders(customer_id=1, order_status="delivered")
        db.session.add(new_order)
        db.session.commit()
Esempio n. 6
0
def order():
    form = OrderForm()
    if request.method == 'POST':
        if form.validate_on_submit():
            orderData = Orders(first_name=form.first_name.data,
                               last_name=form.last_name.data,
                               number=form.number.data,
                               address=form.address.data,
                               pizzaid=form.pizzaid.data,
                               order_quantity=form.order_quantity.data)

            db.session.add(orderData)
            db.session.commit()
            return redirect(url_for('home'))

    return render_template('order.html', title='Order', form=form)
Esempio n. 7
0
def add_order():
    form = OrderForm()

    if request.method == "POST":
        if form.validate_on_submit():
            user = Users.query.filter_by(email=form.email.data).first()
            if user is None:
                flash("Account does not exist.")
            elif user is not None:
                new_order = Orders(
                    customer_id=user.id,
                    date=datetime.now(pytz.timezone("Europe/London")).date(),
                    time=datetime.now(pytz.timezone("Europe/London")).replace(
                        microsecond=0).time(),
                )
                db.session.add(new_order)
                db.session.commit()
                flash(f"New order has been placed by {user.name}.")

    return render_template("add-order.html", form=form, title="Place Order")
    def setUp(self):
        """Setup the test driver and create test users"""
        print(
            "--------------------------NEXT-TEST----------------------------------------------"
        )
        chrome_options = Options()
        chrome_options.binary_location = "/usr/bin/chromium-browser"
        chrome_options.add_argument("--headless")
        self.driver = webdriver.Chrome(
            executable_path=
            "/home/jamesljeffrey1995/surfBoardShop/chromedriver",
            chrome_options=chrome_options)
        self.driver.get("http://*****:*****@test.com",
                         password=(bcrypt.generate_password_hash("test")))
        db.session.add(testUser)
        testProduct = Product(name="testBoard",
                              style="Fish",
                              volume=55.0,
                              size=9.0,
                              price=500,
                              stock=10,
                              user_id=1)
        db.session.add(testProduct)
        testOrder = Orders(user_id=1)
        db.session.add(testOrder)
        theOrder = Orders.query.order_by(Orders.id.desc()).first()
        testOrder_line = Order_line(order_id=theOrder.id,
                                    product_id=1,
                                    quantity=10,
                                    total=2500)
        db.session.add(testOrder_line)
        db.session.commit()
Esempio n. 9
0
def add_orders():
    if request.method == 'POST':
        if int(request.form['quantity_ordered']) <= int(
                Products.query.filter_by(id=int(
                    request.form['fk_product_id'])).first().quantity_in_stock):
            new_purchase_date = request.form['date']
            new_product_price = request.form['price']
            new_cash_payment = request.form['cash_payment']
            new_fk_customer_id = request.form['fk_customer_id']
            new_fk_product_id = request.form['fk_product_id']
            new_quantity_ordered = request.form['quantity_ordered']
            if round(float(request.form['cash_payment']), 2) == round(
                    float(
                        Products.query.filter_by(
                            id=new_fk_product_id).first().price) *
                (float(request.form['quantity_ordered'])), 2):
                if round(float(new_product_price), 2) == round(
                        float(
                            Products.query.filter_by(
                                id=new_fk_product_id).first().price), 2):
                    Products.query.filter_by(id=int(new_fk_product_id)).first(
                    ).quantity_in_stock = int(
                        Products.query.filter_by(id=int(new_fk_product_id)).
                        first().quantity_in_stock) - int(new_quantity_ordered)
                    db.session.commit()
                    new_order = Orders(purchase_date=new_purchase_date,
                                       price=new_product_price,
                                       cash_payment=new_cash_payment,
                                       quantity_ordered=new_quantity_ordered,
                                       fk_customer_id=new_fk_customer_id,
                                       fk_product_id=new_fk_product_id
                                       )  #,prepaid_payment=new_prepaid_payment
                    db.session.add(new_order)
                    db.session.commit()
                    return redirect(url_for('read_orders'))
                else:
                    return str(
                        round(
                            float(
                                Products.query.filter_by(
                                    id=new_fk_product_id).first().price), 2)
                    ) + "Oops, that wasn't the right price" + (
                        '<br> <a href="/orders/add">Try again?</a> </br>')
            else:
                return (
                    "<h3><br>Oops, that wasn't right. The total price should be "
                    + "£" + str(
                        round(
                            (float(
                                Products.query.filter_by(
                                    id=new_fk_product_id).first().price)) *
                            float(request.form['quantity_ordered']), 2)).ljust(
                                4, '0') + "</h3>" +
                    ('<br> <a href="/orders/add">Try Again?</a> </br>') +
                    ('<br> <a href="/orders/update2">Update Orders table</a> </br>'
                     ) +
                    ('<br> <br><a href="/orders">Return to Orders home</a> </br>'
                     ) + ('<br> <a href="/">Return to Home</a> </br>'))
        else:
            return (
                "<h3><br>Sorry, there isn't enough of that product in stock</h3>"
                + ('<br> <a href="/orders/add">Try Again?</a> </br>') +
                ('<br> <a href="/orders/update2">Update Orders table</a> </br>'
                 ) +
                ('<br> <br><a href="/orders">Return to Orders home</a> </br>')
                + ('<br> <a href="/">Return to Home</a> </br>'))
Esempio n. 10
0
 def test_updateorder_get(self):
     testdata2 = Orders(date="30-05-2020")
     db.session.add(testdata2)
     db.session.commit()
     response = self.client.get(url_for('updateorder', id=1))
     self.assertEqual(response.status_code, 200)
Esempio n. 11
0
# drop and then create tables from scratch. All previous data is wiped, so this file should be run only to setup or restart the entire system
db.drop_all()
db.create_all()

# add test customer record
customer_add = Customers(first_name="Test_First_Name",
                         last_name="Test_Last_Name",
                         customer_address='Test_Address',
                         customer_dob='2002-07-05')
db.session.add(customer_add)

# add test product
db.session.add(
    Products(product_name="Test_Product",
             product_brand="Test_Brand",
             quantity_in_stock=100,
             cost_per_item=1,
             price=1))

# add test order
order_add = Orders(purchase_date='1500-01-01',
                   price=1,
                   cash_payment=1,
                   quantity_ordered=1,
                   fk_customer_id=1,
                   fk_product_id=1)
db.session.add(order_add)

db.session.commit()