Bienvenido a los foros %s

Foro comunidad hispana Dolibarr

Identificarse Registrarse

El redondeo de IVA está mal

Cuestiones sobre cómo utilizar Dolibarr, ayudas sobre las funcionalidades o cualquier cuestión que no está relacionada con un error.
Jordi
Novato
Mensajes: 1
Registrado: Lun, 09/01/2012, 12:34

El redondeo de IVA está mal

Mensaje por Jordi »

Hola,

La cuestion es la siguiente:

Añado 1 producto a 2.87 y una cantidad de 20,
y despues añado 3 veces el mismo producto pero en cantidades de 10,10,10.

El total suma:
143.50 € base imponible
25.84 € Importe IVA
169.34 € el TOTAL

La cuestion es que el IVA que lo he hecho al 18%,
el resultado TOTAL verdadero es : 169,33

Yo creo que falla el redondeo, pero me gustaría saber en que líneas de código está dicha fórmula para ver que le puedo hacer.

Gracias.

pedro48
Novato
Mensajes: 7
Registrado: Mié, 19/01/2011, 20:43

Mensaje por pedro48 »

Yo he tenido o tengo el mismo problema, pero no creo que sea un error.

El IVA lo aplica de forma individual en cada partida, por lo que tienes 4 cantidades a las que se les ha aplicado un IVA y luego las cantidades resultantes son sumadas.

De ahí creo que sale la diferencia, para que no exista, el IVA debería de calcularse al final, pero . . . en ese caso cuando las partidas tengan diferente IVA ¿que? ¿como lo haría?, .

Se el problema o eso creo, pero no le veo una fácil solució.

Avatar de Usuario
Simnandez
Almirante
Mensajes: 328
Registrado: Jue, 07/01/2010, 19:07

Mensaje por Simnandez »

Pedro tiene razón, aunque se está trabajando para ofrecer la posibilidad del redondeo a los totales de los documentos.
2byte.es Preferred Partner de Dolibarr.
¿Quieres soporte profesional? Contacta con nosotros

jovi_javi
Novato
Mensajes: 2
Registrado: Jue, 23/02/2012, 01:21

Mensaje por jovi_javi »

Como va el tema del redondeo al final del documento?¿, puesto que yo tengo un tema muy muy parecido, que calcula mal el total de iva, y la verdad me trae loco!!!.

bercovicho
Novato
Mensajes: 40
Registrado: Mié, 27/07/2011, 12:07

Mensaje por bercovicho »

se que está abierto hace mucho tiempo este hilo, pero finalmente di con la solucion mas sencilla para el problema hace algunos meses. me traia dolores de cabeza ya que quitando los decimales, el error de calculo de los descuentos e iva por linea se disparababan constantemente. finalmente solo se aplicó el redondeo al total y se truncaron los decimales de los precios de linea.

mientras no salga la opcion para redondear en la nueva actualizacion, hay que hecharle mano al código:

htdocscoreclasscommonobject.class.php
funciona tanto para la version 3.0 y 3.1. en el repositorio que esta en github se encuentra en la linea 1149

existe una sentencia SQL que guarda los datos en la db al momento de validar una factura luego del borrador o al actualizar cualquier linea de facturas de proveedor, presupuestos y facturas de clientes que es lo mas importante.

$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element.' SET';
$sql .= " ".$fieldht."='".price2num($this->total_ht)."',";
$sql .= " ".$fieldtva."='".price2num($this->total_tva)."',";
$sql .= " ".$fieldlocaltax1."='".price2num($this->total_localtax1)."',";
$sql .= " ".$fieldlocaltax2."='".price2num($this->total_localtax2)."',";
$sql .= " ".$fieldttc."='".price2num($this->total_ttc)."'";
$sql .= ' WHERE rowid = '.$this->id;

para lograr el redondeo todo eso fue remplazado por :

$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element.' SET';
$sql .= " ".$fieldht."='".round(price2num($this->total_ht))."',";
$sql .= " ".$fieldtva."='".round(price2num($this->total_tva))."',";
$sql .= " ".$fieldlocaltax1."='".price2num($this->total_localtax1)."',";
$sql .= " ".$fieldlocaltax2."='".round(price2num($this->total_localtax2))."',";
$sql .= " ".$fieldttc."='".round(price2num($this->total_ttc))."'";
$sql .= ' WHERE rowid = '.$this->id;


en el fondo se mantienen los decimales de cada linea pero se redondean los totales del neto, iva y el total. en mi caso se redondean al entero superior luego del primer decimal ya que en chile no se utilizan..
para otro redondeo tendrian que colocar ej

round(price2num($this->total_ttc), *2*) donde ** es el factor de redondeo


si tienen facturas y quieren redondear sus valores en la db solo ejecuten una query que haga lo mismo con la funcion UPDATE en la tabla llx_facture. pero hay que tener mucho cuidado ya que puede traer inconsistencias con los documentos ya emitidos, no me quiero hacer responsable por lo que si necesitan esa query me mandan mensaje privado. primero hay que evaluar completamente los datos antes de una sentencia masiva en la db.

Saludos

imase
Novato
Mensajes: 29
Registrado: Mar, 18/06/2013, 10:24

Mensaje por imase »

La solución para el calculo correcto del IVA (Versión testeada 3.2.2) en los presupuestos y facturas y demás, en el caso de los que redondeen con 2 decimales, es el siguiente:

En "limites y precisión" (menu configuración) poner la siguiente combinación:

Decimales máximos para los precios unitarios 2
Decimales máximos para los precios totales 3
Decimales máximos para los importes mostrados en pantalla 2

A mi por lo menos, me funciona de maravilla y ya no he tenido problemas con las empresas con las que trabajo. No he probado en el caso que los IVAs de cada línea sean difererente porque siempre trabajamos con el 21%.

No hay que editar código. Si habeis modificado el calculo o el redondeo, dejar de nuevo los archivos tal y como estaban.

bercovicho
Novato
Mensajes: 40
Registrado: Mié, 27/07/2011, 12:07

Mensaje por bercovicho »

La solución para el calculo correcto del IVA (Versión testeada 3.2.2) en los presupuestos y facturas y demás, en el caso de los que redondeen con 2 decimales, es el siguiente:

En "limites y precisión" (menu configuración) poner la siguiente combinación:

Decimales máximos para los precios unitarios 2
Decimales máximos para los precios totales 3
Decimales máximos para los importes mostrados en pantalla 2

A mi por lo menos, me funciona de maravilla y ya no he tenido problemas con las empresas con las que trabajo. No he probado en el caso que los IVAs de cada línea sean difererente porque siempre trabajamos con el 21%.

No hay que editar código. Si habeis modificado el calculo o el redondeo, dejar de nuevo los archivos tal y como estaban.

¿Se ha solucionado entonces el redondeo a los totales del documento?

yo aplique en su momento la modificación directamente al código para asegurar que los totales estuviesen correctamente calculados, anteriormente las reglas de precisión y limites solo afectaban el redondeo a nivel de linea, es decir, podían existir incongruencias entre el importe total y el neto+iva ya que tanto el importe neto como el iva tenían residuos de decimales que en algunos casos se aproximaban y generaban diferencias. lo que decía jordi mas arriba. a mayor cantidad de lineas de productos, mayor era esa divergencia.

lo que se hizo modificando el código es asegurar que el redondeo se aplicara a los totales antes de guardar datos en la base mysql al momento de validar,
la solución se hizo específicamente cuando la moneda no incluye céntimos que es el caso de chile, por lo cual un valor de 100.60 pasa a ser 101. y un valor de 100.4 es solo 100. es de suma importancia ya que el documento fiscal si tiene errores en los totales se considera nulo y la totalización debe ser exacta a lo que dice el papel.


por ej
Neto 100.2 (ESE VALOR TIENE QUE SER REDONDEADO) +
IVA 19.6 (ESE VALOR TIENE QUE SER REDONDEADO)
TOTAL 119.8 (ESE VALOR TIENE QUE SER REDONDEADO)

a pesar que dolibarr aproxima y muestra en pantalla las aproximaciones no podemos tener un registro en la mysql de un valor que en la practica no existe.

lo correcto sería

Neto 100
IVA 20
Total 120

sin decimales y aproximado.

espero aclare las dudas para quienes aun poseen problemas de decimales aun cuando su moneda no los utiliza.

saludos

imase
Novato
Mensajes: 29
Registrado: Mar, 18/06/2013, 10:24

Mensaje por imase »

Entiendo lo que me dices pero yo no le puedo vender a un cliente un producto con un redondeo tan a lo bestia. Yo haciendo lo que te he dicho ya no tengo poblemas y desde administración no me han vuelto a decir nada.

He de decir que tengo moneda española y trabajamos con un 21% de IVA. Y de momento todos los IVAs, tanto de línea como totales me salen clavados.