Estimados,
Aquí les dejo una modificación que hice para implementar una funcionalidad que hace rato me estaba dando vueltas por la cabeza.
Las modificaciones están, principalmente, en VBPartner, que es la clase que se encarga de mostrar la pantalla de alta de entidades comerciales “in situ” durante la carga de facturas de clientes o proveedores, y muy poco en VLocation, que es la implementación del widget para la carga de localizaciones de entidades comerciales.
Lo que hace es mostrar un campo para ingresar una CUIT y un botón de OK. Cuando el usuario carga el dato y hace clic en el botón, el sistema se conecta con un servicio de AFIP y descarga los datos fiscales del cliente, tal como figuran en el Padrón Único de contribuyentes. Con estos datos rellena los campos relevantes automáticamente y se puede crear una entidad comercial tipeando solamente la CUIT del contribuyente.
Las modificaciones las hice, como decía al principio, en dos clases. No quise hacer modificaciones al diccionario de datos, por lo que incluí en VLocation un array con las provincias argentinas cuyo índice se corresponde con el código que asigna AFIP a cada jurisdicción. También incluí en VBPartner un HashMap con los códigos según AFIP de cada categoría de IVA y el correspondiente ID del diccionario.
También fué necesario incorporar a Libretya una librería para manejo de JSON, ya que la respuesta del site está en ese formato.
Yo opté por la siguiente:
https://travis-ci.org/ralfstx/minimal-json
Las modificaciones están hechas sobre las fuentes de 13.01 (estimo que los cambios podrían ser incorporados sin problemas a 14.02)
EDIT:
No puedo subir archivos, me da un error de FTP. Así que pongo un link a una carpeta de Drive donde está el .zip
client.zip
Seguramente le falte agregar algo, quitar alguna cosa que sobre o mejorar una que ya está. Todos los comentarios son bienvenidos.
Espero les sea útil.
Saludos cordiales,
Juan Manuel.
[attachment]client.zip[/attachment]