from flask import jsonify from datetime import date, timedelta from app.delivery_status import deliverystatus from app import db from sqlalchemy import or_ from app.classes.delivery import (Delivery_Delivery, Delivery_Delivery_schema, ) @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_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("/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.expected_delivery_date == tomm) .all()) 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): """ waiting deliveries scheduled out """ 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 == 0) .filter(Delivery_Delivery.expected_delivery_date != tomm) .filter(Delivery_Delivery.expected_delivery_date != date.today()) .all()) delivery_schema = Delivery_Delivery_schema(many=True) return jsonify(delivery_schema.dump(get_delivery))