Workshop Module¶
The workshop module extends DiKAS with job order and repair management — ideal for businesses that offer repair services alongside hospitality (e.g., bicycle café, phone repair, locksmith with snack bar).
Activation: Admin → Settings → Operations → Workshop
Job Order Lifecycle¶
A workshop job order goes through 7 statuses:
| Status | Description | Color | Next Steps |
|---|---|---|---|
| New | Job order has been created | Blue | Start, Cancel |
| In Progress | Currently being worked on | Yellow | Pause, Complete, Cancel |
| Paused | Waiting for parts or clarification | Orange | Resume, Cancel |
| Completed | Repair finished | Green | Invoice, Cancel |
| Invoiced | Invoice has been created | Purple | Record payment |
| Paid | Fully completed | Gray | Job order archived |
| Cancelled | Aborted | Red | Reopen |
Status Transitions¶
| From | To | Action |
|---|---|---|
| New | In Progress | Start |
| In Progress | Paused | Pause (e.g., spare part ordered) |
| Paused | In Progress | Resume |
| In Progress / Paused | Completed | Complete |
| Completed | Invoiced | Invoice (invoice is created) |
| Invoiced | Paid | Record payment |
| Any status | Cancelled | Cancel |
| Cancelled / Paid | New | Reopen |
Creating a Job Order¶
In the POS¶
- POS → Workshop → "+ New Job Order"
- Fill in:
| Field | Example | Description |
|---|---|---|
| Customer | Thomas Müller | Optional: select regular customer |
| Fault Description | Gear shift defective, chain skipping | What needs to be repaired? |
| Item | Canyon Roadlite 7.0 | What is being repaired? (model, type) |
| Serial Number | WME12345678 | Serial number / frame number |
| Notes | Key with customer | Internal notes |
| Technician | Max Mechaniker | Assigned employee |
| Estimated Completion Date | 08.03.2026 | Pickup date |
- "Create" → job order is created with a unique number (e.g., WS-0042)
Label Printing¶
After creation, you can print a label (Code128 barcode):
┌──────────────────────────────────┐
│ WS-0042 │
│ ||||||||||||||||||||||||||| │
│ Thomas Müller │
│ Canyon Roadlite 7.0 │
│ Gear shift defective │
│ 05.03.2026 │
└──────────────────────────────────┘
The label is attached to the item being repaired. The barcode can be scanned at the POS to quickly retrieve the job order.
Automatic label printing: Automatic printing upon job order creation can be enabled in the workshop settings.
Editing a Job Order¶
Time Tracking¶
Employees can record work hours for the job order:
- Open job order → "Add time entry"
- Enter start and end time
- Duration is calculated automatically
| Field | Description |
|---|---|
| Start Time | Work start |
| End Time | Work end |
| Duration (Minutes) | Automatically calculated |
Adding Materials¶
Used spare parts and materials:
- Open job order → "Add material"
- Select article from inventory (or enter manually)
- Enter quantity and price
| Field | Description |
|---|---|
| Article | From article master data or free text |
| Article Number | Part number |
| Quantity | Consumed quantity |
| Unit Price | Price per unit |
| Total Price | Quantity × unit price |
| Tax Rate | VAT rate |
Activities¶
Free-text notes on the job order progress:
- "+ Activity" → enter description
- Saved with timestamp
Examples: - "Gear shift disassembled, cable torn" - "Spare part ordered from Shimano (ETA 3 days)" - "Test ride completed, everything in order"
Cost Calculation¶
DiKAS automatically calculates the total costs:
| Item | Calculation |
|---|---|
| Labor | Total minutes × hourly rate / 60 |
| Materials | Sum of all material costs |
| Total Costs | Labor + materials |
Hourly rate: The default hourly rate is configured in the workshop settings (e.g., 45.00 € / hour).
Example¶
Job Order WS-0042: Bicycle Gear Shift
Labor:
05.03. 14:00–15:30 90 min
06.03. 09:00–09:45 45 min
────────────────────────────
Total: 135 min × 45.00 €/h = 101.25 €
Materials:
1× Shift cable 4.50 €
1× Derailleur hanger 12.90 €
2× Cable end cap 0.80 €
────────────────────────────────
Total materials: 18.20 €
══════════════════════════════════
Total costs: 119.45 €
Invoicing¶
When the job order is completed:
- Set status to "Completed"
- Click "Invoice"
- DiKAS creates a customer invoice with:
- Labor (hours × hourly rate)
- Materials (articles × quantity)
- Job order number as reference
- Invoice is linked to the customer
- Job order status changes to "Invoiced"
- Collect payment as usual: cash, card, invoice
Invoicing Without a Customer¶
Walk-in customers can also be served — without customer master data: - Create job order without customer - Upon invoicing: direct payment at the POS (cash or debit card)
POS View¶
In the POS, you can see all job orders as cards, color-coded by status:
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ WS-0042 │ │ WS-0041 │ │ WS-0040 │ │ WS-0039 │
│ In Prog. ⬤ │ │ Paused ⬤ │ │ Completed ⬤ │ │ Paid ⬤ │
│─────────────│ │─────────────│ │─────────────│ │─────────────│
│ Bicycle │ │ Phone │ │ Laptop │ │ Coffee mach.│
│ Gear shift │ │ Display │ │ Battery │ │ Descaling │
│ Müller │ │ Schmidt │ │ Weber │ │ Bakery M. │
│ 05.03.2026 │ │ 04.03.2026 │ │ 03.03.2026 │ │ 01.03.2026 │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
Filters: - Filter by status (New, In Progress, Completed, etc.) - Search by customer - Filter by date
Real-time updates: Job orders are synchronized in real time via SignalR — when an employee changes the status, all others see it immediately.
Workshop Settings¶
Admin → Settings → Workshop
| Setting | Description | Default |
|---|---|---|
| Workshop enabled | Module on/off | Off |
| Hourly Rate | Default hourly rate for labor | 45.00 € |
| Job Order Number Prefix | Prefix for job order numbers | "WS" |
| Label Printer | Assigned printer for labels | — |
| Automatic Label Printing | Print label automatically upon creation | No |
| Task Templates | Predefined tasks with default duration | — |
Task Templates¶
Common tasks can be stored as templates:
| Task | Default Duration |
|---|---|
| Bicycle inspection | 45 min |
| Tire change | 15 min |
| Brake adjustment | 20 min |
| Display repair | 60 min |
| Battery replacement | 30 min |
Practical Example: Bicycle Café¶
Situation: Café with an attached bicycle workshop.
- Customer arrives: bicycle has a problem → new job order at the POS
- Print label: attach Code128 barcode to the bicycle
- Mechanic starts: status → "In Progress", time entry begins
- Spare part needed: status → "Paused", activity "Derailleur hanger ordered"
- Part arrived: status → "In Progress", add material
- Repair completed: status → "Completed"
- Customer returns: scan label → job order appears → "Invoice"
- Payment: 119.45 € via debit card → status → "Paid"
- During the wait: customer has coffee → normal POS sale
Next Step¶
→ Time Tracking — Record work hours