Este informe presenta un problema importante: no usa los importes de los asientos, sino que hace los cálculos en base a los campos:
Esto produce descuadres de varios céntimos, además de dificultar el trabajo con asientos manuales (el usuario se tiene que acordar de rellenar los campos de iva y base imponible).
Esta es una SQL con la que podemos localizar los asientos con diferencias entre lo que hay en el debe/haber y los que se obtiene del cálculo a partir de la base imponible.
select p.idasiento, baseimponible, haber, round(baseimponible * (iva / 100), 2) as calc
from partidas p
left join asientos a on p.idasiento = a.idasiento
where fecha >= '2023-07-01' and fecha <= '2023-09-31'
and idsubcuenta = '279'
and haber != round(baseimponible * (iva / 100), 2)
Para este ejemplo estamos usando el rango de fechas 2023-07-01
a 2023-09-31
y la subcuenta con id 279
.
Este plugin hace el cálculo en el JoinModel, por lo que habría que modificarlo para usar las columnas debe o haber, en lugar de calcular la cuota de iva.
22-01-2024 14:11:27 daniel89fg_739 ENVIADA - https://github.com/FacturaScripts/modelo303/pull/7 |