v2_router: remove legacy /erp/putni-nalozi stub
Stub referenced non-existent pgz_sport.putni_nalozi table and shadowed the new /api/v2/erp/putni-nalozi (full CRUD on expense_reports). Since v2_router is mounted before erp_full_router, the stub won route resolution and returned the placeholder note. Removed → new endpoint reachable, all 4 bug-rush tasks live-verified. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
+2
-54
@@ -5314,60 +5314,8 @@ def med_pregled_status(q: str = "", klub_id: int = None):
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@router.get("/erp/putni-nalozi")
|
# Legacy stub /erp/putni-nalozi removed — superseded by routers/erp_full_router.py
|
||||||
def erp_putni_nalozi(klub_id: int = None, status: str = None):
|
# (full CRUD on pgz_sport.expense_reports + status workflow).
|
||||||
"""Lista putnih naloga."""
|
|
||||||
filters = ["1=1"]
|
|
||||||
params = []
|
|
||||||
if klub_id:
|
|
||||||
filters.append("pn.klub_id = %s"); params.append(klub_id)
|
|
||||||
if status:
|
|
||||||
filters.append("pn.status = %s"); params.append(status)
|
|
||||||
|
|
||||||
# Table might not exist yet
|
|
||||||
try:
|
|
||||||
rows = db_query(f"""
|
|
||||||
SELECT pn.*, k.naziv as klub_naziv,
|
|
||||||
n.naziv as natjecanje_naziv
|
|
||||||
FROM pgz_sport.putni_nalozi pn
|
|
||||||
LEFT JOIN pgz_sport.klubovi k ON pn.klub_id = k.id
|
|
||||||
LEFT JOIN pgz_sport.natjecanja n ON pn.natjecanje_id = n.id
|
|
||||||
WHERE {" AND ".join(filters)}
|
|
||||||
ORDER BY pn.datum DESC LIMIT 100
|
|
||||||
""", params)
|
|
||||||
return {"count": len(rows), "rows": rows}
|
|
||||||
except Exception:
|
|
||||||
return {"count": 0, "rows": [], "note": "Tablica putni_nalozi u razvoju"}
|
|
||||||
|
|
||||||
|
|
||||||
@router.post("/erp/putni-nalozi")
|
|
||||||
def erp_putni_nalog_create(body: dict = Body({})):
|
|
||||||
"""Kreiraj novi putni nalog."""
|
|
||||||
try:
|
|
||||||
db_exec("""
|
|
||||||
CREATE TABLE IF NOT EXISTS pgz_sport.putni_nalozi (
|
|
||||||
id SERIAL PRIMARY KEY,
|
|
||||||
klub_id INTEGER,
|
|
||||||
natjecanje_id INTEGER,
|
|
||||||
destinacija TEXT,
|
|
||||||
datum DATE,
|
|
||||||
broj_sudionika INTEGER DEFAULT 1,
|
|
||||||
iznos_eur NUMERIC(10,2),
|
|
||||||
napomena TEXT,
|
|
||||||
status TEXT DEFAULT 'na_cekanju',
|
|
||||||
created_at TIMESTAMPTZ DEFAULT NOW()
|
|
||||||
)
|
|
||||||
""")
|
|
||||||
db_exec("""
|
|
||||||
INSERT INTO pgz_sport.putni_nalozi
|
|
||||||
(klub_id, natjecanje_id, destinacija, datum, broj_sudionika, iznos_eur, napomena)
|
|
||||||
VALUES (%s, %s, %s, %s, %s, %s, %s)
|
|
||||||
""", (body.get("klub_id"), body.get("natjecanje_id"), body.get("destinacija"),
|
|
||||||
body.get("datum"), body.get("broj_sudionika", 1),
|
|
||||||
body.get("iznos_eur"), body.get("napomena")))
|
|
||||||
return {"ok": True}
|
|
||||||
except Exception as e:
|
|
||||||
raise HTTPException(500, str(e))
|
|
||||||
|
|
||||||
|
|
||||||
@router.get("/dms/documents")
|
@router.get("/dms/documents")
|
||||||
|
|||||||
Reference in New Issue
Block a user