._.
This commit is contained in:
parent
2a473f5d3a
commit
dc8e914a5f
@ -116,5 +116,31 @@ class DeliveryOrdersService:
|
|||||||
)
|
)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def update_delivery_order_route(self, delivery_order_id: int, estimated_route_time_in_minutes: Optional[int],
|
||||||
|
route: Optional[List[dict]]) -> Optional[DeliveryOrderEntity]:
|
||||||
|
delivery_order_model = self.repository.get_by_id(delivery_order_id)
|
||||||
|
|
||||||
|
if delivery_order_model:
|
||||||
|
if estimated_route_time_in_minutes is not None:
|
||||||
|
delivery_order_model.estimated_route_time_in_minutes = estimated_route_time_in_minutes
|
||||||
|
if route is not None:
|
||||||
|
delivery_order_model.route = route
|
||||||
|
|
||||||
|
self.repository.update(delivery_order_model)
|
||||||
|
|
||||||
|
return DeliveryOrderEntity(
|
||||||
|
id=delivery_order_model.id,
|
||||||
|
order_datetime=delivery_order_model.order_datetime,
|
||||||
|
count_trucks=delivery_order_model.count_trucks,
|
||||||
|
deadline=delivery_order_model.deadline,
|
||||||
|
price=delivery_order_model.price,
|
||||||
|
truck_id=delivery_order_model.truck_id,
|
||||||
|
total_order_id=delivery_order_model.total_order_id,
|
||||||
|
estimated_route_time_in_minutes=delivery_order_model.estimated_route_time_in_minutes,
|
||||||
|
route=delivery_order_model.route,
|
||||||
|
)
|
||||||
|
|
||||||
|
return None
|
||||||
|
|
||||||
def delete_delivery_order(self, delivery_order_id: int) -> bool:
|
def delete_delivery_order(self, delivery_order_id: int) -> bool:
|
||||||
return self.repository.delete(delivery_order_id) is not None
|
return self.repository.delete(delivery_order_id) is not None
|
||||||
|
|||||||
@ -110,8 +110,9 @@ class NewTotalOrderService:
|
|||||||
for route in all_routes:
|
for route in all_routes:
|
||||||
distance = self.calculate_route_distance(route, distances)
|
distance = self.calculate_route_distance(route, distances)
|
||||||
total_weight = sum(
|
total_weight = sum(
|
||||||
sum(accessory.weight for accessory in accessories if accessory.city_id == city.id) for city in
|
sum(accessory.weight for accessory in accessories if accessory.city_id == city.id)
|
||||||
route)
|
for city in route
|
||||||
|
)
|
||||||
cost = self.calculate_route_cost(route, accessories, distances)
|
cost = self.calculate_route_cost(route, accessories, distances)
|
||||||
routes_with_details.append((route, (distance, total_weight, cost)))
|
routes_with_details.append((route, (distance, total_weight, cost)))
|
||||||
|
|
||||||
|
|||||||
@ -31,7 +31,7 @@ def read_delivery_order(delivery_order_id: int, db: Session = Depends(get_db),
|
|||||||
|
|
||||||
@router.get("/delivery-orders/total/{total_order_id}", response_model=List[DeliveryOrderEntity])
|
@router.get("/delivery-orders/total/{total_order_id}", response_model=List[DeliveryOrderEntity])
|
||||||
def read_delivery_order_by_total(total_order_id: int, db: Session = Depends(get_db),
|
def read_delivery_order_by_total(total_order_id: int, db: Session = Depends(get_db),
|
||||||
current_user: User = Depends(verify_token)):
|
current_user: User = Depends(verify_token)):
|
||||||
service = DeliveryOrdersService(db)
|
service = DeliveryOrdersService(db)
|
||||||
delivery_order = service.get_delivery_order_by_total_order_id(total_order_id)
|
delivery_order = service.get_delivery_order_by_total_order_id(total_order_id)
|
||||||
if delivery_order is None:
|
if delivery_order is None:
|
||||||
@ -64,3 +64,19 @@ def delete_delivery_order(delivery_order_id: int, db: Session = Depends(get_db),
|
|||||||
if not success:
|
if not success:
|
||||||
raise HTTPException(status_code=404, detail="Delivery order not found")
|
raise HTTPException(status_code=404, detail="Delivery order not found")
|
||||||
return success
|
return success
|
||||||
|
|
||||||
|
|
||||||
|
@router.put("/delivery-orders/{delivery_order_id}/route", response_model=DeliveryOrderEntity)
|
||||||
|
def update_delivery_order_route(
|
||||||
|
delivery_order_id: int,
|
||||||
|
estimated_route_time_in_minutes: int,
|
||||||
|
route: List[dict],
|
||||||
|
db: Session = Depends(get_db),
|
||||||
|
current_user: User = Depends(verify_token)
|
||||||
|
):
|
||||||
|
service = DeliveryOrdersService(db)
|
||||||
|
updated_delivery_order = service.update_delivery_order_route(delivery_order_id, estimated_route_time_in_minutes,
|
||||||
|
route)
|
||||||
|
if updated_delivery_order is None:
|
||||||
|
raise HTTPException(status_code=404, detail="Delivery order not found")
|
||||||
|
return updated_delivery_order
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user