Skip to content
v26.3

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

Add-on "Machine park": if you look after your customers' chainsaws, mowers or bicycles over the years, book the Machine park module in addition to the workshop: a device file per customer with serial-number scan, warranty and history. → Machine park: the device file for each customer


Job Order Lifecycle

A workshop job order goes through 7 statuses:

New → In Progress ↔ Paused → Completed → Invoiced → Paid
         ↘                                ↗
           → Cancelled ←──────────────────
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

  1. POS → Workshop → "+ New Job Order"
  2. 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
Machine Stihl MS 261 Only with the Machine park module: selects a machine of the customer; model and serial number are copied from it
Notes Key with customer Internal notes
Technician Max Mechaniker Assigned employee
Estimated Completion Date 08.03.2026 Pickup date
  1. "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:

  1. Open job order → "Add time entry"
  2. Enter start and end time
  3. 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:

  1. Open job order → "Add material"
  2. Select article from inventory (or enter manually)
  3. 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:

  1. "+ Activity" → enter description
  2. Saved with timestamp

Examples: - "Gear shift disassembled, cable torn" - "Spare part ordered from Shimano (ETA 3 days)" - "Test ride completed, everything in order"


Machine park: the device file for each customer

If you repair chainsaws, lawn mowers, robotic mowers or bicycles, you see the same devices again and again. The machine park keeps one file per device for each customer: model, serial number, purchase date, warranty and a history of every repair and note. At the counter, scanning the serial number is enough to bring the file up.

Getting the module

The machine park is an add-on to the workshop module and needs its licence. You book it in addition to the workshop. Afterwards the customer gets a "Machine park" tab, the workshop settings get a tab of the same name, and the workshop page gets the scan entry. Without the module the workshop keeps the free-text fields "Item" and "Serial Number" described above. If you switch the module off later, the recorded machines stay saved; they are just no longer shown.

What a machine card contains

Item Meaning
Note Shown at the very top of the card, e.g. "Customer wants a call-back before any repair over 100 €".
Model Required.
Serial number Required. Each number exists only once per business; spaces at the edges and upper/lower case do not matter.
Purchase date When the customer bought the device.
Warranty period (months) Shown as "until" with the end date. Once the warranty has expired, the date is shown in red with the word "expired".
More details Your own custom fields, e.g. "Chassis number" or "Cutting length" (see Settings).
History All notes, notices and system entries for this machine, newest first.

The list in the customer tab shows Device, Serial number, Purchased, Warranty until and Last service for each machine. "Last service" is the day an order for this machine was last marked completed. Use the search field to find a machine by model or serial number.

Adding a machine

  1. Admin → Customers, open the customer, tab "Machine park".
  2. "Add machine" (for the first device: "Add the first machine").
  3. Enter model and serial number. Everything else, such as purchase date, warranty and custom fields, can be added later.
  4. Save.

If the serial number already belongs to another machine, DiKAS refuses it ("This serial number already belongs to another machine.") and offers "Go to the existing machine".

You can also add machines from the call pop-up and at the counter (see below).

The history: append only

Below the card is the History. Entries cannot be changed or deleted, so the story of the machine stays traceable.

  • "+ Note" adds an entry. As type, choose Note or Notice. Enter saves, Shift+Enter starts a new line. Entries marked "Management only" are visible to management only.
  • Correction: if an entry is wrong, write a new one. It points to the earlier entry ("Correction of an earlier entry"); the old one stays.
  • System entries are written by DiKAS itself, type "System": on creation, on every change to a device detail (e.g. "Garantie: 24 → 36"), on a change of owner and when an order is marked completed, with the work, parts and time of that order.

Scanning a machine at the counter

On the workshop page (POS → Workshop) scan the barcode, usually the serial number, into the search field. A barcode reader sends Enter at the end; if you type the number by hand, press Enter.

  • Known number: the machine card opens above all other results (status tabs and orders). You see the note and history before deciding anything. "+ Work order" creates an order at once, with customer and machine already filled in.
  • Unknown number: "Record machine" opens with the scanned number. Choose the customer (search or "New customer"), enter the model and save with "Add machine". "Create + work order" also creates the order in one step. A machine cannot be added without a customer.

Enter without a match

DiKAS first treats everything you confirm with Enter in the workshop search as a serial number. If you typed a customer name instead and no machine matches, "Record machine" appears. This is harmless: close it with "Close".

A work order for the machine

The order dialog has a "Machine" field. Only machines of the selected customer are offered, or "No machine". Model and serial number are copied into the order. If you come from the machine card, the scan or the call pop-up, the machine is already filled in.

In the order itself you can change or remove the machine until it is marked completed; "Open machine file" unfolds the file there. Once the order is marked completed, the assignment can no longer be changed. Marking completed automatically adds an entry to the machine's history. The workshop search also finds orders by the machine's serial number.

The order keeps its state

Model and serial number in the order are the state at the time of assignment. If you change them on the machine later, the order still shows the old state; the change is recorded in the machine's history.

Change owner

When a device changes hands, for example because someone bought a used saw, the file moves with it: machine card → "Change owner" → search for the new customer or create one with "New customer" → confirm the question "Hand over (SN ) to ?" with "Hand over". The whole history moves along, and the change is recorded in the history. The card then opens at the new customer; a new order applies to them.

Finish open orders beforehand if possible: DiKAS does not warn you if an order is still running for the machine. Whatever it writes to the history later belongs to the new owner.

Cost estimate from the card

The "Cost estimate" button on the machine card leads to the cost estimate when the workshop is available:

  • If the machine has an open order (New, In Progress or Paused), that order opens. Create the estimate there as described in the workshop module.
  • Otherwise the order dialog opens with customer and machine filled in.

The cost estimate takes the customer from the order and names the machine in its notes.

Call pop-up with machines

If a phone line with caller display is set up (or you use the phone magnifier on the POS), the pop-up shows the block "Caller’s machines" for a known caller: a tile per machine with model, serial number, warranty (red when expired) and note. The first five are shown; "Show all n machines" opens the rest. Each tile offers:

  • "Open machine card" and
  • "Workshop job for " (only if the workshop is on).

If the caller has no machine yet, "Add machine" leads to the customer tab with the form open. For an unknown number, the pop-up offers its usual "new customer" button; add the machine afterwards in the "Machine park" tab.

Machine park settings

Admin → Workshop, tab "Machine park". Only management can change these.

Setting Effect
Name of the tab The name of the tab at the customer, e.g. "Bicycles" or "Devices". Leave empty for "Machine park".
Custom fields Further device data you record for every machine. For each field you set a name and a type (Text, Number or Date); "Add field" creates it.

About custom fields:

  • The type cannot be changed after the field is created.
  • "Delete" only hides a field. Values already recorded are kept.
  • Reserved names: a name must not begin with model, serial number, purchase date, warranty, machine created or owner changed. DiKAS uses these words for its system entries in the history; the form points this out and blocks saving.

Data protection: when a customer is deleted

When you delete a customer, DiKAS first clears the free text written about their machines: notes and notices in the history become "[gelöscht]", as do the note at the top of the card and the custom text fields. Serial number, model, purchase date and warranty stay, so you can still trace warranty cases. If the machine now has another owner, that owner's details are untouched.

Example: the used saw

Situation: forestry equipment dealer. Ms Berger bought a chainsaw two years ago; the file is with her, 24 months of warranty, red for three months now. Mr Kraus buys the saw second-hand and brings it in for a defective chain.

  1. Scan: the employee scans the serial number in the workshop search field. Ms Berger's card appears, with two earlier services in the history and the note "Chain guard missing".
  2. Change owner: "Change owner" → Mr Kraus (not yet a customer, so "New customer") → "Hand over". The history moves along and records the change.
  3. Order: "+ Work order". Customer and machine are filled in; add the fault description "Chain defective".
  4. Cost estimate: the order is In Progress, the manager creates the cost estimate and calls Mr Kraus. The warranty has expired; you set the prices yourself.
  5. Done: mark the order completed. The saw's history now has a system entry with work, parts and time, and "Last service" in the list shows today's date.

Good to know

  • Machines are added one by one; there is no import from spreadsheets.
  • There is no customer portal: your customers cannot see their machines themselves.
  • DiKAS does not calculate with the warranty automatically: the end date is a display; you decide the prices for warranty cases in the order.
  • Machines cannot be deleted. A mistake in model or number is corrected on the card; the history records the change.
  • An order that is marked completed can no longer be assigned to another machine.
  • If two devices create the same serial number before they synchronise, they remain two machines; a scan shows one of them. Preferably add each machine at one workstation only.

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:

  1. Set status to "Completed"
  2. Click "Invoice"
  3. DiKAS creates a customer invoice with:
  4. Labor (hours × hourly rate)
  5. Materials (articles × quantity)
  6. Job order number as reference
  7. Invoice is linked to the customer
  8. Job order status changes to "Invoiced"
  9. Collect payment as usual: cash, card, invoice

How labour appears on the invoice and the cost estimate

Labour appears as a line "Arbeitszeit 45 Min." with the unit "Std." (hours): quantity = hours (e.g. 0.75), unit price = hourly rate. The amount is exactly the same, to the cent, as minutes × hourly rate. If the amount cannot be represented to the cent with an hour quantity (this happens with high hourly rates and odd minute values) or the job order has no hourly rate, labour is shown as 1 "Pauschal" (flat rate) at the amount, with minutes and hourly rate in the text. The amount does not change.

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.

  1. Customer arrives: bicycle has a problem → new job order at the POS
  2. Print label: attach Code128 barcode to the bicycle
  3. Mechanic starts: status → "In Progress", time entry begins
  4. Spare part needed: status → "Paused", activity "Derailleur hanger ordered"
  5. Part arrived: status → "In Progress", add material
  6. Repair completed: status → "Completed"
  7. Customer returns: scan label → job order appears → "Invoice"
  8. Payment: 119.45 € via debit card → status → "Paid"
  9. During the wait: customer has coffee → normal POS sale

Next Step

→ Time Tracking — Record work hours