Skip to content

Project Detail - Purchase Orders (tab, approval workflow, PDF)

StageBuilt
StatusShipped
Design statusIn progress
EstimateM
ConfidenceHigh
LinearPIN-276 ↗ PIN-363 ↗ PIN-430 ↗
Linear statusDone
CycleC16
DesignDesign ↗
Linear epicProcurement, Vendors & Compliance
ModulePurchase Orders ↗

Status: Built · Route: /projects/:id/detail?tab=purchase-orders

Scope

Project-scoped Purchase Orders tab on Project Detail: every PO issued against the project, filtered and columned by cost code, vendor, amount, status, insurance, and origin. PMs request POs from the Budget tab; submissions email the admin team, who issue in Foundation and mark them Issued; PMs then see the status update and can download a branded PDF. (Source: PIN-276, PIN-363, PIN-430.)

Acceptance criteria

  • Purchase Orders tab lists POs where projectId matches, with columns PO Number, Cost Code, Vendor, Amount, Status, Insurance, Origin (Budget / CO-NNN)
  • Row click opens the existing PO detail slide-out
  • "Request PO" opens a modal: cost code, vendor, scope, amount, PO source type (Original Budget / Internal CO / External CO)
  • Submitting a request emails the admin team; admin manually issues the PO in Foundation and marks it Issued in Pinley
  • PM sees the status update on the Budget/PO tab; email notification on request, audit log on every state change
  • "Download PDF" on issued POs (gated by GetPORequests): branded document with vendor, project, cost code, scope, amount, signature blocks, T&Cs, and attachments list
  • Cross-project admin queue stays a separate surface at /admin/purchase-orders

The project-scoped Purchase Orders tab on Project Detail: a filtered view of every PO issued against the project, the PM approval flow with notifications, and branded PDF generation/download for each PO. This is the single-project view — distinct from the cross-project admin/portfolio PO queue in the Billing module (Purchase Orders - admin/portfolio queue).

Notes

Three tickets shipped this: the tab itself, filtered to the project (PIN-276); the PM approval flow with notifications and PDF download, tested end-to-end (PIN-363); and branded HTML→PDF generation (PIN-430). An interim "email PO to Mandy & Elaine" flow (PIN-841) is separately in QA. AI-drafted PO scope generation (PIN-255) is a deferred enhancement on top of this, not yet built.

Reference

  • Linear: PIN-276 (Project Detail — Purchase Orders tab, filtered project view); PIN-363 (PO Workflow: PM approval flow + notifications + PDF download); PIN-430 (PO PDF generation — branded download)