El modelo 303 no excluye los asientos de regularización de IVA creados manualmente
Problema: Cuando un usuario crea a mano el asiento contable de regularización de IVA del trimestre anterior (en vez de usar el botón "Crear asiento contable" del plugin Modelo303), el cálculo del trimestre siguiente no lo excluye y suma sus importes como si fueran movimientos normales de IVA, inflando la cuota resultante. A los usuarios que generan el asiento con el asistente automático del plugin no les afecta.
Qué ocurre (causa raíz): El filtro que decide qué asientos hay que excluir del cálculo del trimestre (commonTaxWhere() en Plugins/Modelo303/Controller/EditRegularizacionImpuesto.php, y de forma idéntica en getSubtotals() de Plugins/Modelo303/Lib/Accounting/VatRegularizationToAccounting.php) no reconoce un asiento como "de regularización" por su naturaleza contable, sino solo comprobando si existe un registro en la tabla regularizacionimpuestos cuyo campo idasiento apunte a él. Un asiento manual nunca se vincula a un registro de regularizacionimpuestos, por lo que nunca entra en $regIds y nunca se excluye. Sus líneas en las subcuentas de IVA repercutido/soportado se cuentan como movimientos normales del periodo.
Cómo se podría solucionar: Permitir "vincular" un asiento ya existente (creado manualmente) a un registro de RegularizacionImpuesto, sin que el asistente genere líneas nuevas es decir, dar la opción de rellenar idasiento/fechaasiento en el registro de regularización apuntando al asiento manual del usuario, en vez de exigir que el asiento se genere siempre desde el propio plugin. Así el asiento manual quedaría reconocido y correctamente excluido en el cálculo del siguiente trimestre.
España, 6 meses, nivel 22
|
|
24-08-2026 18:52:17 esteban Yo me encargo de esta tarea. |
|
|
24-08-2026 19:09:52 esteban ENVIADA - https://github.com/FacturaScripts/modelo303/pull/31 |
|
|
24-08-2026 19:10:02 esteban Relacionado con esta issue https://facturascripts.com/issues/119-503-654Implementa el método linkExisting en VatRegularizationToAccounting para permitir la vinculación de asientos contables existentes a regularizaciones de impuestos. Modifica editAction en EditRegularizacionImpuesto para verificar si se ha vinculado un asiento contable manual. Añade mensajes de error en es_ES.json para manejar casos de asientos ya creados o vinculados. Crea pruebas en VatRegularizationLinkExistingTest.php para validar la nueva funcionalidad. |