Update 20150701:
After @Ray's answer: the scenario that I'm facing involved PO with multiple lines in which not all lines are fulfilled (e.g. purchasing Product A and Product B but only receive and pay for Product A).
Original Question:
I can't seem to find a way to make a PO partially fulfilled. By partially fulfilled I mean that either the shipment is only partial or the only partially invoiced.
In general there are 3 paths that PO can follow, depending on how the invoice will be created:
Based on Purchase Order lines,
Based on generated draft invoice (by the whole PO),
Based on incoming shipments.
Now, PO will wait for 2 conditions to be marked 'Done': That goods have all been received (incoming shipment Done) and invoices have been all paid.
If there is an exception at picking, the PO will enter to the 'Shipping Exception' state. From here, user can click on the 'Manually Corrected' button to by-pass the checking on goods receipt (assumes that all goods has been received) and the PO can continue it's workflow.
If there is an exception at invoice, the PO will enter to the 'Invoice Exception' state, but I can't find anyway to make the PO continue the workflow. The problem lies in the fact there is an activity called 'invoice_end' that stands between 'invoice_done' activity to 'done' activity. The transition that is available between 'invoice_end' to 'done' should pass the condition that the PO's invoiced field is set to True.
The PO's invoice field is a calculated field that check that all related lines have their invoiced field set to True to return True value (All PO lines need to be invoiced first).
The PO line 'invoiced' field is set true when an invoice related to the PO is validated. Hence, it seems that currently there is no way to make PO to be considered 'done' (or any stage that signify that this PO has been completely processed) if it is partially fulfilled without incurring any AP entry.
I can certainly make all the PO lines invoiced first (create invoice on that PO line and validate them and hence creating AP entry), then refund-cancel the invoice. However, if the invoicing is Based on incoming shipments', that also mean that all goods need to be considered received first, then returned.
Any other way that I've not considered?