Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Diferencia entre subtotal e importe y traslados al generar una factura #20

Open
francog-spacebar opened this issue Jan 22, 2020 · 0 comments

Comments

@francog-spacebar
Copy link

Al generar una factura usando el módulo de facturas (no lo pude encontrar en los repositorios de OpenPay), los campos de "subtotal", "importe" y "base" no tienen el mismo valor debido a un error de redondeo. Esta es la solicitud en formato JSON que genera el módulo, los campos no relevantes fueron eliminados.
{"subtotal": "3118.97", "total_trasladados": "499.03", "total": 3618, "tipo_de_cambio": "1", "forma_pago": "04", "hide_total_items": "true", "hide_total_taxes": "true", "moneda": "MXN", "lugar_expedicion": "01234", "observaciones": "Observaciones a dicreción", "serie": "1", "impuestos_retencion": [], "folio": 0, "invoice_id": 909, "metodo_pago": "PUE", "tipo_comprobante": "I", "conceptos": [ { "valor_unitario": "1039.66", "importe": "3118.98", "traslados": [ { "impuesto": "002", "base": "3118.98", "tipo_factor": "Tasa", "tasa": "0.16", "importe": "499.03" } ] } ], "impuestos_traslado": [ { "impuesto": "002", "tasa": "0.16", "importe": "499.03", "tipo_factor": "Tasa" } ]}

Como se puede ver, hay una diferencia de 1 centavo entre el subtotal y los campos de conceptos.importe y conceptos.traslados.base.
Este error se genera debido a que el precio en el catálogo de Magento es de $1206,y al calcular el precio sin IVAes de $1039.655172, que se redondea a $1039.66 (y así queda guardado en la base de datos), un error de 0.00046%. Y al multiplicarlo por la cantidad de artículos, se obtiene $3118.98.

Esta es la respuesta del servidor del SAT (Error CFDI33107).
"type": "invoice.failed", "event_date": "2020-01-20T11:19:33-06:00", "invoice_data": { "invoice_id": "909", "creation_date": "2020-01-20T11:19:33-06:00", "receiver_rfc": "ABC999999321", "total": 3618, "subtotal": 3118.97, "status": "error", "fiscal_status": "active", "message": "CFDI33107: El TipoDeComprobante es I,E o N, el importe registrado en el campo no es igual a la suma de los importes de los conceptos registrados.; " }

Esto no sucede con todos los artículos, solamente con ciertas combinaciones que artiméticamente presentan problemas debido a este error de redondeo.

Cuál sería una manera de prevenir estos errores?
Se me ocurre incrementar la precisión de los precios en Magento aunque esto tiene otras consecuencias no deseadas.

Gracias por su ayuda.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant