Here is the default work flow to use purchase orders.
Create a purchase order to inform vendor your intent to purchase goods.
To records the goods received, use Shipping–Receive.
Create a vendor invoice: Open the order and click the Vendor Invoice button. You can create invoice from a partially received order.
Note: An alternate work flow is also supported with some code changes (available as orders2 branch at github.com/ledger123). This allows you to partially/fully receive orders by editing them. 'Shipping-Receive' and 'Shipping-Ship' are not available in this branch.
Here are few points to remember:
When you create an invoice from order, you cannot edit the quantities on invoice screen or add or remove items.
When you create invoice from a partially received order, this order is marked closed and a new order with same number but remaining quantities and new order date is created.
When you are using the alternate workflow: (using orders2 code branch)
Stock onhand is increased when you save a PO with quantity in Rcvd column. No accounting entries are made. (COGS/expense, Vendor balances etc.)
You can create an invoice directly from PO by entering the qty received in Rcvd column and clicking the Vendor Invoice button. This automatically saves the order, updates stock and opens Add Vendor Invoice screen with information carried forward from the PO.
Sales orders function exactly same as purchase orders.