Skip to content

Sales Document Flow

Order-to-cash documents are enforced on Sales domain aggregates. Status names match API enums.

Hub: Target Document Flow. Overview: Sales.

#Chain overview

Document chain — quotation through AR

flowchart LR
  Q[Quotation] --> SO[Sales Order]
  SO --> DN[Delivery Note]
  SO --> AR[AR Invoice]
  SO --> SR[Sales Return]

  class Q egkDraft
  class SO,DN egkActive
  class AR egkSuccess
  class SR egkWarn
Quotation

#Statuses

Draft, Sent, Accepted, Rejected, Expired, Converted, Cancelled, Superseded

Quotation — send, respond, and convert

flowchart TB
  Start((Create)) --> Draft[Draft]
  Draft -->|Send| Sent[Sent]
  Sent -->|Accept| Accepted[Accepted]
  Sent -->|Reject| Rejected[Rejected]
  Sent -->|Expire| Expired[Expired]
  Accepted -->|Convert to order| Converted[Converted]

  class Start egkStart
  class Draft egkDraft
  class Sent egkActive
  class Accepted,Converted egkSuccess
  class Rejected egkError
  class Expired egkTerminal

Quotation — cancel from open statuses

flowchart TB
  Draft[Draft] -->|Cancel| Cancelled[Cancelled]
  Sent[Sent] -->|Cancel| Cancelled

  class Draft egkDraft
  class Sent egkActive
  class Cancelled egkTerminal
Sales Order

#Statuses

Draft, Confirmed, PartiallyDelivered, Delivered, PartiallyInvoiced, Invoiced, Completed, Cancelled

Discount approval (separate): SalesApprovalStatus = NotRequired, Pending, Approved, Rejected.

Sales Order — confirm through complete

flowchart TB
  Start((Create)) --> Draft[Draft]
  Draft -->|Confirm| Confirmed[Confirmed]
  Confirmed -->|Deliver partial| PartiallyDelivered[PartiallyDelivered]
  PartiallyDelivered -->|Deliver full| Delivered[Delivered]
  Confirmed -->|Deliver| Delivered
  Delivered -->|Invoice partial| PartiallyInvoiced[PartiallyInvoiced]
  PartiallyInvoiced -->|Invoice full| Invoiced[Invoiced]
  Invoiced -->|Complete| Completed[Completed]

  class Start egkStart
  class Draft egkDraft
  class Confirmed,PartiallyDelivered,PartiallyInvoiced egkActive
  class Delivered,Invoiced,Completed egkSuccess

Sales Order — cancel from draft

flowchart TB
  Start((Create)) --> Draft[Draft]
  Draft -->|Cancel| Cancelled[Cancelled]

  class Start egkStart
  class Draft egkDraft
  class Cancelled egkTerminal
Action (domain) Enabled when
Confirm Draft
Submit for approval Draft when discount approval required
Approve / Reject discount Approval Pending
Deliver / record partial delivery Not Draft / Cancelled
Mark invoiced Updates invoiced amounts and status
Complete Not Cancelled
Cancel Per cancel rules on open orders
Delivery Note

#Statuses

Draft, Shipped, Delivered, Cancelled

Delivery Note — ship and deliver

flowchart TB
  Start((Create)) --> Draft[Draft]
  Draft -->|Ship| Shipped[Shipped]
  Shipped -->|Deliver| Delivered[Delivered]

  class Start egkStart
  class Draft egkDraft
  class Shipped egkActive
  class Delivered egkSuccess

Delivery Note — cancel from open statuses

flowchart TB
  Draft[Draft] -->|Cancel| Cancelled[Cancelled]
  Shipped[Shipped] -->|Cancel| Cancelled
  Delivered[Delivered] -->|Cancel| Cancelled

  class Draft egkDraft
  class Shipped egkActive
  class Delivered egkSuccess
  class Cancelled egkTerminal
Action (domain) Gate
Ship / Deliver Advances toward Shipped / Delivered
Cancel Allowed unless IsInvoiced (throws if invoiced)
Sales Return

#Statuses

Draft, Confirmed, Cancelled

Sales Return — confirm return

flowchart TB
  Start((Create)) --> Draft[Draft]
  Draft -->|Confirm| Confirmed[Confirmed]

  class Start egkStart
  class Draft egkDraft
  class Confirmed egkSuccess

Sales Return — cancel from draft

flowchart TB
  Draft[Draft] -->|Cancel| Cancelled[Cancelled]

  class Draft egkDraft
  class Cancelled egkTerminal
Action (domain) Gate
Confirm Not Cancelled; requires lines; → Confirmed
Cancel Blocked if IsCredited; else → Cancelled

#Post-action sync

Sales screens reload entity tables after workflow commands. Status chips and action visibility follow the aggregate status returned by the API. Failed transitions throw conflict/domain errors with no status change.

#Scenarios

Scenario Outcome
Confirm draft order Confirmed
Partial delivery PartiallyDelivered
Full invoice Invoiced
Cancel draft Cancelled
Reject quotation Rejected
Cancel invoiced delivery Domain error
Cancel credited return Domain error

Reconnecting to the server…

Please wait, or reload the page.