Files
service-finder/backend/app/api/v1/endpoints/expenses.py
2026-03-22 11:02:05 +00:00

41 lines
1.4 KiB
Python
Executable File

# /opt/docker/dev/service_finder/backend/app/api/v1/endpoints/expenses.py
from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy import select
from app.api.deps import get_db, get_current_user
from app.models import Asset, AssetCost # JAVÍTVA
from pydantic import BaseModel
from datetime import date
router = APIRouter()
class ExpenseCreate(BaseModel):
asset_id: str
category: str
amount: float
date: date
@router.post("/add")
async def add_expense(expense: ExpenseCreate, db: AsyncSession = Depends(get_db), current_user = Depends(get_current_user)):
stmt = select(Asset).where(Asset.id == expense.asset_id)
result = await db.execute(stmt)
asset = result.scalar_one_or_none()
if not asset:
raise HTTPException(status_code=404, detail="Jármű nem található.")
# Determine organization_id from asset
organization_id = asset.current_organization_id or asset.owner_org_id
if not organization_id:
raise HTTPException(status_code=400, detail="Az eszközhez nincs társított szervezet.")
new_cost = AssetCost(
asset_id=expense.asset_id,
cost_category=expense.category,
amount_net=expense.amount,
currency="HUF",
date=expense.date,
organization_id=organization_id
)
db.add(new_cost)
await db.commit()
return {"status": "success"}