mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-26 18:42:49 +00:00
Two gaps that only bite in production: nobody could see an invoice's filing state, and a blocked chain was visible only in the logs. A failed filing now notifies the staff who can act on it. An ambiguous result is HIGH priority because it blocks every further invoice for the system number until someone resolves it, and nothing else would surface that -- the sweep just goes quiet. A deterministic rejection affects one invoice, so it is normal priority. The alert never throws: it must not mask the filing outcome. The backoffice invoice detail page gains an EIMS card showing status, IRN, counter, submitted and acknowledged timestamps, and the gateway's own error message, with actions gated on invoices:eims_register. FAILED offers "File again" -- the reservation model already allows re-registering a rejected invoice, so retry needed no new endpoint. UNKNOWN offers no re-file button at all, since resubmitting risks a duplicate registration, and instead explains that a supervisor must record the IRN or discard the attempt. Also aligns the migration class name with its renamed file. The DDL is idempotent, so re-applying under the new name is a no-op against the columns; it leaves one superseded row in freight.migrations. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>