Skip to content

About

Sistema de contabilidad empresarial multi-empresa, multi-ejercicio fiscal, desarrollado en Laravel 12 con terminología contable venezolana (VEN-NIF)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Sistema Contable ERP Venezuela

PHP 8.3 Laravel 12 Livewire v4 Tailwind CSS v4 MySQL 8.4 barryvdh/laravel-dompdf

Sistema de contabilidad empresarial multi-empresa, multi-ejercicio fiscal, desarrollado en Laravel 12 con terminología contable venezolana (VEN-NIF).


Características Principales

  • Multi-empresa / Multi-ejercicio fiscal — Aislamiento total por empresa y ejercicio mediante sesión y middleware de contexto
  • Plan de Cuentas jerárquico VEN-NIF — 39 cuentas predefinidas con estructura de niveles auto-referenciada
  • Contabilidad de Doble Entrada — Debe = Haber obligatorio en cada comprobante
  • Comprobantes — Creación, edición y eliminación de asientos contables con máscara contable configurable
  • Libros Contables — Libro Diario, Libro Mayor (Legal y normal), Balance de Comprobación jerárquico
  • Reportes Financieros — Balance General, Estado de Resultados, Comparativos (hasta 3 ejercicios), Variaciones (análisis horizontal)
  • Cierre de Ejercicio — Completo con pre-apertura, reversión y consolidación de saldos
  • Exportación/Importación — JSON (Plan de Cuentas, Configuración, Estructura ER) e importación desde Otra Empresa
  • PDF — Generación de documentos fiscales con DOMPDF y soporte Unicode
  • Blindaje Mensual — Bloqueo de meses para prevenir registros no deseados
  • Autenticación — Login/Register custom con roles: Administrador, Contador, Auxiliar

Stack Tecnológico

Capa Tecnología
Backend PHP 8.3, Laravel 12
Frontend Blade (MPA), Livewire v4.3, Alpine.js, Tailwind CSS v4, Vite
Base de Datos MySQL 8.4, DECIMAL(18,4) para montos
PDF barryvdh/laravel-dompdf v3.1.2, fuente dejavu sans
Auth Custom (sin Breeze/Jetstream)
Servidor Apache con .htaccess (dual-URL: http://contabilidad / http://localhost/contabilidad)

Estructura del Proyecto

contabilidad/
├── app/
│   ├── Http/
│   │   ├── Controllers/
│   │   │   ├── Auth/              # LoginController, RegisterController
│   │   │   └── Web/               # Controladores web del ERP (11)
│   │   └── Middleware/            # ValidarContextoWeb, ValidarContextoWebEjercicio
│   ├── Livewire/                  # Componentes Livewire (21+)
│   │   ├── CierreEjercicio/       # EjecucionCierre
│   │   ├── ComprobanteForm.php    # Formulario de comprobantes
│   │   ├── Configuracion/         # CrearEmpresa, AjustesEmpresa, etc.
│   │   ├── Cuentas/               # ExportarJson, ImportarJson, ImportarDesdeEmpresa
│   │   ├── Operaciones/           # ComprobanteExcel, CargaSaldosIniciales, etc.
│   │   ├── Reportes/              # 13 componentes de reportes
│   │   └── PlanCuentas.php
│   ├── Models/                    # 12 modelos Eloquent
│   ├── Services/                  # 9 servicios de negocio
│   └── helpers.php                # Funciones auxiliares (formato_monto)
├── config/
│   ├── dompdf.php                 # Configuración de PDF (fuente dejavu sans)
│   └── ...
├── database/
│   ├── migrations/                # 35 migraciones
│   ├── seeders/                   # DefaultAdminSeeder, PlanCuentasSeeder, etc.
│   └── ...
├── resources/
│   ├── views/
│   │   ├── layouts/               # app.blade.php (sidebar, header)
│   │   ├── pdf/                   # 7 plantillas PDF
│   │   └── ...
│   └── ...
├── routes/
│   └── web.php                    # 187 líneas de rutas
├── backup-contabilidad.sql        # Respaldo de base de datos
└── .htaccess                      # Rewrite rules para dual-URL

Modelos y Relaciones

Modelo Tabla Relaciones
Empresa empresas hasMany EjercicioFiscal, hasMany Configuracion
EjercicioFiscal ejercicios_fiscales belongsTo Empresa, hasMany Comprobante, hasMany BloqueoMensual
CuentaContable cuentas_contables belongsTo Empresa, belongsTo self (padre), hasMany self (hijos)
Comprobante comprobantes belongsTo Empresa, EjercicioFiscal, TipoComprobante, hasMany AsientoContable
AsientoContable asientos_contables belongsTo Comprobante, CuentaContable, Tercero
Tercero terceros belongsTo Empresa
TipoComprobante tipos_comprobantes hasMany Comprobante
BloqueoMensual bloqueos_mensuales belongsTo EjercicioFiscal
SaldoCuentaEjercicio saldos_cuentas_ejercicios Saldo inicial + acumulado por cuenta/año
EstructuraEstadoResultado estructuras_estados_resultados Configuración de ER por empresa
User users roles: Administrador, Contador, Auxiliar

Módulos del Sistema

1. Configuración

  • Empresas — CRUD completo con creación unificada (Empresa + Primer Ejercicio)
  • Ejercicios Fiscales — Gestión de años fiscales con soporte para ejercicios cortos y pre-apertura
  • Plan de Cuentas — Jerárquico con 39 cuentas VEN-NIF, importación/exportación JSON
  • Terceros — Clientes y proveedores con RIF venezolano validado
  • Estructura de Estado de Resultados — Configuración personalizable

2. Operaciones

  • Comprobantes — Creación con máscara contable, búsqueda de cuentas/terceros, balanceo automático
  • Carga de Saldos Iniciales — Grid editable tipo Excel para nuevas empresas
  • Blindaje Mensual — Preventivo de registros en meses bloqueados
  • Importación Saint — Comprobantes desde formato Saint

3. Reportes

  • Balance General — Jerárquico con subtotales por grupo, toggle de código
  • Estado de Resultados — Con cuentas expandibles, etiqueta fallback
  • Balance de Comprobación — Jerárquico con 6 tipos contables + Orden, Debe = Haber
  • Libro Diario — Formato legal venezolano
  • Libro Mayor — Formato legal y normal
  • Comparativos — Balance General y Estado de Resultados multi-año (hasta 3)
  • Variaciones — Análisis horizontal de 2 ejercicios
  • PDF — Generación de todos los reportes en formato legal (oficio)

4. Cierre

  • Ejecución de Cierre — Traslado de resultados, consolidación de Superávit/Déficit
  • Pre-Apertura — Creación anticipada del ejercicio siguiente (estado=pre_apertura)
  • Reversión — Deshacer cierre y restaurar ejercicio anterior

Instalación

Requisitos

  • PHP 8.3+
  • MySQL 8.4+
  • Composer
  • Node.js 20+
  • Apache con mod_rewrite

Pasos

# 1. Clonar el repositorio
git clone <URL_DEL_REPO> contabilidad
cd contabilidad

# 2. Restaurar la base de datos
mysql -u root -p -e "CREATE DATABASE contabilidad;"
mysql -u root -p contabilidad < backup-contabilidad.sql

# 3. Configurar .env
cp .env.example .env
# Editar: APP_URL, DB_DATABASE, DB_USERNAME, DB_PASSWORD

# 4. Instalar dependencias PHP
composer install

# 5. Instalar dependencias JS
npm install && npm run build

# 6. Generar clave de aplicación
php artisan key:generate

# 7. Iniciar el servidor
php artisan serve

Nota: La base de datos ya viene cargada con datos reales. Evitar migrate --seed para no duplicar datos.

Credenciales Iniciales

  • Usuario: admin
  • Rol: Administrador

Acceso Dual

El sistema soporta dos URLs de acceso:

URL Configuración
http://contabilidad Virtual Host Apache
http://localhost/contabilidad Alias Apache + .htaccess

Convenciones

  • Terminología venezolana: Plan de Cuentas, Comprobante/Asiento, R.I.F., Descripción/Concepto, IVA/ISLR
  • Formato de montos: 1.234.567,89 (punto como miles, coma como decimal)
  • Motor de saldos: saldo = saldo_inicial + movimientos_del_año (excluyendo asientos de cierre)
  • Contexto: Sesión con cookie contabilidad_ctx (30 días) para empresa + ejercicio activo
  • Codificación: UTF-8 sin BOM en todos los archivos .blade.php
  • PDF: Paper legal (oficio), fuente dejavu sans, compact CSS (9pt)

Servicios Clave

Servicio Función
ComprobanteService Creación, actualización y validación de comprobantes
CierreEjercicioService Cierre fiscal, traslado de resultados, consolidación, creación de nuevo año
BalanceService Cálculo de balances y estados financieros
MayorService Generación del Libro Mayor
DiarioService Generación del Libro Diario
MascaraContableService Gestión de máscaras contables (ej: 9.99.99.999)
ImportacionCuentasService Importación de plan de cuentas
LibroDiarioBalanceService Balance para libro diario

Middleware de Contexto

El sistema valida el contexto contable mediante un pipeline de middleware:

  1. auth — Autenticación del usuario
  2. contexto.web — Restaura empresa y ejercicio desde la cookie
  3. contexto.web.ejercicio — Valida que existe ejercicio activo

Migración a Ubuntu

Para la migración desde Windows/XAMPP a Ubuntu, consultar MIGRACION.md.


Licencia

MIT License.

About

Sistema de contabilidad empresarial multi-empresa, multi-ejercicio fiscal, desarrollado en Laravel 12 con terminología contable venezolana (VEN-NIF)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages