jccastillo0007 / eFacturaT

eFacturaT
0 stars 2 forks source link

PFTv1.0 - la suma de las bases de impuesto a nivel concepto, algunas ocasiones no es correcta cuando los precios unitarios son a 6 decimales #2380

Closed RigoFlores closed 9 months ago

RigoFlores commented 9 months ago

Creo que pasa lo mismo que pasaba con los importes de impuestos. En este caso, los precios unitarios están a 6 decimales en el concepto. luego la base de impuesto a nivel concepto (importe - descuentos), se reporta a 6 decimales, pero solo 2 significativos.

y al final, en el nodo general de impuestos, la suma de las bases para este extraño caso, varía 1 centavo arriba, lo que indica que esa suma se hizo a 6 decimales, aunque se reporta a 2. OJO, no se había presentado este caso, creo que es poco común que manejen varios coneptos, con 6 decimales y cantidades mayores a 1... pero bueno, ahí está el tema... Mira los datos para poder reproducrir. (son de pro).

baseChueca.txt

RigoFlores commented 9 months ago

Hay 2 formas de atenderlo (de hecho es un caso muy poco común, pero bueno hay que fixearlo)...

Una forma...así como está, solo reportar la base a 6 decimales completos. Es decir, la base ya se reporta a 6 decimales, pero únicamente 2 significativos. La suma de bases ahora mismo está calculada sobre los 6 decimales completos (de ahí la diferencia). Tons lo único que faltaría, sería reportar la base de impuesto a nivel concepto, con los 6 decimales significativos...

La otra forma, es reportar la base global sumando directamente de cada base a nivel concepto reportada en el XML, es decir sumar con las bases a 2 decimales signiticativos.

RigoFlores commented 9 months ago

Aplica también para cuando el precio unitario es de más de 2 decimales, es decir, no tiene que ser 6 decimales... sino 3,4,5 o 6. Y bueno, entre mas productos contenga la factura, mas suceptible a este problema se vuelve.

El tema es que para la base de impuestos global, hace la suma con todos los decimales, mientras que la base del impuesto a nivel concepto, solo reporta 2 decimales significativos con 4 ceros de relleno.

Hoy reportaron otro caso.

RigoFlores commented 9 months ago

para reproducirlo en pru... emisor IVD receptor la tia productos: prueba base iva, cantidad 1, precio unitario el que ya tiene prueba base iva2, cantidad 1, precio unitario el que ya tiene

Ahí se ve claramente, que la base a nivel concepto, la "redondea" a dos decimales, pero la reporta con 6 decimales. ese no es problema. La base a nivel impuesto, la suma con todos los decimales y ahí es donde puede dar las diferencias.

jccastillo0007 commented 9 months ago

checale... según el ejemplo que dices, ya lo hace bien, pero marcó otro error

RigoFlores commented 9 months ago

ok, es que el subtotal lo calculas igualmente con 6 decimales, jejeje... y arroja 1 centavo arriba. Por consecuencia el total, también está un centavo arriba.

No es como regla, ya que depende de descuentos, pero en este caso que es simple, el subtotal debe ser igual a la base reportada en el nodo de impuestos general. Y si revisas, tiene diferencia de 1 centavo. Subtotal = suma de importes; importe = cantidad x precio unitario Base de impuesto a nivel concepto: importe - descuentos base de impuesto a nivel general: suma de bases a nivel conceptos

jccastillo0007 commented 9 months ago

checale