Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

fuelingtask.py 2.3 KiB

il y a 1 an
il y a 1 an
il y a 1 an
il y a 1 an
il y a 1 an
il y a 1 an
il y a 1 an
il y a 1 an
il y a 1 an
il y a 1 an
il y a 1 an
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import base64
  2. from sqlalchemy.orm import Session
  3. from schemas.fuelingtask import CreateFuelingTask, OutputFuelingTask
  4. from db.models.fuelingtask import FuelingTask
  5. from db.repository.user import get_car_driver, get_user_by_id
  6. from db.repository.vehicle import get_vehicle_by_id
  7. def create_fueling_task(fueling_task: CreateFuelingTask, current_user: int, db: Session):
  8. if not get_vehicle_by_id(fueling_task.VehicleId, db=db):
  9. return "novehicle"
  10. driver = get_car_driver(fueling_task.VehicleId, db=db)
  11. if not driver:
  12. return "nodriver"
  13. fueling_task_object = FuelingTask(
  14. DriverId=driver.Id,
  15. VehicleId=fueling_task.VehicleId,
  16. CreatedById=current_user,
  17. Description=fueling_task.Description,
  18. Date=fueling_task.Date,
  19. Cost=fueling_task.Cost,
  20. FuelRefilled=fueling_task.FuelRefilled,
  21. GasStationName=fueling_task.GasStationName,
  22. ImageBefore=fueling_task.ImageBefore.file.read(),
  23. ImageAfter=fueling_task.ImageAfter.file.read(),
  24. )
  25. db.add(fueling_task_object)
  26. db.commit()
  27. db.refresh(fueling_task_object)
  28. print(driver.__dict__)
  29. driverobj = driver.__dict__
  30. driverobj["AssignedVehicle"] = driver.vehicle.__dict__
  31. fueling_task_object.Driver = driverobj
  32. return fueling_task_object
  33. def delete_fueling_task(fueling_task_id: int, db: Session):
  34. fueling_task = db.query(FuelingTask).filter(FuelingTask.Id == fueling_task_id).first()
  35. if fueling_task:
  36. db.delete(fueling_task)
  37. db.commit()
  38. return True
  39. return False
  40. def get_fueling_task_by_id(fuel_task_id: int, db: Session):
  41. fuel_task = db.query(FuelingTask).filter(FuelingTask.Id == fuel_task_id).first()
  42. if not fuel_task:
  43. return "notfound"
  44. res = fuel_task.__dict__
  45. driver = get_user_by_id(fuel_task.DriverId, role="Driver", db=db)
  46. driver_obj = driver.__dict__
  47. imagebefore = fuel_task.ImageBefore
  48. imageafter = fuel_task.ImageAfter
  49. imagebeforeBase64 = base64.b64encode(imagebefore).decode('ascii')
  50. imageafterBase64 = base64.b64encode(imageafter).decode('ascii')
  51. res["ImageBefore"] = imagebeforeBase64
  52. res["ImageAfter"] = imageafterBase64
  53. res["Driver"] = driver_obj
  54. res["Driver"]["AssignedVehicle"] = driver.vehicle
  55. return res