Add PDF generation modal with content picker, repairs help pages

PDF button now opens a modal where staff can select which line items,
customer-visible notes, and photos to include before generating. Defaults
to all customer notes and completed photos. Replaces the old one-click
generation.

Added 4 help/wiki pages for the Repairs module: Repairs Overview, Repair
Templates, Repair Batches, and Notes & Photos. Covers ticket workflow,
template usage, batch management, note visibility, photo phases, and
signed approval process. Updated Getting Started nav to include Repairs.
This commit is contained in:
Ryan Moon
2026-03-29 13:20:32 -05:00
parent 591be589f0
commit 916eb29895
3 changed files with 457 additions and 17 deletions

View File

@@ -34,6 +34,8 @@ Use the sidebar on the left to navigate between sections:
- **Accounts** — manage customer accounts and their members
- **Members** — find and manage individual people across all accounts
- **Repairs** — track instrument repair tickets
- **Repair Batches** — manage bulk school repair jobs
- **Help** — you're here!
## Need Help?
@@ -297,6 +299,193 @@ Choose your preferred mode and color theme:
Your preferences are saved in your browser and persist across sessions.
`.trim(),
},
{
slug: 'repairs-overview',
title: 'Repairs Overview',
category: 'Repairs',
content: `
# Repairs
The Repairs module tracks instrument repair tickets from intake through completion. It supports walk-in customers, account-linked repairs, and bulk school batch jobs.
## Creating a Repair Ticket
1. Go to **Repairs** in the sidebar
2. Click **New Repair**
3. Search for an existing account or enter customer details manually for walk-ins
4. Describe the instrument and the problem
5. Optionally add line items for the estimate (use templates for common services)
6. Add intake photos to document the instrument's condition
7. Click **Create Ticket**
## Ticket Status Flow
Each ticket moves through these stages:
- **New** — ticket just created, not yet examined
- **In Transit** — instrument being transported to the shop (for school pickups or shipped instruments)
- **Intake** — instrument received, condition documented
- **Diagnosing** — technician examining the instrument
- **Pending Approval** — estimate provided, waiting for customer OK
- **Approved** — customer authorized the work
- **In Progress** — actively being repaired
- **Pending Parts** — waiting on parts order
- **Ready** — repair complete, awaiting pickup
- **Picked Up** — customer collected the instrument
- **Delivered** — instrument returned via delivery (for school batches)
Click the status buttons on the ticket detail page to advance through the workflow. You can also click steps on the progress bar.
## Ticket Detail Page
The ticket detail has four tabs:
- **Details** — customer info, instrument, condition, costs. Click **Edit** to modify.
- **Line Items** — labor, parts, flat-rate services, and misc charges. Use the template picker for common repairs.
- **Notes** — running journal of notes. Choose **Internal** (staff only) or **Customer Visible**. You can attach photos to notes.
- **Photos & Docs** — photos organized by repair phase (intake, in progress, completed) plus a documents section for signed approvals, quotes, and receipts.
## Generating a PDF
Click the **PDF** button in the ticket header to generate a customer-facing document:
1. Choose whether to include line items
2. Select which customer-visible notes to include
3. Select which photos to include
4. Click **Generate & Download PDF**
The PDF is both downloaded and automatically saved to the ticket's Documents section.
`.trim(),
},
{
slug: 'repair-templates',
title: 'Repair Templates',
category: 'Repairs',
content: `
# Repair Service Templates
Templates are pre-defined common repairs (e.g. "Bow Rehair — Violin — 4/4") that staff can quickly add to tickets instead of typing everything manually.
## Managing Templates
1. Go to **Repair Templates** in the sidebar (admin only)
2. Click **New Template**
3. Fill in:
- **Name** — e.g. "Bow Rehair", "String Change", "Valve Overhaul"
- **Instrument Type** — e.g. "Violin", "Guitar", "Trumpet"
- **Size** — e.g. "4/4", "3/4", "Full"
- **Type** — Labor, Part, Flat Rate, or Misc
- **Default Price** — the customer-facing price
- **Internal Cost** — your cost (for margin tracking)
4. Click **Create Template**
## Using Templates
When creating a ticket or adding line items, type in the **Quick Add from Template** search box. Select a template to auto-fill the type, description, and price. You can modify the values after selection.
## Examples
- Bow Rehair — Violin — 4/4 — $65
- Bow Rehair — Cello — $80
- String Change — Guitar — $25
- Valve Overhaul — Trumpet — $85
- Pad Replacement — Clarinet — $120
- Cork Replacement — Clarinet — $45
`.trim(),
},
{
slug: 'repair-batches',
title: 'Repair Batches',
category: 'Repairs',
content: `
# Repair Batches
Batches group multiple repair tickets under one job — typically for schools bringing in many instruments at once.
## Creating a Batch
1. Go to **Repair Batches** in the sidebar
2. Click **New Batch**
3. Select the school's account
4. Enter contact info, instrument count, and any notes
5. Click **Create Batch**
## Adding Tickets to a Batch
When creating new repair tickets, select the batch in the form. Each instrument gets its own ticket linked to the batch.
## Batch Approval
Batches have a separate approval workflow:
- **Pending** — batch created, not yet approved
- **Approved** — work authorized (click **Approve** on the batch detail page)
- **Rejected** — work declined
Only admins can approve or reject batches.
## Batch Status
- **Intake** — receiving instruments
- **In Progress** — work underway
- **Completed** — all repairs done
- **Delivered** — instruments returned to school
## Filtering
On the Repairs list, use the **Filters** panel to:
- Toggle **Batch only** to see only batch tickets
- Toggle **Individual only** to see only non-batch tickets
`.trim(),
},
{
slug: 'repair-notes-photos',
title: 'Notes & Photos',
category: 'Repairs',
content: `
# Repair Notes & Photos
## Notes
Notes are a running journal on each repair ticket. Every note records who wrote it, when, and what status the ticket was in at the time.
**Visibility options:**
- **Internal** — only visible to staff. Use for technician observations, internal discussions, customer contact notes (e.g. "Called customer, approved via phone").
- **Customer Visible** — will appear in PDFs and (eventually) the customer portal. Use for lesson summaries, work completed descriptions, and pickup instructions.
**Attaching photos to notes:**
1. Click **Attach Photo** in the note form
2. Select one or more images
3. Preview appears below the text area
4. Click **Post Note** — photos upload with the note
Photos appear inline in the note entry. Click to view full size.
## Photos by Phase
The Photos & Docs tab organizes photos into categories:
- **Intake Photos** — document instrument condition when received
- **Work in Progress** — during the repair
- **Completed** — final result after repair
- **Documents** — signed approvals, quotes, receipts (accepts PDFs)
The active category highlights based on the ticket's current status, so the most relevant section is always prominent.
## Signed Approvals
For pending approval tickets, you can:
1. Generate a PDF quote (via the PDF button)
2. Send it to the customer
3. When they approve, upload the signed copy to Documents
4. Or add a note: "Customer approved via phone call on [date]"
5. Then move the ticket to **Approved** status
`.trim(),
},
]
export function getWikiPages(): WikiPage[] {