Improve the frontend
This commit is contained in:
@@ -43,9 +43,9 @@ async def create_purchase_order(
|
||||
try:
|
||||
service = PurchaseOrderService(db)
|
||||
purchase_order = await service.create_purchase_order(
|
||||
tenant_id=current_user.tenant_id,
|
||||
tenant_id=current_user["tenant_id"],
|
||||
po_data=po_data,
|
||||
created_by=current_user.user_id
|
||||
created_by=current_user["user_id"]
|
||||
)
|
||||
return PurchaseOrderResponse.from_orm(purchase_order)
|
||||
except ValueError as e:
|
||||
@@ -93,7 +93,9 @@ async def list_purchase_orders(
|
||||
status_enum = None
|
||||
if status:
|
||||
try:
|
||||
status_enum = PurchaseOrderStatus(status.upper())
|
||||
# Convert from PENDING_APPROVAL to pending_approval format
|
||||
status_value = status.lower()
|
||||
status_enum = PurchaseOrderStatus(status_value)
|
||||
except ValueError:
|
||||
raise HTTPException(status_code=400, detail="Invalid status")
|
||||
|
||||
@@ -110,11 +112,29 @@ async def list_purchase_orders(
|
||||
)
|
||||
|
||||
orders = await service.search_purchase_orders(
|
||||
tenant_id=current_user.tenant_id,
|
||||
tenant_id=current_user["tenant_id"],
|
||||
search_params=search_params
|
||||
)
|
||||
|
||||
return [PurchaseOrderSummary.from_orm(order) for order in orders]
|
||||
|
||||
# Convert to response with supplier names
|
||||
response = []
|
||||
for order in orders:
|
||||
order_dict = {
|
||||
"id": order.id,
|
||||
"po_number": order.po_number,
|
||||
"supplier_id": order.supplier_id,
|
||||
"supplier_name": order.supplier.name if order.supplier else None,
|
||||
"status": order.status,
|
||||
"priority": order.priority,
|
||||
"order_date": order.order_date,
|
||||
"required_delivery_date": order.required_delivery_date,
|
||||
"total_amount": order.total_amount,
|
||||
"currency": order.currency,
|
||||
"created_at": order.created_at
|
||||
}
|
||||
response.append(PurchaseOrderSummary(**order_dict))
|
||||
|
||||
return response
|
||||
except HTTPException:
|
||||
raise
|
||||
except Exception as e:
|
||||
@@ -134,14 +154,11 @@ async def get_purchase_order(
|
||||
try:
|
||||
service = PurchaseOrderService(db)
|
||||
purchase_order = await service.get_purchase_order(po_id)
|
||||
|
||||
|
||||
if not purchase_order:
|
||||
raise HTTPException(status_code=404, detail="Purchase order not found")
|
||||
|
||||
# Check tenant access
|
||||
if purchase_order.tenant_id != current_user.tenant_id:
|
||||
raise HTTPException(status_code=403, detail="Access denied")
|
||||
|
||||
|
||||
# Tenant access control is handled by the gateway
|
||||
return PurchaseOrderResponse.from_orm(purchase_order)
|
||||
except HTTPException:
|
||||
raise
|
||||
@@ -168,13 +185,13 @@ async def update_purchase_order(
|
||||
existing_order = await service.get_purchase_order(po_id)
|
||||
if not existing_order:
|
||||
raise HTTPException(status_code=404, detail="Purchase order not found")
|
||||
if existing_order.tenant_id != current_user.tenant_id:
|
||||
if existing_order.tenant_id != current_user["tenant_id"]:
|
||||
raise HTTPException(status_code=403, detail="Access denied")
|
||||
|
||||
purchase_order = await service.update_purchase_order(
|
||||
po_id=po_id,
|
||||
po_data=po_data,
|
||||
updated_by=current_user.user_id
|
||||
updated_by=current_user["user_id"]
|
||||
)
|
||||
|
||||
if not purchase_order:
|
||||
@@ -206,7 +223,7 @@ async def delete_purchase_order(
|
||||
existing_order = await service.get_purchase_order(po_id)
|
||||
if not existing_order:
|
||||
raise HTTPException(status_code=404, detail="Purchase order not found")
|
||||
if existing_order.tenant_id != current_user.tenant_id:
|
||||
if existing_order.tenant_id != current_user["tenant_id"]:
|
||||
raise HTTPException(status_code=403, detail="Access denied")
|
||||
|
||||
# Capture PO data before deletion
|
||||
|
||||
Reference in New Issue
Block a user