Skip to content

Añadir TrialBalance: balance de sumas y saldos desde las partidas#2012

Open
lanzalibre wants to merge 1 commit into
NeoRazorX:masterfrom
lanzalibre:feature/trial-balance
Open

Añadir TrialBalance: balance de sumas y saldos desde las partidas#2012
lanzalibre wants to merge 1 commit into
NeoRazorX:masterfrom
lanzalibre:feature/trial-balance

Conversation

@lanzalibre

@lanzalibre lanzalibre commented Jul 16, 2026

Copy link
Copy Markdown

Descripción

Añade Core/Lib/Accounting/TrialBalance: balance de sumas y saldos calculado directamente desde las partidas (nunca desde los saldos en caché de subcuentas/cuentas, que pueden estar desactualizados tras importaciones masivas):

$filas = TrialBalance::generate($codejercicio, TrialBalance::LEVEL_ACCOUNT, [
    'fecha_desde' => '2026-01-01',
    'fecha_hasta' => '2026-03-31',
]);
$resultado = TrialBalance::result($codejercicio); // (haber - debe) de los grupos 6 y 7
  • Tres niveles de agrupación: grupo (1 dígito), cuenta (3 dígitos) y subcuenta.
  • Filtro opcional por rango de fechas.
  • Excluye por defecto los asientos de regularización (R) y cierre (C) — para que el balance de un ejercicio cerrado no salga a cero — con opción include_closing para incluirlos.
  • result() devuelve el resultado del ejercicio (positivo = beneficio) desde las partidas.
  • SQL portable (SUBSTR + GROUP BY, MySQL/MariaDB/PostgreSQL).

Tests unitarios incluidos (Test/Core/Lib/TrialBalanceTest.php)

Todos comparan diferencias antes/después para no depender de datos de otros tests:

  1. testTrialBalanceByGroup — asiento DR 6xx 100, DR 5xx 50 / CR 7xx 150: comprueba las sumas por grupo y que result() sube +50; al borrar el asiento el resultado vuelve al valor anterior.
  2. testTrialBalanceByAccountAndSubaccount — comprueba la agrupación a 3 dígitos y por subcuenta exacta.
  3. testExcludesClosingEntries — un asiento con operacion = 'R' no aparece por defecto y sí con include_closing.
  4. testDateFilter — un asiento fuera del rango de fechas no aparece; dentro del rango sí.

¿Cómo has probado los cambios?

  • He revisado mi código antes de enviarlo.
  • He probado que funciona correctamente en mi PC.
  • He probado que funciona correctamente con una base de datos vacía.
  • He ejecutado los tests unitarios (los 4 nuevos pasan; phpcs sin avisos).

Calcula el balance por grupo, cuenta o subcuenta directamente desde las
partidas (no desde los saldos en caché), con filtro de fechas, exclusión
de asientos de regularización/cierre y cálculo del resultado del
ejercicio (grupos 6 y 7).
@lanzalibre
lanzalibre force-pushed the feature/trial-balance branch from e7015c1 to 0c0b7bf Compare July 16, 2026 18:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant