260644c961d6ccef1094017234a135f3121f5c03
MINOR (F2 review): _get_document_by_idempotency_key lacked the deleted_at IS NULL filter that get_fiscal_document already has. No F2 trigger today (nothing soft-deletes a FiscalDocument yet), but a future cancel-by-soft-delete would replay a dead document as if it were still the valid idempotent response, instead of treating the key as free for a new emission. Test: tests/emission/test_emissao.py:: test_idempotency_key_apontando_para_documento_soft_deletado_e_tratada_como_ausente -- manually inserts a soft-deleted FiscalDocument + its FiscalIdempotencyKey row (constructing the pre-cancel scenario directly, since nothing else in F2 produces one yet), asserts the query-level replay returns None, and that replaying via POST /v1/emissoes with that key emits a brand-new document (201, new number allocated) rather than resolving to the dead one. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Description
Serviço fiscal compartilhado SowAI: emissão NF-e (e futuramente NFS-e/NFC-e) multi-produto via REST. Embute a lib sowai-fiscal; dono de documentos/certificados/séries. F2+ do plano Estágio 2.
280 KiB
Languages
Python
96.9%
Makefile
2.2%
Dockerfile
0.6%
Mako
0.3%