WhyNotHugo/django-afip

Revalidar comprobantes

WhyNotHugo opened this issue · 3 comments

Aveces pasa que mandamos facturas al AFIP, y el sistema muere (corte de luz, crash, etc) antes de persistir el CAE en la base de datos.

Necesitamos un mecanismo para completar los datos faltantes. #81 agregó integración con el endpoint correcto para hacer esto, pero faltaría exponer una API más amigable.

Lo idea sería un método revalidate (el nombre puede cambiar):

class Receipt(models.Model):
    ...
    def validate(self) -> Optional[ReceiptValidation]:
        ...
  • El método devolvería None si el comprobante no existe en el AFIP.
  • El método guarda y devuelve un ReceiptValidation con los datos de CAE correctos.

En cuanto a tests, sería cuestión de:

  • Caso 1:

    • Crear un comprobante.
    • Validarlo
    • Borrar el ReceiptValidation
    • Llamar al método
    • Corroborar que ReceiptValidation coincida con los datos que obtuvimos al validar.
  • Caso 2:

    • Crear un comprobante
    • Asignarle un número inexistente (último + 1) y fecha
    • Llamar al método
    • Corroborar que devuelve None
  • Caso 2:

    • Crear un comprobante
    • No asignarle un número
    • Llamar al método
    • Corroborar que devuelve None

Muy completa la descripcion jeje, se agradece!

Pregunta aparte, encontraste alguna forma de persistir los tickets de autorizacion entre cada live test?

Pregunta aparte, encontraste alguna forma de persistir los tickets de autorizacion entre cada live test?

No todavía. Estoy terminando de convertir los tests más viejos a pytest.

Una vez que todos los tests usen pytest, el live_ticket va a ser un fixture y simplemente puede guardarlo a disco cuando lo genera, y usar ese si existe.

Fixed via #95