tryton-ar/account_invoice_ar

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.