34 lines
995 B
Python
34 lines
995 B
Python
from typing import List, Optional
|
|||
|
|
|
||
|
|
from fastapi import APIRouter
|
||
|
|
from pydantic import BaseModel
|
||
|
|
|
||
|
|
from core.series import get_active_series, get_default_series
|
||
|
|
|
||
|
|
router = APIRouter(tags=["Series"])
|
||
|
|
|
||
|
|
|
||
|
|
class SeriesOption(BaseModel):
|
||
|
|
Series: int
|
||
|
|
Name: str
|
||
|
|
|
||
|
|
|
||
|
|
class SeriesListResponse(BaseModel):
|
||
|
|
Default: Optional[int] = None
|
||
|
|
Options: List[SeriesOption]
|
||
|
|
|
||
|
|
|
||
|
|
@router.get("/api/series", response_model=SeriesListResponse)
|
||
|
|
async def list_series(document: str):
|
||
|
|
"""
|
||
|
|
Series activas (no bloqueadas) y serie por defecto para un tipo de
|
||
|
|
documento de SAP B1. `document` es el código BoObjectTypes del
|
||
|
|
documento (ej. "1250000001" para Solicitud de Transferencia); lo define
|
||
|
|
cada módulo que lo consuma, no este router.
|
||
|
|
"""
|
||
|
|
active_series = get_active_series(document)
|
||
|
|
options = [
|
||
|
|
{"Series": s["Series"], "Name": s.get("Name") or str(s["Series"])}
|
||
|
|
for s in active_series
|
||
|
|
]
|
||
|
|
return {"Default": get_default_series(document), "Options": options}
|