AAuditPro Suite· Jobs manual
Jobs manual Create the job

The 3-step wizard

1 Template & client Pick template (12 options) Confirm client (auto-filled) 2 Period & dates Fiscal year, planned start/end Live JSON preview of folders 3 Team Partner, manager, senior, staff Capability-matrix suggestions

Step-by-step

  1. From the client detail page

    Open the client (M04). Click New Job in the action rail. The wizard launches with the client field pre-filled — you can't accidentally create a job for the wrong client.

  2. Step 1 — pick the template

    Dropdown shows the 12 active templates. Picking one expands a panel with the template description + deliverables + skills required + estimated total hours, so you can verify it's the right shape.

  3. Step 2 — period & dates

    Fiscal year (auto-derived from client's fiscal_year setting + current calendar; override if needed). Planned start date, planned end date. As you type, the right panel shows a live JSON preview of the folder structure with tokens substituted in real time — you see exactly which folders will be created.

  4. Step 3 — allocate the team

    Pickers for Partner, Manager, Senior, Staff. Capability-matrix integration: each picker only shows employees with matching skills. EQCR picker appears only if template requires_eqcr or client is listed.

  5. Commit

    Click Create job. ~1.2 seconds later: redirected to /jobs/{id} dashboard. The job number is rendered in the header (e.g. JOB2026/0042) — auto-issued via NumberSequenceService.

What happens on commit (under the hood)

#ActionTables touched
1Issue job number from sequencesnumber_sequences (atomic counter)
2Insert jobs rowjobs (1 row)
3Insert team-member rowsjob_team_members (1-5 rows)
4Clone template tasks → job_tasks (parent re-link)job_tasks (8-15 rows)
5Clone checklist items → job_task_checklist_itemsjob_task_checklist_items (50-200 rows)
6Walk folder JSON, write to disk under storage/jobs/{id}/filesystem · job_folders (10-30 rows)
7Initial status_history row (status=not_started)job_status_history (1 row)
8If template.requires_workpapers — auto-seed 12 workpapers + 79 proceduresaudit_workpapers (12), audit_workpaper_procedures (79)
9If template = audit — initialise disclosure checklist (~120 items) + 24 FS notesengagement_disclosure_checklist, fs_notes
10If M20 auto-subscribe is on — subscribe client to recurring obligationsclient_compliance_obligations + compliance_deadlines
11Audit-log entryaudit_logs

Total: between ~80 rows (TPL-VAT minimal) and ~430 rows (TPL-AA Annual Audit) — all in a single database transaction, all rolled back if any step fails.

Form fields reference

1Template
Required · 1 of 12

Filtered to is_active=1. Selection drives every downstream defaulting.

2Client
Pre-filled (read-only)

Inherited from where you launched the wizard. Cannot be changed in the wizard — start over from the right client.

3Job title
Auto-generated, editable

Default: "{template.name} · FY {year}". Edit if your firm uses different conventions.

4Fiscal year (from-to)
Required dates

Drives every period reference downstream — TB import dates, materiality basis, FS comparatives.

5Planned start
Required

When fieldwork begins. Drives capacity reports + deadline dashboard.

6Planned end
Required

Deadline for issuance. Reports flag past-due jobs in red.

7Engagement partner
Required · employee picker

Carries professional liability. Capability matrix filters to partners only.

8Audit manager
Required (audit) · optional (advisory)

Day-to-day owner. Sees the job in their "My jobs" filter on the dashboard.

9Senior + staff
Optional but recommended

Multi-pick. Each gets a row in job_team_members with role.

10EQCR partner
Required for listed / high-risk

Independent partner. Auto-required when template demands or client.is_listed=1. Cannot be the engagement partner.

11Estimated fee
Optional · OMR 3-dp

Defaults to client's annual_audit_fee if set. Drives invoice auto-draft on completion.

12Internal notes
Free text

Things only the team should see. Not exposed to client.

The job dashboard (after commit)

You're redirected to /jobs/{id}. The dashboard has 8 or 9 tabs (workpapers tab visible only when requires_workpapers=1):

TabWhat it shows
OverviewStatus banner · progress bar · financial summary · partner/manager block · description
Tasks5-phase grouped list, inline checklist ticking, drag-drop reorder, filter
TeamAdd/remove members, change role, set scope
FilesPolymorphic attachments (per-job + per-task), upload, download, delete
CommentsFlat thread, internal flag, author-only edit/delete
TimelineStatus-history with colour badges
ActivityAudit-log filtered to this job
WorkpapersVisible only when template.requires_workpapers=1; opens M19 hub
InvoicesLinked invoices roll-up + billing timeline

Engagement workflow strip — guided 8-phase navigator

Above the tabs sits the Engagement Workflow strip — a row of numbered chevron-pills mapping the job to 8 logical phases (Acceptance → Plan → Trial Balance → Fieldwork → Workpapers/AJEs → FS/Reporting → Review → Issue & Lock). The strip is purely a navigator; clicking any pill jumps to the relevant tab. Pills auto-update from existing data — no manual phase management.

Phase 1 — Acceptance (engagement letter first)

Per ISA 210, the signed engagement letter is the FIRST artefact on every audit. The Acceptance phase tracks it explicitly: the phase only flips green when (a) the engagement letter is generated/finalised AND (b) the team is allocated AND (c) a manager or partner is on the team. Until the letter is on file, the phase's next-action button reads "Generate engagement letter" and lands on the Documents tab — not the Team tab.

Smart routing — every pill knows what's blocking it

Each pill computes its destination based on the topmost failing exit criterion, not a hard-coded tab. Examples: Acceptance with no letter → Documents; with letter but no team → Team; with team but no manager → Team + CTA "Assign a manager or partner". Review with 0 points raised → Tasks tab → #phase-review (avoids the hidden Review-Points tab). Issue & Lock routes to Overview when the phase is active (status-change form lives there), but to Documents when it's done (where signed deliverables live) — a click never feels like a no-op.

Same-page click feedback

When a pill click resolves to the page the user is already viewing (no navigation possible), the pill flashes briefly with a gold ring + a small toast appears at the bottom reading "You are already on the {Phase} destination." The page also smooth-scrolls to the top so the strip is in view. No more silent clicks.

Rich hover tooltip on every pill

Hover any pill — even skipped ones — for an instant context card showing phase number, label, status badge, description, progress (X of Y · percent · mini bar) and a status hint. Skipped pills explain WHY they're skipped (e.g. "This engagement type does not require a trial balance").

Tooltip portal — escapes overflow clipping

The rich tooltip is rendered as a body-level overlay populated by JS on hover, not as an inline element. Reason: the pill row scrolls horizontally (overflow-x: auto) which clips any element trying to render above the row. The portal pattern bypasses that completely. The native HTML title="" attribute remains as the no-JS fallback, so even with scripts disabled hovering shows the phase description.

Hero card — sorted criteria + dynamic CTA

The hero card carries a "X of Y done" pill + colour-coded progress bar + sorted criteria list (failing first in amber, done at bottom in green) + smart CTA whose label changes based on the topmost blocker (e.g. "Generate engagement letter" → "Add team members" → "Assign a manager"). For Issue & Lock the CTA is a direct form-submit button, not a navigation link.

Pill ↔ tab visual handshake

When the active phase targets a specific tab and the user is on that tab, the tab nav-link gets a gold left-edge accent + ★ marker. Visual confirmation: "you're on the right tab for the active phase".

Skipped pills are non-clickable

Phases that don't apply to this engagement render as greyed-out, italic, non-clickable spans instead of links — clicking them would take the user to a tab that doesn't even exist for this job. The hover tooltip explains why.

Celebration banner when complete

When every applicable phase is done, the hero card is replaced with a green "Engagement complete" banner showing the trophy icon + a one-click Print summary button.

Why only the active phase has a hero card

The hero card shows only for the currently active phase — that's by design. Other pills surface their info as a rich tooltip on hover. Showing 8 hero cards stacked would dilute the "what to do next" focus. One active phase, one hero card, one smart CTA.

Done
Green

Phase exit criteria met (e.g. all planning tasks ticked, TB imported).

Active
Gold + glow

Current phase. Hero card below the strip explains what to do + shows the next-action button.

·Pending
Grey

Not yet reached. Click to navigate anyway.

Skipped
Italic grey

Doesn't apply to this engagement (e.g. TB phase for a payroll job).

The hero card under the strip carries:

The strip is collapsible (top-right toggle); collapsed state persists per-user via localStorage. F1 help available with article m07.workflow.

Tip — best for new staff

The chevron pills work as live training. A senior can hand a fresh staff member a job and say "follow the gold pill" — the strip surfaces the next-action so the staff doesn't have to guess which tab matters today. Materially shortens time-to-productivity for new hires.

Try this

Open any client → New Job → TPL-AA Annual Audit → next year's FY → standard team. Hit commit. In ~1 second you have a fully-populated dashboard with 12 workpapers, 8 tasks, 79 procedures, ~120 disclosure items, 24 FS notes, 7 status-tracked phase folders on disk. This is what 30 minutes of manual setup used to look like.

Watch out

Don't pick a template that doesn't match the actual work. If you create an Annual Audit but the engagement is really a Compilation, you've materialised 230+ extra rows you don't need + 79 procedures you'll have to mark N/A. Cancel the job and create the right one — soft-delete leaves a forensic trail but is the right move.

Tip — JSON preview

Watch the live folder JSON preview in step 2 of the wizard before committing. If you see {CLIENT} still showing un-substituted, your client record is missing the client_code field — fix that first or your folders will have literal token text in their names. Click into client → save the code → restart the wizard.