Ir al contenido

Certificaciones

Fichero: backend/app/models/certification.py.

Una certificación mensual mide lo ejecutado de cada partida del presupuesto. Se relaciona con un project y un budget.

Campo Tipo Descripción
id UUID PK
project_id UUID FK a projects.
budget_id UUID FK a budgets.
numero int Número de certificación.
codigo string(30) Código único.
fecha datetime Fecha de la certificación.
tipo string(20) porcentaje, etc.
estado string(20) draft, approved, etc.
total_acumulado Numeric(12,2) Total acumulado certificado.
version int Versión.
observaciones text Notas.
currency_id UUID Moneda.
exchange_rate Numeric(12,6) Tipo de cambio.
amount_base Numeric(12,2) Importe base.
es_final bool Última certificación.
es_liquidacion bool Es liquidación final.

Relaciones:

project: Mapped["Project"]
budget: Mapped["Budget"]
currency: Mapped["Currency | None"]
lines: Mapped[list["CertificationLine"]]
invoices: Mapped[list["Invoice"]]
invoice_links: Mapped[list["InvoiceCertification"]]

Cada línea certifica una partida.

Campo Tipo Descripción
certification_id UUID FK a certifications.
budget_item_id UUID FK a budget_items.
cantidad_mes Numeric(14,4) Cantidad del mes actual.
cantidad_anterior_origen Numeric(14,4) Cantidad acumulada anterior (origen).
cantidad_a_origen Numeric(14,4) Cantidad total a origen.
certificacion_mes Numeric(12,2) Importe del mes.
certificacion_anterior_origen Numeric(12,2) Importe anterior origen.
certificacion_a_origen Numeric(12,2) Importe total origen.
can_cert_act / can_cert Numeric(14,4) Cantidad certificada actual / acumulada (vista Presto).
imp_cert_act / imp_cert Numeric(12,2) Importe certificado actual / acumulado (vista Presto).
cert Numeric(12,2) Importe total certificado.
por_cert_pres Numeric(12,2) Porcentaje certificado sobre presupuesto.
precio_unitario Numeric(12,2) Precio unitario aplicado.
importe Numeric(12,2) Importe final de la línea.
orden int Orden.

La línea recalcula sus campos derivados con CertificationLine.recalc_derived (backend/app/models/certification.py:98), que delega a CertificationCalcService.

Resumen por proyecto de totales ejecutados, certificados, pendientes de ejecutar y pendientes de certificar.

Planificación de cobros asociada a una certificación: fecha prevista, fecha real e importe.

  1. Se crea una certificación desde un presupuesto (POST /api/v1/certifications/from-budget/{budget_id}).
  2. Se editan las cantidades certificadas por línea (PUT /api/v1/certifications/{id}/lines).
  3. Se recalcula (POST /api/v1/certifications/{id}/recalculate).
  4. Se marca como final o liquidación si corresponde.
  5. Se genera factura cliente desde la certificación.

Véase API de certificaciones.