ws_sr_padron - Datos de impuestos y algunos otros problemas

1,667 views
Skip to first unread message

Ariel Stechina

unread,
Oct 26, 2017, 10:38:07 AM10/26/17
to pyaf...@googlegroups.com
Descargué el cód. fuente nuevo (modificando para producción), compilé el instalador e instalé sin problemas (tras actualizar varias dependencias relacionadas).
 Al usar la interfaz en vb6, la propiedad Padron.imp_iva siempre devuelve "N", tanto en inscriptos como monotributistas.

Otro tema, la colección:
    For Each Impuesto In Padron.Impuestos
        Debug.Print "Impuesto:", Impuesto
    Next
siempre devuelve un solo impuesto, es el mismo que se obtiene con el tag: 
Padron.ObtenerTagXml("descripcionImpuesto") y el contribuyente tiene varios activos.
Salvo la propiedad Padron.Denominacion todos las otras que estaban implementadas en Padron anterior no devuelven datos, los recuperé usando los tags correspondientes:
Padron.ObtenerTagXml("direccion")
Padron.ObtenerTagXml("localidad")
Padron.ObtenerTagXml("codPostal")

Saludos
Ariel

Franco vilte

unread,
Oct 26, 2017, 2:23:13 PM10/26/17
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Buenas! 

estoy con problemas al realizar la autenticación con el objeto WSAA, realizaste alguna modificacion para obtener el ticket sin problemas?

Gracias.

Ariel Stechina

unread,
Oct 26, 2017, 2:41:13 PM10/26/17
to pyaf...@googlegroups.com
Si, me conecté de la siguiente manera:
        Set Padron = CreateObject("WSSrPadronA4")
        Padron.Token = Token
        Padron.Sign = Sign
        Padron.Cuit = "xxxxxxxxxxx"   Esta es la cuit de la empresa que consume el servicio web
        
Token y Sign deben obtenerse previamente con wsaa para el servicio "ws_sr_padron_a4" y tener la cuit relacionada en afip

Luego:

        ok = Padron.Conectar("", urlWebService)
        ok = Padron.Consultar(CUIT)
        ok = Padron.AnalizarXml
        
        y luego voy obteniendo los diferentes tags por ej:
        direccion= Padron.ObtenerTagXml("direccion")
        localidad= Padron.ObtenerTagXml("localidad")
        codpostal= Padron.ObtenerTagXml("codPostal")

 Y así con cada tag del xml que lo leo de la url del servicio (https://aws.afip.gov.ar/sr-padron/webservices/personaServiceA4?wsdl)
Todo funciona bien salvo que no puedo obtener más que el primer impuesto del Padron.XmlResponse (si miro en esa respuesta están todos, pero no puedo leer con ObtenerTagXml. Intenté esto pero también obtiene sólo el primer registro:

     For I = 0 To 100
        ' salgo del bucle si no hay más impuestos (ObtenerTagXml devuelve nulo):
        If IsNull(Padron.ObtenerTagXml("impuesto", "descripcionImpuesto", I)) Then
            Exit For
        End If
        Debug.Print I, Padron.ObtenerTagXml("impuesto", "idImpuesto", I)
        Debug.Print I, Padron.ObtenerTagXml("impuesto", "descripcionImpuesto", I)
    Next

    
Sigo probando...


--
Proyecto PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT:
http://www.pyafipws.com.ar/ - http://www.github.com/reingart/pyafipws - http://www.sistemasagiles.com.ar/
---
Has recibido este mensaje porque estás suscrito al grupo "PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a pyafipws+unsubscribe@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a pyaf...@googlegroups.com.
Visita este grupo en https://groups.google.com/group/pyafipws.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

fuckingbeast

unread,
Oct 26, 2017, 3:26:28 PM10/26/17
to pyafipws, corre...@gmail.com
Hola, Ariel, podrias poner el codigo que usaste para obtener el toke y el sign. No logro hacer que wsaa me devuelva nada. Aparentemente obtiene el certificado ya que lo veo en la carpeta cache, paro me devuelve un valor vacio, lo mismo en token y sogn.

Gracias

Marcelo

Lisandro

unread,
Oct 26, 2017, 3:48:36 PM10/26/17
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Marcelo, estoy teniendo exactamente el mismo inconveniente.

Yo utilizo directamente la librería en python.
Ya hice la asociación del certificado con el webservice en producción. Es el mismo certificado de producción que actualmente está funcionando perfectamente.
Sin embargo, no puedo autenticarme en el webservice "ws_sr_padron_a4". Me dice que el certificado no es de confianza, pero es el mismo que utilizo para autenticarme satisfactoriamente en wsfe y wsfex.

Y al igual que vos, cuando chequeo el Token y Sign, no hay nada, está vacío :/
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a pyafipws+u...@googlegroups.com.

Para publicar en este grupo, envía un correo electrónico a pyaf...@googlegroups.com.
Visita este grupo en https://groups.google.com/group/pyafipws.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

--
Proyecto PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT:
http://www.pyafipws.com.ar/ - http://www.github.com/reingart/pyafipws - http://www.sistemasagiles.com.ar/
---
Has recibido este mensaje porque estás suscrito al grupo "PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a pyafipws+u...@googlegroups.com.

Ariel Stechina

unread,
Oct 26, 2017, 3:55:10 PM10/26/17
to pyaf...@googlegroups.com

Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a pyafipws+unsubscribe@googlegroups.com.

Franco vilte

unread,
Oct 26, 2017, 3:55:23 PM10/26/17
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Me pasa lo mismo con el tema del certificado, me trae vacío y después no me deja avanzar. Estuve leyendo y al parecer hay que hacer cambios en algunos .pyc pero nose si se solucionara con eso.

Tendremos que seguir modificando cosas hasta encontrar el problema. Suerte!

Ariel Stechina

unread,
Oct 26, 2017, 3:58:38 PM10/26/17
to pyaf...@googlegroups.com
Puede ser que se estén conectando al ambiente incorrecto (homologación o producción y viceversa) 

Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a pyafipws+unsubscribe@googlegroups.com.

Romina L. Castrogiovani

unread,
Oct 26, 2017, 4:05:09 PM10/26/17
to pyaf...@googlegroups.com
Hola,

Como dice Ariel, si están utilizando el módulo de homologación para producción puede deberse a eso el inconveniente.

Si tienen problemas con WSAA y Ticket de Acceso, deberían revisar la configuración para producción:

http://www.sistemasagiles.com.ar/trac/wiki/ManualPyAfipWs#ModosHomologaciónyProducción
https://github.com/reingart/pyafipws/wiki/InstalacionCodigoFuente#uso-en-producci%C3%B3n

De todos modos sería conveniente probarlo primero en homologación dado que todavía se encuentra en desarrollo.

Saludos


Castrogiovani L. Romina
Sistemas Ágiles
011 4450-0716 / 153048-9211
L a V de 10 a 17hs
Skype: romina.castrogiovani

Ariel Stechina

unread,
Oct 26, 2017, 4:17:09 PM10/26/17
to pyaf...@googlegroups.com
Romina, hay algún problema para consultar los impuestos?
Padron.imp_iva devuelve siempre "N"
Tampoco puedo consultar mas que el primer impuesto
For I = 0 To 100
        ' salgo del bucle si no hay más impuestos (ObtenerTagXml devuelve nulo):
        If IsNull(Padron.ObtenerTagXml("impuesto", "descripcionImpuesto", I)) Then
            Exit For
        End If
        Debug.Print I, Padron.ObtenerTagXml("impuesto", "idImpuesto", I)
        Debug.Print I, Padron.ObtenerTagXml("impuesto", "descripcionImpuesto", I)
    Next

Gracias

Lisandro Rostagno

unread,
Oct 26, 2017, 4:17:10 PM10/26/17
to pyaf...@googlegroups.com
Gracias por la info.
Ya lo verifiqué, pero la URL de autenticación es correcta, es la de producción.
De hecho, primero hice todas las pruebas en homologación, y todo funcionó ok (tal como dice la documentación, en homologación sólo es posible consultar el padrón con el CUIT de ejemplo, no con CUITs oficiales).

Sin embargo, pasado a producción, no me puedo autenticar en el ws_sr_padron_a4.
Tengo los certificados de producción, con las respectivas asociaciones hechas desde la página de afip para estos tres webservices: wsfe, wsfex, ws_sr_padron_a4

Lógicamente, en producción, la URL de autenticación es la correspondiente a producción:
https://wsaa.afip.gov.ar/ws/services/LoginCms?wsdl

Lo curioso es lo siguiente:
  • ta = wsaa.Autenticar("wsfe", mycrt, mykey)
    Esto funciona perfectamente, y si luego chequeo ta.Token y ta.Sign, veo valores correctos de token y firma.
    Tambié funciona cuando me autentico en wsfex.

  • ta = wsaa.Autenticar("ws_sr_padron_a4", crt, key)
    No hay ningún error, pero si chequeo ta.Token y ta.Sign están vacíos.
    Un dato curioso: en este caso, si chequeo la carpeta "cache", veo que no hay ningún archivo TA-* generado. Es decir, a diferencia de cuando me autentico por primera vez en wsfe y wsfex, cuando lo hago en ws_sr_padron_a4 no se genera ningún archivo en el directorio cache. No se si eso pueda tener algo que ver.
Repito, en homologación lo probé y funciona todo ok.
En producción, la última versión estable de la librería también funciona ok (porque puedo realizar facturas, consultar último comprobante, etc). No obstante, no puedo autenticarme en ws_sr_padron_a4. 

En wsaa.Excepcion puedo ver este mensaje: "ns1:cms.cert.untrusted: Certificado no emitido por AC de confianza", pero no entiendo cómo si son los mismos certificados que uso para wsfe y wsfex.

:/


El 26 de octubre de 2017, 17:05, Romina L. Castrogiovani <r.castr...@gmail.com> escribió:
Has recibido este mensaje porque estás suscrito a un tema del grupo "PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/pyafipws/mGxBwu58XF8/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a pyafipws+unsubscribe@googlegroups.com.

fuckingbeast

unread,
Oct 26, 2017, 4:17:11 PM10/26/17
to pyafipws
El unico cambio que hay que hacer en ws_sr_padron.py es poner la variable HOMO en False. Creo que no hay nada mas que tocar

El 26 de octubre de 2017, 16:53, Franco vilte<francov...@gmail.com> escribió:
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a pyafipws+unsubscribe@googlegroups.com.

fuckingbeast

unread,
Oct 26, 2017, 4:17:11 PM10/26/17
to pyafipws
Una vez que adheri el servicio, el tema del certificado dejo de ser un problema. Pero, ahora, al hacer padron.consultar(CUIT) me tira una excepcion

El 26 de octubre de 2017, 16:53, Franco vilte<francov...@gmail.com> escribió:
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a pyafipws+unsubscribe@googlegroups.com.

Lisandro Rostagno

unread,
Oct 26, 2017, 5:03:17 PM10/26/17
to pyaf...@googlegroups.com
Sí, efectivamente ese cambio lo hice.
No obstante, el tema es que el token y el sign están vacíos, y si no estoy equivocado, en ese punto aún ni siquiera se invocó al ws_sr_padron_a4. 

O sea, por lo que vengo leyendo en este hilo, a algunos nos está pasando que el token y sign quedan vacíos al intentar autenticarnos a ws_sr_padron_a4 (habiendo hecho la asociación del webservice desde la página de afip, y habiendo chequeado que los certificados son los de producción y que la URL de autenticación es la de producción).

Además de HOMO=False, también probé a cambiar la variable WSDL que tiene la URL del webservice. 
La cambié a la que se indica en la documentación oficial [1], pero aún así creo que el problema está antes, en la autenticación, el webservice aún no es invocado :/




El 26 de octubre de 2017, 17:02, fuckingbeast <marcel...@gmail.com> escribió:
El unico cambio que hay que hacer en ws_sr_padron.py es poner la variable HOMO en False. Creo que no hay nada mas que tocar
Has recibido este mensaje porque estás suscrito a un tema del grupo "PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/pyafipws/mGxBwu58XF8/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a pyafipws+unsubscribe@googlegroups.com.

Eduardo Pillet

unread,
Nov 1, 2017, 10:26:53 PM11/1/17
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
la variable I va en segundo lugar en el obtenertagxml

For I = 0 To 100
        ' salgo del bucle si no hay más impuestos (ObtenerTagXml devuelve nulo):
        If IsNull(Padron.ObtenerTagXml("impuesto", I, "descripcionImpuesto")) Then
            Exit For
        End If
        Debug.Print I, Padron.ObtenerTagXml("impuesto", I,"idImpuesto")
        Debug.Print I, Padron.ObtenerTagXml("impuesto", I,"descripcionImpuesto")
    Next

Emiliano L.

unread,
Nov 22, 2017, 6:35:47 PM11/22/17
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Creo que se perdió un poco el hilo de la consulta original.

Han podido resolver el tema de los impuestos y actividades donde sólo viene 1 y no todos?

Emiliano L.

unread,
Nov 22, 2017, 6:36:00 PM11/22/17
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Alguna novedad en este punto de los impuestos???


El jueves, 26 de octubre de 2017, 11:38:07 (UTC-3), Ariel Stechina escribió:

Mariano Reingart

unread,
Nov 22, 2017, 8:44:29 PM11/22/17
to pyaf...@googlegroups.com
Hola Emiliano:

¿Tendras los XML (request/response) para analizar?
(o al menos un CUIT como para probar, con --trace se muestran todos los mensajes de depuración)

Sería recomendable probarlo en homologación, para descartar que no sea un problema en tu máquina.
Ver documentación del PadronContribuyentesAFIP para la última actualización.

¿Bajaste la última versión del repositorio? 
(hubo algunos ajustes, por ej 45df2ad6 y bab8843f)

También habría que ver las dependencias instaladas:

pip freeze

Sds

--
Proyecto PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT:
http://www.pyafipws.com.ar/ - http://www.github.com/reingart/pyafipws - http://www.sistemasagiles.com.ar/
---
Has recibido este mensaje porque estás suscrito al grupo "PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a pyafipws+unsubscribe@googlegroups.com.

Emiliano L.

unread,
Nov 23, 2017, 10:49:01 AM11/23/17
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Adicionalmente, te comento que bajé todo hoy mismo por si habían cambios desde el link: https://github.com/reingart/pyafipws/archive/master.zip y volví a compilar, por lo que tengo la versión 1.02b del ws_sr_padron.

Esto no me pasa sólo en mi máquina. Lo he probado en 4 distintas con el mismo comportamiento.

1- El IVA siempre viene como No Inscripto.
2- Las actividades sólo trae 1.
3- Los impuestos sólo trae 1.
4- Las provincias con acento no traen el caracter correcto á é í ó ú,

Adicionalmente, lo he probado en homologación, con la misma suerte. Trae los datos, pero con esos "bugs". Idéntico al comportamiento descripto por Ariel.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a pyafipws+u...@googlegroups.com.

Emiliano L.

unread,
Nov 23, 2017, 10:49:01 AM11/23/17
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Mariano, me pasa lo mismo que le pasaba o le pasa a Ariel Stechina.

El padrón se consulta correctamente, pero impiva viene siempre en No inscripto y tanto los impuestos como las actividades sólo muestra la primera.

Por otro lado, los acentos de las provincias los trae en forma incorrecta. Ejemplo: Tucumán trae Tucumán.


El miércoles, 22 de noviembre de 2017, 22:44:29 (UTC-3), Mariano Reingart escribió:
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a pyafipws+u...@googlegroups.com.

Ariel Stechina

unread,
Nov 23, 2017, 11:06:18 AM11/23/17
to pyaf...@googlegroups.com
Retomo el tema, yo lo resolví consultando directamente los tags del xml, la interfaz no devuelve los datos correctamente como se menciona en este hilo.
Pego ej en vb:
       If LCase(Trim(Padron.ObtenerTagXml("tipoPersona"))) = "fisica" Then
            xRSocial = Trim(Padron.ObtenerTagXml("apellido")) & " " & Trim(Padron.ObtenerTagXml("nombre"))
        Else
            xRSocial = Trim(Padron.ObtenerTagXml("razonSocial"))
        End If


       xTextoAEvaluar = ""
        For I = 0 To 100
            If IsNull(Padron.ObtenerTagXml("domicilio", I, "direccion")) Then
                Exit For
            End If
            If LCase(Padron.ObtenerTagXml("domicilio", I, "tipoDomicilio")) = "fiscal" Then
                xTextoAEvaluar = Trim(Padron.ObtenerTagXml("domicilio", I, "direccion")) & " " & IIf(Padron.ObtenerTagXml("domicilio", I,        "localidad") <> "", "- " & Trim(Padron.ObtenerTagXml("domicilio", I, "localidad")), "") & " " & IIf(Padron.ObtenerTagXml("domicilio", I, "descripcionProvincia") <> "", "- " & Trim(Padron.ObtenerTagXml("domicilio", I, "descripcionProvincia")), "")
                xCodPostal = Trim(Padron.ObtenerTagXml("domicilio", I, "codPostal"))
            End If
        Next



      For I = 0 To 100
            If IsNull(Padron.ObtenerTagXml("impuesto", I, "descripcionImpuesto")) Then
                Exit For
            End If
            If LCase(Padron.ObtenerTagXml("impuesto", I, "estado")) = "activo" Then
                Select Case Padron.ObtenerTagXml("impuesto", I, "idImpuesto")
                Case 20
                    xPosFisc = "MO"
                Case 30
                    xPosFisc = "RI"
                Case 32
                    xPosFisc = "EX"
                End Select
            End If
        Next

Espero les sirva

Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a pyafipws+unsubscribe@googlegroups.com.

Emiliano L.

unread,
Nov 23, 2017, 2:08:38 PM11/23/17
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Ariel, muchas gracias por la respuesta.

Pero en cuanto a imp_iva que devuelve siempre N, pudiste resolverlo?

Mariano, creés que van a actualizar ws_sr_padron con las correcciones convenientes?

Gracias a ambos!

Ariel Stechina

unread,
Nov 23, 2017, 2:21:46 PM11/23/17
to pyaf...@googlegroups.com
No pude resolverlo, por eso la ultima parte para saber si es inscripto, monotributista, exento, etc, leyendo del xml directamente

Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a pyafipws+unsubscribe@googlegroups.com.

Emiliano L.

unread,
Nov 24, 2017, 6:00:57 PM11/24/17
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Ariel, consultas.

- El XML donde se almacena?
- Las actividades, como las consultas?
- El error que se produce de "Error AFIP: IndexError: list index out of range" por usar I = 0 to 100, lo solventaste de alguna forma?

Abrazo!

Mariano Reingart

unread,
Nov 26, 2017, 6:40:08 PM11/26/17
to pyaf...@googlegroups.com
Hola Ariel / Emiliano:

No puedo reproducir el problema, incluso cree un virtualenv limpio y nada, me funciona todo correctamente.

Sería útil si pueden indicar al menos con que CUIT están probando (sería ideal si pueden adjuntar XML y mensajes de depuración).

Los XML se almacenan en la propiedad XmlRequest y XmlResponse del objeto WSSrPadronA4:


Por linea de comando pueden agregar --trace --debug para ver todos los mensajes de depuración y xml por pantalla:

python ws_sr_padron.py --prueba --trace --debug

Supongo que tienen desacutalizada alguna dependencia.
En 68de6861 actualicé el requerimiento para la biblioteca SOAP, igualmente la anterior debería funcionarles también.

Para hacer una prueba con un virtualenv limpio, estos serían los pasos:

cd /tmp
virtualenv venv
. venv/bin/activate


cd pyafipws/
pip install -r requirements.txt 

cp conf/rece.ini .
gedit rece.ini 
# editar sección [WS-SR-PADRON-A4] e indicar ruta a cert/key en [WSAA]

python ws_sr_padron.py --prueba --trace --debug

Esto en un Ubuntu 16.04 debería funcionar sin problemas.
Si usan otra distro / sistema operativo también debería funcionar, habría que ver bien que están utilizando.

Sds 
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a pyafipws+unsubscribe@googlegroups.com.

Flavio V.

unread,
Nov 26, 2017, 9:19:46 PM11/26/17
to pyaf...@googlegroups.com
Yo tambien por aca tengo el mismo problema, baje la ultima version, y todo funciona correctamente menos ese punto.

Voy a juntar la info y te la paso, las pruebas en mi caso las estoy haciendo directamente en el entorno productivo ya que al ser consulta de cuit no hay peligro de romper nada.

El cuit con el que estoy probando por ejemplo es: 30639453738

Y la ejecucion es: python ws_sr_padron.py 30639453738

En el xmlResponse esta la informacion correcta, pero despues en el resultado final solamente toma el primer impuesto, no trae otros.

El entorno mio de trabajo es windows 7 y python 2.7


Saludos
Flavio

Alejandro Naifuino

unread,
Nov 27, 2017, 10:29:23 AM11/27/17
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Hola Mariano, te confirmo que en RHEL 7, haciendo clone de tu repo y teniendo las dependencias resueltas en un venv exclusivo para pyafipws ocurre lo mismo que comentan Ariel y Emiliano. Incluso con la nueva dependencia de pysimplesoap = 1.8.9.

Por lo que llegué a ver, en la llamada al webservice en la línea 100 de ws_sr_padron.py devuelve para cada llave la última clave (ocurre con todas: actividad, domicilio, impuesto, etc). El XML lo obtiene bien, lo probé haciendo un print de self.client.xml_response abajo de esa llamada al webservice y también con --trace, pero "res" queda asignada con un dict que tiene una única clave para cada llave que tiene más de 1 y en todos los casos es la última llave.

Saludos

Francisco Roldan

unread,
Nov 27, 2017, 12:31:38 PM11/27/17
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Buenas tardes.
Me esta sucediendo lo mismo.
Dejo la consulta que hago y los XML que obtengo.

Si hace falta alguna otra información la agrego.

Gracias.

ok = padron.Consultar('30710931115')
print ok  True

In [13]: print(ok)
True

In [14]: print(padron.impuestos)
[301]

In [16]: print(padron.XmlRequest)
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:ser="http://a4.soap.ws.server.puc.sr/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
   
<ser:getPersona>
   
<token>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pgo8c3NvIHZlcnNpb249IjIuMCI+CiAgICA8aWQgc3JjPSJDTj13c2FhLCBPPUFGSVAsIEM9QVIsIFNFUklBTE5VTUJFUj1DVUlUIDMzNjkzNDUwMjM5IiB1bmlxdWVfaWQ9IjMzOTY3OTE5MjUiIGdlbl90aW1lPSIxNTExNzg5MTE0IiBleHBfdGltZT0iMTUxMTgzMjM3NCIvPgogICAgPG9wZXJhdGlvbiB0eXBlPSJsb2dpbiIgdmFsdWU9ImdyYW50ZWQiPgogICAgICAgIDxsb2dpbiBlbnRpdHk9IjMzNjkzNDUwMjM5IiBzZXJ2aWNlPSJ3c19zcl9wYWRyb25fYTQiIHVpZD0iU0VSSUFMTlVNQkVSPUNVSVQgMzA3MTUwMzU5NzUsIENOPWRpYW1vIiBhdXRobWV0aG9kPSJjbXMiIHJlZ21ldGhvZD0iMjIiPgogICAgICAgICAgICA8cmVsYXRpb25zPgogICAgICAgICAgICAgICAgPHJlbGF0aW9uIGtleT0iMzA3MTUwMzU5NzUiIHJlbHR5cGU9IjQiLz4KICAgICAgICAgICAgPC9yZWxhdGlvbnM+CiAgICAgICAgPC9sb2dpbj4KICAgIDwvb3BlcmF0aW9uPgo8L3Nzbz4K</token><sign>ICiimWJOY8WHKeFl9zptFewQ4ec74UCW+dQ2AN2ZI9csFwty4rP/wDVlP9SFpEghOaEjy+lQb1qAuE4lcm2WcZ/a+mnOfhR1vw+tOUctMC3y3i8gA/Z2DUM+7EmWtfZNQYHFcRKdexIRDgsegBADN4Np//cU5zazzHJ0zNXJzEc=</sign><cuitRepresentada>30715035975</cuitRepresentada><idPersona>30710931115</idPersona></ser:getPersona>
</soapenv:Body>
</
soapenv:Envelope>


In [17]: print(padron.XmlResponse)
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:getPersonaResponse xmlns:ns2="http://a4.soap.ws.server.puc.sr/"><personaReturn><metadata><fechaHora>2017-11-27T14:05:16.606-03:00</fechaHora><servidor>aws.afip.gov.ar</servidor></metadata><persona><actividad><descripcionActividad>SERVICIO DE TRANSPORTE AUTOMOTOR TURÍSTICO DE PASAJEROS</descripcionActividad><idActividad>492180</idActividad><nomenclador>883</nomenclador><orden>1</orden><periodo>201311</periodo></actividad><dependencia><descripcionDependencia>AGENCIA RAFAELA          </descripcionDependencia><idDependencia>855</idDependencia></dependencia><domicilio><codPostal>2300</codPostal><descripcionProvincia>SANTA FE</descripcionProvincia><direccion>PERU 221</direccion><idProvincia>12</idProvincia><localidad>RAFAELA</localidad><tipoDomicilio>FISCAL</tipoDomicilio></domicilio><domicilio><codPostal>2300</codPostal><descripcionProvincia>SANTA FE</descripcionProvincia><direccion>PERU 221</direccion><idProvincia>12</idProvincia><localidad>RAFAELA</localidad><tipoDomicilio>LEGAL/REAL</tipoDomicilio></domicilio><email><direccion>jcpariani@wilnet.com.ar</direccion><estado>Confirmado</estado><tipoEmail>OTROS</tipoEmail></email><estadoClave>ACTIVO</estadoClave><fechaContratoSocial>2009-02-27T12:00:00-02:00</fechaContratoSocial><fechaInscripcion>2009-04-17T12:00:00-03:00</fechaInscripcion><formaJuridica>S.R.L.</formaJuridica><idPersona>30710931115</idPersona><impuesto><descripcionImpuesto>GANANCIA MINIMA PRESUNTA</descripcionImpuesto><diaPeriodo>1</diaPeriodo><estado>ACTIVO</estado><ffInscripcion>2010-07-21T12:00:00-03:00</ffInscripcion><idImpuesto>25</idImpuesto><periodo>201006</periodo></impuesto><impuesto><descripcionImpuesto>GANANCIAS SOCIEDADES</descripcionImpuesto><diaPeriodo>1</diaPeriodo><estado>ACTIVO</estado><ffInscripcion>2009-04-18T12:00:00-03:00</ffInscripcion><idImpuesto>10</idImpuesto><periodo>200904</periodo></impuesto><impuesto><descripcionImpuesto>IVA</descripcionImpuesto><diaPeriodo>1</diaPeriodo><estado>ACTIVO</estado><ffInscripcion>2009-04-18T12:00:00-03:00</ffInscripcion><idImpuesto>30</idImpuesto><periodo>200904</periodo></impuesto><impuesto><descripcionImpuesto>BP-ACCIONES O PARTICIPACIONES</descripcionImpuesto><diaPeriodo>1</diaPeriodo><estado>ACTIVO</estado><ffInscripcion>2009-04-18T12:00:00-03:00</ffInscripcion><idImpuesto>211</idImpuesto><periodo>200904</periodo></impuesto><impuesto><descripcionImpuesto>REGIMENES DE INFORMACIÓN</descripcionImpuesto><diaPeriodo>1</diaPeriodo><estado>ACTIVO</estado><ffInscripcion>2009-08-10T12:00:00-03:00</ffInscripcion><idImpuesto>103</idImpuesto><periodo>200904</periodo></impuesto><impuesto><descripcionImpuesto>EMPLEADOR-APORTES SEG. SOCIAL</descripcionImpuesto><diaPeriodo>1</diaPeriodo><estado>ACTIVO</estado><ffInscripcion>2009-06-02T12:00:00-03:00</ffInscripcion><idImpuesto>301</idImpuesto><periodo>200907</periodo></impuesto><mesCierre>1</mesCierre><porcentajeCapitalNacional>100.0</porcentajeCapitalNacional><razonSocial>REY MAR TUR SRL</razonSocial><relacion><ffRelacion>2009-04-17T09:46:10-03:00</ffRelacion><idPersona>30710931115</idPersona><idPersonaAsociada>20082809059</idPersonaAsociada><subtipoRelacion>SOCIO</subtipoRelacion><tipoRelacion>SOCIEDAD CON INTEGRANTES</tipoRelacion></relacion><relacion><ffRelacion>2009-04-17T09:46:10-03:00</ffRelacion><idPersona>30710931115</idPersona><idPersonaAsociada>20082809059</idPersonaAsociada><subtipoRelacion>GERENTE TITULAR</subtipoRelacion><tipoRelacion>SOCIEDAD CON INTEGRANTES</tipoRelacion></relacion><relacion><ffRelacion>2009-04-17T09:46:10-03:00</ffRelacion><idPersona>30710931115</idPersona><idPersonaAsociada>23214182939</idPersonaAsociada><subtipoRelacion>SOCIO</subtipoRelacion><tipoRelacion>SOCIEDAD CON INTEGRANTES</tipoRelacion></relacion><relacion><ffRelacion>2009-04-17T09:46:10-03:00</ffRelacion><idPersona>30710931115</idPersona><idPersonaAsociada>23214182939</idPersonaAsociada><subtipoRelacion>GERENTE TITULAR</subtipoRelacion><tipoRelacion>SOCIEDAD CON INTEGRANTES</tipoRelacion></relacion><relacion><ffRelacion>2009-04-17T09:46:10-03:00</ffRelacion><idPersona>30710931115</idPersona><idPersonaAsociada>23214232774</idPersonaAsociada><subtipoRelacion>SOCIO</subtipoRelacion><tipoRelacion>SOCIEDAD CON INTEGRANTES</tipoRelacion></relacion><relacion><ffRelacion>2009-04-17T09:46:10-03:00</ffRelacion><idPersona>30710931115</idPersona><idPersonaAsociada>27058054815</idPersonaAsociada><subtipoRelacion>SOCIO</subtipoRelacion><tipoRelacion>SOCIEDAD CON INTEGRANTES</tipoRelacion></relacion><telefono><numero>437463</numero><tipoLinea>FIJO</tipoLinea><tipoTelefono>DEL ASESOR</tipoTelefono></telefono><tipoClave>CUIT</tipoClave><tipoPersona>JURIDICA</tipoPersona></persona></personaReturn></ns2:getPersonaResponse></soap:Body></soap:Envelope>



Ariel Stechina

unread,
Nov 27, 2017, 1:25:40 PM11/27/17
to pyaf...@googlegroups.com
Emiliano, el código que pegué más arriba me funciona correctamente y no me da error, al principio no andaba porque ponía la variable que incrementa el for en un lugar incorrecto. Esto me funciona:
      For I = 0 To 100
            If IsNull(Padron.ObtenerTagXml("impuesto", I, "descripcionImpuesto")) Then
                Exit For
            End If
            If LCase(Padron.ObtenerTagXml("impuesto", I, "estado")) = "activo" Then
                Select Case Padron.ObtenerTagXml("impuesto", I, "idImpuesto")
                Case 20
                    xPosFisc = "MONOTRIBUTISTA" 
                Case 30
                    xPosFisc = "RESPONSABLE INCRIPTO"
                Case 32
                    xPosFisc = "EXENTO"
                End Select
            End If
        Next

El xml lo proporciona la misma interfaz de Mariano:
           ok = Padron.AnalizarXml

Luego ya puedo obtener cualquier tag, ej:

        If LCase(Trim(Padron.ObtenerTagXml("tipoPersona"))) = "fisica" Then
            xRSocial = Trim(Padron.ObtenerTagXml("apellido")) & " " & Trim(Padron.ObtenerTagXml("nombre"))
        Else
            xRSocial = Trim(Padron.ObtenerTagXml("razonSocial"))
        End If

PD: No encuentro la forma que me quede el código fuente de ejemplo en un recuadro como algunas respuestas anteriores, si alguien me lo aclara, se lo voy a agradecer

Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a pyafipws+unsubscribe@googlegroups.com.

Emiliano L.

unread,
Nov 29, 2017, 11:31:31 AM11/29/17
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Ariel, una consulta.

Cuando obtenés los datos del XML, cómo hacés con los acentos? Ya que vienen todos mal.

Hay algún lugar en el que pueda cambiarse la codifica o algo por el estilo?

Gracias!


El jueves, 23 de noviembre de 2017, 16:21:46 (UTC-3), Ariel Stechina escribió:

Hernan Carbone

unread,
Nov 29, 2017, 4:21:04 PM11/29/17
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Hola, Mismo problema, en imp_iva siempre viene N para los responsables inscriptos y el array impuestos solo tiene un elemento.
Espero puedan sacar una actualizacion, desde ya muchas gracias.

Ariel Stechina

unread,
Nov 30, 2017, 1:26:38 PM11/30/17
to pyaf...@googlegroups.com
Para la codificación de acentos y eñes me hice una tabla de conversión de utf-8 a latin1. También tuve que hacer una función para quitar el espaciado adicional que viene en algunos textos y que queden mejor acomodados, sobre todo direcciones y localidades. 
Esta es la función vb para convertir utf a latin:

Private Function ConvertirLetrasUTF8aLATIN1(xTextoAProcesar As String) As String
Dim VarTmp As String
    VarTmp = xTextoAProcesar
    VarTmp = Replace(VarTmp, "+AKA-", "Â")
    VarTmp = Replace(VarTmp, "¡", "¡")
    VarTmp = Replace(VarTmp, "¢", "¢")
    VarTmp = Replace(VarTmp, "£", "£")
    VarTmp = Replace(VarTmp, "¤", "¤")
    VarTmp = Replace(VarTmp, "Â¥", "¥")
    VarTmp = Replace(VarTmp, "¦", "¦")
    VarTmp = Replace(VarTmp, "§", "§")
    VarTmp = Replace(VarTmp, "¨", "¨")
    VarTmp = Replace(VarTmp, "©", "©")
    VarTmp = Replace(VarTmp, "ª", "ª")
    VarTmp = Replace(VarTmp, "«", "«")
    VarTmp = Replace(VarTmp, "+AKw-", "Â")
    VarTmp = Replace(VarTmp, "¢í", "­")
    VarTmp = Replace(VarTmp, "®", "®")
    VarTmp = Replace(VarTmp, "¯", "¯")
    VarTmp = Replace(VarTmp, "°", "°")
    VarTmp = Replace(VarTmp, "±", "±")
    VarTmp = Replace(VarTmp, "²", "²")
    VarTmp = Replace(VarTmp, "³", "³")
    VarTmp = Replace(VarTmp, "´", "´")
    VarTmp = Replace(VarTmp, "µ", "µ")
    VarTmp = Replace(VarTmp, "+ALY-", "Â")
    VarTmp = Replace(VarTmp, "·", "·")
    VarTmp = Replace(VarTmp, "¸", "¸")
    VarTmp = Replace(VarTmp, "¹", "¹")
    VarTmp = Replace(VarTmp, "º", "º")
    VarTmp = Replace(VarTmp, "»", "»")
    VarTmp = Replace(VarTmp, "¼", "¼")
    VarTmp = Replace(VarTmp, "½", "½")
    VarTmp = Replace(VarTmp, "¾", "¾")
    VarTmp = Replace(VarTmp, "¿", "¿")
    VarTmp = Replace(VarTmp, "À", "À")
    VarTmp = Replace(VarTmp, "Ã ", "Á")
    VarTmp = Replace(VarTmp, "Â", "Â")
    VarTmp = Replace(VarTmp, "Ã", "Ã")
    VarTmp = Replace(VarTmp, "Ä", "Ä")
    VarTmp = Replace(VarTmp, "Ã…", "Å")
    VarTmp = Replace(VarTmp, "Æ", "Æ")
    VarTmp = Replace(VarTmp, "Ç", "Ç")
    VarTmp = Replace(VarTmp, "È", "È")
    VarTmp = Replace(VarTmp, "É", "É")
    VarTmp = Replace(VarTmp, "Ê", "Ê")
    VarTmp = Replace(VarTmp, "Ë", "Ë")
    VarTmp = Replace(VarTmp, "ÃŒ", "Ì")
    VarTmp = Replace(VarTmp, "Ã ", "Í")
    VarTmp = Replace(VarTmp, "ÃŽ", "Î")
    VarTmp = Replace(VarTmp, "Ã ", "Ï")
    VarTmp = Replace(VarTmp, "Ã ", "Ð")
    VarTmp = Replace(VarTmp, "Ñ", "Ñ")
    VarTmp = Replace(VarTmp, "Ã’", "Ò")
    VarTmp = Replace(VarTmp, "Ó", "Ó")
    VarTmp = Replace(VarTmp, "Ô", "Ô")
    VarTmp = Replace(VarTmp, "Õ", "Õ")
    VarTmp = Replace(VarTmp, "Ö", "Ö")
    VarTmp = Replace(VarTmp, "×", "×")
    VarTmp = Replace(VarTmp, "Ø", "Ø")
    VarTmp = Replace(VarTmp, "Ù", "Ù")
    VarTmp = Replace(VarTmp, "Ú", "Ú")
    VarTmp = Replace(VarTmp, "Û", "Û")
    VarTmp = Replace(VarTmp, "Ü", "Ü")
    VarTmp = Replace(VarTmp, "Ã ", "Ý")
    VarTmp = Replace(VarTmp, "Þ", "Þ")
    VarTmp = Replace(VarTmp, "ß", "ß")
    VarTmp = Replace(VarTmp, "Ã", "à")
    VarTmp = Replace(VarTmp, "á", "á")
    VarTmp = Replace(VarTmp, "â", "â")
    VarTmp = Replace(VarTmp, "ã", "ã")
    VarTmp = Replace(VarTmp, "ä", "ä")
    VarTmp = Replace(VarTmp, "Ã¥", "å")
    VarTmp = Replace(VarTmp, "æ", "æ")
    VarTmp = Replace(VarTmp, "ç", "ç")
    VarTmp = Replace(VarTmp, "è", "è")
    VarTmp = Replace(VarTmp, "é", "é")
    VarTmp = Replace(VarTmp, "ê", "ê")
    VarTmp = Replace(VarTmp, "ë", "ë")
    VarTmp = Replace(VarTmp, "Ã", "ì")
    VarTmp = Replace(VarTmp, "í", "í")
    VarTmp = Replace(VarTmp, "î", "î")
    VarTmp = Replace(VarTmp, "ï", "ï")
    VarTmp = Replace(VarTmp, "ð", "ð")
    VarTmp = Replace(VarTmp, "ñ", "ñ")
    VarTmp = Replace(VarTmp, "ò", "ò")
    VarTmp = Replace(VarTmp, "ó", "ó")
    VarTmp = Replace(VarTmp, "ô", "ô")
    VarTmp = Replace(VarTmp, "õ", "õ")
    VarTmp = Replace(VarTmp, "Ã", "ö")
    VarTmp = Replace(VarTmp, "÷", "÷")
    VarTmp = Replace(VarTmp, "ø", "ø")
    VarTmp = Replace(VarTmp, "ù", "ù")
    VarTmp = Replace(VarTmp, "ú", "ú")
    VarTmp = Replace(VarTmp, "û", "û")
    VarTmp = Replace(VarTmp, "ü", "ü")
    VarTmp = Replace(VarTmp, "ý", "ý")
    VarTmp = Replace(VarTmp, "þ", "þ")
    VarTmp = Replace(VarTmp, "ÿ", "ÿ")
    VarTmp = Replace(VarTmp, "+AKA-", "Â")
    VarTmp = Replace(VarTmp, "¡", "¡")
    VarTmp = Replace(VarTmp, "¢", "¢")
    VarTmp = Replace(VarTmp, "£", "£")
    VarTmp = Replace(VarTmp, "¤", "¤")
    VarTmp = Replace(VarTmp, "Â¥", "¥")
    VarTmp = Replace(VarTmp, "¦", "¦")
    VarTmp = Replace(VarTmp, "§", "§")
    VarTmp = Replace(VarTmp, "¨", "¨")
    VarTmp = Replace(VarTmp, "©", "©")
    VarTmp = Replace(VarTmp, "ª", "ª")
    VarTmp = Replace(VarTmp, "«", "«")
    VarTmp = Replace(VarTmp, "+AKw-", "Â")
    VarTmp = Replace(VarTmp, "¢í", "­")
    VarTmp = Replace(VarTmp, "®", "®")
    VarTmp = Replace(VarTmp, "¯", "¯")
    VarTmp = Replace(VarTmp, "°", "°")
    VarTmp = Replace(VarTmp, "±", "±")
    VarTmp = Replace(VarTmp, "²", "²")
    VarTmp = Replace(VarTmp, "³", "³")
    VarTmp = Replace(VarTmp, "´", "´")
    VarTmp = Replace(VarTmp, "µ", "µ")
    VarTmp = Replace(VarTmp, "+ALY-", "Â")
    VarTmp = Replace(VarTmp, "·", "·")
    VarTmp = Replace(VarTmp, "¸", "¸")
    VarTmp = Replace(VarTmp, "¹", "¹")
    VarTmp = Replace(VarTmp, "º", "º")
    VarTmp = Replace(VarTmp, "»", "»")
    VarTmp = Replace(VarTmp, "¼", "¼")
    VarTmp = Replace(VarTmp, "½", "½")
    VarTmp = Replace(VarTmp, "¾", "¾")
    VarTmp = Replace(VarTmp, "¿", "¿")
    VarTmp = Replace(VarTmp, "À", "À")
    VarTmp = Replace(VarTmp, "Ã ", "Á")
    VarTmp = Replace(VarTmp, "Â", "Â")
    VarTmp = Replace(VarTmp, "Ã", "Ã")
    VarTmp = Replace(VarTmp, "Ä", "Ä")
    VarTmp = Replace(VarTmp, "Ã…", "Å")
    VarTmp = Replace(VarTmp, "Æ", "Æ")
    VarTmp = Replace(VarTmp, "Ç", "Ç")
    VarTmp = Replace(VarTmp, "È", "È")
    VarTmp = Replace(VarTmp, "É", "É")
    VarTmp = Replace(VarTmp, "Ê", "Ê")
    VarTmp = Replace(VarTmp, "Ë", "Ë")
    VarTmp = Replace(VarTmp, "ÃŒ", "Ì")
    VarTmp = Replace(VarTmp, "Ã ", "Í")
    VarTmp = Replace(VarTmp, "ÃŽ", "Î")
    VarTmp = Replace(VarTmp, "Ã ", "Ï")
    VarTmp = Replace(VarTmp, "Ã ", "Ð")
    VarTmp = Replace(VarTmp, "Ñ", "Ñ")
    VarTmp = Replace(VarTmp, "Ã’", "Ò")
    VarTmp = Replace(VarTmp, "Ó", "Ó")
    VarTmp = Replace(VarTmp, "Ô", "Ô")
    VarTmp = Replace(VarTmp, "Õ", "Õ")
    VarTmp = Replace(VarTmp, "Ö", "Ö")
    VarTmp = Replace(VarTmp, "×", "×")
    VarTmp = Replace(VarTmp, "Ø", "Ø")
    VarTmp = Replace(VarTmp, "Ù", "Ù")
    VarTmp = Replace(VarTmp, "Ú", "Ú")
    VarTmp = Replace(VarTmp, "Û", "Û")
    VarTmp = Replace(VarTmp, "Ü", "Ü")
    VarTmp = Replace(VarTmp, "Ã ", "Ý")
    VarTmp = Replace(VarTmp, "Þ", "Þ")
    VarTmp = Replace(VarTmp, "ß", "ß")
    VarTmp = Replace(VarTmp, "Ã", "à")
    VarTmp = Replace(VarTmp, "á", "á")
    VarTmp = Replace(VarTmp, "â", "â")
    VarTmp = Replace(VarTmp, "ã", "ã")
    VarTmp = Replace(VarTmp, "ä", "ä")
    VarTmp = Replace(VarTmp, "Ã¥", "å")
    VarTmp = Replace(VarTmp, "æ", "æ")
    VarTmp = Replace(VarTmp, "ç", "ç")
    VarTmp = Replace(VarTmp, "è", "è")
    VarTmp = Replace(VarTmp, "é", "é")
    VarTmp = Replace(VarTmp, "ê", "ê")
    VarTmp = Replace(VarTmp, "ë", "ë")
    VarTmp = Replace(VarTmp, "Ã", "ì")
    VarTmp = Replace(VarTmp, "í", "í")
    VarTmp = Replace(VarTmp, "î", "î")
    VarTmp = Replace(VarTmp, "ï", "ï")
    VarTmp = Replace(VarTmp, "ð", "ð")
    VarTmp = Replace(VarTmp, "ñ", "ñ")
    VarTmp = Replace(VarTmp, "ò", "ò")
    VarTmp = Replace(VarTmp, "ó", "ó")
    VarTmp = Replace(VarTmp, "ô", "ô")
    VarTmp = Replace(VarTmp, "õ", "õ")
    VarTmp = Replace(VarTmp, "Ã", "ö")
    VarTmp = Replace(VarTmp, "÷", "÷")
    VarTmp = Replace(VarTmp, "ø", "ø")
    VarTmp = Replace(VarTmp, "ù", "ù")
    VarTmp = Replace(VarTmp, "ú", "ú")
    VarTmp = Replace(VarTmp, "û", "û")
    VarTmp = Replace(VarTmp, "ü", "ü")
    VarTmp = Replace(VarTmp, "ý", "ý")
    VarTmp = Replace(VarTmp, "þ", "þ")
    VarTmp = Replace(VarTmp, "ÿ", "ÿ")

    ConvertirLetrasUTF8aLATIN1 = Trim(VarTmp)
End Function


Y luego convierto así tras recuperar el tag xml:
       xLocalidad = Trim(Padron.ObtenerTagXml("domicilio", I, "localidad"))
       xLocalidad = ConvertirLetrasUTF8aLATIN1(xLocalidad)

Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a pyafipws+unsubscribe@googlegroups.com.

Emiliano L.

unread,
Nov 30, 2017, 9:43:14 PM11/30/17
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Ariel, nuevamente, gracias por la colaboración!

Ya armé todo leyendo directamente el XML como lo hiciste vos con el For.

Abrazo!

Mariano Reingart

unread,
Dec 3, 2017, 4:08:42 PM12/3/17
to pyaf...@googlegroups.com
Hola Francisco: 

2017-11-27 14:09 GMT-03:00 Francisco Roldan <francisc...@gmail.com>:
Buenas tardes.
Me esta sucediendo lo mismo.


¿Podrías ejecutar pip freeze? (para ver que paquetes están instalando)

Se me ocurre que tienen otra versión de PySimpleSoap
Hoy publique dos paquetes en PyPI, la versión estable más actualizada:


Los últimos ajustes no deberían afectar a este webservice, pero igual pueden probarlo.
Historial de cambios:


IMPORTANTE: NO instalar la última versión (1.16.2, rama master) porque es de desarrollo.

Para instalarlo ejecutar:

pip install pysimplesoap==1.08.14

 
Dejo la consulta que hago y los XML que obtengo.
 
Si hace falta alguna otra información la agrego.


La parte donde se analizan las listas de valores en simplexml.py, la función unmarshall:


Ahi se podría depurar con un breakpoint condicional o usar el depurador de python:

if name == "impuesto": import pdb; pdb.set_trace()

Tendría que poder reproducirlo, toda la info que puedan aportar es bienvenida. 

Gracias.

ok = padron.Consultar('30710931115')
print ok  True

In [13]: print(ok)
True

In [14]: print(padron.impuestos)
[301]



En mis purebas funciona OK, incluso con ese xml y la versión "estándard" de pysimplesoap:

$ python ws_sr_padron.py --testing --prueba

...

Tipo: JURIDICA 80 
Estado: ACTIVO
Direccion: PERU 221
Localidad: RAFAELA
Provincia: SANTA FE
Codigo Postal: 2300
Impuestos: [25, 10, 30, 211, 103, 301]
Actividades: [492180L]
IVA S
MT N 
Empleador S

Francisco Roldan

unread,
Dec 4, 2017, 9:05:18 AM12/4/17
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Mariano, muchas gracias por tu respuesta.
Ejecutando pip freeze veo que estoy utilizando PySimpleSOAP 1.8.8
Lo actualice a la version 1.08.14 y efectivamente ahora obtengo correctamente los datos.

Gracias,
Saludos

Matias Aya

unread,
Dec 6, 2017, 10:04:21 PM12/6/17
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Excelente gracias Mariano, con esa version 1.08.14 de pysimplesoap funciono correctamente.



El domingo, 3 de diciembre de 2017, 18:08:42 (UTC-3), Mariano Reingart escribió:

Marce Romagnoli

unread,
Jan 2, 2018, 3:49:13 PM1/2/18
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Mariano, les esta funcionando correctamente el servicio ws_sr_constancia_inscripcion (personaServiceA5) en producción? Porque yo estoy recibiendo una respuesta mal formateada para produccion pero bien en el sandbox.
La respuesta que me llega es un HTML vacio: <html><head></head><body><br><br></body></html> como respuesta al endpoint getPersona.

Si alguien puede confirmar que en produccion estan recibiendo lo correcto seria de mucha ayuda para determinar que el problema esta de nuestro lado.

Saludos.
Reply all
Reply to author
Forward
0 new messages