Factura electronica: problemas de configuración

819 views
Skip to first unread message

Gustavo Lindenberg

unread,
May 11, 2015, 10:17:23 AM5/11/15
to odoo-ar...@googlegroups.com

Buenas,

Tengo dos instancias armadas de odoo. Una en producción con virtualenv y la otra en testing con docker, las dos usando los repos de ing adhoc. En las dos me pasa lo mismo. Quiero armar el tema de factura electronica y tengo problemas con los certificados.

Para hacer el CSR que es el primer tutorial, anduvo todo genial. bajé el request.csr, lo subí a AFIP y ellos me dieron un CRT. Al intentar subir el CRT con el asistente "Load Certificate", me dice lo siguiente:

Odoo Server Error

Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 530, in _handle_exception return super(JsonRequest, self)._handle_exception(exception) File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 567, in dispatch result = self._call_function(**self.params) File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 303, in _call_function return checked_call(self.db, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/service/model.py", line 113, in wrapper return f(dbname, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 300, in checked_call return self.endpoint(*a, **kw) File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 796, in __call__ return self.method(*args, **kw) File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 396, in response_wrap response = f(*args, **kw) File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 939, in call_button action = self._call_kw(model, method, args, {}) File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 927, in _call_kw return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 241, in wrapper return old_api(self, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/addons/base/res/res_config.py", line 155, in action_next next = self.execute(cr, uid, ids, context=context) File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 241, in wrapper return old_api(self, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 363, in old_api result = method(recs, *args, **kwargs) File "/mnt/extra-addons/odoo-argentina/l10n_ar_wsafip/config.py", line 109, in execute self.wsafip_request_id.have_crt(can_raise=True) File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 239, in wrapper return new_api(self, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 397, in new_api result = [method(rec, *args, **kwargs) for rec in self] File "/mnt/extra-addons/odoo-addons/crypto/certificate.py", line 244, in have_crt certificate = self.get_certificate()[self.id] File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 239, in wrapper return new_api(self, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 397, in new_api result = [method(rec, *args, **kwargs) for rec in self] TypeError: get_certificate() takes at least 4 arguments (1 given)

Entonces procedí a editar el certificado a mano en Configuracion->Cryptography->Certificates, e hice copy paste del contenido del CRT que me dio la afip, con ---BEGIN--- y end certificate incluídos,como corresponde.

Luego creé una sesión en "sesiones" con el nombre "test" y puse:

servidor: "Factura Electronica [production]"

Servidor de Autorización: Autentificación y Autorización [production]

Firmante del certificado: Seleccioné el único que hay, que es el certificado previamente editado.

Secuencia de lote no psue nada

Identificación unica lo dejé en 0

Toco Login y me dice:

Unknown Error

list index out of range

 

Si corro el asistente de Electronic Invoice Configuration, selecciono mi companía, certificado y punto de venta, me dice:

Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 530, in _handle_exception return super(JsonRequest, self)._handle_exception(exception) File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 567, in dispatch result = self._call_function(**self.params) File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 303, in _call_function return checked_call(self.db, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/service/model.py", line 113, in wrapper return f(dbname, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 300, in checked_call return self.endpoint(*a, **kw) File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 796, in __call__ return self.method(*args, **kw) File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 396, in response_wrap response = f(*args, **kw) File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 939, in call_button action = self._call_kw(model, method, args, {}) File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 927, in _call_kw return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 241, in wrapper return old_api(self, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/addons/base/res/res_config.py", line 155, in action_next next = self.execute(cr, uid, ids, context=context) File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 241, in wrapper return old_api(self, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 393, in old_api result = new_api(recs, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 397, in new_api result = [method(rec, *args, **kwargs) for rec in self] File "/mnt/extra-addons/odoo-argentina/l10n_ar_wsafip_fe/config.py", line 105, in execute connection.id, self._context) File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 241, in wrapper return old_api(self, *args, **kwargs) File "/mnt/extra-addons/odoo-argentina/l10n_ar_wsafip_fe/wsafip_server.py", line 353, in wsfe_update_tax conn.login() # Login if nescesary. File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 239, in wrapper return new_api(self, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 546, in new_api result = method(self._model, cr, uid, self.ids, *args, **kwargs) File "/mnt/extra-addons/odoo-argentina/l10n_ar_wsafip/wsafip_connection.py", line 102, in login msg = ws.certificate.smime(msg)[ws.certificate.id] File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 239, in wrapper return new_api(self, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 397, in new_api result = [method(rec, *args, **kwargs) for rec in self] File "/mnt/extra-addons/odoo-addons/crypto/certificate.py", line 197, in smime cs = BIO.MemoryBuffer(self.crt.encode('ascii')) AttributeError: 'bool' object has no attribute 'encode'

 

Las dos cosas me pasan en docker y en virtualenv. Me podrán dar una mano?


Busqué en el grupo y encontré un tema viejo que le pasaba lo mismo pero como no usaba fc Electrónica lo desactivó y no tuvo mas dramas, y después encontré otro post POST que tuvo uno de los errores, pero es viejo. Me acuerdo que el año pasado cuando quise hacer andar esto con OpenERP v7 había que cargar un módulo mcrypto parcheado, pero esta vez no puse nada parcheado. Es ese el problema? Me podrán dar una mano?

Gracias !


Saludos

Pablo Navarro

unread,
May 11, 2015, 10:52:47 AM5/11/15
to odoo-ar...@googlegroups.com
Hola Gustavo, buenos dias.

Donde encontraste un tutorial para el tema de facturación electrónica? Estoy queriendo hacer lo mismo.

Saludos cordiales
Pablo Navarro

Gustavo Orrillo

unread,
May 11, 2015, 11:01:58 AM5/11/15
to odoo-ar...@googlegroups.com
Pablo, hasta donde sepa no hay tutorial. Siempre que tuve una duda le pregunte a Cristian (que desarrollo el modulo) que se sienta delante mio

--
Recuerda siempre poner la mayor cantidad de datos para que se entienda bien que necesitas y que respondes. Algunos errores comunes:
 
- Siempre mencionar en que versión de odoo trabajas.
- Siempre mencionar si el servidor esta en LINUX o en windows y en que versión.
- No alcanza con colocar el debug del error, debes indicar que necesitas que haga el código.
- Comparte tu código en un servidor abierto como Launchpad u otro.
- Si haces un manual, tutorial o algo de interés comunal, trata de usar google docs.
 
Tu tiempo es tan valioso como el de cualquiera de la comunidad. Aquí se valora el aporte que hagas.
 
Nuestras normas mínimas de convivencia puede leerlas en https://groups.google.com/d/forum/odoo-argentina?hl=es-ES
---
Has recibido este mensaje porque estás suscrito al grupo "odoo-Argentina - Preguntas y respuestas para personalizadores" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a odoo-argentin...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a odoo-ar...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Gustavo Lindenberg

unread,
May 11, 2015, 1:19:52 PM5/11/15
to odoo-ar...@googlegroups.com
Pablo,

ningun tutorial, lo estoy intentando a mano, aunque siempre tengo un karma con la parte de factura electrónica, ya es como la tercera vez que lo intento implementar y siempre terminaba dejándolo para después, aunque ahora lo necesito hacer andar, jaja ! La verdad es que pareciera ser bastante simple, pero no quiere andar.

Gustavo, vos que la tenés clara con odoo, tenés idea de donde puede venir alguno de los errores? Yo la verdad de python no entiendo nada, lo mío es php.

Desde ya te agradezco !
saludos !
Gustavo.

Gustavo Orrillo

unread,
May 11, 2015, 1:23:12 PM5/11/15
to odoo-ar...@googlegroups.com
el error puede venir de dos partes:

a) o cargaron el certificado y la clave publica de forma incorrecta
b) estan usando una version no actualizada de la factura electronica

Gustavo Lindenberg

unread,
May 11, 2015, 1:37:48 PM5/11/15
to odoo-argentina
Gustavo,

Estoy usando todos los modulos de ingeniera ad-hoc e instalé todo ayer. No digo que estén actualizados ya que no lo sé con certeza, pero teóricamente es un fork del oficial y anda. (teoricamente).
Cuando decís que puede estar cargado de forma incorrecta, como sería la forma correcta? por que el asistente tiró algún que otro error en el camino y yo lo cargué "a mano" dentro de los certificates y pairkeys el CRT. el resto lo hizo el tutorial.

Gracias !

slds

Has recibido este mensaje porque estás suscrito a un tema del grupo "odoo-Argentina - Preguntas y respuestas para personalizadores" de Grupos de Google.
Para anular la suscripción a este tema, visita https://groups.google.com/d/topic/odoo-argentina/kafI78uDHi0/unsubscribe.
Para anular la suscripción a este grupo y a todos sus temas, envía un correo electrónico a odoo-argentin...@googlegroups.com.

Gustavo Orrillo

unread,
May 11, 2015, 3:03:16 PM5/11/15
to odoo-ar...@googlegroups.com
yo estoy usando otro modulo


ahora, este módulo depende de la localización de https://github.com/odoo-l10n-ar/, no se si funcionará con la localización de AdHoc.

Igualmente dentro de poco deberíamos actualizar el módulo con algunos parches que hicimos en las ultimas semanas. El modulo que esta publicado ahora tiene un par de bugs

Por ultimo, el error que te da puede ser que el certificado y la clave este cargado de forma incorrecta

Saludos

Juan José Scarafía (ADHOC)

unread,
May 11, 2015, 7:40:14 PM5/11/15
to odoo-ar...@googlegroups.com
Gustavo (Lindenberg), 
El móduio que usamos es un fork del trabajo de Cristian (nuvamente gracias). 
Estabamos teniendo algunos problemas para generar las claves en docker por lo cual estamos tratando de cambiar m2crypto por pyopenssl (donde no tuvimos ese inconveniente). 
Además estamos aprovechando para migrar todo a la nueva api. 
Hice unos commits equivocadamente y no está funcional todavía. No hice subí los nuevos commits porque no quiero seguir enquilombando, fijate como evoluciona el repo para la semana que viene, debería estar solucionado. 
Saludos, 
Juan

Daniel Blanco

unread,
May 12, 2015, 7:25:38 AM5/12/15
to odoo-ar...@googlegroups.com
El archivo que te entregan, probá abrirlo con un editor de textos y copia y pegá el certificado.

Daniel Blanco

unread,
May 12, 2015, 12:40:38 PM5/12/15
to odoo-ar...@googlegroups.com
Juan

Qué onda para esto xmlsec? He usado m2crypto y xmlsec pero no pyopenssl. Estoy viendo por qué cosa me decido para otro proyecto.

Juan José Scarafía (ADHOC)

unread,
May 12, 2015, 1:01:22 PM5/12/15
to odoo-ar...@googlegroups.com
Daniel, la verdad que no manejo mucho estás librerías. Lo que paso fue que no sé porque, pero las solicutdes de certficiados generados usando M2Crypto en containers de Docker no me son aceptados por la afip. Probé con pyopenssl y no tuve problemas. Igual me falta la parte de firmar los mensajes. 
Xmlsec no la conozco, la voy a mirar. 
Tenés alguna sugerencia al respecto?

Daniel Blanco

unread,
May 13, 2015, 3:39:43 PM5/13/15
to odoo-ar...@googlegroups.com
No se como andará con docker. Yo la estoy usando para firmar una semilla en la factura de Chile y me funciona. Igual estoy haciendo unas pruebas de firmar con m2crypto y también me funciona...tengo que ver si en algún punto una de las dos me complica algo para abandonarla. Tengo todo en prueba de concepto, pero no terminé de redondear el desarrollo.

Si querés que ampliemos en algún momento hagamos algún skype o hangout y vemos.

Juan José Scarafía (ADHOC)

unread,
May 13, 2015, 10:21:21 PM5/13/15
to odoo-ar...@googlegroups.com
Buenísimo, dale, hacemos algún skype. 

Gustavo Lindenberg

unread,
May 14, 2015, 9:07:45 AM5/14/15
to odoo-argentina
Juan,

Tenes idea masomenos cuando va a estar andando?

Por otro lado, si hago un git reset sobre alguna versión anterior, lo podré sacar andando? Cuál commit me recomendás?

Mil gracias !


Juan José Scarafía (ADHOC)

unread,
May 14, 2015, 1:42:35 PM5/14/15
to odoo-ar...@googlegroups.com

Espero que la semana que viene.
Sobre el reset supongo que si. Deberías ir 10 días atrás o mas...

Gustavo Lindenberg

unread,
May 21, 2015, 7:55:13 PM5/21/15
to odoo-ar...@googlegroups.com
Juan José, como va?

Vi que hubo un montón de commits en el repo, ya se puede probar? No quiero presionarte, al contrario, simplemente no quiero hacer lío...

Gracias por todo !!

slds

Juan José Scarafía (ADHOC)

unread,
May 22, 2015, 10:57:35 AM5/22/15
to odoo-ar...@googlegroups.com
Buenas Gustavo, 
Si a priori ya está, me falta arreglar algunos errores y otros que están surgiendo pero varios clientes lo están usando.
Aclaración: no usa más el módulo crypto aunque si usa mucho código de dicho módulo...

Gustavo Lindenberg

unread,
May 22, 2015, 3:11:51 PM5/22/15
to odoo-ar...@googlegroups.com
ahh buenisimo, voy a intentar instalarlo entonces !
mil gracias por todo el laburo que te tomás y compartís.

Te hago una consulta que no me termina de quedar clara, yo instalo odoo, instalo la localizacion, etc. Suponete que vos actualizas algo, yo hago un git pull y levanto los updates a mi repositorio local. Si bien esa carpeta está incluída dentro de la ruta de odoo-addons, tengo que volver a instalar el módulo? o cómo le indico a odoo que lo tiene que actualizar??

Gracias.

slds

Adrian Paesani

unread,
May 22, 2015, 3:49:40 PM5/22/15
to odoo-ar...@googlegroups.com
Perdon que interrumpa la conversación, pero yo doy fe de que funciona un caño. La tengo funcionando en producción.

Con respecto a tu consulta, yo cuando actualizo el repositorio, hago una actualización desde los módulos así me actualiza todos los campos de la base de datos. Espero que te sirva mi pequeño aporte.

Gustavo Lindenberg

unread,
May 22, 2015, 3:52:08 PM5/22/15
to odoo-argentina
Arian, pones "actualizar modulos" en configuración, y luego algo mas??

Gracias por tu aporte desde ya

Adrian Paesani

unread,
May 22, 2015, 4:10:32 PM5/22/15
to odoo-ar...@googlegroups.com, g...@gdlin.com.ar
Voy a configuración --> Modulos Locales --> (Instalados) escribo adhoc selecciono el que dice ADHOC Modules Configuration y le doy a actualizar, despues vuelvo a realizar los mismos pasos y escribo argentina, selecciono Argentinian Localization y despues actualizar y listo. Mientras voy viendo los resultados del log por las dudas salga algo mal.

Espero que te sirva.

De paso aprovecho para darle las gracias a Juan Jose por el excelente trabajo que hacen con la localización y obviamente a todos los que participan del desarrollo.

Juan José Scarafía (ADHOC)

unread,
May 22, 2015, 5:00:32 PM5/22/15
to odoo-ar...@googlegroups.com, g...@gdlin.com.ar
Gustavo, hacemos parecido a lo que dice adrian, cuando levantamos el servicoo pasamos al final del comando -u [nombre de modulo o lista de modulos].
Ejemplo
-u l10n_ar_invoice (cuando actualizas un modulo se actualizan todos para arriba tmb, es decir, los que dependen de este). 
Si querés actualziar dos modulos en distitnas ramas, podes hacer por ejemplo:
-u notes,l10n_ar_invoice

La idea es estabilizar los repositorios nuestros y que nunca haga falta hacer un -u. Es decir, haciendo el pull de los repos y reiniciando el servicio ya estaría. Pero no prometo nada, soy conciente de que es muy desprolijo como lo estamos haciendo y que es dificil seguirlo. 

Gracias Adrian, son muchos los que lo hacen posible, tenemos que trabajar en más sinergia en la comunidad...

Adrian Paesani

unread,
May 22, 2015, 5:11:23 PM5/22/15
to odoo-ar...@googlegroups.com, g...@gdlin.com.ar
Yo no me quejo Juan, es bastante más prolijo que en otros repositorios que estuve probando, aparte los de ustedes de momento son los que más funcionalidades tienen.

De paso aprovecho para hacerte una pregunta (tonta), los remitos cuando los imprimo me salen con cualquier número en vez de salir con el número que le asigna el libro, y antes salían bien, será que en alguna actualización se cambió eso de algún modo, o yo toqué algo en el medio que hizo un desbarajuste, mirá que yo suelo hacer ese tipo de cosas en mis experimentos.

Desde ya muchas gracias.

Leonardo Chianea

unread,
May 23, 2015, 11:34:58 AM5/23/15
to odoo-ar...@googlegroups.com, g...@gdlin.com.ar
entonces crypto queda y que otra dependencia habría que instalar para que funcione? 
Saludos


Juan José Scarafía (ADHOC)

unread,
May 24, 2015, 9:05:51 AM5/24/15
to odoo-ar...@googlegroups.com, g...@gdlin.com.ar
pyopenssl, la lista de dependencias la podes ver actualizada en el dockerfile que utilizamos...
https://github.com/ingadhoc/docker-odoo-adhoc/blob/8.0/Dockerfile

Saludos, 
Juan

El sáb., 23 may. 2015 a las 12:35, Leonardo Chianea (<noamixco...@gmail.com>) escribió:
entonces crypto queda y que otra dependencia habría que instalar para que funcione? 
Saludos


Diego Rodrigo

unread,
May 26, 2015, 7:35:49 AM5/26/15
to odoo-ar...@googlegroups.com, g...@gdlin.com.ar
Buenas a todos, soy nuevo y solo quiero comentarles que siguiendo este hilo he podido actualizar ODOO localizacion Argentina y configurar Factura Electrónica al punto de aparecer con el servicio "Conectado", en Producción.

Todavía no facturé porque no tengo nada que facturar hoy :-) ... Pero ya lo usaré...

Muchas gracias por el trabajo que le dedican y por el tiempo en el foro!!!

Diego

Leonardo Chianea

unread,
May 26, 2015, 8:06:21 AM5/26/15
to odoo-ar...@googlegroups.com, g...@gdlin.com.ar
fijate si podes hacer un tutorial y publicarlo...saludos

Gustavo Lindenberg

unread,
May 26, 2015, 10:01:25 AM5/26/15
to odoo-ar...@googlegroups.com, g...@gdlin.com.ar
Gente, actualicé todo e instalé todos los requerimientos del docker file, pero me tira un error como que no encuentra ningun modulo OpenSSL

El trace es:
2015-05-26 13:59:08,296 1924 ERROR odoo80_zdg werkzeug: Error on request:
Traceback (most recent call last):
  File "/home/odoo/odoo/80/lib/python2.7/site-packages/werkzeug/serving.py", line 159, in run_wsgi
    execute(app)
  File "/home/odoo/odoo/80/lib/python2.7/site-packages/werkzeug/serving.py", line 146, in execute
    application_iter = app(environ, start_response)
  File "/home/odoo/odoo/80/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/service/server.py", line 285, in app
    return self.app(e, s)
  File "/home/odoo/odoo/80/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/service/wsgi_server.py", line 216, in application
    return application_unproxied(environ, start_response)
  File "/home/odoo/odoo/80/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/service/wsgi_server.py", line 202, in application_unproxied
    result = handler(environ, start_response)
  File "/home/odoo/odoo/80/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/http.py", line 1280, in __call__
    return self.dispatch(environ, start_response)
  File "/home/odoo/odoo/80/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/http.py", line 1254, in __call__
    return self.app(environ, start_wrapped)
  File "/home/odoo/odoo/80/lib/python2.7/site-packages/werkzeug/wsgi.py", line 411, in __call__
    return self.app(environ, start_response)
  File "/home/odoo/odoo/80/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/http.py", line 1412, in dispatch
    ir_http = request.registry['ir.http']
  File "/home/odoo/odoo/80/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/http.py", line 339, in registry
    return openerp.modules.registry.RegistryManager.get(self.db) if self.db else None
  File "/home/odoo/odoo/80/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/modules/registry.py", line 339, in get
    update_module)
  File "/home/odoo/odoo/80/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/modules/registry.py", line 370, in new
    openerp.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/home/odoo/odoo/80/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/modules/loading.py", line 351, in load_modules
    force, status, report, loaded_modules, update_module)
  File "/home/odoo/odoo/80/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/modules/loading.py", line 255, in load_marked_modules
    loaded, processed = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules, perform_checks=perform_checks)
  File "/home/odoo/odoo/80/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/modules/loading.py", line 143, in load_module_graph
    load_openerp_module(package.name)
  File "/home/odoo/odoo/80/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/modules/module.py", line 315, in load_openerp_module
    __import__('openerp.addons.' + module_name)
  File "/home/odoo/odoo/80/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/modules/module.py", line 80, in load_module
    mod = imp.load_module('openerp.addons.' + module_part, f, path, descr)
  File "/home/odoo/odoo/80/sources/odoo-argentina/l10n_ar_wsafip/__init__.py", line 3, in <module>
    import models
  File "/home/odoo/odoo/80/sources/odoo-argentina/l10n_ar_wsafip/models/__init__.py", line 2, in <module>
    import wsafip_certificate_alias
  File "/home/odoo/odoo/80/sources/odoo-argentina/l10n_ar_wsafip/models/wsafip_certificate_alias.py", line 3, in <module>
    from OpenSSL import crypto
ImportError: No module named OpenSSL


 La línea en cuestión es:
from OpenSSL import crypto

Obviamente instalé el pyOpenSSL con pip. Intenté sacarlo y ponerlo. También revisé que estén los paquetes del sistema operativo respecto a openssl y está todo. Qué puede ser? me imagino que tiene que ser una pavada de dependencias pero no le encuentro la vuelta

Saludos 

Juan José Scarafía (ADHOC)

unread,
May 26, 2015, 11:31:35 AM5/26/15
to odoo-ar...@googlegroups.com, g...@gdlin.com.ar
Gustavo, deberías actualizar la imagen de docker, lo podes hacer con
sudo docker pull adhoc/odoo-adhoc:8.0
Luego recrear el container de odoo. 
Saludos, 
Juan


--

Gustavo Lindenberg

unread,
May 26, 2015, 1:57:36 PM5/26/15
to odoo-ar...@googlegroups.com, g...@gdlin.com.ar
Juan,

gracias por tu respuesta. Estaba usando virtualenv en vez de docker, pero lo pude resolver igual. Te cuento que no sé si es el comportamiento esperado, pero no aparecen mas los tutoriales de generación de certificados y demás. Solo aparece "Electronic Invoice Configuration". De todas formas, entré en Certificates y lo generé desde ahí, es bastante intuitivo. Si genero una sesión de prueba, funciona 10 puntos y se conecta. Lo que hice fué correr el tutorial ese de Electronic Invoice Configuration, y me dice: "Partner without CUIT! Please setup document type as CUIT in partner." lo cual parecería ser una obviedad ! pero en el partner, no tengo ningún lugar para poner el CUIT, tengo configurado el NIF (así aparece) con mi cuit en formato ARXXXXXXXXXXX (donde las X son el cuit completo sin guiones) y si apreto validar, valida, pero no encuentro ninguna opción para configurar el "CUIT" bajo ese nombre dentro del partner.

Me imagino que me estoy salteando algo obvio pero no lo encuentro.

Te dejo el stack trace por las dudas:
2015-05-26 17:50:45,906 1134 INFO zdg openerp.addons.l10n_ar_wsafip_fe.models.wsafip_server: Take last invoice number from AFIP Web service                    (pto vta: 0, cbte tipo: 1)
2015-05-26 17:50:47,025 1134 INFO zdg openerp.addons.l10n_ar_wsafip_fe.models.wsafip_server: Updating currency from AFIP Web service
2015-05-26 17:50:47,141 1134 ERROR zdg openerp.addons.l10n_ar_wsafip_fe.models.wsafip_server: AFIP Web service error!: Partner without CUIT! Please setup document type as CUIT in partner.
2015-05-26 17:50:47,141 1134 ERROR zdg openerp.http: Exception during JSON request handling.
Traceback (most recent call last):
  File "/home/odoo/odoo/80/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/http.py", line 536, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/home/odoo/odoo/80/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/http.py", line 573, in dispatch
    result = self._call_function(**self.params)
  File "/home/odoo/odoo/80/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/http.py", line 309, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/home/odoo/odoo/80/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/service/model.py", line 113, in wrapper
    return f(dbname, *args, **kwargs)
  File "/home/odoo/odoo/80/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/http.py", line 306, in checked_call
    return self.endpoint(*a, **kw)
  File "/home/odoo/odoo/80/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/http.py", line 802, in __call__
    return self.method(*args, **kw)
  File "/home/odoo/odoo/80/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/http.py", line 402, in response_wrap
    response = f(*args, **kw)
  File "/home/odoo/odoo/80/server/addons/web/controllers/main.py", line 941, in call_button
    action = self._call_kw(model, method, args, {})
  File "/home/odoo/odoo/80/server/addons/web/controllers/main.py", line 929, in _call_kw
    return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
  File "/home/odoo/odoo/80/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File "/home/odoo/odoo/80/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/addons/base/res/res_config.py", line 155, in action_next
    next = self.execute(cr, uid, ids, context=context)
  File "/home/odoo/odoo/80/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File "/home/odoo/odoo/80/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/api.py", line 363, in old_api
    result = method(recs, *args, **kwargs)
  File "/home/odoo/odoo/80/sources/odoo-argentina/l10n_ar_wsafip_fe/wizard/config.py", line 93, in execute
    journal_afip_document_class.update_afip_data()
  File "/home/odoo/odoo/80/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/api.py", line 239, in wrapper
    return new_api(self, *args, **kwargs)
  File "/home/odoo/odoo/80/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/api.py", line 397, in new_api
    result = [method(rec, *args, **kwargs) for rec in self]
  File "/home/odoo/odoo/80/sources/odoo-argentina/l10n_ar_wsafip_fe/models/journal_afip_document_class.py", line 58, in update_afip_data
    self.afip_connection_id.id)
  File "/home/odoo/odoo/80/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/api.py", line 239, in wrapper
    return new_api(self, *args, **kwargs)
  File "/home/odoo/odoo/80/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/api.py", line 546, in new_api
    result = method(self._model, cr, uid, self.ids, *args, **kwargs)
  File "/home/odoo/odoo/80/sources/odoo-argentina/l10n_ar_wsafip_fe/models/wsafip_server.py", line 386, in wsfe_update_tax
    _(u'System return error: %s') % (e))
except_orm: (u'AFIP Web service error', u'System return error: Partner without CUIT! Please setup document type as CUIT in partner.')


Gracias.

Saludos !
Gustavo.

Gustavo Lindenberg

unread,
May 26, 2015, 2:11:33 PM5/26/15
to odoo-ar...@googlegroups.com, g...@gdlin.com.ar
Me contesto a mi mismo, busqué por todos lados hasta que me di cuenta en el partner de cargar el CUIT como tipo de documento en los datos, no en la información contable.

Disculpen la ignorancia.

Saludos

Juan José Scarafía (ADHOC)

unread,
May 26, 2015, 2:30:37 PM5/26/15
to odoo-ar...@googlegroups.com, g...@gdlin.com.ar
Buenísimo gustavo, sisi, eso tal vez no quedó del todo claro. 
Para simplificar el código saqué los wizard de configuración pero agregué en "configuracion/lozalización argentina" los links a los distintos pasos de configuración que se deberían hacer. 
Si está poco claro o tienen sugerencias de mejora pueden cargar los issues en github y veo de agregarlo. 
Muchas gracias, 

Juan

Gustavo Lindenberg

unread,
May 26, 2015, 2:37:02 PM5/26/15
to odoo-argentina
Yo creo que uno se termina dando cuenta, no es tan complejo tampoco. Lo que estaría bueno (desde mi punto de vista) es si hacés la web de odooargentina editable (la parte de documentación). Obviamente no por cualquiera, sino que como hacen muchos, suben el "código" de la página a github y cualquiera puede sugerir un pull, para de esa forma poder colaborar con la documentación y darte una mano con el mantenimiento de la misma, o formato tipo wiki, con el mismo propósito, te pueden sugerir cambios y vos los incorporás, o no.

Gracias a uds. ya estoy facturando, recién probé emitir un comprobante. Te comento algo que estoy notando, el Nº de factura sale como 0000-00000001. Yo seguí todos tus tutoriales, pero creé el punto de venta nº 0003. Es un error en el reporte o es configuración?

Gracias por todo
saludos,
Gustavo.

Juan José Scarafía (ADHOC)

unread,
May 26, 2015, 2:43:31 PM5/26/15
to odoo-argentina
Fijate la secuencia que tiene asociados los documents types dentro del diario. Tal vez la estamos creando mal pero se puede corregir a mano. Probablemente deberías corregir la factura generada (cancelando y volviendo a asignar el número) o modificando a mano numero de asiento y de factura. 

Respecto a la documentación el tema es que estamos usando odoo para la página de odoo argentina. Tendríasmo que ver un poco como dar permisos a usuarios para generar distintas cosas, es una muy buena sugerencia!
 

Gustavo Lindenberg

unread,
May 26, 2015, 3:13:31 PM5/26/15
to odoo-argentina
Entré en Diarios, edité el de ventas, y en Entry Secuence tengo el que le puse "Punto de Venta 0003" (y factura a para "A", B para "B", etc). El tema es que abrí en ventana nueva los datos del entry sequence y veo que tiene asignado como prefijo 0000 por lo que me imagino que viene por ahí la mano. No sé por qué habrá quedado eso en 0000. Lo voy a editar manualmente en cada uno, dentro de "Secuencias".

Luego de editado, creé una nota de crédito y salió bien.

Respecto a lo de la web, me interesaría agregar cosas en la documentación de virtualenv, dado que si bien es un buen principio, hay varias cosas que faltan para que alguien que no tiene mucha idea de ODOO pueda dejarlo andando.

Saludos,
Gustavo.
Message has been deleted

Nicolas Mandola

unread,
Jun 7, 2015, 10:01:08 PM6/7/15
to odoo-ar...@googlegroups.com, g...@gdlin.com.ar
Buenas Noches,

Necesitaría saber ya que estoy teniendo el mismo inconveniente como lo solucionaste ya que estoy asignado el Cuit en la siguiente ruta pero tengo el mismo error.

PARTNER --> CONTABILIDAD --> Número de documento 

Nicolas Mandola

unread,
Jun 7, 2015, 10:09:53 PM6/7/15
to odoo-ar...@googlegroups.com, g...@gdlin.com.ar
Listo!

Patricio Pescio

unread,
Jun 23, 2015, 10:30:40 AM6/23/15
to odoo-ar...@googlegroups.com
Estimados:
No se si es el grupo correcto donde deba preguntar, sino si pueden sugerirmelo mejor... ya no se donde buscar..
Resulta que estoy tratando de configurar el módulo de factura electrónica en openerp 7.0 y no puedo... 
Estoy siguiendo tal cual al pie de la letra el asistente de configuración, pero me pasan dos cosas:
En el menú Certificados: me figura INVALID, y en Sesión, cuando intento iniciar me dice: "Computador no autorizado"

Ayuda !!

PD: Tengo acceso a todo el sistema, soy el admin, y la clave de AFIP es la mia, y conozco bien el sistema web, asi que hablen sin filtro nomas jaja

Mil gracias !



El lunes, 11 de mayo de 2015, 11:17:23 (UTC-3), Gustavo Lindenberg escribió:

Buenas,

Tengo dos instancias armadas de odoo. Una en producción con virtualenv y la otra en testing con docker, las dos usando los repos de ing adhoc. En las dos me pasa lo mismo. Quiero armar el tema de factura electronica y tengo problemas con los certificados.

Para hacer el CSR que es el primer tutorial, anduvo todo genial. bajé el request.csr, lo subí a AFIP y ellos me dieron un CRT. Al intentar subir el CRT con el asistente "Load Certificate", me dice lo siguiente:

Odoo Server Error

Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 530, in _handle_exception return super(JsonRequest, self)._handle_exception(exception) File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 567, in dispatch result = self._call_function(**self.params) File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 303, in _call_function return checked_call(self.db, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/service/model.py", line 113, in wrapper return f(dbname, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 300, in checked_call return self.endpoint(*a, **kw) File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 796, in __call__ return self.method(*args, **kw) File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 396, in response_wrap response = f(*args, **kw) File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 939, in call_button action = self._call_kw(model, method, args, {}) File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 927, in _call_kw return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 241, in wrapper return old_api(self, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/addons/base/res/res_config.py", line 155, in action_next next = self.execute(cr, uid, ids, context=context) File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 241, in wrapper return old_api(self, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 363, in old_api result = method(recs, *args, **kwargs) File "/mnt/extra-addons/odoo-argentina/l10n_ar_wsafip/config.py", line 109, in execute self.wsafip_request_id.have_crt(can_raise=True) File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 239, in wrapper return new_api(self, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 397, in new_api result = [method(rec, *args, **kwargs) for rec in self] File "/mnt/extra-addons/odoo-addons/crypto/certificate.py", line 244, in have_crt certificate = self.get_certificate()[self.id] File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 239, in wrapper return new_api(self, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 397, in new_api result = [method(rec, *args, **kwargs) for rec in self] TypeError: get_certificate() takes at least 4 arguments (1 given)

Entonces procedí a editar el certificado a mano en Configuracion->Cryptography->Certificates, e hice copy paste del contenido del CRT que me dio la afip, con ---BEGIN--- y end certificate incluídos,como corresponde.

Luego creé una sesión en "sesiones" con el nombre "test" y puse:

servidor: "Factura Electronica [production]"

Servidor de Autorización: Autentificación y Autorización [production]

Firmante del certificado: Seleccioné el único que hay, que es el certificado previamente editado.

Secuencia de lote no psue nada

Identificación unica lo dejé en 0

Toco Login y me dice:

Unknown Error

list index out of range

 

Si corro el asistente de Electronic Invoice Configuration, selecciono mi companía, certificado y punto de venta, me dice:

Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 530, in _handle_exception return super(JsonRequest, self)._handle_exception(exception) File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 567, in dispatch result = self._call_function(**self.params) File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 303, in _call_function return checked_call(self.db, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/service/model.py", line 113, in wrapper return f(dbname, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 300, in checked_call return self.endpoint(*a, **kw) File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 796, in __call__ return self.method(*args, **kw) File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 396, in response_wrap response = f(*args, **kw) File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 939, in call_button action = self._call_kw(model, method, args, {}) File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 927, in _call_kw return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 241, in wrapper return old_api(self, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/addons/base/res/res_config.py", line 155, in action_next next = self.execute(cr, uid, ids, context=context) File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 241, in wrapper return old_api(self, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 393, in old_api result = new_api(recs, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 397, in new_api result = [method(rec, *args, **kwargs) for rec in self] File "/mnt/extra-addons/odoo-argentina/l10n_ar_wsafip_fe/config.py", line 105, in execute connection.id, self._context) File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 241, in wrapper return old_api(self, *args, **kwargs) File "/mnt/extra-addons/odoo-argentina/l10n_ar_wsafip_fe/wsafip_server.py", line 353, in wsfe_update_tax conn.login() # Login if nescesary. File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 239, in wrapper return new_api(self, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 546, in new_api result = method(self._model, cr, uid, self.ids, *args, **kwargs) File "/mnt/extra-addons/odoo-argentina/l10n_ar_wsafip/wsafip_connection.py", line 102, in login msg = ws.certificate.smime(msg)[ws.certificate.id] File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 239, in wrapper return new_api(self, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 397, in new_api result = [method(rec, *args, **kwargs) for rec in self] File "/mnt/extra-addons/odoo-addons/crypto/certificate.py", line 197, in smime cs = BIO.MemoryBuffer(self.crt.encode('ascii')) AttributeError: 'bool' object has no attribute 'encode'

 

Las dos cosas me pasan en docker y en virtualenv. Me podrán dar una mano?


Busqué en el grupo y encontré un tema viejo que le pasaba lo mismo pero como no usaba fc Electrónica lo desactivó y no tuvo mas dramas, y después encontré otro post POST que tuvo uno de los errores, pero es viejo. Me acuerdo que el año pasado cuando quise hacer andar esto con OpenERP v7 había que cargar un módulo mcrypto parcheado, pero esta vez no puse nada parcheado. Es ese el problema? Me podrán dar una mano?

Gracias !


Saludos

Gustavo Lindenberg

unread,
Jun 23, 2015, 10:41:52 AM6/23/15
to odoo-argentina
Patricio, fijate en la página de AFIP que hay un lugar en donde tenés que autorizar a tu cuit con tu cuit, no tiene mucho sentido, está en uno de los videotutoriales, si no me equivoco en este: https://www.youtube.com/watch?v=pHwgjshkmVw

Desde mi punto de vista es una incoherencia total pero me pasaba lo mismo y se resolvió haciendo eso. Fijate masomenos despues de 1 min que hacen este proceso que te digo.

Avisá si funciona

--

Patricio Pescio

unread,
Jun 23, 2015, 11:07:49 AM6/23/15
to odoo-ar...@googlegroups.com

Hola Gustavo !
Gracias por tu respuesta..

Eso ya está activado... el servicio lo tenía funcionando perfectamente... pero luego de 2 años caduca el certificado de afip... y cuando lo volví a hacer,, ya no me funciona... 

Gustavo Lindenberg

unread,
Jun 23, 2015, 11:10:36 AM6/23/15
to odoo-argentina
ahhhh fantástico ! yo te diría que borres todas las relaciones esas y las generes de vuelta. Igual estoy seguro que a mi también me dió ese error del computador no autorizado. Puede ser que en algún lado se asocie el cuit con el certificado (a demás de en el momento de cargar el certificado?) Te soy sincero, di tantas vueltas que no me acuerdo como lo resolví. Igual fijate que hay un mail de afip para el tema webservices, yo les escribí una vez y me contestaron de un día para el otro.

slds

Patricio Pescio

unread,
Jun 23, 2015, 11:13:12 AM6/23/15
to odoo-ar...@googlegroups.com
Ah genial !
Sí se me ocurrió borrar las relaciones esas.. pero no se cómo !
debo tener unos 7 alias creados, y 4 certificados para cada uno... un quilombo hice...

Sabes como borrar todas esos Alias de la web de afip ?

Ing. Patricio Pescio
 

Gustavo Lindenberg

unread,
Jun 23, 2015, 11:17:22 AM6/23/15
to odoo-argentina
ahora que lo decís, me parece que terminé haciendo un alias y certificado nuevo por que tengo dos asociados, así que seguramente hice todo desde cero. El mail que te decía es webservices(ARROBA)afip.gob.ar

Patricio Pescio

unread,
Jun 23, 2015, 12:14:46 PM6/23/15
to odoo-ar...@googlegroups.com
Hola Gustavo, vos seguiste el asistente de configuración? Te adjunto los dos asistentes...
en el primero yo puse los datos de mi compañía así:
Y en el segundo lo que hago es cargar el texto que me devuelve la afip, luego de cargarle el crt que me entrega el primer asistente.

Ing. Patricio Pescio
 
Captura de pantalla 2015-06-23 a las 13.07.32.png
Captura de pantalla 2015-06-23 a las 13.07.54.png

Gustavo Lindenberg

unread,
Jun 23, 2015, 1:57:54 PM6/23/15
to odoo-argentina
el de generación, no, por que en su momento no funcionaba bien, pero igual debería ser independiente.

Buscá en esta página la frase "Computador no autorizado" a ver si te sirve de ayuda: http://www.sistemasagiles.com.ar/trac/wiki/ManualPyAfipWs
Reply all
Reply to author
Forward
0 new messages