PalmStat ERP · Operations
Palm Stationery Manufacturers (Pty) Ltd · Cape Town
12 Industria Crescent, Epping 2, Cape Town, 7460
Tel +27 21 534 0000 · ops@palmstat.co.za

Job Card / Production Order · Standard Operating Procedure

Step 3 of 8 · the master shop-floor document for a release-to-floor batch
APPROVED
SOP-JC-003
v1.0 · Last reviewed 2026-05-08
← Previous: Material Req · Index · Next: WIP Report →
Lifecycle step
Step 3 of 8
Module owner
Production Floor · Supervisors
Trigger event
Batch → IN_PROGRESS (start)
Approval matrix
Planner + Supervisor + QC Inspector

1. Purpose

The Job Card (also called Production Order or Work Order in other ERPs) is the master shop-floor document for a single batch. It travels with the kit from the storeroom door, sits on the machine clipboard for the duration of the run, and is signed off when the run completes. It carries the BOM consumption record, the routing (Setup → Run → QC → Pack), the labour assignment for the shift, an inline QC inspection checklist (Visual / Dimensional / Weight / Packaging / Label), an hourly tally grid, and a 3-signature block.

The Job Card mirrors the Sage X3 "Manufacturing Order Tracking", Syspro "Job Slip", SAP S/4HANA "Production Order Confirmation" and NetSuite "Manufacturing Work Order Traveler". It is the single most data-rich document in the production lifecycle — everything from cycle time and yield to scrap and downtime ties back to it.

Once a batch transitions to IN_PROGRESS via POST /api/production-batches/:id/start, the system snapshots all dimensions, builds a default 4-stage routing, and the floor has a printable Job Card available within 5 seconds.

2. When to use

3. Data sources

The JobCard spec (frontend/js/erp-templates/job-card.js) is built from the live batch row + its line snapshot + labour assignments + machine register. Each row is wired into a real column.

Field on documentAPI endpointDB table.columnExample value
Job Card / PO RefPOST /api/production-batchesproduction_batches.batch_refPO-BATCH-2026-0481
FG product code & nameGET /api/productsproducts.code & products.nameA4_72PG_FM · A4 72-page FM
Planned qtyPOST /api/production-batchesproduction_batches.planned_qty5 000
Actual qtyPOST /api/production-batches/:id/completeproduction_batches.actual_qty4 940
BOM versionGET /api/bom/:idbom_headers.versionv3
Machine code & nameGET /api/machinesmachines.code & machines.nameRUL_4 · Ruling 4
Departmentvia FKdepartments.code via machines.department_idRULING
ShiftPOST /api/production-batchesproduction_batches.shiftDAY / NIGHT
Planned / actual start & endauto-stampedproduction_batches.started_at, completed_at2026-05-08 06:30 / 14:10
Statusstate machineproduction_batches.statusIN_PROGRESS
Customer / SO refGET /api/sales-orderssales_orders.order_noSO-2026-1142
BOM consumption row · requiredsnapshotproduction_batch_lines.required_qty217.350
BOM consumption row · issuedposted on startproduction_batch_lines.consumed_qty217.450
BOM consumption row · variancederivedcomputed in JobCard._bomRows()+0.100
Issued from WHGET /api/warehouseswarehouses.codeRM-MAIN / PSTAT
Issued by clockcaptured on MRemployees.clock_no1042
Routing (Setup / Run / QC / Pack)default routinggenerated client-side via _defaultRouting(batch)30 / 60+ / 20 / 25 min
Labour assignments · Operator / Assistant / Setter / PackerGET /api/labourlabour_assignments.employee_clock_no × role_on_floorOPERATOR · clock 1042
Operator namevia FKemployees.first_name + last_nameP. Mokoena
QC checklist (5 points)printed blankcaptured on paper, then digitised at FGRNVIS / DIM / WGT / PKG / LBL
Hourly output grid (8 slots)printed blankcaptured on paper · digitised on Tally SheetH+1 … H+8
Created byreq.userusers.email via created_byplanner@palmstat.co.za

4. Step-by-step workflow

  1. Batch released to floor — supervisor calls POST /api/production-batches/:id/start. The endpoint loops over production_batch_lines and posts txn_type=ISSUE rows; status flips to IN_PROGRESS and started_at stamps.
  2. Print Job Card — from the batch detail view, supervisor clicks Print Job Card. The frontend calls JobCard.build(batch, bomLines, labourAssignments).print(). Output: a single A4 page with header, BOM consumption table, routing, labour grid, QC checklist, hourly tally grid, signatures.
  3. Setter prepares machine — setter performs the SETUP routing step (30 min). First-off check is made; if dimensions OK, the run is released. Setter signs the SETUP row of the routing table.
  4. Operator runs the line — primary operator monitors output, scrap and rework. Hourly grid is filled in by hand each hour (count, scrap, rework, operator initials).
  5. QC in-line inspection — QC inspector samples 1-of-100 (per QC matrix) and ticks PASS / FAIL / N/A on each of the 5 checklist points: Visual, Dimensional, Weight, Packaging, Label. Any FAIL triggers a Non-Conformance Report (NCR) and a hold on the line.
  6. Packer wraps & palletises — per the dispatch spec on products. Packer signs the PACK row of the routing.
  7. Run completes — the supervisor closes the run via the Tally Sheet (Step 5). When tally is CONFIRMED and all 3 Job Card signatures are captured, the supervisor calls POST /api/production-batches/:id/complete with actual_qty.
  8. Posting to FG — the complete endpoint posts a PROD_IN inventory transaction for the FG product against the target FG warehouse and computes yield_pct, wastage_pct, shortfall_qty. Status → COMPLETED.
  9. 3-way sign-off — Production Planner signs the planning section (often before release), Supervisor signs the start & end stamps, QC Inspector signs the QC checklist. All three names are stamped on production_batches via req.user.
  10. Archive — the printed Job Card is scanned and uploaded; document_links ties the PDF to entity_type='production_batch', entity_id=batch.id. Retention 7 years.

5. Roles & permissions

ActionAdminPlannerSupervisorOperatorQC / Maintenance
Generate this doc✓ (read)
Start the batch (POST ·/start)
Sign QC checklist✓ (QC)
Complete the batch (POST ·/complete)
Reprint after archive
Cancel batch

Permission gate enforced by requireRole('admin','planner','supervisor') on the start / complete endpoints. Cancellation is admin-only.

6. Common scenarios

Scenario A · Clean run, on plan

Happy path: Planned 5 000 units, achieved 4 940 with 60 units of scrap. Yield 98.8%. QC passes all 5 checklist items, supervisor signs, FGRN posts cleanly. Cycle time within +5% of plan.

Scenario B · Mid-run machine breakdown

Happy path: Ruling shaft fails at H+3. Maintenance logs a machine_breakdowns row with the bd_ref. Supervisor pauses the line, downtime is captured. Once repaired, run resumes; Job Card carries a hand-written note "Breakdown BD-ref · 45 min". WIP variance flag fires (+20% over plan).

Sad path: Breakdown is not logged. Cycle-time variance shows +30% but no explanation; OEE for the machine is unfairly hit. Recovery: back-fill machine_breakdowns after the fact.

Scenario C · QC fails inspection

Happy path: QC inspector ticks FAIL on Dimensional check. Line halts immediately. NCR raised, root cause identified (folder offset), batch routed to rework. A REWORK Job Card is reprinted; original is filed with the NCR.

Sad path: FAIL is overlooked, batch makes it to FGRN and dispatch. Customer returns goods. Recovery: customer return triggers a reverse PROD_OUT + scrap, NCR opens with a CAPA and the original QC inspector is retrained.

Scenario D · Shift change mid-batch

Happy path: Batch crosses Day → Night boundary. Day operator signs the H+1 to H+6 grid, Night operator picks up at H+7 with a fresh row of initials. Supervisor at handover countersigns the labour grid to confirm the swap.

7. Related documents

Upstream  ·  STEP 1: GRN (RM in stock)
Upstream  ·  STEP 2: Material Requisition (kit prepared)
Upstream  ·  Production batch header (PLANNED)
   →  STEP 3: Job Card · this document
Downstream  ·  STEP 4: WIP Report (live floor view)
Downstream  ·  STEP 5: Tally Sheet (digitises the hourly grid)
Downstream  ·  STEP 6: FGRN (closes the loop)
Cross-ref  ·  machine_breakdowns for any pause events

8. Approval signatures

Document Owner
Production Planner — ____________
Signed: ____ / ____ / ______
Quality Lead
QC Inspector — ____________
Signed: ____ / ____ / ______
Operations Director
Production Supervisor — ____________
Signed: ____ / ____ / ______

9. SLA & escalation

Stage Target Owner Escalation
Setup → First-off OK 30 min Setter Maintenance + Supervisor
QC inline sample 1-of-100 units QC Inspector Quality Manager · raise NCR
Cycle time vs plan +/- 10% Supervisor WIP Report variance flag at +20%
Sign-off (3 roles) Within 60 min of complete Planner / Sup / QC Production Manager
Scan & archive End of shift Supervisor Operations Director

10. Glossary