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.
Certification
Sección titulada «Certification»| 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"]]CertificationLine
Sección titulada «CertificationLine»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.
CertificationSummary
Sección titulada «CertificationSummary»Resumen por proyecto de totales ejecutados, certificados, pendientes de ejecutar y pendientes de certificar.
CertificationCollection
Sección titulada «CertificationCollection»Planificación de cobros asociada a una certificación: fecha prevista, fecha real e importe.
Flujo típico
Sección titulada «Flujo típico»- Se crea una certificación desde un presupuesto (
POST /api/v1/certifications/from-budget/{budget_id}). - Se editan las cantidades certificadas por línea (
PUT /api/v1/certifications/{id}/lines). - Se recalcula (
POST /api/v1/certifications/{id}/recalculate). - Se marca como final o liquidación si corresponde.
- Se genera factura cliente desde la certificación.
Véase API de certificaciones.