Uecko_ERP/docs/customer-invoices/proforma-delete-contract.md
2026-07-29 14:40:59 +02:00

1.5 KiB

Proforma Delete Contract

Objetivo

Definir el borrado funcional de proformas sin romper trazabilidad ni numeracion.

Reglas funcionales

  • solo se pueden borrar proformas en estado draft
  • sent, approved, rejected e issued devuelven conflicto
  • rejected no se borra; queda reservado para una futura operacion de archivado
  • el borrado es logico mediante deleted_at
  • las proformas archivadas no se exponen para borrado en UI V1
  • si una proforma draft esta archivada, debe desarchivarse antes de borrarla
  • la numeracion no se reutiliza
  • no se decrementa document_series.next_number
  • no se borran fisicamente proforma_items ni proforma_taxes

Validaciones defensivas

  • si linked_invoice_id tiene valor, el borrado se bloquea
  • si existe issued_invoices.source_proforma_id = proforma.id, el borrado se bloquea

Contrato REST

  • endpoint: DELETE /proformas/:proforma_id
  • respuesta satisfactoria: 204 No Content
  • 404 Not Found si no existe, no pertenece a la empresa activa o ya esta borrada
  • 409 Conflict si existe pero no cumple las reglas de borrado

Efecto operativo

  • GET /proformas/:id debe tratar la proforma borrada como inexistente
  • GET /proformas no debe incluir proformas borradas
  • PUT /proformas/:id no debe editar proformas borradas
  • POST /proformas/:id/issue no debe emitir proformas borradas

UI

  • la accion Eliminar solo debe mostrarse para proformas draft
  • la confirmacion debe advertir que la referencia no se reutilizara
  • en esta fase la accion solo esta disponible en el listado