def build_folio(oficina_codigo: str | None, productor_id: int, zafra_year: int, consecutivo: int) -> str:
    """Construye el folio de boleta: código de oficina + ID productor + últimos 2 dígitos del año + consecutivo 3 dígitos."""
    prefijo = (oficina_codigo or "").strip()
    year_short = str(zafra_year)[-2:]
    return f"{prefijo}{productor_id}{year_short}{consecutivo:03d}"


def build_qr_text(zafra_id: int, folio: int | str) -> str:
    return f"zafra:{zafra_id}|folio:{folio}"
