Skip to content

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 jobScreen or tabRead
Open a service case for a carConsultation › +, then Details (branch, Vehicle Plate from the side panel, consultant) — if a second Save does not move Modified Date, reload (F5) before each new consultationThe consultation form; Fields
Record the inspections, with photosChecklist tab › Pre-Inspection, Safety, QC — fill Date, Technician and Status, or that checklist’s Details are skipped without a messageFields
Quote, open the jobsheet, bill and collect for the caseQuotation, JobSheet, Purchases, Sales Invoice, Receipt tabs — each document posts by its own applet’s rules; the consultation posts nothingLifecycle and effects
Close a case — CLOSE is a label that locks nothingDetails › Posting Status, set only once the Sales Invoice tab shows the invoice and the Receipt tab shows it paidFields
Set up checklists, the default branch and the tab orderSettings › Checklist Settings, Default Selection — Field Settings saves nothingBefore 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.

The consultation is not a financial document: it has no signums, no posting and no running-number reservation at FINAL. Its Posting Status field (OPEN / CLOSE / DRAFT) is a free label saved as-is. Money and stock move only through the documents created from its tabs — each of which is documented on its own page.

Where it fits

DirectionDocument / appletHow it connects
Upstream (master data)Customer, Organisation, Membership AdminAccount tab (entity), branch and consultant (employee), optional member card
Upstream (master data)Vehicle recordsA vehicle belongs to a customer entity; the consultation stores the vehicle and its registration number
DownstreamSales Quotation (Internal)Created from the Quotation tab and linked back to the consultation
DownstreamJobsheet (Internal)Created from the JobSheet tab or the applet’s own Job Sheet menu; a jobsheet posts nothing
DownstreamSales 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 itemWhat it shows
ConsultationConsultation 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 SheetListing, create and edit of Jobsheet (Internal) documents — the same document type as the standalone Jobsheet applet
SettingsField 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)
PersonalizationYour 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

PrerequisiteWhereWhy the consultation needs it
Company and branchOrganisationBranch is required on Details; picking a branch in Default Selection copies its main location
Employees (consultants, technicians)OrganisationConsultant is required on Details; technician is required on every checklist Details tab
Customer entitiesCustomerThe Account tab is required; a vehicle belongs to an entity
Members (optional)Membership AdminMember card on Details
Predefined checklistsSettings → Checklist Settings (this applet)The Checklist sub-tab can only tick lines that exist on a predefined checklist
Running number CONSULTATION_RUNNING_NOTenant running-number setupAssigned 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 / RoleEach 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)

SettingKeyWhat it controlsDefaultEffect when changed
Default BranchDEFAULT_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 LocationnoneNew consultations only
Default LocationDEFAULT_LOCATIONDefault stock location used by the documents created from the consultationnoneNew documents only
Details Tab OrderingCONSULTATION_DETAILS_TAB_ORDERDrag-and-drop order of the nine consultation tabs; tabs added by an upgrade are appendedDetails, Account, Requests, Checklist, Quotation, JobSheet, Purchases, Sales Invoice, ReceiptTab 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

AreaHow it is configured
Consultation statusRecord 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 statusEach checklist Details tab has the same OPEN / CLOSE / DRAFT dropdown, saved as a label on the checklist.
Document creation from tabsSaving 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 propagationChanging the vehicle on a consultation that already has linked documents rewrites the vehicle and registration number on every linked document.
Posting of the spawned documentsFixed 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, intercompanyNo controls in this applet.
WebhooksThe 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

FieldMeaningRequiredNotes
BranchWorkshop branchYesPre-filled from Default Selection
Vehicle PlateRegistration number and the vehicle record behind itYesChosen from the Select Vehicle side panel; changing it on a saved consultation updates the linked documents
Consultation NoRunning numberGeneratedAssigned 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.
ConsultantThe service advisor responsibleYesOffers 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.
MemberCardThe customer’s membershipNoShows 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 StatusOPEN / CLOSE / DRAFTNoBlank 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 DateWhen the Details were last writtenRead-onlyYour 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

One Details save per page load — read from the code, not yet tried. The step that writes this tab is set to run once and then stop until the page is reloaded. As read, the first Save after you open the applet writes the Details and shows The Consultation has been updated; a later Save in the same session still saves the requests and checklists and closes the form, but leaves the Details as they were, with no success message and no error. A consultation created that way stays an unsaved working record that the listing does not show. Test it once: save a consultation, change its Description, save again, and see whether Modified Date moved and the message appeared. If not, reload the page (F5) before each new consultation and before each change to the Details. Nothing is lost meanwhile: the next + reopens your working record, number and requests included.

Vehicle

Created from the Select Vehicle panel.

FieldMeaningRequiredNotes
Vehicle Plate No, Vehicle Brand, Vehicle Model, Engine CapacityThe carAll fourVehicle 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.
StatusRecord statusShown as requiredThe 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 ToThe vehicle’s ownerSee notesThe 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-tabFieldsRequired
DetailsDate, 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 ConditionImage (uploaded file), Position (FRONT / BACK / LEFT / RIGHT), DescriptionPosition
ChecklistTicked 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

RecordStatusesEffects
ConsultationTEMP (created by +) → ACTIVE (first Save); deleted outright by the Delete buttonCreation 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 rowsSaved with the consultation; each type has its own OPEN / CLOSE / DRAFT statusStored only; nothing downstream reads them
Document linksCreated when a document is saved from a tab; one link per documentDeleting 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 appletA jobsheet posts nothing: FINAL assigns numbers only; see the jobsheet page for its posting proof

Posting proof block (for the applet’s own record)

ItemValue
Server document typenone — a consultation is not a financial document; the embedded Job Sheet is a Jobsheet (Internal)
Amount / quantity signumnot applicable (jobsheet: 0 / 0)
Dr/Cr equation, GL precedence, stock processornone — nothing is posted by the consultation or by a jobsheet
What VOID reversesno VOID on a consultation; a voided jobsheet reverses nothing
Money and stockmove only through the Sales Invoice, Purchase Invoice and Receipt Voucher created from the tabs — see their pages

Related applets

Troubleshooting

SymptomCauseFix
Toggles on Settings → Field Settings do nothingThe screen is a placeholder with no bound controls and no saveExpected; 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 hereThose documents read the HIDE_* keys stored under this applet, which were set through the API or copied from another tenantInspect the applet’s master settings through the API; the standalone applet’s settings do not apply here
Creating a consultation failed, or two consultations appearedRace condition in the create flow (applet issue #5, fixed)Upgrade the applet
Save disabled on DetailsBranch, Vehicle Plate or Consultant empty — all three are requiredFill them; pick the vehicle from the side panel rather than typing a plate
A checklist’s date or technician is blank after savingThe consultation’s Save skips a checklist Details tab that lacks Date, Technician or Status, without a messageFill all three and save again
Cannot save the Checklist sub-tab selectionNo line tickedTick at least one predefined line, or add lines under Settings → Checklist Settings first
Vehicle side panel shows no vehiclesVehicles belong to customer entities; none exist yetCreate 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 changedOlder build, or the update failed for one documentReopen the document and correct the plate, or upgrade
Consultation deleted but its jobsheet / invoice still existExpected: the delete removes the consultation onlyVoid or discard the documents in their own applets
“Do You Wish To Save Your Changes?” when leavingUnsaved edits on the consultation (return pop-up)Save or discard

Related documentation

Last updated on