Reconcile CIPC BizPortal against the Workflow database for every
director ID number we hold, and report only the two kinds of
difference that need a decision:
1. new appointment - CIPC lists the person as a director of company
X, the database does not.
2. no longer a director - the database lists the person at company X,
CIPC no longer shows them there.
Everything that is in sync is not reported, so the list stays short
enough to work through by hand.
- New page /cipc-report with an explorer that runs the check, polls
the run and lists the exceptions.
- New API route /api/cipc/report: POST starts a background batch run
of the existing "Bizportal Directopr id no search.py" (invoked
exactly as it already behaves, including its own login rotation),
GET returns run status and the exception lists. ?demo=1 returns a
fixed sample so the screen can be shown without a live run.
- New action route /api/cipc/report/action for the per-exception
follow-up actions.
- scripts/cipc-report/build_report.py renders the run into a PDF with
the exceptions marked, plus the sample report used by ?demo=1.
The BizPortal tooling only exists on the Windows dev machine, so like
the other CIPC routes this tab cannot run the live search from the
Coolify Linux image.
31 lines
1 KiB
TypeScript
31 lines
1 KiB
TypeScript
// app/cipc-report/page.tsx
|
|
// CIPC Report tab — reconciles CIPC BizPortal against the Workflow
|
|
// database for every director ID we hold, and reports only the differences:
|
|
// 1. new director appointments (CIPC has them, we do not)
|
|
// 2. appointments to close off (we have them, CIPC does not)
|
|
|
|
import PageHeader from "@/components/PageHeader";
|
|
import CipcReportExplorer from "./CipcReportExplorer";
|
|
|
|
export const dynamic = "force-dynamic";
|
|
|
|
export default function CipcReportPage() {
|
|
return (
|
|
<>
|
|
<PageHeader
|
|
eyebrow="CIPC Report"
|
|
title="Director appointment check"
|
|
subtitle={
|
|
<span>
|
|
Checks every director ID number we hold against CIPC and shows only the differences:
|
|
new appointments at companies we do not have them for, and appointments to close
|
|
off because the person is no longer a director.
|
|
</span>
|
|
}
|
|
/>
|
|
<section className="container-x py-10">
|
|
<CipcReportExplorer />
|
|
</section>
|
|
</>
|
|
);
|
|
}
|