Skip to main content

Order Parts Form (Order_Parts)

Field-by-field reference for the Order Parts form and its embedded Order Line Items subform — the structure that holds purchase-order line items. Includes a review of legacy/redundant fields (see Field Review).

  • Display name: Order Parts
  • Success message: "Data Added Successfully!"
  • Last documented: 12 June 2026

Background

Historically, purchase orders did not have line items as separate records — part descriptions were maintained as free text in a single Description field. The Order_Line_Items grid on this form introduced line items as proper child records (one record per part, with quantity, part number, supplier, and pricing). The Purchase Order Form's Order_Line_Items grid references these same child records — this subform is where they are defined and populated.

Because the form evolved from the older free-text approach, it carries fields from earlier iterations that may no longer be needed — flagged in the review below.


Main Section — Order Details

FieldTypeSource / ValuesNotes
Parts_to_be_ordered_forPicklistClaim, Fleet Vehicle, Private JobDetermines which vehicle lookup applies.
File_NumberPicklist (lookup)Claim_Form.ID, displays [File_Number]Populated for Claim orders.
Fleet_Vehicle_RegoPicklist (lookup)logistics_app.Add_Car.ID, displays [Registration]Populated for Fleet Vehicle orders. Cross-app lookup into the logistics app.
Ordered_ByPicklist (lookup)User.ID, displays full nameStaff member raising the order.
RegistrationTextFree textDenormalised copy of vehicle rego.
VIN_NoTextFree textDenormalised copy of VIN.
MakeTextFree textDenormalised.
ModelTextFree textDenormalised.
ColourTextFree textDenormalised. Not present on the PO form.
Date_OrderedDateDefaults to ${zoho.currentdate}Mandatory (must have).
Purchase_Order_No_I_BodyTextFree textiBody purchase number — also exists on the PO form (see review).

Order Line Items (embedded grid / subform)

One row per part. These are the records the invoice extraction module matches invoice lines against.

FieldTypeSource / ValuesNotes
Parts_to_OrderPicklist (lookup)Parts_to_Order.ID, displays [ID]Back-link to the originating parts request line.
DescriptionTextFree textPart description — comparison target for the extracted invoice line description.
Quantity1Number (integer)Display name "Quantity" — the authoritative quantity field (review item 1).
QuantityDecimalDuplicate, displays as "Quantity" — to be removed from the form (review item 1).
Part_NumberTextFree textComparison target for the extracted invoice part_number.
SuppliersPicklist (lookup)Suppliers.ID, displays [Supplier_Name]Not used — supplier is taken from the PO header Supplier_Name (review item 2).
Parts_TypePicklistOEM, Parallel, Aftermatket, UsedNote the typo in the stored value "Aftermatket" — see review.
Request_StatusPicklistPart to Order, Part to RepairInitial value Part to Order. Triage-stage status — see review.
Unit_List_Ex_GSTDecimalList price ex GST — maps to extracted unit_list.
Unit_Net_Ex_GSTDecimalNet (agreed) price ex GST — maps to extracted unit_net. This is the price the supplier should invoice.
Due_In_dateDateAll days allowedExpected arrival.
StatusPicklistOrdered, Arrived, UnavailablePer-line fulfilment status.
NotesTextareaFree notes.
Upload_EvidenceFile uploadLocal driveSupporting attachment per line.

System Section

FieldTypeSource / ValuesNotes
Parts_to_OrderList (multi-lookup)Parts_to_Order.ID, displays [ID]Order-level list of source request lines — duplicates the per-line lookup; see review.
Order_SourcePicklistDirect Order, From Pending RequestHow the order was raised.
Auto_NumberAutonumberStarts at 1Internal sequence.

Actions

EventButtons
On addSubmit
On editUpdate, Cancel

Field Review — Legacy and Redundant Fields

Fields flagged during the 12 June 2026 review, with decisions recorded. Do not delete any field without first auditing data and Deluge workflow references — removing a field that scripts read/write will break the parts flow silently.

#FindingDecision (12 Jun 2026)
1Duplicate quantity fields✅ Decided — remove Quantity (decimal); Quantity1 is authoritative
2Per-line Suppliers lookup✅ Decided — not needed; supplier comes from the PO header
3Purchase_Order_No_I_Body on both forms✅ Decided — PO form's value is authoritative
4Request_Status looks vestigial✅ Keep — used elsewhere in the app
5Parts_to_Order linked twice🟡 Pending verification against the live form
6Denormalised vehicle fields📋 Noted — revisit later
7Parts_Type typo "Aftermatket"📋 Noted — fix later (with record migration, see below)
8No line-total field📋 Noted — matcher computes it

1. Duplicate quantity fields — Quantity1 vs Quantity — RESOLVED

The grid has two quantity fields, both displaying as "Quantity" in the UI: Quantity1 (integer) and Quantity (decimal).

Decision: the decimal Quantity field will be removed from the form. Quantity1 (integer) is the live field — all code, including invoice line matching, reads Quantity1.

2. Per-line Suppliers vs PO-header Supplier_Name — RESOLVED

The PO form has a single supplier at header level; the line items each carry their own supplier lookup.

Decision: the per-line Suppliers field is not needed. The supplier is taken from the Purchase Order header (Supplier_Name) — that is what invoice supplier matching resolves against.

3. Purchase_Order_No_I_Body exists on both forms — RESOLVED

Both Order_Parts and Purchase_Order_Form carry the iBody number.

Decision: the Purchase Order form's value is authoritative — same principle as the supplier field. Invoice-to-PO matching reads Purchase_Order_No_I_Body from the PO form.

4. Request_Status (Part to Order / Part to Repair) — KEEP

Initially flagged as vestigial (a triage-stage decision). Decision: the field is used elsewhere in the app — keep as-is.

5. Parts_to_Order duplicated (per-line lookup + order-level list) — PENDING VERIFICATION

The exported form definition contains the link twice: a per-line picklist inside the Order_Line_Items grid (first grid field), and an order-level list field in the System section (row = 3, height = 60px). The team did not find the second field when reviewing — possibly hidden in the form builder's System section, or the export predates a removal. Action: check the live form builder's System section; if the list field is genuinely gone, update this page and the export.

6. Denormalised vehicle fields (Registration, VIN_No, Make, Model, Colour) — NOTED

Copied from the claim/fleet record rather than looked up. Standard Creator practice, but they can drift from the source record. Colour exists here but not on the PO form. To be revisited later; treat the claim record as the source of truth.

7. Typo in Parts_Type picklist: "Aftermatket" — NOTED, FIX LATER

Should be "Aftermarket". Caution for whoever fixes it: picklist values are stored as literal strings — fixing the option without migrating existing records leaves old rows holding the misspelled value, and any Deluge/report filters on "Aftermatket" will silently stop matching. Fix the value, update records, and grep workflows for the misspelling in one pass.

8. No line-total field — NOTED

Lines carry unit prices but no extended total (qty × unit_net); the PO form's Total_Value is presumably computed by workflow. Fine as-is — the invoice matcher computes line totals itself.


Relevance to Invoice Extraction

Line-item matching compares extracted invoice lines against Order_Line_Items records:

Extracted invoice fieldLine item fieldMatch approach
descriptionDescriptionNormalised text similarity (supplier wording differs from internal wording)
part_numberPart_NumberExact match after normalisation — strongest signal when both sides have it
quantityQuantity1Numeric exact match (Quantity decimal field is being removed)
unit_listUnit_List_Ex_GSTTolerance comparison
unit_net / unit_priceUnit_Net_Ex_GSTTolerance comparison — the price-discrepancy check that catches list-vs-net overbilling
total (per line)computed qty × Unit_Net_Ex_GSTComputed, no stored field

Both sides are ex-GST at line level, so no GST conversion is needed for line matching (header totals still need the GST basis of Total_Value confirmed).