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