How to: Calcular valor mínimo y valor maximo en mercancías de Comercio Exterior 1.1 Cfdi en USD.

En este post voy a explicar como realizar los cálculos de los valores máximos y mínimos de concepto para el complemento de comercio exterior 1.1.

Cosas que debes de saber antes.

  • Este artículo se escribió el 3 de Marzo de 2020, verifica que las reglas de validación son vigentes todavía en el Anexo 20.
  • El post trata la regla CCE205, solo el calculo de valores mínimos y máximos del nodo Concepto.
  • Si necesitas consultar la regla CCE216 puedes consultar este post.
  • El complemento de comercio exterior  siempre se expresa en USD.
  • No usaré conversiones entre unidades de medida.
  • Los números de decimales empleados para el redondeo son 2 en USD.

Caso de ejemplo:

Voy a usar el siguiente Cfdi para el tutorial:

 Realizando el cálculo de límites:

He codificado una pequeña aplicación de consola para ejecutar el cálculo del ejemplo junto con el código fuente de la utilería. El programa toma los inputs fijos, no lee el archivo ejemplo. Debes de tener cuidado con el método que elijas para leer el archivo, si tomas los datos del cfdi mediante serialización es posible que el número de decimales no coincida con el documento original. Por ejemplo: 18.9000 en el cfdi puede retornar en 18.9 en un objeto tipo decimal o double, para el programa es el mismo valor para las fórmulas no.

¿Qué pasos sigo para realizar el cálculo?.

  1. Itera en los nodos Concepto del cfdi.
  2. Por cada nodo Concepto. Obtén todos los nodos Mercancía que tengan el mismo Número de identificación que el concepto (excluyendo aquellos con ValorDolares en 0 y 1).
  3. En caso de que no exista ningún nodo mercancía válido, pasa al siguiente Concepto.
  4. Itera todos los nodos Concepto del Cfdi y obtén la sumatoria del campo Importe de todos los conceptos con el mismo Numero de identificación que el concepto actual (2 o mas conceptos pueden tener el mismo numero de identificación y dos o mas nodos mercancías pueden tener el mismo numero de identificación).
  5. Obten el valor TipoCambio del Cfdi (si el Cfdi fue emitido en MXN, este valor puede no existir, debes usar 1 en su lugar).
  6. Obten el valor TipoCambioUSD del complemento de ComercioExterior
  7. Obten el número de decimales de la sumatoria de Importes de Concepto.
  8. Obten el número de decimales del valor TipoCambio del Cfdi (si el Cfdi fue emitido en MXN, este valor puede no existir, debes emplear 2 en su sitio).
  9. Obten el número de decimales del valor TipoCambioUSD.
  10. Ejecuta el cálculo de valor mínimo  y valor máximo.
  11. Redondea los valores y máximos de acuerdo a la Moneda utilizada en el Comprobante.
  12. Calcula el monto de ValorDolares que es igual a la Sumatoria del campo ValorDolares de los nodos Mercancía con el mismo NumeroIdentificacion (algunos PAC calculan el campo ValorDolares multiplicando el campo CantidadAduana * ValorUnitarioAduana por cada nodo mercancia).
  13. Verifica que al monto ValorDolares esté dentro del valor máximo y mínimo.

Puntos a tener en cuenta.

El cálculo de valores mínimos y máximos puede variar dependiendo del lenguaje que uses, el tipo de dato o la precisión de los cálculos, esto es más evidente cuando manejas números con muchos decimales.

Referencias:

Gustavo Sánchez

Soy especialista en escribir software de calidad. Mediante el uso de marcos de trabajo, técnicas y automatización de procesos he podido reducir los costes operativos de los sistemas de la empresa. Sistemas confiables y adaptables producen clientes felices.

Site Footer