Skip to content

fix(nfse): restore owning company context for queued post-emission work (#421) - #492

Merged
vitormattos merged 3 commits into
mainfrom
fix/nfse-queue-owned-company-context-r
Oct 14, 2026
Merged

vitormattos merged 3 commits into
mainfrom
fix/nfse-queue-owned-company-context-r

Conversation

@vitormattos

Copy link
Copy Markdown
Member

Problema confirmado

StoreIssuedNfseArtifacts e SendIssuedNfseEmail recebiam apenas IDs de fatura/recibo, sem ativar a empresa. Um worker sem empresa corrente, ou com outra empresa corrente, poderia falhar ou ler nfse.webdav_* e preferências de envio do tenant errado. O teste anterior selecionava manualmente a empresa antes da chamada, por isso não verificava a execução real em fila.

Correção

  • Helper NfsePostEmissionCompanyContext consulta o dono na associação persistida entre nfse_receipts e documents; rejeita identidade ausente/inconsistente antes de qualquer operação externa.
  • Usa API nativa Akaunting Company::makeCurrent() e getCurrent(); restaura o contexto anterior (ou remove a seleção temporária) em finally, inclusive após exceção.
  • Ambos jobs executam leitura, estado e efeitos sob essa identidade; o callback de falha do job de artefatos também usa o escopo proprietário.
  • Não muda a estrutura da fila, ids publicados, retry/idempotência nem dados fiscais históricos.

Provas

Feature sintético verifica dois contextos com URLs WebDAV diferentes, troca e restauração após sucesso/falha, e rejeição por recibo divergente sem disparar callback. PHPUnit, Akaunting Feature, Psalm, PHP-CS-Fixer, Playwright aplicáveis devem passar.

Governança

Commits incrementais Conventional Commits, DCO e assinados criptograficamente via Git Signing MCP. PR draft até CI/revisão; sem bypass de ruleset, squash ou transmissão fiscal real. Complementa os PRs #482/#484 já integrados.

…nership

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
…ore context

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
@vitormattos
vitormattos marked this pull request as ready for review October 14, 2026 10:48
@vitormattos
vitormattos merged commit ec9dbee into main Oct 14, 2026
18 checks passed
@vitormattos
vitormattos deleted the fix/nfse-queue-owned-company-context-r branch October 14, 2026 19:03
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

Successfully merging this pull request may close these issues.

1 participant