Skip to main content

Sales Order Review

Sales Order Review is an orientation/shortcut menu for existing orders that need payment attention. Some users may call it invoice review because the real destination is the payment step for a sales order that already has, or is about to create, an invoice.

This menu is not a separate order-creation flow and it should not own a separate payment model. It reuses the same payment and invoice creation sections documented in Sales Order.

Open the Sales Order payment flowOpen the invoice creation flow

Where It Fits

App Entry Points

AppEntry pointReal destination
MobileOrderList mode shipping-reviewOrderPayment route
POS TerminalsalesOrderReviewpayment section in the sales order detail panel

Main Behavior

TopicBehavior
List filterLoads sales orders with orderStatus = WAITING_PAYMENT.
CreationDoes not create a customer-to-order draft. Selects existing orders only.
Invoice dependencyIf an invoice exists, open payment; if not, follow the sales-order invoice creation path first.
Payment modelCash, transfer, split amount, QR, shipping fee, discounts, credit note, and totals use the same Sales Order payment logic.
QRQR assets are generated by the same qr.ts payment utilities.
After paymentContinue into shipment/picking or closeout based on the underlying order/invoice status.

Permissions And Guards

TopicBehavior
Terminal menu keysalesOrderReview
deptCode menu set-2, 1, 2, 3, 4, 7, 29, 21, 8, 9, 13, 16, 20, 22, 23, 27
Branch ruleNo requiresMainBranch flag in Terminal menu config.
Owner filterReview mode intentionally uses review-list filtering and can differ from owner-only draft order lists.
Status guardOrders outside payment-review status should not appear in this menu.
AreaMobilePOS Terminal
Review listgetOrders({ mode/orderStatus: WAITING_PAYMENT }) through order list screensplitMenuData.ts case salesOrderReview
Order detailorders.ts detail helpersOrderDetailForm.tsx detail load
Invoiceinvoices.ts#createInvoice, invoice detail/retry helperssame invoice service layer
PaymentpayOrder(payload) / order payment utilitiespayment handlers inside OrderDetailForm.tsx
QRservices/qr.tsservices/qr.ts

Mobile vs POS Terminal

TopicMobilePOS Terminal
ListOrderList in review modesplit list under salesOrderReview
Payment UIOrderPaymentScreenpayment section inside OrderDetailForm
Navigationnavigation.navigate('OrderPayment', { orderId, orderNo })switch detail panel section/state
Payloadutils/orderPayment.ts builds form/summary/payloadterminal payment handlers build equivalent payload

Developer Checklist

  • Do not duplicate payment state or payload shape for this menu.
  • Start payment changes in Sales Order: Payment Flow.
  • Start invoice-before-payment changes in Creating Invoice And Opening Payment.
  • Keep list filtering focused on WAITING_PAYMENT.
  • Test both cases: order already has invoice and order must create invoice before payment.
  • Re-test QR amount and credit-note discount when payment totals change.