WSFEX: crash cuando el campo descripción es vacio
lukio opened this issue · 1 comments
lukio commented
El campo descripción de la línea puede estar vacio y ya no es requerido. Antes de enviarlo a la AFIP al campo descripción le sacamos los acentos pasandolo por strip_accents. Si valor enviado al método strip_accents es vacío se rompe.
File "/opt/trytond/untref5/modules_extra/account_invoice_ar/tests/scenario_invoice_pos_electronic_wsfex.rst", line 257, in scenario_invoice_pos_electronic_wsfex.rst
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[167]>", 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 813, in post
batch=False)
File "/opt/trytond/untref5/modules_extra/account_invoice_ar/invoice.py", line 1383, in create_pyafipws_invoice
ds = strip_accents(line.description)
File "/opt/trytond/untref5/modules_extra/account_invoice_ar/invoice.py", line 1086, in strip_accents
text = normalize('NFD', text)
TypeError: normalize() argument 2 must be str, not None
lukio commented
Por otro lado, cuando la factura es de exportación se deben enviar los items, y entre los valores a enviar en los items esta la descripción. En vez de hacer que el campo description de la linea sea requerido, lo que se puede hacer es enviarle a la AFIP un guión o algo parecido.