major claude changes

This commit is contained in:
2026-01-28 21:55:10 -05:00
parent 3f311980db
commit 2dbd3ea53f
41 changed files with 1235 additions and 278 deletions

View File

@@ -1,8 +1,12 @@
import logging
from flask import request, jsonify
from flask_login import current_user
from datetime import date, datetime, timedelta
from app.delivery import delivery
from app import db
from app.common.decorators import login_required as common_login_required
logger = logging.getLogger(__name__)
from sqlalchemy import or_
from app.classes.customer import (Customer_Customer)
from app.classes.delivery import (Delivery_Delivery,
@@ -20,6 +24,7 @@ from app.classes.auto import Tickets_Auto_Delivery, Tickets_Auto_Delivery_schema
# This endpoint is fine, but I've added some comments for clarity.
@delivery.route("/updatestatus", methods=["GET"])
@common_login_required
def move_deliveries():
"""
Batch updates delivery statuses based on their expected delivery date relative to today.
@@ -28,6 +33,7 @@ def move_deliveries():
- Future deliveries -> "Waiting" (0)
- Past-due deliveries -> "Pending" (9)
"""
logger.info("GET /delivery/updatestatus - Batch updating delivery statuses")
counter = 0
today = date.today()
tomorrow = today + timedelta(days=1)
@@ -84,10 +90,12 @@ def move_deliveries():
@delivery.route("/<int:delivery_id>", methods=["GET"])
@common_login_required
def get_a_delivery(delivery_id):
"""
Get a single delivery's details.
"""
logger.info(f"GET /delivery/{delivery_id} - Fetching delivery")
get_delivery = db.session.query(Delivery_Delivery).filter(Delivery_Delivery.id == delivery_id).first()
if not get_delivery:
return jsonify({"ok": False, "error": "Delivery not found"}), 404
@@ -101,8 +109,9 @@ def get_a_delivery(delivery_id):
@delivery.route("/past1/<int:customer_id>", methods=["GET"])
@common_login_required
def get_customer_past_delivery1(customer_id):
logger.info(f"GET /delivery/past1/{customer_id} - Fetching customer past deliveries (first 5)")
get_customer_past_delivery = (db.session
.query(Delivery_Delivery)
.filter(Delivery_Delivery.customer_id == customer_id)
@@ -114,8 +123,9 @@ def get_customer_past_delivery1(customer_id):
@delivery.route("/past2/<int:customer_id>", methods=["GET"])
@common_login_required
def get_customer_past_delivery2(customer_id):
logger.info(f"GET /delivery/past2/{customer_id} - Fetching customer past deliveries (next 5)")
get_customer_past_delivery = (db.session
.query(Delivery_Delivery)
.filter(Delivery_Delivery.customer_id == customer_id)
@@ -127,7 +137,9 @@ def get_customer_past_delivery2(customer_id):
return jsonify(delivery_schema.dump(get_customer_past_delivery))
@delivery.route("/auto/<int:customer_id>", methods=["GET"])
@common_login_required
def get_customer_auto_delivery(customer_id):
logger.info(f"GET /delivery/auto/{customer_id} - Fetching customer auto deliveries")
get_customer_past_delivery = (db.session
.query(Tickets_Auto_Delivery)
.filter(Tickets_Auto_Delivery.customer_id == customer_id)
@@ -140,6 +152,7 @@ def get_customer_auto_delivery(customer_id):
@delivery.route("/order/<int:delivery_id>", methods=["GET"])
@common_login_required
def get_a_specific_delivery(delivery_id):
"""
Get a single delivery by its ID.
@@ -155,6 +168,7 @@ def get_a_specific_delivery(delivery_id):
@delivery.route("/cash/<int:delivery_id>/<int:type_of_payment>", methods=["PUT"])
@common_login_required
def update_a_delivery_payment(delivery_id, type_of_payment):
"""
This update a delivery for example if user updates to a fill
@@ -175,6 +189,7 @@ def update_a_delivery_payment(delivery_id, type_of_payment):
@delivery.route("/all/<int:page>", methods=["GET"])
@common_login_required
def get_deliveries_all(page):
"""
This will get deliveries not done
@@ -200,6 +215,7 @@ def get_deliveries_all(page):
@delivery.route("/customer/<int:customer_id>/<int:page>", methods=["GET"])
@common_login_required
def get_deliveries_from_customer(customer_id, page):
"""
This will get deliveries not done
@@ -225,6 +241,7 @@ def get_deliveries_from_customer(customer_id, page):
@delivery.route("/all/order/<int:page>", methods=["GET"])
@common_login_required
def get_deliveries_not_delivered(page):
"""
@@ -250,6 +267,7 @@ def get_deliveries_not_delivered(page):
@delivery.route("/waiting/<int:page>", methods=["GET"])
@common_login_required
def get_deliveries_waiting(page):
"""
This will get deliveries not done
@@ -278,6 +296,7 @@ def get_deliveries_waiting(page):
@delivery.route("/pending/<int:page>", methods=["GET"])
@common_login_required
def get_deliveries_pending(page):
"""
"""
@@ -299,6 +318,7 @@ def get_deliveries_pending(page):
return jsonify(customer_schema.dump(deliveries))
@delivery.route("/outfordelivery/<int:page>", methods=["GET"])
@common_login_required
def get_deliveries_outfordelivery(page):
"""
"""
@@ -322,6 +342,7 @@ def get_deliveries_outfordelivery(page):
@delivery.route("/tommorrow/<int:page>", methods=["GET"])
@common_login_required
def get_deliveries_tommorrow(page):
"""
This will get deliveries not done
@@ -348,6 +369,7 @@ def get_deliveries_tommorrow(page):
@delivery.route("/finalized/<int:page>", methods=["GET"])
@common_login_required
def get_deliveries_finalized(page):
"""
This will get deliveries not done
@@ -372,6 +394,7 @@ def get_deliveries_finalized(page):
@delivery.route("/cancelled/<int:page>", methods=["GET"])
@common_login_required
def get_deliveries_cancelled(page):
"""
This will get deliveries not done
@@ -396,6 +419,7 @@ def get_deliveries_cancelled(page):
@delivery.route("/partialdelivery/<int:page>", methods=["GET"])
@common_login_required
def get_deliveries_partial(page):
"""
This will get deliveries not done
@@ -420,6 +444,7 @@ def get_deliveries_partial(page):
@delivery.route("/issue/<int:page>", methods=["GET"])
@common_login_required
def get_deliveries_issue(page):
"""
This will get deliveries not done
@@ -444,6 +469,7 @@ def get_deliveries_issue(page):
@delivery.route("/time/today", methods=["GET"])
@common_login_required
def get_deliveries_today():
"""
This will get today's deliveries
@@ -460,10 +486,12 @@ def get_deliveries_today():
@delivery.route("/edit/<int:delivery_id>", methods=["POST"])
@common_login_required
def edit_a_delivery(delivery_id):
"""
This will edit a delivery using a delivery id.
"""
logger.info(f"POST /delivery/edit/{delivery_id} - Editing delivery")
data = request.json
get_delivery = db.session.query(Delivery_Delivery).filter(Delivery_Delivery.id == delivery_id).first()
@@ -561,10 +589,12 @@ def edit_a_delivery(delivery_id):
@delivery.route("/create/<int:user_id>", methods=["POST"])
@common_login_required
def create_a_delivery(user_id):
"""
This will create a delivery using a customer id
"""
logger.info(f"POST /delivery/create/{user_id} - Creating delivery for customer")
get_customer = db.session\
.query(Customer_Customer)\
.filter(Customer_Customer.id == user_id)\
@@ -600,7 +630,7 @@ def create_a_delivery(user_id):
promo_id = request.json["promo_id"]
else:
promo_id = None
except:
except (KeyError, TypeError):
promo_id = None
if promo_id is not None:
get_promo_data = (db.session
@@ -651,7 +681,7 @@ def create_a_delivery(user_id):
card_payment_id = request.json["credit_card_id"]
else:
card_payment_id = None
except:
except (KeyError, TypeError):
card_payment_id = None
if card_payment_id is not None:
@@ -777,10 +807,12 @@ def create_a_delivery(user_id):
@delivery.route("/cancel/<int:delivery_id>", methods=["POST"])
@common_login_required
def cancel_a_delivery(delivery_id):
"""
This will cancel a delivery
"""
logger.info(f"POST /delivery/cancel/{delivery_id} - Cancelling delivery")
get_delivery = db.session\
.query(Delivery_Delivery)\
.filter(Delivery_Delivery.id == delivery_id)\
@@ -794,10 +826,12 @@ def cancel_a_delivery(delivery_id):
@delivery.route("/delivered/<int:delivery_id>", methods=["POST"])
@common_login_required
def mark_as_delivered(delivery_id):
"""
This will mark the delivery as delivered
"""
logger.info(f"POST /delivery/delivered/{delivery_id} - Marking delivery as delivered")
# how many gallons delivered
gallons_put_into_tank = request.json["gallons_put_into_tank"]
# was the tank full or not
@@ -819,6 +853,7 @@ def mark_as_delivered(delivery_id):
@delivery.route("/partial/<int:delivery_id>", methods=["POST"])
@common_login_required
def partial_delivery(delivery_id):
"""
This will mark the delivery as delivered
@@ -842,6 +877,7 @@ def partial_delivery(delivery_id):
@delivery.route("/note/technician/<int:delivery_id>", methods=["PUT"])
@common_login_required
def delivery_note_driver(delivery_id):
"""
@@ -876,10 +912,12 @@ def delivery_note_driver(delivery_id):
@delivery.route("/delete/<int:delivery_id>", methods=["DELETE"])
@common_login_required
def delete_call(delivery_id):
"""
delete a delivery call
"""
logger.info(f"DELETE /delivery/delete/{delivery_id} - Deleting delivery")
get_call_to_delete = (db.session
.query(Delivery_Delivery)
.filter(Delivery_Delivery.id == delivery_id)
@@ -893,6 +931,7 @@ def delete_call(delivery_id):
@delivery.route("/total/<int:delivery_id>", methods=["GET"])
@common_login_required
def calculate_total(delivery_id):
"""
This will get deliveries not done