|
10 | 10 | from models.drink import Drink |
11 | 11 | from models.menu_item import MenuItem |
12 | 12 | from models.driver import Driver |
| 13 | +from models.address import Address |
| 14 | +from models.customer import Customer |
13 | 15 | from models.order import Order |
14 | 16 | from models.order_item import OrderItem |
15 | 17 |
|
@@ -92,18 +94,46 @@ def show_ingredients(name): |
92 | 94 | print(ingredient) |
93 | 95 |
|
94 | 96 |
|
95 | | -def save_new_order(address, customer_name, customer_number, order_items): |
| 97 | +def save_new_order(customer, order_items): |
96 | 98 | order_time = datetime.today() |
97 | 99 | new_order_items = [] |
98 | 100 | status = "In Process" |
99 | 101 | driver = get_first_available_driver() |
100 | 102 | driver_id = driver.id |
101 | 103 | driver.available = False |
| 104 | + address = customer["address"] |
| 105 | + address_found = Address.query.filter_by(street=address["street"], |
| 106 | + house_number=address["house_number"], |
| 107 | + zip_code=address["zip_code"], |
| 108 | + area=address["area"]).first() |
| 109 | + if address_found: |
| 110 | + new_address = address_found |
| 111 | + else: |
| 112 | + new_address = Address(street=address["street"], |
| 113 | + house_number=address["house_number"], |
| 114 | + zip_code=address["zip_code"], |
| 115 | + area=address["area"]) |
| 116 | + db.session.add(new_address) |
| 117 | + db.session.commit() |
| 118 | + |
| 119 | + address_id = new_address.id |
| 120 | + customer_found = Customer.query.filter_by(first_name=customer["first_name"], |
| 121 | + last_name=customer["last_name"], |
| 122 | + phone_number=customer["phone_number"], |
| 123 | + address_id=address_id).first() |
| 124 | + if customer_found: |
| 125 | + new_customer = customer_found |
| 126 | + else: |
| 127 | + new_customer = Customer(first_name=customer["first_name"], |
| 128 | + last_name=customer["last_name"], |
| 129 | + phone_number=customer["phone_number"], |
| 130 | + address_id=address_id) |
| 131 | + db.session.add(new_customer) |
| 132 | + db.session.commit() |
| 133 | + customer_id = new_customer.id |
102 | 134 | for item in order_items: |
103 | 135 | new_order_items.append(OrderItem(menu_item=item['menu_item'], quantity=item['quantity'])) |
104 | | - new_order = Order(address=address, |
105 | | - customer_name=customer_name, |
106 | | - customer_number=customer_number, |
| 136 | + new_order = Order(customer_id=customer_id, |
107 | 137 | order_time=order_time, |
108 | 138 | status=status, |
109 | 139 | driver_id=driver_id, |
|
0 commit comments