diff --git a/app/classes/delivery.py b/app/classes/delivery.py index f63fc0d..158bc64 100755 --- a/app/classes/delivery.py +++ b/app/classes/delivery.py @@ -43,6 +43,7 @@ class Delivery_Delivery(db.Model): expected_delivery_date = db.Column(db.DATE(), default=None) # automatic delivery automatic = db.Column(db.INTEGER) + automatic_id = db.Column(db.INTEGER) # OIL info and id from table oil_id = db.Column(db.INTEGER) supplier_price = db.Column(db.DECIMAL(50, 2)) diff --git a/app/customer/views.py b/app/customer/views.py index a90f16c..f9379a8 100755 --- a/app/customer/views.py +++ b/app/customer/views.py @@ -305,6 +305,13 @@ def customer_automatic_assignment(customer_id): .filter(Auto_Delivery.customer_id == customer_id) .first()) + get_main_credit_card = (db.session + .query(Card_Card) + .filter(Card_Card.user_id == customer_id) + .filter(Card_Card.main_card == True) + .first()) + + if get_customer.customer_automatic == 1: # customer becomes will call get_customer.customer_automatic = 0 @@ -313,8 +320,16 @@ def customer_automatic_assignment(customer_id): if get_auto is not None: db.session.delete(get_auto) - status = 0 + status = 3 else: + + if get_main_credit_card is None: + status = 2 + return jsonify({ + "ok": True, + 'status': status + }), 200 + # customer becames an automatic if get_auto is None: create_auto = Auto_Delivery(customer_id = customer_id, diff --git a/app/delivery/views.py b/app/delivery/views.py index 8dec272..de1a2b5 100755 --- a/app/delivery/views.py +++ b/app/delivery/views.py @@ -571,9 +571,6 @@ def create_a_delivery(user_id): customer_filled_name = get_customer.customer_last_name + ' ' + get_customer.customer_first_name now = datetime.utcnow() - - - # Pricing if customer_fill_up == 1: diff --git a/app/delivery_data/views.py b/app/delivery_data/views.py index 5f68f1b..1faea0a 100755 --- a/app/delivery_data/views.py +++ b/app/delivery_data/views.py @@ -1,16 +1,16 @@ from flask import request, jsonify from datetime import datetime +from decimal import Decimal from app.delivery_data import delivery_data from app import db from app.classes.customer import Customer_Customer from app.classes.delivery import Delivery_Delivery from app.classes.employee import Employee_Employee from app.classes.cards import Card_Card -from app.classes.stats_employee import Stats_Employee_Oil, Stats_Employee_Office +from app.classes.stats_employee import Stats_Employee_Oil from app.classes.auto import Auto_Delivery - @delivery_data.route("/finalize/", methods=["PUT"]) def office_finalize_delivery(delivery_id): """ @@ -41,39 +41,6 @@ def office_finalize_delivery(delivery_id): else: card_payment_id = None - if get_delivery.automatic == 1: - - get_auto_delivery = (db.session - .query(Auto_Delivery) - .filter(Auto_Delivery.customer_id == get_delivery.customer_id) - .first()) - - customer_home_factor = get_auto_delivery.house_factor - - if gallons_delivered == 150: - get_auto_delivery.house_factor = customer_home_factor - elif 200.01 >= gallons_delivered: - get_auto_delivery.house_factor = customer_home_factor + 1 - elif 170.01 <= gallons_delivered <= 200: - get_auto_delivery.house_factor = customer_home_factor + 1.5 - elif 150.01 <= gallons_delivered <= 199: - get_auto_delivery.house_factor = customer_home_factor + 1.25 - elif 120.01 <= gallons_delivered <= 150: - get_auto_delivery.house_factor = customer_home_factor - .25 - elif 90.01 <= gallons_delivered <= 120: - get_auto_delivery.house_factor = customer_home_factor - .50 - elif 0.01 <= gallons_delivered <= 90: - get_auto_delivery.house_factor = customer_home_factor - .75 - else: - get_auto_delivery.house_factor = customer_home_factor - - - get_auto_delivery.tank_height = 'Full' - get_auto_delivery.last_fill = now - get_auto_delivery.estimated_gallons_left = 240 - get_auto_delivery.estimated_gallons_left_prev_day = 240 - - db.session.add(get_auto_delivery) if card_payment_id is not None: @@ -137,7 +104,6 @@ def driver_finalize_delivery(delivery_id): """ Finalizes a delivery from office """ - now = datetime.utcnow() @@ -151,10 +117,23 @@ def driver_finalize_delivery(delivery_id): .filter(Stats_Employee_Oil.employee_id == get_delivery.driver_employee_id) .first()) - + if get_stats is None: + create_stats = Stats_Employee_Oil( + employee_id = get_delivery.driver_employee_id, + total_deliveries = 0, + total_gallons_delivered = 0, + total_primes = 0, + oil_total_profit_delivered = 0, + ) + db.session.add(create_stats) + db.session.flush() + get_stats = (db.session + .query(Stats_Employee_Oil) + .filter(Stats_Employee_Oil.employee_id == get_delivery.driver_employee_id) + .first()) gallons_delivered = request.json["gallons_delivered"] - + gallons_delivered = Decimal(gallons_delivered) delivery_driver_id = request.json["driver_employee_id"] @@ -194,42 +173,15 @@ def driver_finalize_delivery(delivery_id): ## AUTOMATIC - if get_delivery.automatic == 1: - get_auto_delivery = (db.session .query(Auto_Delivery) .filter(Auto_Delivery.customer_id == get_delivery.customer_id) .first()) - customer_home_factor = get_auto_delivery.house_factor - - if gallons_delivered == 150: - get_auto_delivery.house_factor = customer_home_factor - elif 200.01 >= gallons_delivered: - get_auto_delivery.house_factor = customer_home_factor + 1 - elif 170.01 <= gallons_delivered <= 200: - get_auto_delivery.house_factor = customer_home_factor + 1.5 - elif 150.01 <= gallons_delivered <= 199: - get_auto_delivery.house_factor = customer_home_factor + 1.25 - elif 120.01 <= gallons_delivered <= 150: - get_auto_delivery.house_factor = customer_home_factor - .25 - elif 90.01 <= gallons_delivered <= 120: - get_auto_delivery.house_factor = customer_home_factor - .50 - elif 0.01 <= gallons_delivered <= 90: - get_auto_delivery.house_factor = customer_home_factor - .75 - else: - get_auto_delivery.house_factor = customer_home_factor - - - get_auto_delivery.tank_height = 'Full' - get_auto_delivery.last_fill = now - get_auto_delivery.estimated_gallons_left = 240 - get_auto_delivery.estimated_gallons_left_prev_day = 240 - + get_auto_delivery.auto_status = 2 db.session.add(get_auto_delivery) - get_delivery.gallons_delivered = gallons_delivered get_delivery.prime = prime_info @@ -264,7 +216,6 @@ def driver_finalize_delivery(delivery_id): db.session.add(get_delivery) db.session.commit() - return jsonify({ "ok": True, 'delivery': { @@ -272,3 +223,4 @@ def driver_finalize_delivery(delivery_id): }, }), 200 + diff --git a/app/stats/views.py b/app/stats/views.py index b197c44..054d613 100755 --- a/app/stats/views.py +++ b/app/stats/views.py @@ -30,7 +30,6 @@ def total_deliveries_driver(driver_id): .query(Delivery_Delivery) .filter(Delivery_Delivery.driver_employee_id == driver_id) .count()) - print(total_stops) return jsonify({"ok": True, 'data': total_stops, }), 200 @@ -42,7 +41,6 @@ def total_deliveries_today(): .query(Delivery_Delivery) .filter(Delivery_Delivery.expected_delivery_date == date.today()) .count()) - print(total_stops) return jsonify({"ok": True, 'data': total_stops, }), 200 @@ -56,7 +54,7 @@ def total_deliveries_today_finished(): .filter(or_(Delivery_Delivery.delivery_status == 1),(Delivery_Delivery.delivery_status == 10)) .count()) - print(total_stops) return jsonify({"ok": True, 'data': total_stops, }), 200 +