from flask import jsonify from sqlalchemy import func, or_ from datetime import date from app.stats import stats from app import db from app.classes.delivery import Delivery_Delivery from app.classes.stats_company import Stats_Company, Stats_Company_schema @stats.route("/calls/add", methods=["PUT"]) def total_calls_post(): total_calls_today = (db.session .query(Stats_Company) .filter(Stats_Company.expected_delivery_date == date.today()) .first()) current_call_count = total_calls_today.total_calls new_call = current_call_count + 1 total_calls_today.total_calls = new_call db.session.add(total_calls_today) db.session.commit() return jsonify({"ok": True,}), 200 @stats.route("/calls/count/today", methods=["GET"]) def total_calls_today(): total_calls_today = (db.session .query(Stats_Company) .filter(Stats_Company.expected_delivery_date == date.today()) .count()) return jsonify({"ok": True, 'data': total_calls_today, }), 200 @stats.route("/gallons/total/", methods=["GET"]) def total_gallons_delivered_driver(driver_id): gallons_list = [] total_gallons = db.session\ .query(Delivery_Delivery)\ .filter(Delivery_Delivery.driver_employee_id == driver_id)\ .all() for f in total_gallons: gallons_list.append(f.gallons_delivered) sum_of_gallons = (sum(gallons_list)) return jsonify({"ok": True, 'data': sum_of_gallons, }), 200 @stats.route("/delivery/total/", methods=["GET"]) def total_deliveries_driver(driver_id): total_stops = (db.session .query(Delivery_Delivery) .filter(Delivery_Delivery.driver_employee_id == driver_id) .count()) return jsonify({"ok": True, 'data': total_stops, }), 200 @stats.route("/primes/total/", methods=["GET"]) def total_primes_driver(driver_id): total_stops = (db.session .query(Delivery_Delivery) .filter(Delivery_Delivery.driver_employee_id == driver_id) .filter(Delivery_Delivery.prime == 1) .count()) return jsonify({"ok": True, 'data': total_stops, }), 200 @stats.route("/delivery/count/today", methods=["GET"]) def total_deliveries_today(): total_stops = (db.session .query(Delivery_Delivery) .filter(Delivery_Delivery.expected_delivery_date == date.today()) .count()) return jsonify({"ok": True, 'data': total_stops, }), 200 @stats.route("/delivery/count/delivered/today", methods=["GET"]) def total_deliveries_today_finished(): total_stops = (db.session .query(Delivery_Delivery) .filter(Delivery_Delivery.expected_delivery_date == date.today()) .filter((Delivery_Delivery.delivery_status == 10)) .count()) return jsonify({"ok": True, 'data': total_stops, }), 200