from flask import jsonify from datetime import date, timedelta from app.delivery_status import deliverystatus from app import db from app.classes.delivery import (Delivery_Delivery, Delivery_Delivery_schema, ) from app.classes.auto import Auto_Delivery @deliverystatus.route("/delivered", methods=["GET"]) def delivered_delivery(): """ Get deliveries that have been delivered """ delivery_ticket = (db.session .query(Delivery_Delivery) .filter(Delivery_Delivery.delivery_status == 10) .all()) delivery_schema = Delivery_Delivery_schema(many=True) return jsonify(delivery_schema.dump(delivery_ticket)) @deliverystatus.route("/count/delivered", methods=["GET"]) def delivered_delivery_count(): delivery_ticket = (db.session .query(Delivery_Delivery) .filter(Delivery_Delivery.delivery_status == 10) .count()) return jsonify({ "ok": True, 'count':delivery_ticket, }), 200 @deliverystatus.route("/today/driver/", methods=["GET"]) def get_deliveries_driver_today(user_id): """ Get deliveries for driver that day """ get_delivery = (db.session .query(Delivery_Delivery) .filter(Delivery_Delivery.driver_employee_id == user_id) .filter(Delivery_Delivery.expected_delivery_date == date.today()) .all()) delivery_schema = Delivery_Delivery_schema(many=True) return jsonify(delivery_schema.dump(get_delivery)) @deliverystatus.route("/count/today", methods=["GET"]) def get_deliveries_today_count(): """ Get deliveries for driver that day """ get_delivery = (db.session .query(Delivery_Delivery) .filter(Delivery_Delivery.delivery_status == 2) .count()) return jsonify({ "ok": True, 'count':get_delivery, }), 200 @deliverystatus.route("/tommorrow/driver/", methods=["GET"]) def get_deliveries_driver_tommorrow(user_id): """ Get deliveries for driver tommrrow """ tomm = date.today() + timedelta(days=1) get_delivery = (db.session .query(Delivery_Delivery) .filter(Delivery_Delivery.driver_employee_id == user_id) .filter(Delivery_Delivery.delivery_status == 3) .all()) delivery_schema = Delivery_Delivery_schema(many=True) return jsonify(delivery_schema.dump(get_delivery)) @deliverystatus.route("/count/tommorrow", methods=["GET"]) def get_deliveries_driver_tommorrow_count(): """ """ get_delivery = (db.session .query(Delivery_Delivery) .filter(Delivery_Delivery.delivery_status == 3) .count()) return jsonify({ "ok": True, 'count':get_delivery, }), 200 @deliverystatus.route("/waiting/driver/", methods=["GET"]) def get_deliveries_driver_waiting(user_id): """ waiting deliveries scheduled out """ get_delivery = (db.session .query(Delivery_Delivery) .filter(Delivery_Delivery.driver_employee_id == user_id) .filter(Delivery_Delivery.delivery_status == 0) .all()) delivery_schema = Delivery_Delivery_schema(many=True) return jsonify(delivery_schema.dump(get_delivery)) @deliverystatus.route("/count/automatic", methods=["GET"]) def get_deliveries_automatic_count(): """ """ autos = (db.session .query(Auto_Delivery) .filter(Auto_Delivery.estimated_gallons_left <= 80) .count()) return jsonify({ "ok": True, 'count':autos, }), 200 @deliverystatus.route("/count/waiting", methods=["GET"]) def get_deliveries_waiting_count(): """ waiting deliveries scheduled out """ tomm = date.today() + timedelta(days=1) get_delivery = (db.session .query(Delivery_Delivery) .filter(Delivery_Delivery.delivery_status == 0) .count()) return jsonify({ "ok": True, 'count':get_delivery, }), 200 @deliverystatus.route("/count/pending", methods=["GET"]) def get_deliveries_pending_count(): """ """ get_delivery = (db.session .query(Delivery_Delivery) .filter(Delivery_Delivery.delivery_status == 9) .count()) return jsonify({ "ok": True, 'count':get_delivery, }), 200