Skip to content
GitHub

Declaraciones Service

El DeclaracionesService gestiona el ciclo de vida de las declaraciones de impuestos mensuales (F29), permitiendo la generación de borradores, consulta, y transición de estados (Borrador -> Validada -> Declarada / Anulada).

flowchart LR
    subgraph Frontend
        DV[DeclaracionesViewIsland]
    end
    
    subgraph Orchestrator
        R["/api/declaraciones/f29"]
        S[DeclaracionesService]
        Repo[DeclaracionesRepository]
        SP[sp_generar_f29]
    end
    
    subgraph Database
        T["declaraciones.declaraciones_f29"]
        D["declaraciones.declaraciones_f29_detalle"]
    end
    
    DV -->|HTTPS| R
    R --> S
    S --> Repo
    Repo -->|SQL| SP
    Repo -->|SQL| T
    Repo -->|SQL| D

Genera un nuevo borrador de declaración F29 para un periodo específico. Si existe un borrador previo, lo sobrescribe. No permite sobrescribir declaraciones validadas o declaradas.

Body Parameters:

ParámetroTipoDescripción
periodostringPeriodo en formato YYYY-MM (e.g., “2025-01”)
rut_contribuyentestringRUT del contribuyente asociado

Respuesta exitosa (201):

{
"success": true,
"data": {
"id": "uuid",
"periodo": "2025-01",
"estado": "BORRADOR",
"detalles": [...]
}
}

Lista declaraciones existentes aplicando filtros opcionales.

Query Parameters:

ParámetroTipoDescripción
periodostringFiltrar por periodo (YYYY-MM)
rutstringFiltrar por RUT contribuyente
estadostringFiltrar por estado (BORRADOR, VALIDADO, etc.)
limitnumberLímite de resultados (default 20)
offsetnumberDesplazamiento (default 0)

Obtiene el detalle completo de una declaración, incluyendo todos sus códigos y montos.

Actualiza el estado de una declaración.

Body Parameters:

ParámetroTipoDescripción
estadostringNuevo estado. Valores permitidos: ‘BORRADOR’, ‘VALIDADO’, ‘DECLARADO’, ‘ANULADA’, ‘VALIDADA’, ‘ANULADO’, ‘RECTIFICADO’

La generación delega la lógica compleja al procedimiento almacenado declaraciones.sp_generar_f29 en PostgreSQL. Este procedimiento:

  1. Elimina cualquier borrador existente para el mismo periodo y usuario.
  2. Calcula los códigos del F29 basándose en la información contable vigente.
  3. Inserta la cabecera y el detalle de la nueva declaración.

Restricciones:

  • No se puede generar un borrador si ya existe una declaración con estado VALIDADO o DECLARADO para el mismo periodo.

Representa la cabecera de la declaración.

CampoTipoDescripción
iduuidIdentificador único
periodostringAño y mes (YYYY-MM)
estadoenumEstado actual de la declaración
total_a_pagarnumberMonto final a pagar
created_atdateFecha de creación

Representa cada línea o código del formulario 29.

CampoTipoDescripción
codigo_lineastringCódigo del formulario (e.g., “538”)
descripcion_lineastringDescripción del concepto
montonumberValor calculado
  • Directoryorchestrator/src/
    • Directoryroutes/declaraciones/
      • f29.ts
    • Directorydomain/declaraciones/
      • DeclaracionesService.ts
      • DeclaracionesRepository.ts
      • types.ts