Skip to content

Workshop Document Terms ​

The workshop half of Service Center has nine term families between it, and they divide the work neatly: one shared term covers the small documents that only ever move a vehicle's status, and then the job order, its closing, the gate pass, the execution sheet, the external repair and the three material documents each get a rulebook of their own.

This page walks them in the order a new installation configures them, using Al-Sahra Motors' workshop thread — job order SCJO-2026-0417 for Fahad Al-Otaibi's Saif 1.6 — as the worked example throughout.

Required licence

srvcenter

The block that appears on nearly every workshop term ​

Before the individual screens, one block recurs so often that it is worth learning it once.

The vehicle-status trio. Almost every workshop term carries three fields together:

OptionArabic labelField idWhat it does
Change Product Status Toتغيير حالة الصنف إلىtermConfig.changeProductStatusToWhen the document commits, writes a status entry for the vehicle and recomputes the vehicle's current status
Change Status Only When Criteria Matchesتغيير الحالة فقط عند توافق المعيارtermConfig.changeStatusOnlyWhenCriteriaMatchesGuards the above with criteria, so the status only moves for documents that match
Notify On Status Changeتشغيل التنبيه عند تغير الحالةtermConfig.notifyOnStatusChangeFires a notification for each vehicle whose status actually changed

This is how the vehicle file tells you where the car is. Al-Sahra sets Change Product Status To = In Workshop on the term used by the reception inspection sheet, and Ready For Delivery on the term used by the job order closing, and the vehicle screen then reads correctly all day without anybody typing a status.

The status is replayed from the entries in date order, not simply overwritten, so a back-dated document inserts itself in the middle of the history rather than at the end.

No tax settings on these terms. The shared workshop term, the Job Order term and the Job Order Closing term have no Taxable, Tax Plan, Modifiable Tax or Allow Editing Header Tax In Details options on their screens. Among the workshop terms, only the External Repair term shows them.

One tax on operation lines

Workshop labour lines apply a single tax. Give the tax plans used on them one tax — Al-Sahra uses one 15 % VAT throughout.

The shared workshop term ​

One term family covers seven documents at once: Service Request, Job Estimation, Estimation Update, Add Task To Job Order, Pending Operation, Resume Operation and the Product Inspection Document.

It is a small screen, and deliberately so — these documents move paper and status, not money. It carries the vehicle-status trio and one extra switch:

Add Spare Parts With Task Selection (termConfig.addSparePartsWithTaskSelection) — when a task is picked on the document, the task's standard spare parts are added to the parts grid automatically. This one is offered on the Service Request, the Job Estimation and the Add Task To Job Order only.

Two notes about this family. On the Product Inspection Document, the Estimation Update, Pending Operation and Resume Operation the term screen shows only the status trio. And on Pending Operation and Resume Operation the term field is shown but not required; those documents work perfectly well without one.

The Job Order term ​

This is the module's busiest term, because the job order is where money is planned and where the three invoices come from.

The three invoice pairs ​

The heart of it. The job order's three invoicing buttons each need to know which book and which term to build their invoice with:

PairField idsFeeds
Customer Invoice Book / TermtermConfig.customerInvBook / termConfig.customerInvTermthe customer's invoice — Al-Sahra's SINV-2026-3311 for 695
Insurance Invoice Book / TermtermConfig.insuranceInvBook / termConfig.insuranceInvTermthe insurance invoice — SINV-2026-3313 for 60
Warranty Invoice Book / TermtermConfig.warrantyInvBook / termConfig.warrantyInvTermthe warranty invoice — SINV-2026-3312 for 2,400

Leave a pair empty and that payer's button has nothing to build with. Three more switches shape what comes out:

  • Save Invoices As Draft (termConfig.saveInvoicesAsDraft) — the generated invoice arrives uncommitted, so somebody reviews it before it is committed. Sensible where the service advisor prices the job and accounts commits it.
  • Generate Sales Orders Not Invoices (termConfig.generateSOrdersNotInvoices) — produces sales orders instead of invoices, for installations that invoice from the sales side.
  • Use Today For Invoice Value Date (termConfig.useTodayForInvoiceValueDate) — dates the invoice on the day it is generated rather than carrying the job order's value date.

Parts behaviour ​

Four options decide how the job order and the parts documents relate:

OptionArabic labelField idEffect
Restrict In Issuingالمطابقة في السحبtermConfig.restrictInIssuingOnly lines ticked for matching are subject to the "issued exceeds planned" limit
Add Tasks And Materials to Job Order From Other Documentsإضافة مهام قطع غيار لأمر الشغل من سندات خارجيهtermConfig.addTasksAndMatsToJOFromOutThe order's grids are rebuilt from the issue and return documents; the planned-quantity checks are skipped entirely
Use Issued Qty not Transferred Qtyاستعمال الكمية المصروفة و ليست المحولةtermConfig.useIssuedNotTransferredQtyForAddedMatsWhich pair of quantities feeds that rebuild
Spread Items Quantity If It Is Issued In Different Material Issuesفرد كميات الأصناف في السطورtermConfig.spreadItemsQtyIfItIsIssuedInDifferentMaterialIssuesOne job-order line per issue line, instead of one aggregated line per item

The first two are a fork in the road. With Add Tasks And Materials… off, the job order is a plan and the storekeeper must stay inside it — that is Al-Sahra's setup, and the one this documentation assumes. With it on, the job order becomes a record of whatever was actually issued, and every plan validation stops applying.

The term also carries the vehicle-status trio and Add Spare Parts With Task Selection.

The invoice books and terms on the Effect tab of the Job Order term

The Job Order Closing term ​

The closing is where the workshop's money finally lands, and its term has three jobs.

The accounting sides. One debit and one credit pair (termConfig.debit, termConfig.credit). This is the entry the closing produces.

Only the customer amount reaches the ledger

The closing screen shows four money boxes — customer, insurance, warranty and internal. Al-Sahra's closing SCJOC-2026-0392 shows 695, 60, 2,400 and 60. The journal entry it produces carries the customer figure only: 695, as one debit and one credit against the accounts on this term.

Insurance and warranty reach accounting later, through their own sales invoices. The internal 60 reaches accounting nowhere at all. Do not configure these two accounts expecting the full 3,215.

The stock issue. Issue Book and Issue Term (termConfig.issueBook, termConfig.issueTerm) name the book and term of the Stock Issue the closing generates for the parts consumed on the job — Al-Sahra's STI-2026-1188, relieving 1,668 of inventory cost. Leave them empty and the closing consumes nothing from stock.

The refusals. Three switches decide when a closing is allowed:

OptionArabic labelField idEffect
Allow Closing Suspended Orders—termConfig.allowClosingSuspendedOrdersLets a job order that is paused be closed anyway
Do Not Close Job Order If All Materials Are Not Issuedمنع إغلاق أمر الشغل إذا لم يتم صرف الخامات بالكاملtermConfig.doNotCloseJobOrderIfAllMaterialsAreNotIssuedRefuses the closing while any planned part is short-issued
Do Not Consider Job Order Operations Lines Statusعدم اعتبار حالة سطور المهمات وقطع الغيارtermConfig.doNotConsiderOperationsLinesStatusCloses regardless of whether the task lines are marked finished

The materials check counts per item, not per task

Do Not Close Job Order If All Materials Are Not Issued totals each item across the whole order. If five litres of oil were planned against one task and issued against another, the check is satisfied. It is a completeness check on quantities, not a per-task reconciliation.

Plus, as everywhere, the vehicle-status trio.

The Gate Pass term — the financial release gate ​

The gate pass is the module's single most useful term block, and also its most misunderstood document. It has nothing to do with barriers, directions or times of passage. It is a release check: may this car leave, given what has and has not been paid?

Seven switches, in three symmetrical pairs plus one:

OptionArabic labelField id
Allow Gate Pass Without Job Orderالسماح بعمل التصريح بدون أمر شغلtermConfig.allowGatePassWithoutJobOrder
Allow Gate Pass Without Customer Invoiceالسماح بعمل التصريح بدون فاتورة العميلtermConfig.allowGatePassWithoutCustomerInvoice
Allow Gate Pass Without Fully Paying The Customer Invoiceالسماح بعمل التصريح بدون دفع فاتورة العميل بالكاملtermConfig.allowGatePassWithRemainingInCustomerInvoice
Allow Gate Pass Without Insurance Invoiceالسماح بعمل التصريح بدون فاتورة التأمينtermConfig.allowGatePassWithoutInsuranceInvoice
Allow Gate Pass Without Fully Paying The Insurance Invoiceالسماح بعمل التصريح بدون دفع فاتورة التأمين بالكاملtermConfig.allowGatePassWithRemainingInInsuranceInvoice
Allow Gate Pass Without Warranty Invoiceالسماح بعمل التصريح بدون فاتورة الضمانtermConfig.allowGatePassWithoutWarrantyInvoice
Allow Gate Pass Without Fully Paying The Warranty Invoiceالسماح بعمل التصريح بدون دفع فاتورة الضمان بالكاملtermConfig.allowGatePassWithRemainingInWarrantyInvoice

Every switch is an allowance, so the strict configuration is all seven off. That is what Al-Sahra uses: gate pass SCGP-2026-0475 could not be issued until the customer invoice was committed and paid in full — Fahad's 799.25 in cash — and until the insurance and warranty invoices existed. The insurance and warranty payment switches are left on, because an insurer takes weeks to settle and nobody is going to hold the car for that.

The status trio is here too, and it is the natural place to set the vehicle's status to Delivered.

The Job Order Execution term ​

Small, but with a trap.

OptionArabic labelField idEffect
Prevent Opening More Than One Unfinished Taskمنع فتح اكثر من مهمة للفنى في نفس اليومtermConfig.preventOpenMoreOneUnFinTaskRefuses a save that would leave one technician with two unfinished tasks on the same date
Close Book / Close Term—termConfig.closeBook / termConfig.closeTermThe book and term used for the Job Order Closing produced by the Generate Closing button
Allow Time Overlapالسماح بتداخل الوقتtermConfig.allowTimeOverlapLets one technician have overlapping from/to intervals on two lines. Unticked, the save is refused when the intervals overlap

Plus the vehicle-status trio.

A blank term silently switches this document off

The Job Order Execution document does not require a term. Leave the field empty and the document saves happily — but the one-open-task-per-technician check never runs, and the Generate Closing button has no book or term to build with. If either behaviour matters to you, make picking a term part of the procedure.

The External Repair term ​

The external repair is a supplier's invoice for sublet work — Al-Sahra sent the A/C compressor to Al-Faisal Auto Electric for a bench test, 400 on document SCER-2026-0061.

Its term carries the standard invoice account block: the debit and credit sides (termConfig.config.debit, termConfig.config.credit, with Shorten LedgertermConfig.config.shortenLedger), cash, line and invoice discounts, the seven extra discount accounts, the tax accounts and four service-fee pairs (termConfig.serviceFees1Debit … termConfig.serviceFees4Credit). All of this is genuinely read — the external repair really does create a journal entry.

One switch changes the direction of the entry:

Is Sales Not Purchase (تعمل مبيعات ليست مشتريات, termConfig.isSalesNotPurchase) — off, the default, books a payable to the supplier; on, it books a receivable instead, for the rare installation that does sublet work for others through this screen.

The rest of the General Effect Settings group, and the switches at the top of the Serivce Fees group (the label is misspelt on screen), work as on any purchase invoice:

OptionField idWhat it does
Expand Payment Method EffecttermConfig.expandPaymentMethodEffectThe payment lines' entries are written in full — the payment value and the payment-method fees as separate lines — instead of netting the fees off the payment line.
TaxabletermConfig.taxableCopied onto the document header on every save; untick it for a term whose repairs carry no tax.
Modifiable TaxtermConfig.modifiableTaxCopied onto the header on every save; lets the user override the calculated tax.
Tax PlantermConfig.taxPlanThe header tax plan, copied onto the document on every save — so changing it changes what the next save of an existing external repair calculates.
Allow Editing Header Tax In DetailstermConfig.allowEditingHdrTaxInDetailsCopied onto the header on every save; lets a line carry a different tax from the header.
Pay Installments In OrdertermConfig.payInstallmentsInOrderThe repair's payment schedule must be settled oldest instalment first. Off, any instalment can be paid at any time.
Service Fees 1 Deduction … Service Fees 4 DeductiontermConfig.serviceFees1Deduction … termConfig.serviceFees4DeductionTreats that service fee as a deduction from the document's net value instead of an addition, and reverses its entry accordingly.
Do Not Add Service Fees Effect Without Account SidetermConfig.doNotAddServiceFeesEffectWithoutAccSideA service-fee line whose own debit or credit side is empty is left out of the entry, instead of being booked to the term's main sides.

The Discount Effects tab ends with the External Effects grid (تأثير سندات الدفع, termConfig.externalEffectLines). Each row adds a debit/credit pair to the repair's own journal entry for every payment document recorded against it — the payment lines that vouchers add to the repair — using the payment's value:

ColumnField idWhat it does
For TypetermConfig.externalEffectLines.forTypeLimits the row to payment documents of this type. Empty means every type.
Apply When Payment Document Matches CriteriatermConfig.externalEffectLines.applyWhenPaymentDocMatchesCriteriaApplies the row only to payment documents that match these criteria.
Apply When Payment Document Matches QuerytermConfig.externalEffectLines.applyWhenPaymentDocMatchesQueryThe same filter, written as a query.
Debit / CredittermConfig.externalEffectLines.debit / termConfig.externalEffectLines.creditThe account sides of the added pair.

The external repair's value never reaches the job order

The 400 is recorded in the ledger against the supplier and the line's account, and it marks the covered tasks Finished. It does not join the job order's 3,215, it does not appear on any of the three invoices, and no term option makes it. To recover it from the customer, add a task or material value on the job order by hand.

The three material terms ​

The Spare Parts Issue, the Spare Parts Return and the Spare Parts Issue Request share one shape — except that the last two rows below, Do Not Copy Details From Job Order and Use Job Order For Qty Tracking, are on the Spare Parts Issue and the Spare Parts Issue Request terms only. The Spare Parts Return term does not have them.

OptionArabic labelField idEffect
Generation Book / Generation Termدفتر المستند / توجيه المستندtermConfig.generationConfigurations.generationBook / termConfig.generationConfigurations.generationTermThe book and term of the generated Stock Issue (issue) or Stock Receipt (return). Empty means no stock document at all, and any existing one is deleted
Transfer Not Issueتحويل لا صرفtermConfig.transferNotIssueSwitches the whole document from issue/receipt to a Stock Transfer between the store and the job order's work-in-progress store
Transfer Book / Transfer Termدفتر التحويل المخزني / مستند التحويل المخزنيtermConfig.transferBook / termConfig.transferTermThe book and term of that transfer
Do Not Copy Details From Job Orderعدم نسخ التفاصيل من أمر الشغلtermConfig.doNotCopyDetailsOfFromDocfFromJobOrderStops the planned parts being copied in when the job order is picked
Use Job Order For Qty Trackingاستخدام أمر الشغل لمتابعة الكمياتtermConfig.useJobOrderForQtyTrackingHangs the executed/remaining quantities off the job order rather than the source document

Transfer Not Issue is the fork here. Off, the storekeeper issues parts and stock leaves the parts store — Al-Sahra's SCRMI-2026-1902 generating stock issue STI-2026-1188 out of WH-PARTS. On, the parts move to the work-in-progress store WH-WIP instead and stay on the books until the job consumes them.

To stop an issue or a return creating its stock document, clear the Generation Book and the Generation Term — or, in transfer mode, the Transfer Book and Transfer Term.

The Spare Parts Issue Request is a paper request that the issue is later built from: it moves no stock and creates no journal entry. The stock settings that apply are the ones on the issue's own term.


For the module-wide rules behind these screens, see Document Terms in Service Center. For the showroom side, see Car, Insurance and Rental Document Terms.