tryton-ar / account_invoice_ar

Tryton module with AFIP WS integration
GNU General Public License v3.0
14 stars 13 forks source link

Test funcional para wsfex #155

Closed lukio closed 5 years ago

lukio commented 5 years ago

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:

  1. Una factura de exportación si o si debe tener una linea.
  2. 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)"',''))
lukio commented 5 years ago

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