django-afip
django-afip copied to clipboard
Soporte para obtener los XMLs desde el admin.
Abro este hilo a modo de debate.
Hoy por la mañana me encontré con un problema de ARCA y veo que ellos son el problema, pero en la consulta ellos te piden que obtengas los XMLs de request y response, teniendo en cuenta que el envió de información lo maneja django afip, quizás sea útil para eventos futuros poder obtener los XMLs. No estoy muy familiarizado con la librería que se encarga de de enviar y recibir los request/response, pero viendo en history quizás sea factible.
Comentenme que opinan o si existe quizás una forma mas directa sin tener que modificar la librería.
Me parece útil poder exportar los XML de request/response. Alguna vez estuve en tu misma situación y tuve que usar el HistoryPlugin, pero fue apilando código así nomás en tests.
Como sería el flujo completo para exportar XMLs? Desde una interfaz web? Desde una shell? Esta última me parece más flexible porque podemos loggear fácilmente cualquier secuencia de XMLs.
django-admin shell (o manage.py shell) me parece la más flexible, aunque un poquito más laboriosa de usar:
- Usamos
django-admin shellpara tener una consola de Python con django activado. django_afip.clients.get_clienttoma un parámetro opcionalhistory: HistoryPlugin. Usamos este cliente para hacer requests guardando el historial en memoria.django_afip.Receipt.validate()toma un parámetro opcionalclient, para usar uno pasado explícitamente como parámetro en vez de crear uno internamente.- Hacemos las llamadas necesarias desde esa consola (e.g.:
django_afip.models.Receipt.objects.get(pk=123).validate_receipt(client)). - Analizamos el
historyque pasamos por parámetro para extraer todo lo que haga falta.
Concuerdo, me parece una forma bastante directa y simple de obtener todo. Si no entendí mal: podríamos hacer que el request/response se guarden en archivos o directamente se impriman en el shell y de ahí uno los trabaja.
Si bien se me ocurre otra idea adicional que es crear un nuevo método para el admin validate_xml u otro nombre, que nos hace todo el proceso sin tener que seleccionar todo. Pero creo que es demasiado trabajo por el poco uso que puede tener.
podríamos hacer que el request/response se guarden en archivos o directamente se impriman en el shell y de ahí uno los trabaja.
tal cual
Si bien se me ocurre otra idea adicional que es crear un nuevo método para el admin validate_xml u otro nombre, que nos hace todo el proceso sin tener que seleccionar todo.
Para implementar eso igualmente necesitarías todos los cambios de arriba para poder usar el HistoryPlugin.