Saltar a contenido

Hooks UBL de documento

Extiende documentos del perfil Cortex UBL sin importar otros plugins.

Registro

def register_ubl_hooks(registrar: UblHookRegistrar) -> None:
    registrar.filter(
        "ubl.invoice.on_calculate_taxes",
        add_vat,
        priority=20,
    )

Exportar en __init__.py del plugin. Solo plugins enabled registran hooks.

Pipeline Invoice (billing)

  1. Borrador interno → InvoiceDocument
  2. Hooks filter/action
  3. Validación Pydantic
  4. Persistencia ubl_snapshot
  5. ubl.invoice.issuedbilling.invoice.issued (EventDispatcher)

Filters vs events

Mecanismo Mutar documento Cross-plugin reactivo
apply_filters No (mismo proceso)
EventDispatcher.emit No

Referencia

ADR 028