Fix UI for inventory page 3
This commit is contained in:
@@ -370,6 +370,55 @@ class InventoryService:
|
||||
logger.error("Failed to get stock by ingredient", error=str(e), ingredient_id=ingredient_id)
|
||||
raise
|
||||
|
||||
async def get_stock_movements(
|
||||
self,
|
||||
tenant_id: UUID,
|
||||
skip: int = 0,
|
||||
limit: int = 100,
|
||||
ingredient_id: Optional[UUID] = None,
|
||||
movement_type: Optional[str] = None
|
||||
) -> List[StockMovementResponse]:
|
||||
"""Get stock movements with filtering"""
|
||||
logger.info("📈 Getting stock movements",
|
||||
tenant_id=tenant_id,
|
||||
ingredient_id=ingredient_id,
|
||||
skip=skip,
|
||||
limit=limit)
|
||||
try:
|
||||
async with get_db_transaction() as db:
|
||||
movement_repo = StockMovementRepository(db)
|
||||
ingredient_repo = IngredientRepository(db)
|
||||
|
||||
# Get filtered movements
|
||||
movements = await movement_repo.get_movements(
|
||||
tenant_id=tenant_id,
|
||||
skip=skip,
|
||||
limit=limit,
|
||||
ingredient_id=ingredient_id,
|
||||
movement_type=movement_type
|
||||
)
|
||||
|
||||
logger.info("📊 Found movements", count=len(movements))
|
||||
|
||||
responses = []
|
||||
for movement in movements:
|
||||
response = StockMovementResponse(**movement.to_dict())
|
||||
|
||||
# Include ingredient information if needed
|
||||
if movement.ingredient_id:
|
||||
ingredient = await ingredient_repo.get_by_id(movement.ingredient_id)
|
||||
if ingredient:
|
||||
response.ingredient = IngredientResponse(**ingredient.to_dict())
|
||||
|
||||
responses.append(response)
|
||||
|
||||
logger.info("✅ Returning movements", response_count=len(responses))
|
||||
return responses
|
||||
|
||||
except Exception as e:
|
||||
logger.error("❌ Failed to get stock movements", error=str(e), tenant_id=tenant_id)
|
||||
raise
|
||||
|
||||
# ===== ALERTS AND NOTIFICATIONS =====
|
||||
|
||||
async def check_low_stock_alerts(self, tenant_id: UUID) -> List[Dict[str, Any]]:
|
||||
|
||||
Reference in New Issue
Block a user