From 52172812cbf641298330b69da695c9cd596e9c9f Mon Sep 17 00:00:00 2001 From: amnesia Date: Thu, 14 Mar 2024 14:11:09 -0400 Subject: [PATCH] Changes --- app/classes/delivery.py | 4 +- app/delivery/views.py | 2 + app/delivery_data/views.py | 112 +++++++++++++++++++++++++---------- app/delivery_status/views.py | 38 ++++++++---- 4 files changed, 111 insertions(+), 45 deletions(-) diff --git a/app/classes/delivery.py b/app/classes/delivery.py index 11bebd8..0c1fe73 100644 --- a/app/classes/delivery.py +++ b/app/classes/delivery.py @@ -33,7 +33,6 @@ class Delivery_Delivery(db.Model): # cancelled = 3 # partial delivery = 4 # issue = 5 - # finalized = 10 delivery_status = db.Column(db.INTEGER) # when the call to order took place @@ -58,7 +57,8 @@ class Delivery_Delivery(db.Model): # credit = 1 payment_type = db.Column(db.INTEGER) payment_card_id = db.Column(db.INTEGER) - + cash_recieved = db.Column(db.DECIMAL(50, 2)) + driver_employee_id = db.Column(db.INTEGER) driver_first_name = db.Column(db.VARCHAR(140)) driver_last_name = db.Column(db.VARCHAR(140)) diff --git a/app/delivery/views.py b/app/delivery/views.py index 5a430f0..e2242a5 100644 --- a/app/delivery/views.py +++ b/app/delivery/views.py @@ -16,6 +16,8 @@ from app.classes.pricing import Pricing_Oil_Oil from app.classes.auth import Auth_User from app.classes.pricing import Pricing_Service_General + + @delivery.route("/", methods=["GET"]) def get_a_delivery(delivery_id): """ diff --git a/app/delivery_data/views.py b/app/delivery_data/views.py index d3aa6f4..515216c 100644 --- a/app/delivery_data/views.py +++ b/app/delivery_data/views.py @@ -1,44 +1,20 @@ from flask import request, jsonify -from flask_login import current_user -from datetime import date from app.delivery_data import delivery_data from app import db -from datetime import datetime from app.classes.customer import Customer_Customer -from app.classes.delivery import (Delivery_Delivery, - Delivery_Delivery_schema, - Delivery_Notes_Driver, - Delivery_Payment, - Delivery_Payment_schema, - ) +from app.classes.delivery import Delivery_Delivery +from app.classes.employee import Employee_Employee from app.classes.cards import Card_Card from app.classes.pricing import Pricing_Oil_Oil -from app.classes.auth import Auth_User -from app.classes.pricing import Pricing_Service_General -@delivery_data.route("/pending", methods=["GET"]) -def pending_delivery(): - """ - Get deliveries that have been delivered - """ - - delivery_ticket = (db.session - .query(Delivery_Delivery) - .filter(Delivery_Delivery.delivery_status!=0) - .all()) - - - delivery_schema = Delivery_Delivery_schema(many=True) - return jsonify(delivery_schema.dump(delivery_ticket)) - @delivery_data.route("/finalize/", methods=["PUT"]) -def finalize_delivery(delivery_id): +def office_finalize_delivery(delivery_id): """ - Get deliveries that have been delivered + This will make a delivery finalized from the driver """ """ @@ -63,7 +39,6 @@ def finalize_delivery(delivery_id): gallons_delivered = request.json["gallons_delivered"] card_payment = request.json["credit"] cash_payment = request.json["cash"] - if request.json["credit_card_id"]: card_payment_id = request.json["credit_card_id"] else: @@ -91,7 +66,6 @@ def finalize_delivery(delivery_id): delivery_payment_method = 3 - same_day_info = request.json["same_day"] if same_day_info is True: same_day_info = 1 @@ -111,6 +85,84 @@ def finalize_delivery(delivery_id): get_delivery.payment_card_id = card_id_from_customer get_delivery.delivery_status = 10 + + db.session.add(get_delivery) + db.session.commit() + + return jsonify({ + "ok": True, + 'delivery': { + 'id': get_delivery.id, + }, + }), 200 + + + +@delivery_data.route("/driver/finalize/", methods=["PUT"]) +def driver_finalize_delivery(delivery_id): + """ + This will make a delivery finalized from the driver + """ + + """ + Finalizes a delivery from office + """ + get_delivery = db.session \ + .query(Delivery_Delivery) \ + .filter(Delivery_Delivery.id == delivery_id) \ + .first() + + get_today_price = db.session \ + .query(Pricing_Oil_Oil) \ + .order_by(Pricing_Oil_Oil.id.desc()) \ + .first() + + + gallons_delivered = request.json["gallons_delivered"] + + + + if request.json["driver_employee_id"]: + delivery_driver_id = request.json["delivery_driver_id"] + get_driver = (db.session + .query(Employee_Employee) + .filter(Employee_Employee.id == delivery_driver_id) + .first()) + same_driver = False + else: + same_driver = True + + customer_filled = request.json["customer_filled"] + if customer_filled is True: + customer_filled = 1 + else: + customer_filled = 0 + + if request.json["cash_amount"]: + cash_amount = request.json["cash_amount"] + else: + cash_amount = None + + prime_info = request.json["prime"] + if prime_info is True: + prime_info = 1 + else: + prime_info = 0 + + + get_delivery.gallons_delivered = gallons_delivered + get_delivery.prime = prime_info + get_delivery.customer_filled = customer_filled + get_delivery.cash_recieved = cash_amount + + if same_driver == False: + get_delivery.driver_last_name = get_driver.employee_last_name + get_delivery.driver_first_name = get_driver.employee_first_name + get_delivery.driver_employee_id = get_driver.id + + # update delivery stattus to delivered + get_delivery.delivery_status = 1 + db.session.add(get_delivery) db.session.commit() diff --git a/app/delivery_status/views.py b/app/delivery_status/views.py index a4a069f..4ee3c8f 100644 --- a/app/delivery_status/views.py +++ b/app/delivery_status/views.py @@ -1,24 +1,34 @@ -from flask import request, jsonify -from flask_login import current_user -from datetime import date, timedelta, time +from flask import jsonify + +from datetime import date, timedelta from app.delivery_status import deliverystatus from app import db +from sqlalchemy import or_ from datetime import datetime -from app.classes.customer import Customer_Customer from app.classes.delivery import (Delivery_Delivery, Delivery_Delivery_schema, - Delivery_Notes_Driver, - Delivery_Payment, - Delivery_Payment_schema, ) -from app.classes.cards import Card_Card -from app.classes.pricing import Pricing_Oil_Oil -from app.classes.auth import Auth_User -from app.classes.pricing import Pricing_Service_General + + +@deliverystatus.route("/delivered", methods=["GET"]) +def delivered_delivery(): + """ + Get deliveries that have been delivered + """ + + delivery_ticket = (db.session + .query(Delivery_Delivery) + .filter(or_(Delivery_Delivery.delivery_status == 1, + Delivery_Delivery.delivery_status == 10)) + .all()) + + + delivery_schema = Delivery_Delivery_schema(many=True) + return jsonify(delivery_schema.dump(delivery_ticket)) @deliverystatus.route("/today/driver/", methods=["GET"]) -def get_deliveries_driver_day(user_id): +def get_deliveries_driver_today(user_id): """ Get deliveries for driver that day """ @@ -31,6 +41,7 @@ def get_deliveries_driver_day(user_id): delivery_schema = Delivery_Delivery_schema(many=True) return jsonify(delivery_schema.dump(get_delivery)) + @deliverystatus.route("/tommorrow/driver/", methods=["GET"]) def get_deliveries_driver_tommorrow(user_id): """ @@ -47,6 +58,7 @@ def get_deliveries_driver_tommorrow(user_id): delivery_schema = Delivery_Delivery_schema(many=True) return jsonify(delivery_schema.dump(get_delivery)) + @deliverystatus.route("/waiting/driver/", methods=["GET"]) def get_deliveries_driver_waiting(user_id): """ @@ -55,7 +67,7 @@ def get_deliveries_driver_waiting(user_id): get_delivery = (db.session .query(Delivery_Delivery) .filter(Delivery_Delivery.driver_employee_id == user_id) - .filter(Delivery_Delivery.delivery_status == 1) + .filter(Delivery_Delivery.delivery_status == 0) .all()) delivery_schema = Delivery_Delivery_schema(many=True)