Updated claude big changes

This commit is contained in:
2026-01-29 08:43:56 -05:00
parent 2dbd3ea53f
commit eb4740c553
24 changed files with 388 additions and 429 deletions

View File

@@ -1,10 +1,11 @@
import logging
from flask import request, jsonify
from flask import request
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
from app.common.responses import error_response, success_response
logger = logging.getLogger(__name__)
from sqlalchemy import or_
@@ -84,9 +85,9 @@ def move_deliveries():
if counter > 0:
db.session.commit()
return jsonify({"ok": True, 'update': True}), 200
return success_response({'update': True})
return jsonify({"ok": True, 'update': False}), 200
return success_response({'update': False})
@delivery.route("/<int:delivery_id>", methods=["GET"])
@@ -98,11 +99,11 @@ def get_a_delivery(delivery_id):
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
return error_response("Delivery not found", 404)
# Using the schema is cleaner and less error-prone than building a manual dictionary.
delivery_schema = Delivery_Delivery_schema(many=False)
return jsonify({"ok": True, "delivery": delivery_schema.dump(get_delivery)}), 200
return success_response({"delivery": delivery_schema.dump(get_delivery)})
@@ -119,7 +120,7 @@ def get_customer_past_delivery1(customer_id):
.limit(5))
delivery_schema = Delivery_Delivery_schema(many=True)
return jsonify(delivery_schema.dump(get_customer_past_delivery))
return success_response({"deliveries": delivery_schema.dump(get_customer_past_delivery)})
@delivery.route("/past2/<int:customer_id>", methods=["GET"])
@@ -134,7 +135,7 @@ def get_customer_past_delivery2(customer_id):
.limit(5))
delivery_schema = Delivery_Delivery_schema(many=True)
return jsonify(delivery_schema.dump(get_customer_past_delivery))
return success_response({"deliveries": delivery_schema.dump(get_customer_past_delivery)})
@delivery.route("/auto/<int:customer_id>", methods=["GET"])
@common_login_required
@@ -148,7 +149,7 @@ def get_customer_auto_delivery(customer_id):
.limit(5))
delivery_schema = Tickets_Auto_Delivery_schema(many=True)
return jsonify(delivery_schema.dump(get_customer_past_delivery))
return success_response({"deliveries": delivery_schema.dump(get_customer_past_delivery)})
@delivery.route("/order/<int:delivery_id>", methods=["GET"])
@@ -159,12 +160,10 @@ def get_a_specific_delivery(delivery_id):
"""
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
return error_response("Delivery not found", 404)
delivery_schema = Delivery_Delivery_schema(many=False)
return jsonify({"ok": True, "delivery": delivery_schema.dump(get_delivery)}), 200
return success_response({"delivery": delivery_schema.dump(get_delivery)})
@delivery.route("/cash/<int:delivery_id>/<int:type_of_payment>", methods=["PUT"])
@@ -184,8 +183,7 @@ def update_a_delivery_payment(delivery_id, type_of_payment):
db.session.add(get_delivery)
db.session.commit()
return jsonify({"ok": True}), 200
return success_response()
@delivery.route("/all/<int:page>", methods=["GET"])
@@ -210,8 +208,7 @@ def get_deliveries_all(page):
customer_schema = Delivery_Delivery_schema(many=True)
return jsonify(customer_schema.dump(deliveries))
return success_response({"deliveries": customer_schema.dump(deliveries)})
@delivery.route("/customer/<int:customer_id>/<int:page>", methods=["GET"])
@@ -236,8 +233,7 @@ def get_deliveries_from_customer(customer_id, page):
.limit(per_page_amount).offset(offset_limit))
customer_schema = Delivery_Delivery_schema(many=True)
return jsonify(customer_schema.dump(deliveries))
return success_response({"deliveries": customer_schema.dump(deliveries)})
@delivery.route("/all/order/<int:page>", methods=["GET"])
@@ -262,8 +258,7 @@ def get_deliveries_not_delivered(page):
.limit(per_page_amount).offset(offset_limit))
customer_schema = Delivery_Delivery_schema(many=True)
return jsonify(customer_schema.dump(deliveries))
return success_response({"deliveries": customer_schema.dump(deliveries)})
@delivery.route("/waiting/<int:page>", methods=["GET"])
@@ -290,9 +285,7 @@ def get_deliveries_waiting(page):
.limit(per_page_amount).offset(offset_limit))
customer_schema = Delivery_Delivery_schema(many=True)
return jsonify(customer_schema.dump(deliveries))
return success_response({"deliveries": customer_schema.dump(deliveries)})
@delivery.route("/pending/<int:page>", methods=["GET"])
@@ -315,7 +308,7 @@ def get_deliveries_pending(page):
.limit(per_page_amount).offset(offset_limit))
customer_schema = Delivery_Delivery_schema(many=True)
return jsonify(customer_schema.dump(deliveries))
return success_response({"deliveries": customer_schema.dump(deliveries)})
@delivery.route("/outfordelivery/<int:page>", methods=["GET"])
@common_login_required
@@ -337,8 +330,7 @@ def get_deliveries_outfordelivery(page):
.limit(per_page_amount).offset(offset_limit))
customer_schema = Delivery_Delivery_schema(many=True)
return jsonify(customer_schema.dump(deliveries))
return success_response({"deliveries": customer_schema.dump(deliveries)})
@delivery.route("/tommorrow/<int:page>", methods=["GET"])
@@ -364,8 +356,7 @@ def get_deliveries_tommorrow(page):
customer_schema = Delivery_Delivery_schema(many=True)
return jsonify(customer_schema.dump(deliveries))
return success_response({"deliveries": customer_schema.dump(deliveries)})
@delivery.route("/finalized/<int:page>", methods=["GET"])
@@ -389,8 +380,7 @@ def get_deliveries_finalized(page):
.limit(per_page_amount).offset(offset_limit))
customer_schema = Delivery_Delivery_schema(many=True)
return jsonify(customer_schema.dump(deliveries))
return success_response({"deliveries": customer_schema.dump(deliveries)})
@delivery.route("/cancelled/<int:page>", methods=["GET"])
@@ -414,8 +404,7 @@ def get_deliveries_cancelled(page):
.limit(per_page_amount).offset(offset_limit))
customer_schema = Delivery_Delivery_schema(many=True)
return jsonify(customer_schema.dump(deliveries))
return success_response({"deliveries": customer_schema.dump(deliveries)})
@delivery.route("/partialdelivery/<int:page>", methods=["GET"])
@@ -439,8 +428,7 @@ def get_deliveries_partial(page):
.limit(per_page_amount).offset(offset_limit))
customer_schema = Delivery_Delivery_schema(many=True)
return jsonify(customer_schema.dump(deliveries))
return success_response({"deliveries": customer_schema.dump(deliveries)})
@delivery.route("/issue/<int:page>", methods=["GET"])
@@ -464,8 +452,7 @@ def get_deliveries_issue(page):
.limit(per_page_amount).offset(offset_limit))
customer_schema = Delivery_Delivery_schema(many=True)
return jsonify(customer_schema.dump(deliveries))
return success_response({"deliveries": customer_schema.dump(deliveries)})
@delivery.route("/time/today", methods=["GET"])
@@ -481,8 +468,7 @@ def get_deliveries_today():
.all())
customer_schema = Delivery_Delivery_schema(many=True)
return jsonify(customer_schema.dump(deliveries))
return success_response({"deliveries": customer_schema.dump(deliveries)})
@delivery.route("/edit/<int:delivery_id>", methods=["POST"])
@@ -496,16 +482,16 @@ def edit_a_delivery(delivery_id):
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
return error_response("Delivery not found", 404)
# --- Fetch related data ---
get_customer = db.session.query(Customer_Customer).filter(Customer_Customer.id == get_delivery.customer_id).first()
if not get_customer:
return jsonify({"ok": False, "error": "Associated customer not found"}), 404
return error_response("Associated customer not found", 404)
get_today_price = db.session.query(Pricing_Oil_Oil).order_by(Pricing_Oil_Oil.id.desc()).first()
if not get_today_price:
return jsonify({"ok": False, "error": "Pricing information not available"}), 500
return error_response("Pricing information not available", 500)
# --- Process Form Input (using .get() for safety) ---
get_delivery.gallons_ordered = data.get("gallons_ordered", get_delivery.gallons_ordered)
@@ -581,11 +567,10 @@ def edit_a_delivery(delivery_id):
db.session.add(get_delivery)
db.session.commit()
return jsonify({
"ok": True,
return success_response({
'message': f"Delivery {delivery_id} updated successfully.",
'customer_id': get_customer.id # Keep this if the frontend uses it for navigation
}), 200
'customer_id': get_customer.id
})
@delivery.route("/create/<int:user_id>", methods=["POST"])
@@ -607,7 +592,7 @@ def create_a_delivery(user_id):
if not get_customer:
return jsonify({"ok": False}), 200
return error_response("Customer not found")
else:
gallons_ordered = request.json["gallons_ordered"]
@@ -799,11 +784,7 @@ def create_a_delivery(user_id):
db.session.add(new_delivery)
db.session.commit()
return jsonify({
"ok": True,
'delivery_id': new_delivery.id,
}), 200
return success_response({'delivery_id': new_delivery.id})
@delivery.route("/cancel/<int:delivery_id>", methods=["POST"])
@@ -821,8 +802,8 @@ def cancel_a_delivery(delivery_id):
get_delivery.delivery_status = 1
db.session.add(get_delivery)
db.session.commit()
return jsonify({"ok": True}), 200
return success_response()
@delivery.route("/delivered/<int:delivery_id>", methods=["POST"])
@@ -848,8 +829,8 @@ def mark_as_delivered(delivery_id):
db.session.add(get_delivery)
db.session.commit()
return jsonify({"ok": True}), 200
return success_response()
@delivery.route("/partial/<int:delivery_id>", methods=["POST"])
@@ -872,8 +853,8 @@ def partial_delivery(delivery_id):
db.session.add(get_delivery)
db.session.commit()
return jsonify({"ok": True}), 200
return success_response()
@delivery.route("/note/technician/<int:delivery_id>", methods=["PUT"])
@@ -907,8 +888,8 @@ def delivery_note_driver(delivery_id):
db.session.add(create_new_note)
db.session.commit()
return jsonify({"ok": True}), 200
return success_response()
@delivery.route("/delete/<int:delivery_id>", methods=["DELETE"])
@@ -925,9 +906,7 @@ def delete_call(delivery_id):
db.session.delete(get_call_to_delete)
db.session.commit()
return jsonify({"ok": True}), 200
return success_response()
@delivery.route("/total/<int:delivery_id>", methods=["GET"])
@@ -991,12 +970,11 @@ def calculate_total(delivery_id):
discount = round(discount, 2)
total = round(total, 2)
return jsonify({
"ok": True,
return success_response({
'priceprime': priceprime,
'pricesameday': pricesameday,
'priceemergency': priceemergency,
'total_amount':total,
'total_amount': total,
'discount': discount,
'total_amount_after_discount':total_amount_after_discount,
}), 200
'total_amount_after_discount': total_amount_after_discount,
})