Conforme al Art. 21°, de la Ley N° 18.267:
a contar del 1° de enero de 1984, las personas naturales, instituciones bancarias, de previsión social y en general todo otro servicio, institución o empresa, pública o privada, eliminarán de su contabilidad las fracciones de la unidad monetaria. Con tal objeto, se despreciarán las fracciones inferiores a cincuenta centavos de peso y se elevarán al entero superior las de cincuenta centavos o más.
Por lo tanto, la forma correcta de calcular el IVA a partir del monto neto, es redondear el valor del IVA.
Por ejemplo, el IVA del monto neto $33.655 es $6.394 (no $6.395).
En caso de no aplicar correctamente este criterio, los documentos y libros serán aceptados por el SII, pero generarán un reparo leve que será informado al contribuyente con la observación “LBR – 2 – Reparo en Calculo de – [MntIVA] distinto a [MntNeto]*[TasaImp]“.
Calcular el Monto Neto a partir del Monto Total puede parecer algo muy sencillo, sin embargo, no lo es. De hecho, para algunos montos totales como $103, $110, $116, etc. no existe un monto neto al que se le pueda sumar el IVA calculado por medio del Art. 21° de la Ley.
Cuando se emite un documento con SuperFactura, es posible simplemente omitir el tag MntNeto para que SuperFactura realice el cálculo automáticamente. De todas maneras, acá presentamos pseudo-código para explicar como se puede realizar este cálculo:
/** * Obtiene neto del total, procurando que neto + iva (redondeado) = total * OBS: Hay valores para $total para los cuales no existirá un neto tal que: * neto + iva = total, donde iva = round(neto) * 0.19 * Por ejemplo: total = 103, 110, 116, 122, 128, 135, 141, 147, 153, 160, 166,172, 178, 185, 191, 197, 204, 210,... */ function GetNetoFromTotal($total, $allowFloat = false) { if($allowFloat) { $neto = $total / 1.19; } else { $neto = floor($total / 1.19); // Intentaremos tanteando con el neto menor (floor($x) < round($x)) $ivaDelNeto = round($neto * 0.19); // IVA calculado correctamente (con round) if($neto + $ivaDelNeto > $total) { // No cuadra => arreglar neto para cuadrar $neto--; } } return $neto; }
y si hago una boleta por 61000, el neto tiene decimales. Se redondea el neto para calcular el IVA? (el sitio del sii pone reparos para todas las opciones “normales”)
Gracias.
Hemos agregado pseudo-código para calcular el monto neto a partir del monto total.
Hola, gracias por la info.
Consulta:
6394,45 se reondea a 6394 OK, pero 6394,5 a 6395 ???
Gracias
Sí, round(6394.5) = 6395