Test funcional para wsfex
lukio opened this issue · 2 comments
Al contabilizar una factura vacia tira un traceback. El webservice de WSFEX necesita que si o si se le envíen las lineas de la factura. Se puede resolver de dos formas distintas:
- Una factura de exportación si o si debe tener una linea.
- Cuando se contabiliza una factura de exportación al enviarle los datos a la AFIP creamos una linea en el momento con cantidad = 1, precio unitario = 0,00.
File "/opt/trytond/untref5/modules_extra/account_invoice_ar/tests/scenario_invoice_pos_electronic_wsfex.rst", line 451, in scenario_invoice_pos_electronic_wsfex.rst [357/1946]
Failed example:
invoice.click('post')
Exception raised:
Traceback (most recent call last):
File "/usr/lib/python3.5/doctest.py", line 1321, in __run
compileflags, 1), test.globs)
File "<doctest scenario_invoice_pos_electronic_wsfex.rst[269]>", line 1, in <module>
invoice.click('post')
File "/opt/trytond/untref5/modules_extra/account_invoice_ar/.eggs/proteus-5.0.3-py3.5.egg/proteus/__init__.py", line 93, in newfunc
return self.func(owner, [instance], *args, **kwargs)
File "/opt/trytond/untref5/modules_extra/account_invoice_ar/.eggs/proteus-5.0.3-py3.5.egg/proteus/__init__.py", line 877, in click
return getattr(proxy, button)([r.id for r in records], context)
File "/opt/trytond/untref5/modules_extra/account_invoice_ar/.eggs/proteus-5.0.3-py3.5.egg/proteus/config.py", line 195, in __call__
result = rpc.result(meth(*args, **kwargs))
File "/opt/trytond/untref5/modules_extra/account_invoice_ar/.eggs/trytond-5.0.10-py3.5.egg/trytond/model/modelview.py", line 672, in wrapper
return func(cls, records, *args, **kwargs)
File "/opt/trytond/untref5/modules_extra/account_invoice_ar/.eggs/trytond-5.0.10-py3.5.egg/trytond/model/workflow.py", line 36, in wrapper
result = func(cls, filtered, *args, **kwargs)
File "/opt/trytond/untref5/modules_extra/account_invoice_ar/invoice.py", line 860, in post
in error_invoices if i.transactions]),
File "/opt/trytond/untref5/modules_extra/account_invoice_ar/.eggs/trytond-5.0.10-py3.5.egg/trytond/error.py", line 74, in raise_user_error
raise UserError(error)
trytond.exceptions.UserError: ('UserError', ('There was a problem at invoices IDs "4".\nCheck out error messages: "1666: Campo Cmp.Items invalido (sin ocurrencia)"',''))
Nuevo error: al querer borrar la conciliación del pago pasa nuevamente por el método post y quiere volver a contabilizar el comprobante. Como se percata que la numeración es incorrecta falla y no deja continuar. Lo que se debe realizar es hacer algo parecido a consultar y recuperar comprobante. Para eso se puede obtener el id enviado y volver a consultar con un id ya enviado. Eso hace que el comprobante devuelto venga con Reproceso=S (True). Dicho esto, deberiamos de guardarnos el id enviado a la AFIP, para que lo podamos obtener facilmente y re-utilizarlo si es necesario.
Si tiene id registado, entonces la validación de la numeración cuando es un comprobante de WSFEX se puede saltar. Esto esta relacionado con #158