Purchasing Document Flow
Purchase requisition through goods receipt and return — statuses, actions, approvals, and the Document flow timeline.
Purchasing Document Flow
Purchasing documents use domain transition methods and status-gated Actions menus. Cross-document lineage uses the Document flow dialog (DocumentFlowDialog → GetDocumentTrace).
Hub: Target Document Flow. Overview: Purchasing.
- Draft / open
- In approval / in progress
- Approved / completed
- Rejected
- Cancelled / closed
#Procurement chain
Document chain — PR through AP
flowchart LR PR[Purchase Requisition] --> RFQ[Request for Quotation] PR --> PO[Purchase Order] RFQ --> PO PO --> GRN[Goods Receipt Note] GRN --> AP[AP Invoice] PO --> RET[Purchase Return] class PR,RFQ egkDraft class PO,GRN egkActive class AP egkSuccess class RET egkWarn
Purchase Requisition
#Statuses
Draft, Submitted, Approved, Rejected, ConvertedToRFQ, ConvertedToPO, Cancelled
Purchase Requisition — approval and conversion
flowchart TB Start((Create)) --> Draft[Draft] Draft -->|Submit| Submitted[Submitted] Submitted -->|Approve| Approved[Approved] Submitted -->|Reject| Rejected[Rejected] Approved -->|Convert to RFQ| ConvertedToRFQ[ConvertedToRFQ] Approved -->|Convert to PO| ConvertedToPO[ConvertedToPO] class Start egkStart class Draft egkDraft class Submitted egkActive class Approved,ConvertedToRFQ,ConvertedToPO egkSuccess class Rejected egkError
Purchase Requisition — cancel from open statuses
flowchart TB Draft[Draft] -->|Cancel| Cancelled[Cancelled] Submitted[Submitted] -->|Cancel| Cancelled class Draft egkDraft class Submitted egkActive class Cancelled egkTerminal
| Action (UI) | Enabled when |
|---|---|
| Manage lines | Always |
| Document flow | Always |
| Submit for approval | Draft |
| Approve | Submitted |
| Reject | Submitted |
| Convert to RFQ | Approved |
| Convert to PO | Approved |
| Cancel requisition | Draft or Submitted |
Request for Quotation
#Statuses
Draft, Sent, Closed, Cancelled
Request for Quotation — send and close
flowchart TB Start((Create)) --> Draft[Draft] Draft -->|Send to vendors| Sent[Sent] Sent -->|Close bidding| Closed[Closed] class Start egkStart class Draft egkDraft class Sent egkActive class Closed egkSuccess
Request for Quotation — cancel from open statuses
flowchart TB Draft[Draft] -->|Cancel RFQ| Cancelled[Cancelled] Sent[Sent] -->|Cancel RFQ| Cancelled class Draft egkDraft class Sent egkActive class Cancelled egkTerminal
| Action (UI) | Enabled when |
|---|---|
| Document flow | Always |
| Send to vendors | Draft |
| Close bidding | Sent |
| Cancel RFQ | Draft or Sent |
Vendor quotation responses: invitation Invited / Submitted / Declined; quotation Submitted / Evaluated / Accepted / Rejected.
Purchase Order
#Statuses
Draft, Submitted, Approved, SentToVendor, PartiallyReceived, FullyReceived, Closed, Cancelled
Purchase Order — approval through receipt
flowchart TB Start((Create)) --> Draft[Draft] Draft -->|Submit| Submitted[Submitted] Submitted -->|Approve| Approved[Approved] Approved -->|Send to vendor| SentToVendor[SentToVendor] SentToVendor -->|Partial receipt| PartiallyReceived[PartiallyReceived] PartiallyReceived -->|Final receipt| FullyReceived[FullyReceived] PartiallyReceived -->|Close order| Closed[Closed] FullyReceived -->|Close order| Closed class Start egkStart class Draft egkDraft class Submitted,SentToVendor,PartiallyReceived egkActive class Approved,FullyReceived egkSuccess class Closed egkTerminal
Purchase Order — cancel from open statuses
flowchart TB Draft[Draft] -->|Cancel| Cancelled[Cancelled] Submitted[Submitted] -->|Cancel| Cancelled Approved[Approved] -->|Cancel| Cancelled class Draft egkDraft class Submitted,Approved egkActive class Cancelled egkTerminal
| Action (UI) | Enabled when |
|---|---|
| Document flow | Always |
| Submit for approval | Draft |
| Submit with RFQ-policy override | Draft (policy exception path) |
| Send to vendor | Approved |
| Close order | PartiallyReceived or FullyReceived |
| Cancel order | Draft, Submitted, or Approved |
Goods Receipt Note
#Statuses
Draft, Posted, Cancelled
Goods Receipt Note — post receipt
flowchart TB Start((Create)) --> Draft[Draft] Draft -->|Post| Posted[Posted] class Start egkStart class Draft egkDraft class Posted egkSuccess
Goods Receipt Note — cancel draft
flowchart TB Draft[Draft] -->|Cancel receipt| Cancelled[Cancelled] class Draft egkDraft class Cancelled egkTerminal
| Action (UI) | Enabled when |
|---|---|
| Manage lines | Always |
| Document flow | Always |
| Post (update stock & accruals) | Draft |
| Cancel receipt | Draft |
Purchase Return
#Statuses
Draft, Approved, Completed
Purchase Return — approve and complete
flowchart TB Start((Create)) --> Draft[Draft] Draft -->|Approve return| Approved[Approved] Approved -->|Complete| Completed[Completed] class Start egkStart class Draft egkDraft class Approved egkActive class Completed egkSuccess
| Action (UI) | Enabled when |
|---|---|
| Manage lines | Always |
| Document flow | Always |
| Approve return | Draft |
| Complete (issue stock & debit note) | Approved |
#Multi-level approval
On submit, Purchasing can spawn an approval chain via PurchaseApprovalEngine (Pending / Approved / Rejected levels). Document status still advances through the aggregate methods when levels complete.
#Post-action sync
| Surface | Behavior |
|---|---|
| Grid | _table.ReloadDataAsync() after Submit / Approve / Reject / Cancel / Convert / Post / Complete |
| Actions menu | Recomputed from status helpers (IsDraft, IsSubmitted, …) |
| Document flow dialog | Fresh GetDocumentTrace each open |
Failed API calls show an error; status and menu stay unchanged.
#Scenarios
| Scenario | Outcome |
|---|---|
| Successful submit | Status advances; Approve/Reject (or next verbs) appear |
| Reject PR | Status Rejected |
| Cancel open PR/PO/RFQ | Status Cancelled |
| Post GRN | Status Posted; stock/accruals updated |
| Complete return | Status Completed |
| Open Document flow | Timeline of linked PR/RFQ/PO/GRN/AP/Return |