Redondeo y ajustes de montos
El controlador acepta valores con las siguientes cantidades de decimales:
• Cantidades: 10 decimales
• Montos: 4 decimales
• Impuestos internos: 8 decimales
Sin embargo, en los montos impresos en los documentos sólo figuran centavos (es decir, dos decimales), lo que obliga al controlador a realizar redondeos antes de imprimirlos. Esto puede provocar diferencias entre los montos impresos y los que calcularía un eventual programa de caja, por lo que a continuación se describe el procedimiento general mediante el cual el controlador redondea decimales.
7.1. Redondeo de decimales
Todas las cuentas son llevadas internamente en formato Double Precision, esto es, con una precisión superior a la que se ingresan los montos y cantidades en los comandos. Hay tres oportunidades diferentes en que deben imprimirse montos:
1. Dentro del documento. Cuando, en un documento de tipo A, se imprimen los montos netos o cuando un documento tiene más de una hoja y deben realizarse traslados a la hoja siguiente, los valores acumulados son impresos luego de redondearlos a dos decimales, pero el controlador sigue operando internamente con el monto sin redondear.
2. Cuando se cierra el documento. Como en caso anterior, los valores acumulados internamente son impresos luego de redondearlos a dos decimales. Nótese que este monto impreso no coincide necesariamente con la suma de los montos trasladados en hojas anteriores más los montos generados en la última hoja, debido al redondeo mencionado en el punto anterior. Una vez cerrado el documento, el controlador almacena los montos con los valores impresos redondeados a dos decimales.
3. Al cierre de la jornada fiscal. Los montos impresos en el Reporte Z resultan del redondeo a enteros de la suma de los montos de cada documento (los que, a su vez, ya se encontraban redondeados a dos centavos). Estos valores sin decimales son los que se almacenan en la memoria fiscal y se reportan en los informes de auditoria (comandos DailyCloseByDate y DailyClosebyNumber) y en el informe de Z individual (comando GetDailyReport).
En todos los casos, el procedimiento de redondeo es el llamado 4/5: si la cifra a redondear es 4, se la trunca directamente; si es 5, se aumenta en 1 el decimal anterior y luego se trunca.
7.2. Ajustes por redondeo
Se presentan dos situaciones diferentes, según se trate de documentos A o documentos B / C.
Documentos A
a. Cuando se vende un ítem, la cantidad viene dada por el usuario y se imprime con 4 decimales. El precio unitario (base imponible) es dado por el usuario o calculado por el impresor (en caso de que el usuario venda por monto total) y se imprime con 4 decimales. El monto vendido se calcula como producto de la cantidad verdadera y del precio unitario verdadero, y se redondea a dos decimales para imprimirlo. El IVA y los conceptos no gravados son calculados pero no se imprimen. El monto total vendido (sin redondear) se suma a un acumulador interno que lleva el monto total verdadero del documento.
b. El impresor va acumulando por cada alícuota de IVA el monto total de base imponible, el IVA y los conceptos no gravados, todos sin redondear.
c. En el momento de realizar la discriminación por alícuotas de IVA, al final del documento, todos los números acumulados por cada alícuota (montos de base imponible, IVA, percepciones, conceptos no gravados, etc.) se redondean a dos decimales y se imprimen. Se calcula un monto total nominal como suma de todos estos números impresos, que tendrá una precisión de 2 decimales.
Si la suma de los montos netos correspondientes a cada venta no coincide con la suma de los montos discriminados por alícuota de IVA, previa a la impresión de estos últimos se introduce una línea con la leyenda “AJUSTE B.I.“ con la diferencia en más o en menos entre ambas sumas.
d. Se redondea el monto total verdadero a 2 decimales. Este monto es el que aparece a la derecha de la palabra “TOTAL”. Si este valor no coincide con el monto total nominal, se introduce antes de la palabra “TOTAL” una línea con la leyenda “AJUSTE POR REDONDEO” con la diferencia en más o en menos entre ambos totales.
Documentos B / C
a. Cuando se vende un ítem, la cantidad viene dada por el usuario y se imprime con 4 decimales. El precio unitario (monto total) es dado por el usuario o calculado por el impresor (en caso de que el usuario venda por base imponible) y se imprime con 4 decimales. El monto vendido se calcula como producto de la cantidad verdadera y del precio unitario verdadero, y se redondea a dos decimales para imprimirlo. El IVA y los conceptos no gravados son calculados pero no se imprimen. El total vendido se suma a dos acumuladores internos: uno de ellos lleva el monto total verdadero del documento, y acumula los montos sin redondear. El otro lleva el monto total nominal y acumula los montos redondeados, tal como han sido impresos en el papel.
b. En el momento de cerrar el documento, se redondea el monto total verdadero a 2 decimales. Este monto es el que aparece a la derecha de la palabra “TOTAL”. Si este valor no coincide con el monto total nominal, se introduce antes de la palabra “TOTAL” una línea con la leyenda “AJUSTE POR REDONDEO” con la diferencia en más o en menos entre ambos totales.
El redondeo de base imponible y el ajuste por redondeo son recursos para conservar la coherencia interna de las cifras del documento. Sin embargo, ninguno de los dos valores se contabilizara. Esto es, las cifras que se almacenarán en la memoria (luego de realizarse los redondeos descriptos en el punto 7.1.) son el total y los montos discriminados por alícuota que figuran en las facturas.