Car Workshop Applet
Runs a vehicle service case from intake to billing around one record, the consultation: a branch, a vehicle, a consultant, the customer’s requests and three inspection checklists with photos. The consultation itself is not a financial document — its Posting Status is a label and it posts nothing; money and stock move only through the quotation, jobsheet, invoices and receipt raised from its tabs, each linked back to it. Deleting a consultation removes the consultation only; the documents raised from it stay live in their own applets.
Your job, and the screen for it
| The job | Screen or tab | Read |
|---|---|---|
| Open a service case for a car | Consultation › +, then Details (branch, Vehicle Plate from the side panel, consultant) — if a second Save does not move Modified Date, reload (F5) before each new consultation | The consultation form; Fields |
| Record the inspections, with photos | Checklist tab › Pre-Inspection, Safety, QC — fill Date, Technician and Status, or that checklist’s Details are skipped without a message | Fields |
| Quote, open the jobsheet, bill and collect for the case | Quotation, JobSheet, Purchases, Sales Invoice, Receipt tabs — each document posts by its own applet’s rules; the consultation posts nothing | Lifecycle and effects |
| Close a case — CLOSE is a label that locks nothing | Details › Posting Status, set only once the Sales Invoice tab shows the invoice and the Receipt tab shows it paid | Fields |
| Set up checklists, the default branch and the tab order | Settings › Checklist Settings, Default Selection — Field Settings saves nothing | Before you can use it; Applet settings |
Overview
The Car Workshop Applet runs a vehicle service case from intake to billing. Its own record is the consultation: one branch, one vehicle, one consultant, an optional member, a list of customer requests and three inspection checklists (pre-inspection, safety, quality control) with photos. From inside a consultation the service advisor raises the financial documents — sales quotation, jobsheet, purchase invoice, sales invoice, receipt voucher — and the applet links each one back to the consultation. It is opened by front-desk advisors and technicians; administrators maintain the predefined checklists and the default branch.
Where it fits
| Direction | Document / applet | How it connects |
|---|---|---|
| Upstream (master data) | Customer, Organisation, Membership Admin | Account tab (entity), branch and consultant (employee), optional member card |
| Upstream (master data) | Vehicle records | A vehicle belongs to a customer entity; the consultation stores the vehicle and its registration number |
| Downstream | Sales Quotation (Internal) | Created from the Quotation tab and linked back to the consultation |
| Downstream | Jobsheet (Internal) | Created from the JobSheet tab or the applet’s own Job Sheet menu; a jobsheet posts nothing |
| Downstream | Sales Invoice (Internal), Purchase Invoice (Internal), Receipt Voucher (Internal) | Created from the Sales Invoice, Purchases and Receipt tabs; the invoice bills the customer, the purchase invoice records supplier parts, the receipt voucher collects payment |
Screens and menus
| Menu item | What it shows |
|---|---|
| Consultation | Consultation listing (Consultation No, Branch, Consultant, Member, Vehicle Plate, Last Update, Created Date, Status) with create and edit. It lists saved consultations only, newest Last Update first; Status is the record status, not the Posting Status. |
| Job Sheet | Listing, create and edit of Jobsheet (Internal) documents — the same document type as the standalone Jobsheet applet |
| Settings | Field Settings, Checklist Settings, Default Selection, the shared server-side permission links, Release Notes and Audit Trail — three of these links open a page not found screen (see Settings menu) |
| Personalization | Your own Default Selection (branch, location). The Field Settings link beside it opens a page not found screen. |
The consultation form
Pressing + creates a working record with status TEMP; the first Save updates it to ACTIVE. Tabs, in the default order (re-orderable under Settings → Default Selection): Details, Account, Requests, Checklist, Quotation, JobSheet, Purchases, Sales Invoice, Receipt. A Delete button on Details removes the consultation.
- Details — branch, vehicle plate (opens the Select Vehicle Listing side panel: Plate No, Brand, Model, Engine Capacity, Remarks; a new vehicle can be created there with plate, brand, model and engine capacity required), consultation number, consultant, member card, description, posting status.
- Account — the shared entity picker (Entity Details, Bill To, Ship To).
- Requests — a grid of customer-reported issues: No., Description, Remarks, Status (checkbox), Created Date.
- Checklist — three inspection types, Pre-Inspection, Safety and QC, each with sub-tabs Details (date, technician, description, status), Car Condition (photos with a position — FRONT / BACK / LEFT / RIGHT — and description) and Checklist (tick lines from the predefined checklists).
- Quotation, JobSheet, Purchases, Sales Invoice, Receipt — an embedded listing of the documents already linked to this consultation, with create/edit forms of the respective document type.
Settings menu
Settings opens on Checklist Settings. The applet’s own entries are Field Settings (a placeholder that saves nothing — see Configuration), Checklist Settings (the checklist headers and lines the three inspection tabs tick from) and Default Selection (default branch and location, and the consultation tab order). Below them sit the shared server-side permission links — Permission Wizard, Permission Set, User Permission, Role Permission — and Release Notes under Developer Tools.
Two of those links lead nowhere in this applet: Permission Wizard and Release Notes have no route here and open the applet’s page not found screen, so there is no version history to read from inside Car Workshop. Grant access with Permission Set, User Permission or Role Permission instead. Audit Trail is not in this menu: it is the last entry of the main sidebar, shown to OWNER and ADMIN users (unless the tenant’s settings hide it) and to anyone holding a permission ending in SHOW_AUDIT_TRAIL_REPORT, and it lists the audit records written under this applet’s code. Whether a Default Selection change writes such a record has not been read, so if you need to know who changed a setting and when, do not rely on it: agree who in the workshop owns the settings, and have that person note each change and its date. The applet also contains a Webhook screen and client-side and team permission listings, but no menu entry opens any of them, so in practice a workshop sets up no webhooks here.
Configuration
Before you can use it
| Prerequisite | Where | Why the consultation needs it |
|---|---|---|
| Company and branch | Organisation | Branch is required on Details; picking a branch in Default Selection copies its main location |
| Employees (consultants, technicians) | Organisation | Consultant is required on Details; technician is required on every checklist Details tab |
| Customer entities | Customer | The Account tab is required; a vehicle belongs to an entity |
| Members (optional) | Membership Admin | Member card on Details |
| Predefined checklists | Settings → Checklist Settings (this applet) | The Checklist sub-tab can only tick lines that exist on a predefined checklist |
Running number CONSULTATION_RUNNING_NO | Tenant running-number setup | Assigned on creation by the server |
API permissions API_TNT_DM_ASV_CONSULTATION_HDR_{TEMP_CREATE,CREATE,READ,UPDATE,DELETE}, …_ASV_CONSULTATION_GENDOC_HDR_LINK_*, …_ASV_CHECKLIST_HDR_*, …_ASV_CHECKLIST_LINE_*, …_ASV_CONSULTATION_CHECKLIST_LINE_*, …_CHECKLIST_IMAGE_LINE_* | Settings → Permission Set / User / Team / Role | Each consultation record type has its own permission family; the document tabs additionally need the TNT_API_DOC_INTERNAL_* permissions of the document types they create |
| Everything the spawned documents need (default GL codes, tax codes, settlement methods, pricing) | See Sales Invoice (Internal), Jobsheet (Internal), Receipt Voucher (Internal) | The consultation itself posts nothing |
Applet settings
Where the settings live. The applet has three settings surfaces: Default Selection (with a personal copy under Personalization), Checklist Settings and Field Settings. Field Settings is a placeholder: a page of toggles (Lines Settings: Unit Discount, SST/VAT/GST, WHT, Blanket Order; Department Settings…) that are bound to nothing, with a SAVE button that does nothing. No setting can be saved from that screen. Consequently the only settings that work in this applet are the Default Selection keys below.
Who can change them: any user who can open Settings; there is no finer per-setting authority. Personalization → Default Selection lets a user override DEFAULT_BRANCH / DEFAULT_LOCATION for themselves.
Default Selection (applet-local)
| Setting | Key | What it controls | Default | Effect when changed |
|---|---|---|---|---|
| Default Branch | DEFAULT_BRANCH (SAVE writes DEFAULT_BRANCH, DEFAULT_LOCATION and the tab order; DEFAULT_COMPANY is read when present but never written here) | Pre-fills the branch on a new consultation; picking a branch copies its main location into Default Location | none | New consultations only |
| Default Location | DEFAULT_LOCATION | Default stock location used by the documents created from the consultation | none | New documents only |
| Details Tab Ordering | CONSULTATION_DETAILS_TAB_ORDER | Drag-and-drop order of the nine consultation tabs; tabs added by an upgrade are appended | Details, Account, Requests, Checklist, Quotation, JobSheet, Purchases, Sales Invoice, Receipt | Tab order for all users |
Save writes only these keys.
Checklist Settings (applet-local master data)
A checklist header has Name (required, max 255), Description and Remarks; its lines each have Name (required, max 255), Description and Remarks. Headers and lines can be created, edited and deleted from the listing. The consultation’s Checklist sub-tab shows the headers as a tree of checkboxes (Select All Checklists at the top), but as read from the code it loads the lines of the first header only, so any other header appears with nothing under it (see Checklist under Fields).
Rendered on Field Settings but not persisted
The stub screen shows toggles labelled Unit Discount, SST/VAT/GST, WHT, Blanket Order and a Department Settings panel. They are not bound to anything, are not saved, and are not read by any screen. Switching them has no effect.
Read at runtime without a control in this applet
The embedded document forms (jobsheet, quotation, sales and purchase invoice, receipt voucher) are copies of the standalone applets’ components and read the same setting keys from this applet’s own settings, not the standalone applets’. Two consequences of that, found by the deep read of 4 October 2026: the one key that reaches the server here, ENABLE_SERIAL_NUMBER_VALIDATION_FINAL, is sent only by the embedded quotation, and the embedded Sales Invoice never asks the server to skip the stock check, so the server always checks stock for an invoice raised at the counter whatever the standalone Sales Invoice applet’s toggle says; and the price floors (DISALLOW_SELL_BELOW_MIN_PRICE and its siblings) are read from this applet’s blob, which no screen here can write. The keys are — the HIDE_* / EXPAND_* families, DISABLE_GEN_DOC_LISTING, DEFAULT_POSTING_STATUS, DEFAULT_STATUS, DEFAULT_TRANSACTION_DATE, SORT_ORDER, FUZZY_SEARCH_COLUMNS, ENABLE_SERIAL_NUMBER_VALIDATION_FINAL, ENABLE_DRAFT_LOCK_SERIAL_NUMBER_CHECKING, DISALLOW_SELL_BELOW_MIN_PRICE / …_REPLACEMENT_PRICE / …_MA_COST, ENABLE_MULTIPLE_KO, ENABLE_CREDIT_LIMIT_FILTER, ALLOW_TO_CONTRA_MORE_THAN_DOC_OPEN_AMOUNT, EDIT_CONTRA_TXN_DATE, the credit-card HIDE_* / MANDATORY_* keys, and so on. Because this applet has no working screen for them, they can only be set by an API write to the applet settings (or are simply absent, in which case every toggle behaves as off / shown and the documents behave like their standalone applets with default settings). Their meaning is documented on the standalone pages: Jobsheet (Internal), Sales Quotation (Internal), Sales Invoice (Internal), Purchase Invoice (Internal), Receipt Voucher (Internal).
Document behaviour settings
| Area | How it is configured |
|---|---|
| Consultation status | Record status TEMP → ACTIVE on first save (Inactive exists but is not offered on the form). Posting Status is a plain dropdown — OPEN, CLOSE, DRAFT — saved as-is; the server attaches no behaviour to it. |
| Checklist status | Each checklist Details tab has the same OPEN / CLOSE / DRAFT dropdown, saved as a label on the checklist. |
| Document creation from tabs | Saving a new document on the Quotation / JobSheet / Purchases / Sales Invoice / Receipt tab creates the document exactly as its own applet would and then records a link from the consultation to that document. The tab listings show only the documents linked to this consultation, by document type. |
| Vehicle change propagation | Changing the vehicle on a consultation that already has linked documents rewrites the vehicle and registration number on every linked document. |
| Posting of the spawned documents | Fixed by each document’s own rules (a jobsheet posts nothing; invoice, purchase invoice, receipt voucher: see their pages). No applet setting here changes it. |
| Printables, e-Invoice, workflow, intercompany | No controls in this applet. |
| Webhooks | The applet has a Webhook screen but no menu entry opens it (see Settings menu). The spawned documents emit their own <SERVER_DOC_TYPE>_CREATED events on creation through the API; the consultation itself has no webhook topic. |
Feature visibility / permissions
API permissions (server-side) are per ASV table — API_TNT_DM_ASV_CONSULTATION_HDR_{TEMP_CREATE,CREATE,READ,UPDATE,DELETE,OWNER,MEMBER,ADMIN}, the same families for ASV_CONSULTATION_GENDOC_HDR_LINK, ASV_CHECKLIST_HDR, ASV_CHECKLIST_LINE, ASV_CONSULTATION_CHECKLIST_LINE, ASV_CONSULTATION_CHECKLIST_IMAGE_LINE, ASV_CONSULTATION_CHECKLIST_DETAIL_LINE and ASV_CONSULTATION_REQUEST_LINE — plus TNT_API_DOC_INTERNAL_JOBSHEET_*, …_INTERNAL_SALES_QUOTATION_*, …_INTERNAL_SALES_INVOICE_*, …_INTERNAL_PURCHASE_INVOICE_* and …_INTERNAL_RECEIPT_VOUCHER_* for the document tabs, and the vehicle create/update permissions for vehicles.
Client-side permissions: none are defined for this applet. The embedded document forms check the same SHOW_* / ALLOW_* codes as their standalone applets; none can be granted here until they are seeded. Settings → Feature Visibility is not routed in this applet.
Fields
Consultation — Details
| Field | Meaning | Required | Notes |
|---|---|---|---|
| Branch | Workshop branch | Yes | Pre-filled from Default Selection |
| Vehicle Plate | Registration number and the vehicle record behind it | Yes | Chosen from the Select Vehicle side panel; changing it on a saved consultation updates the linked documents |
| Consultation No | Running number | Generated | Assigned by the server from CONSULTATION_RUNNING_NO when + creates the working record, not at the first Save. + reopens your own unsaved working record if you left one, so walking away from a half-typed consultation does not use up a number. |
| Consultation Name | — | — | There is no Consultation Name box on this tab. The name is created empty and Save sends it back empty; the server refuses only a missing name, not an empty one. The listing no longer has a Consultation Name column either, so tell consultations apart by number and plate. |
| Consultant | The service advisor responsible | Yes | Offers only employees who belong to an employee category (set up in Organisation), shown as code | name. If an advisor is missing from the list, give them an employee category first. As read from the code, the Search box at the top of the list does not narrow it — the list only filters on the checklist tabs’ Technician box — so scroll to the name. The server does not check the consultant; the form is the only check. |
| MemberCard | The customer’s membership | No | Shows the member’s name, not the card number, picked in Select Member. Once chosen it cannot be removed from this form. Caution, read from the code and not yet tried: if you open a consultation that has no member straight after one that has, the earlier member still shows here, and Save writes that member onto this consultation. Before saving, check the name against the customer in front of you; if it is a stranger, reload the page and reopen the consultation. |
| Posting Status | OPEN / CLOSE / DRAFT | No | Blank on a new consultation. Nothing acts on it: the only reader is the listing’s status filter, so CLOSE locks nothing and a closed consultation still takes new documents on its tabs. Closing a case is a person’s decision — whoever signs the job off checks that the invoice on the Sales Invoice tab is raised and the Receipt tab shows it paid before setting CLOSE. |
| Modified Date | When the Details were last written | Read-only | Your check that a Save took (see the caution below). Created By and Modified By show the user’s login ID, not their name. |
Description is free text with a character count; it is saved with the Details and is not shown on the listing.
Saving the Details: once per page load
Vehicle
Created from the Select Vehicle panel.
| Field | Meaning | Required | Notes |
|---|---|---|---|
| Vehicle Plate No, Vehicle Brand, Vehicle Model, Engine Capacity | The car | All four | Vehicle Model takes only a number: it is stored as the vehicle’s year, and the Select Vehicle listing’s Vehicle Model column shows that number back. Type the model year there, and put make and model name in Vehicle Brand so an advisor can recognise the car from the list. |
| Status | Record status | Shown as required | The choice is ignored: Save always makes the vehicle ACTIVE, so a vehicle cannot be retired from this panel, and the Select Vehicle list offers every active vehicle in the company. |
| Customer (entity), Bill To / Ship To | The vehicle’s owner | See notes | The vehicle’s Save waits for the four car fields, not for an owner, so as read from the code a vehicle can be saved with no customer; check the Account tab before you save. The Select Vehicle list is not narrowed to a customer and has no owner column, so the plate is your only match — read it off the car, not off the job card. The consultation keeps no customer of its own: its Save writes the Details fields and nothing from its Account tab, so who is billed is decided on the quotation and invoice raised from the tabs. |
Remarks is free text. The vehicle record also carries year, chassis and engine numbers, colour, mileage, last/next repair, road-tax, insurance, permit and inspection dates for other applets; this form does not expose them.
Requests
Description, Remarks, Status (checkbox); rows are added with + and removed with the row action.
Checklist
One per type: PRE-INSPECTION, SAFETY, QUALITY-CONTROL.
| Sub-tab | Fields | Required |
|---|---|---|
| Details | Date, Technician, Description, Status (OPEN / CLOSE / DRAFT) | Date, Technician and Status. The tab has no save of its own: the consultation’s Save writes it, and only when all three are filled. An incomplete Details tab is skipped without a message while everything else saves, so reopen the checklist after saving and check its date and technician came back. |
| Car Condition | Image (uploaded file), Position (FRONT / BACK / LEFT / RIGHT), Description | Position |
| Checklist | Ticked lines from the predefined checklists (name, remarks, status) | At least one line when saving a selection. As read from the code, the tick list loads the lines of the first checklist header only. Test with two headers, each with a line: if the second shows nothing, keep every line under one header until it is fixed. |
Job Sheet
The Job Sheet has its own menu and the JobSheet tab. It is a Jobsheet (Internal) with tabs Search, Main Details, Account, Lines, Payment, Department Hdr on create, plus Delivery Details, Contra, Doc Link, Attachments, Export and Convert on edit. Field-level reference: Jobsheet (Internal).
Lifecycle and effects
| Record | Statuses | Effects |
|---|---|---|
| Consultation | TEMP (created by +) → ACTIVE (first Save); deleted outright by the Delete button | Creation assigns the consultation number. No journal, stock, ARAP or e-Invoice effect at any status. Posting Status OPEN / CLOSE / DRAFT is informational |
| Checklist detail / image / line rows | Saved with the consultation; each type has its own OPEN / CLOSE / DRAFT status | Stored only; nothing downstream reads them |
| Document links | Created when a document is saved from a tab; one link per document | Deleting the consultation removes the consultation only; the linked documents remain as ordinary documents in their own applets |
| Jobsheet (from this applet) | DRAFT → FINAL → VOID, as in the Jobsheet applet | A jobsheet posts nothing: FINAL assigns numbers only; see the jobsheet page for its posting proof |
Posting proof block (for the applet’s own record)
| Item | Value |
|---|---|
| Server document type | none — a consultation is not a financial document; the embedded Job Sheet is a Jobsheet (Internal) |
| Amount / quantity signum | not applicable (jobsheet: 0 / 0) |
| Dr/Cr equation, GL precedence, stock processor | none — nothing is posted by the consultation or by a jobsheet |
| What VOID reverses | no VOID on a consultation; a voided jobsheet reverses nothing |
| Money and stock | move only through the Sales Invoice, Purchase Invoice and Receipt Voucher created from the tabs — see their pages |
Related applets
- Jobsheet (Internal) — the work order; this applet embeds a full copy of it under its Job Sheet menu and JobSheet tab.
- Sales Quotation (Internal) — quote raised from the Quotation tab.
- Sales Invoice (Internal) — customer billing from the Sales Invoice tab.
- Purchase Invoice (Internal) — supplier parts from the Purchases tab.
- Receipt Voucher (Internal) — collection from the Receipt tab.
- Customer, Organisation, Membership Admin — entity, branch/employee and member master data.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| Toggles on Settings → Field Settings do nothing | The screen is a placeholder with no bound controls and no save | Expected; the embedded documents use default behaviour unless settings are written through the API |
| A checklist line or column you expected is hidden on the Lines grid of a jobsheet or invoice created here | Those documents read the HIDE_* keys stored under this applet, which were set through the API or copied from another tenant | Inspect the applet’s master settings through the API; the standalone applet’s settings do not apply here |
| Creating a consultation failed, or two consultations appeared | Race condition in the create flow (applet issue #5, fixed) | Upgrade the applet |
| Save disabled on Details | Branch, Vehicle Plate or Consultant empty — all three are required | Fill them; pick the vehicle from the side panel rather than typing a plate |
| A checklist’s date or technician is blank after saving | The consultation’s Save skips a checklist Details tab that lacks Date, Technician or Status, without a message | Fill all three and save again |
| Cannot save the Checklist sub-tab selection | No line ticked | Tick at least one predefined line, or add lines under Settings → Checklist Settings first |
| Vehicle side panel shows no vehicles | Vehicles belong to customer entities; none exist yet | Create one from the panel (plate, brand, model year and engine capacity required) and link it to the customer |
| Linked documents still show the old plate after the vehicle was changed | Older build, or the update failed for one document | Reopen the document and correct the plate, or upgrade |
| Consultation deleted but its jobsheet / invoice still exist | Expected: the delete removes the consultation only | Void or discard the documents in their own applets |
| “Do You Wish To Save Your Changes?” when leaving | Unsaved edits on the consultation (return pop-up) | Save or discard |