from fastapi import APIRouter from datetime import date, timedelta, datetime from app.database import session from app.models.delivery import Delivery from app.models.printer import Printer_jobs router = APIRouter( prefix="/command", tags=["command"], responses={404: {"description": "Not found"}}, ) @router.options("/printticket/{delivery_id}") async def print_specific_ticket(delivery_id: int): now = datetime.utcnow() get_ticket = (session.query(Delivery) .filter(Delivery.id == delivery_id) .first()) new_job = Printer_jobs( delivery_id = delivery_id, date_added = now, date_completed = None, employee_id = get_ticket.driver_employee_id, status = 0, ) session.add(new_job) session.commit() return {"ok": True} @router.get("/print_waiting") async def print_waiting_tickets(): tomm = date.today() + timedelta(days=1) now = datetime.utcnow() get_deliveries = (session .query(Delivery) .filter(Delivery.delivery_status == 0) .filter(Delivery.expected_delivery_date != tomm) .filter(Delivery.expected_delivery_date != date.today()) .all()) for f in get_deliveries: new_job = Printer_jobs( delivery_id = f.id, date_added = now, date_completed = None, employee_id = f.driver_employee_id, status = 0, ) session.add(new_job) session.commit() return {"ok": True} @router.get("/print_today") async def print_today_tickets(): now = datetime.utcnow() get_deliveries = (session .query(Delivery) .filter(Delivery.expected_delivery_date == date.today()) .all()) for f in get_deliveries: new_job = Printer_jobs( delivery_id = f.id, date_added = now, date_completed = None, employee_id = f.driver_employee_id, status = 0, ) session.add(new_job) session.commit() return {"ok": True} @router.get("/print_tommorrow") async def print_tommorrow_tickets(): now = datetime.utcnow() tomm = date.today() + timedelta(days=1) get_deliveries = (session .query(Delivery) .filter(Delivery.expected_delivery_date == tomm) .all()) for f in get_deliveries: new_job = Printer_jobs( delivery_id = f.id, date_added = now, date_completed = None, employee_id = f.driver_employee_id, status = 0, ) session.add(new_job) session.commit() return {"ok": True}