70%
Completado

Módulo de Contabilidad

Estado de avance y plan de desarrollo para cierre del proyecto

Fecha del informe01 de Junio, 2026
Proyecto frontendsgcontanuxt3 (Nuxt 3)
Proyecto backendapi-a-conta (Laravel)
Páginas auditadas24 vistas Vue

1. Resumen Ejecutivo

21
Páginas completas
3
Páginas parciales
7
Funcionalidades faltantes
~79
Horas estimadas restantes
Resumen de situación El módulo de contabilidad tiene una base sólida: 47 controllers Laravel, 48 modelos, 98+ rutas API y 21 de 24 vistas Vue completamente funcionales. Los flujos principales — Registro SII, Centralización, Vouchers y Plan de Cuentas — están operativos. Las brechas críticas son el sistema de asientos automáticos post-cierre (0% de lógica de ejecución), el control de períodos contables y tres vistas de Reportes con funciones incompletas.

2. Inventario completo de vistas

2.1 Plan de Cuentas

VistaRuta FrontendEstadoNotas
Cuentas Madres/contabilidad/cuentas/cmadresCOMPLETACRUD completo, selects en cascada Tipo → Categoría
Cuentas Contables/contabilidad/cuentas/cuentasCOMPLETACRUD completo, jerarquía 4 niveles, recarga dinámica
Sub Cuentas/contabilidad/cuentas/subcuentasCOMPLETACRUD completo, filtrado dinámico por cuenta madre

2.2 Registro SII

VistaRuta FrontendEstadoNotas
Compras SII/contabilidad/registrosii/ccomprasCOMPLETATabla paginada, asiento contable, exportar Excel, activos fijos
Ventas SII/contabilidad/registrosii/cventasCOMPLETACRUD completo, 3 modales, exportar Excel
Honorarios Compras/contabilidad/registrosii/hcomprasCOMPLETACRUD, cálculo brutos y retenido, centros de costo
Honorarios Ventas/contabilidad/registrosii/hventasCOMPLETACRUD, validación debe/haber
Sincronización Masiva SII/contabilidad/registrosii/sicsiiCOMPLETA5 endpoints paralelos, barra progreso, reintentos automáticos

2.3 Centralización

VistaRuta FrontendEstadoNotas
Centralizar Compras/contabilidad/centralizacion/cencomprasCOMPLETA4 modales, actualización masiva por proveedor, genera voucher
Centralizar Ventas/contabilidad/centralizacion/cenventasCOMPLETA4 modales, actualización por cliente, genera voucher
Centralizar Hon. Compras/contabilidad/centralizacion/cenhcomprasCOMPLETA3 modales, paginadores anidados
Centralizar Hon. Ventas/contabilidad/centralizacion/cenhventasFALTANTENo existe esta vista. Solo existe cenhcompras.

2.4 Vouchers

VistaRuta FrontendEstadoNotas
Vouchers/contabilidad/voucher/voucherCOMPLETACRUD completo, validación cuadre Debe=Haber, folio automático, exportar

2.5 Libros Contables (Foliados)

VistaRuta FrontendEstadoNotas
Libro Diario/contabilidad/libros/ldiarioCOMPLETAFoliación integrada, exportar PDF
Libro Mayor/contabilidad/libros/mayorCOMPLETASaldos acumulados por cuenta, exportar PDF
Balance General/contabilidad/libros/bgeneralCOMPLETATotales activo/pasivo/resultado del ejercicio

2.6 Reportes (vistas parciales)

VistaRuta FrontendEstadoProblema específico
Reporte Balance General/contabilidad/reportes/bgeneralPARCIALFunción agregarNuevoItem() referenciada en el template pero no implementada en el script. El botón "Agregar línea" no funciona.
Reporte Libro Diario/contabilidad/reportes/ldiarioPARCIALError en línea 109: v-model="folios.folio" sobre un array (debería ser folios[0].folio). Modal de foliado no guarda correctamente.
Reporte Libro Mayor/contabilidad/reportes/mayorPARCIALSolo lectura. Tiene foliación con tipo_libro=2 pero le falta el mismo ajuste de binding que ldiario.

2.7 Rendiciones y Formularios

VistaRuta FrontendEstadoNotas
Rendiciones/contabilidad/rendiciones/rendicionCOMPLETACRUD completo con documentos SII asociados
Formulario 29/contabilidad/formularios/form29COMPLETACRUD de parámetros, exportar

2.8 Parámetros

VistaRuta FrontendEstadoNotas
Impuestos/contabilidad/parametros/impuestosCOMPLETATablas de tramos mensuales y anuales, 5 tabs
Cuenta Impuestos/contabilidad/parametros/cparametrosCOMPLETA6 tabs por tipo de cuenta contable
Parámetros Formularios/contabilidad/parametros/parformulariosCOMPLETACRUD básico
Asientos Predefinidos/contabilidad/parametros/aautomaticosPARCIALSolo lista/lectura. Campo "Carga" mal configurado (key en lugar de model). Sin sección de líneas debe/haber. Sin botón ejecutar.

3. Estado del Backend (Laravel)

Cobertura general del backend 47 controllers, 48 modelos, 98+ rutas API definidas. La mayoría de los CRUD están implementados. Las brechas son puntuales: dos controllers de asientos automáticos con métodos vacíos y ausencia total de lógica de ejecución/cierre de período.
Controllerindex/filtrostoreupdatedestroyMétodos especiales
ConVoucherControllerOKOKOKOKBalance() — genera balance completo con activo/pasivo/resultado
ConLibroDiarioControllerOKOKOKOKSolo CRUD — generación real del libro ocurre en ConVoucher::store()
ConLibroFoliadoControllerOKOKOKOKfoliarAnual(), foliarAnualMayor() — genera PDFs foliados
ConSiiComprasControllerOKOKOKOKImportación CSV, descarga SII
ConSiiVentaControllerOKOKOKOKImportación CSV, descarga SII
ConRendicionControllerOKOKOKOK
ConAAutomaticoControllerOKVACÍOVACÍOVACÍOSin método ejecutar(). Sin lógica de generación de asientos.
ConAAutDetalleControllerVACÍOVACÍOVACÍOVACÍOController completamente vacío. Solo Filtro() con campo incorrecto (empresa_id en vez de par_empresa_id).
ConCCostosAcumuladoController????Existe pero sin vista frontend
ConPAuxiliaresController????Existe pero sin vista frontend

3.1 Estructura de Base de Datos — Asientos Automáticos

Tablas existentes para el sistema de asientos automáticos

con_a_automaticos
  • id
  • nombre (string)
  • con_t_voucher_id (FK)
  • ajuste (bigint)
  • t_ajuste (bigint)
  • par_empresa_id (FK)
  • unico (nullable)
  • estado (tinyint)
  • carga (integer) — 1=Apertura, 0=Cierre
  • tipo_asiento — FALTA (PPM, Deprec., etc.)
  • formula / fuente_monto — FALTA
  • cuenta_origen_id — FALTA
  • porcentaje / monto_fijo — FALTA
con_a_aut_detalles
  • id
  • con_a_automatico_id (FK)
  • con_sub_cuenta_id (FK)
  • debe_haber (enum)
  • estado (tinyint)
  • fuente_monto — FALTA
  • porcentaje — FALTA
  • monto_fijo — FALTA
  • cuenta_origen_id — FALTA
Tablas relacionadas (ya existen)
  • par_periodos — períodos del sistema
  • par_periodo_empresas — período por empresa
  • con_vouchers — donde se generan los asientos
  • con_libro_diarios — líneas del diario
  • con_folio_vouchers — foliación automática
  • con_cierre_contable — FALTA (tabla nueva)
  • con_asientos_generados — auditoría, FALTA

4. Módulo de Asientos Automáticos Post-Cierre (NUEVO)

Estado actual: 20% completado Las tablas de base de datos existen pero están incompletas (faltan campos clave). Los controllers tienen métodos vacíos. No existe ninguna lógica de ejecución ni de cierre de período contable. Este es el módulo de mayor complejidad pendiente.

4.1 Tipos de asientos automáticos a implementar

TipoDescripciónFuente del montoMomento
PPM AcumuladoProvisión mensual por ventas netas del período% configurable sobre saldo cuenta ventasCierre de mes
DepreciaciónCargo mensual por activos fijosMonto fijo mensual por activo o cuentaCierre de mes
Provisión ImpuestoEstimación del impuesto a la renta del período% configurable sobre utilidad antes de impuestoCierre de mes
ReclasificaciónTraslado de saldo entre cuentas (ej: corto/largo plazo)Saldo completo de cuenta origenCierre de mes / Apertura
Formulario 29Generación del asiento de impuesto mensual (ya existe el seed)Calculado desde cuentas de IVACierre de mes
Cierre AnualTraslado de resultado del ejercicio a patrimonioSaldo cuenta resultadoCierre de año
Apertura SiguienteSaldos iniciales del período nuevo desde balance de cierreSaldos finales de todas las cuentasApertura de mes/año
PersonalizadoDefinido completamente por el usuarioMonto fijo o % definido por usuarioConfigurable

4.2 Checklist de desarrollo — Backend

4.3 Checklist de desarrollo — Frontend

5. Correcciones inmediatas — Vistas parciales

#ArchivoProblema exactoCorrecciónEstimado
1 reportes/bgeneral.vue Función agregarNuevoItem() llamada en línea 155 del template pero no existe en el <script> Implementar la función que agrega { con_sub_cuenta_id:'', monto1:0, monto2:0, filtro:'', mostrarOpciones:false } al array nuevoitems 2 hrs
2 reportes/ldiario.vue Línea 109: v-model="folios.folio"folios es un ref([]) (array), no un objeto. El binding falla silenciosamente. Cambiar a v-model="folios[0]?.folio" o refactorizar folios como ref({}) 1 hr
3 reportes/mayor.vue Mismo problema de binding que ldiario con folios. Tipo de libro hardcodeado como 2 sin validación. Mismo fix que ldiario + verificar que el endpoint foliarAnualMayor existe en el backend 1 hr
4 parametros/aautomaticos.vue Línea 117: campo "Carga" usa key en lugar de model en modalFields. El campo no es editable en el formulario. Cambiar a { label:'Carga', model:'carga', type:'dropdown', options:[{v:0,l:'Cierre'},{v:1,l:'Apertura'}], cols:6 } y agregar carga: 0 a modalForm 1 hr

6. Funcionalidades faltantes por prioridad

#FuncionalidadPrioridadDescripciónEstimado
1 Motor de asientos automáticos ALTA Backend completo: CRUD controllers + lógica de ejecución post-cierre. Es el módulo más complejo y bloqueante para la contabilidad real. 20 hrs
2 Vista Cierre de Período ALTA Frontend: wizard de cierre con validaciones previas, preview de asientos, ejecución y log. Depende del backend de asientos automáticos. 12 hrs
3 Control de períodos contables ALTA Vista semáforo de estado de períodos + validación transversal que bloquee modificaciones en períodos cerrados. 8 hrs
4 Centralizar Honorarios Ventas MEDIA Vista cenhventas.vue que no existe. El modelo de la vista es análogo a cenhcompras.vue, acelera el desarrollo. 6 hrs
5 Centro de Costos MEDIA El controller ConCCostosAcumuladoController existe. Falta la vista frontend para gestionar y consultar centros de costo. 5 hrs
6 Plan de Auxiliares MEDIA El controller ConPAuxiliaresController existe. Falta la vista frontend. 4 hrs
7 Exportación SII (XML/CSV oficial) BAJA Generación de archivos en el formato oficial del SII para declaración de Libros de Compras y Ventas. 10 hrs
8 Conciliación Bancaria BAJA Módulo nuevo desde cero: importación de cartola, matching con vouchers, vista de diferencias. 20 hrs

7. Plan de trabajo — 6 semanas

Semana 1 — Correcciones y base de asientos automáticos
  • Fix reportes/bgeneral.vue: implementar agregarNuevoItem() 2 hrs
  • Fix reportes/ldiario.vue: corregir binding folios línea 109 1 hr
  • Fix reportes/mayor.vue: mismo fix de folios 1 hr
  • Fix aautomaticos.vue: campo carga editable 1 hr
  • Backend: completar CRUD ConAAutomaticoController 3 hrs
  • Backend: completar ConAAutDetalleController desde cero 3 hrs
Semana 2 — Ampliar modelo de asientos automáticos
  • Migración: nuevos campos en con_a_automaticos y con_a_aut_detalles 2 hrs
  • Migración: nueva tabla con_cierre_contable 2 hrs
  • Rediseñar aautomaticos.vue: tipos, fórmulas, tabla de líneas 6 hrs
  • Backend: método previewCierre() — calcula sin guardar 4 hrs
Semana 3 — Motor de cierre y vista de cierre
  • Backend: ejecutarCierre() — genera vouchers automáticos 8 hrs
  • Backend: ejecutarApertura() — asientos inicio del mes 4 hrs
  • Backend: revertirCierre() — deshacer cierre 3 hrs
  • Frontend: esqueleto de cierre-periodo.vue con selector y validaciones 4 hrs
Semana 4 — Cierre completo + control de períodos
  • Frontend: tabla preview de asientos + botón ejecutar con confirmación 5 hrs
  • Frontend: log de asientos generados + revertir cierre 3 hrs
  • Vista periodos-contables.vue — semáforo de estados 5 hrs
  • Validación transversal en vistas de registro (períodos cerrados = solo lectura) 3 hrs
Semana 5 — Vistas pendientes medianas
  • Vista cenhventas.vue (Centralizar Honorarios Ventas) 6 hrs
  • Vista centrocostos.vue — Centro de Costos 5 hrs
  • Vista auxiliares.vue — Plan de Auxiliares 4 hrs
  • Agregar nuevas rutas al menú en menuOptions.js 1 hr
Semana 6 — QA, cierre anual y exportación SII
  • Pruebas de flujo completo: SII → Centralizar → Voucher → Cierre 4 hrs
  • Asiento de cierre anual (resultado → patrimonio) 4 hrs
  • Asiento de apertura año siguiente (saldos iniciales) 3 hrs
  • Exportación SII XML/CSV para declaración oficial 5 hrs
  • Ajustes de UX, revisión general 2 hrs

8. Resumen de horas estimadas

SemanaFoco principalHoras
Semana 1Correcciones de bugs existentes + CRUD base asientos automáticos11 hrs
Semana 2Extensión del modelo de datos + rediseño UI asientos automáticos + preview cierre14 hrs
Semana 3Motor de ejecución de cierre (backend) + esqueleto UI cierre19 hrs
Semana 4UI de cierre completa + control de períodos16 hrs
Semana 5Vistas medianas pendientes (cenhventas, costos, auxiliares)16 hrs
Semana 6QA + cierre anual + exportación SII18 hrs
TOTAL ESTIMADO94 hrs
Nota sobre concurrencia Las semanas 1 y 2 pueden paralelizarse si hay dos desarrolladores: uno en backend (controllers y migraciones) y otro en frontend (correcciones de bugs y rediseño de aautomaticos.vue). Esto podría comprimir el plan a 4 semanas efectivas de trabajo.

9. Dependencias entre módulos

Cadena de dependencias para el cierre de período

1. Registro SII (ya funciona)  →  2. Centralización (ya funciona)  →  3. Vouchers generados (ya funciona)  →  4. Control de período ← FALTA  →  5. Asientos automáticos (configuración) ← FALTA  →  6. Motor de ejecución cierre ← FALTA  →  7. Libros foliados y reportes (ya funciona)
Los pasos 4, 5 y 6 son los únicos bloqueantes para tener un ciclo contable mensual completo y auditable. Todo lo demás está operativo.