._.
This commit is contained in:
parent
c3268d9a2f
commit
284ac8f356
@ -9,6 +9,7 @@ class DeliveryOrderEntity(BaseModel):
|
||||
count_trucks: int
|
||||
deadline: datetime
|
||||
price: float
|
||||
truck_name: Optional[str] = None
|
||||
truck_id: Optional[int] = None
|
||||
total_order_id: Optional[int] = None
|
||||
|
||||
|
||||
@ -12,15 +12,16 @@ class DeliveryOrdersService:
|
||||
self.repository = DeliveryOrdersRepository(db)
|
||||
|
||||
def get_all_delivery_orders(self) -> List[DeliveryOrderEntity]:
|
||||
delivery_orders = self.repository.get_all()
|
||||
delivery_orders = self.repository.get_all_with_trucks()
|
||||
return [
|
||||
DeliveryOrderEntity(
|
||||
id=o.id,
|
||||
order_datetime=o.order_datetime,
|
||||
count_trucks=o.count_trucks,
|
||||
deadline=o.deadline,
|
||||
price=o.price,
|
||||
price=round(o.price, 2),
|
||||
truck_id=o.truck_id,
|
||||
truck_name=o.truck.name,
|
||||
total_order_id=o.total_order_id
|
||||
)
|
||||
for o in delivery_orders
|
||||
@ -36,6 +37,7 @@ class DeliveryOrdersService:
|
||||
deadline=o.deadline,
|
||||
price=o.price,
|
||||
truck_id=o.truck_id,
|
||||
truck_name=o.truck.name,
|
||||
total_order_id=o.total_order_id
|
||||
)
|
||||
for o in delivery_orders
|
||||
@ -51,6 +53,7 @@ class DeliveryOrdersService:
|
||||
deadline=delivery_order.deadline,
|
||||
price=delivery_order.price,
|
||||
truck_id=delivery_order.truck_id,
|
||||
truck_name=delivery_order.truck.name,
|
||||
total_order_id=delivery_order.total_order_id
|
||||
)
|
||||
return None
|
||||
|
||||
@ -89,14 +89,6 @@ class NewTotalOrderService:
|
||||
)
|
||||
session.add(new_delivery_accessory)
|
||||
|
||||
response += f"Период: {period}\n"
|
||||
response += f"Маршрут: {' -> '.join([city.name for city in route])}\n"
|
||||
selected_vehicle_name = next((truck.name for truck in trucks if truck.id == selected_truck),
|
||||
"Нет доступного автомобиля")
|
||||
response += f"Тип автомобиля: {selected_vehicle_name}"
|
||||
response += f"Количество автомобилей: {vehicle_count}"
|
||||
response += f"Стоимость перевозки: {cost}\n"
|
||||
|
||||
session.commit()
|
||||
|
||||
return response
|
||||
|
||||
@ -19,7 +19,7 @@ class TotalOrdersService:
|
||||
order_datetime=order.order_datetime,
|
||||
count_robots=order.count_robots,
|
||||
deadline=order.deadline,
|
||||
price=order.price,
|
||||
price=round(order.price),
|
||||
user_id=order.user_id,
|
||||
status_id=order.status_id,
|
||||
delivery_orders=[do.id for do in order.delivery_orders] if order.delivery_orders else [],
|
||||
@ -83,7 +83,8 @@ class TotalOrdersService:
|
||||
price=total_order_model.price,
|
||||
user_id=total_order_model.user_id,
|
||||
status_id=total_order_model.status_id,
|
||||
delivery_orders=[do.id for do in total_order_model.delivery_orders] if total_order_model.delivery_orders else []
|
||||
delivery_orders=[do.id for do in
|
||||
total_order_model.delivery_orders] if total_order_model.delivery_orders else []
|
||||
)
|
||||
return None
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
from sqlalchemy.orm import Session
|
||||
from sqlalchemy.orm import Session, joinedload
|
||||
from app.infrastructure.database.models.delivery_orders import DeliveryOrder
|
||||
|
||||
|
||||
@ -9,11 +9,20 @@ class DeliveryOrdersRepository:
|
||||
def get_all(self):
|
||||
return self.db.query(DeliveryOrder).all()
|
||||
|
||||
def get_all_with_trucks(self):
|
||||
return self.db.query(DeliveryOrder) \
|
||||
.options(joinedload(DeliveryOrder.truck)) \
|
||||
.all()
|
||||
|
||||
def get_all_by_total_order_id(self, total_order_id):
|
||||
return self.db.query(DeliveryOrder).filter(DeliveryOrder.total_order_id == total_order_id).all()
|
||||
return self.db.query(DeliveryOrder).filter(DeliveryOrder.total_order_id == total_order_id) \
|
||||
.options(joinedload(DeliveryOrder.truck)) \
|
||||
.all()
|
||||
|
||||
def get_by_id(self, delivery_order_id: int):
|
||||
return self.db.query(DeliveryOrder).filter(DeliveryOrder.id == delivery_order_id).first()
|
||||
return self.db.query(DeliveryOrder).filter(DeliveryOrder.id == delivery_order_id) \
|
||||
.options(joinedload(DeliveryOrder.truck)) \
|
||||
.first()
|
||||
|
||||
def create(self, delivery_order: DeliveryOrder):
|
||||
self.db.add(delivery_order)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user