Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revalidar comprobantes #92

Closed
WhyNotHugo opened this issue Aug 25, 2021 · 3 comments
Closed

Revalidar comprobantes #92

WhyNotHugo opened this issue Aug 25, 2021 · 3 comments

Comments

@WhyNotHugo
Copy link
Owner

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
@juanpsenn
Copy link
Contributor

Muy completa la descripcion jeje, se agradece!

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

@WhyNotHugo
Copy link
Owner Author

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.

@WhyNotHugo
Copy link
Owner Author

Fixed via #95

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants