Palm Stationery Manufacturers (Pty) Ltd
Manufacturing Excellence · Cape Town, South Africa
12 Industria Crescent, Epping 2, Cape Town, 7460
Tel +27 21 534 0000 · ops@palmstat.co.za · www.palmstat.co.za

PalmStat ERP · Standard Operating Procedures

Production-lifecycle paperwork (Step 1 → Step 8) · Receive-to-Pay & Order-to-Cash
APPROVED
SOP-INDEX-001
v1.1 · Reviewed 2026-05-11
Total SOPs
7 live + 1 stub + index
Coverage
RM → Dispatch
Authoring tool
PalmStat · ErpDoc framework
Document classification
Internal · Operations

About this binder

This SOP binder describes how PalmStat ERP generates, validates and signs-off the eight canonical documents that move a production order from raw-material intake to delivered customer goods. Each procedure mirrors the equivalent process in Sage X3, Syspro, NetSuite Manufacturing and SAP S/4HANA, and is wired into the live data tables · print-ready via window.ErpDoc.print().

The data-source tables in each SOP enumerate exact API endpoints, DB tables and columns consumed when the document is rendered — use them when training new staff, tracing audit issues, or extending the platform. Click any card below to open the per-document SOP. Every page is print-ready: Ctrl/Cmd+P → Save as PDF.

Production lifecycle · document chain

1. GRN 2. Material Req 3. Job Card 4. WIP Report 5. Tally Sheet 6. QC Inspection 7. FGRN 8. DN + POD
STEP 1 of 8Goods Received Note (GRN)
POST /api/inventory/transactions
Records raw-material receipt at the dock. Posts a RECEIPT inventory transaction, raises stock at the named warehouse, and stamps lot/qty/supplier metadata onto the document trail.
Tables · inventory_transactions, items, warehouses, documents
STEP 2 of 8Material Requisition (MR)
POST /api/production-batches/:id/validate
Picks raw materials off the shelf for a planned batch. The MR scales every BOM line by the planned qty and adds picker / storeman / supervisor sign-offs.
Tables · bom_headers, bom_lines, production_batch_lines, items
STEP 3 of 8Job Card / Production Order
POST /api/production-batches/:id/start
Master shop-floor document for a release-to-floor batch. Carries BOM consumption, 4-stage routing, labour assignment, QC checklist, hourly output grid and 3-way sign-off.
Tables · production_batches, production_batch_lines, machines, employees, labour_assignments
STEP 4 of 8WIP Status Report
GET /api/production-batches?status=IN_PROGRESS
Live work-in-progress snapshot. Per-machine occupancy, in-flight batches, idle BOM templates and a 4-stage flow strip (RAW → WIP → FG → DISPATCH). Cycle-time variance flag at +20%.
Tables · production_batches, machines, bom_headers, v_inventory_summary
STEP 5 of 8Tally & Sign-off
POST /api/tally-sheets/:id/confirm
Floor count document. Operator captures hourly piece counts + scrap; supervisor confirms. CONFIRMED state auto-creates a pending QC inspection.
Tables · tally_sheets, production_batches, employees
STEP 6 of 8QC Inspection
POST /api/qc-inspections/:id/submit
Quality gate. Inspector runs the 16-point checklist on the lot pushed from the tally sheet. PASS marks FG inventory AVAILABLE; FAIL/REWORK sets QUARANTINE.
Tables · qc_inspections, inventory, items
STEP 7 of 8Finished Goods Receipt Note (FGRN)
POST /api/production-batches/:id/complete
Closes the production order. Posts PROD_IN finished-goods transactions, stamps QC verdict, and recaps yield, wastage and BOM consumption variance.
Tables · production_batches, tally_sheets, inventory_transactions, items
STEP 8 of 8Delivery Note + POD
POST /api/dispatch/quick
Atomic outbound flow. Creates a Sales Order, reduces FG inventory, and auto-archives the Delivery Note + POD into /documents. Customer signature converts the same spec to a POD.
Tables · sales_orders, sales_order_lines, inventory_transactions, documents
REFERENCEErpDoc Framework
window.ErpDoc
Every printable document in PalmStat is built on the shared window.ErpDoc renderer (gradient header, 4-col meta strip, zebra-striped tables, signature blocks, audit footer). Source: frontend/js/erp-document.js.
API · ErpDoc.render(spec), ErpDoc.print(spec), ErpDoc.toEmailHtml(spec)