This question has been flagged

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?

Avatar
Discard
Best Answer

UPDATE:

See https://www.odoo.com/apps/modules/8.0/purchase_partial_invoicing/


ORIGINAL ANSWER:

1.  Create a PO for 100 units as normal.

Consider two scenarios:

A) You find out before receiving anything that the PO will only be fulfilled for 80 units.

  • Edit the Incoming Shipment to match 80 units

  • Receive 80 units

  • Invoice 80 units

  • PO is now DONE

A) You receive 80 units, then find out that no further products will be shipped to you.

  • Receive 80 units

  • Invoice 80 units

  • Back order Incoming Shipment created for 20 units

  • Edit the back order Incoming Shipment to match 0 units

  • Receive 0 units

  • Invoice 0 units

  • PO is now DONE

Avatar
Discard

@Ray: would you like to answer https://www.odoo.com/forum/help-1/question/how-to-set-a-po-done-without-invoicing-is-done-87398

Author

@Ray, the scenario in question (sorry if it is not clear in the question) involves multiple purchase.order.lines in which only 1 (or part of 1) is processed.

Hey Ray, I like your answer but it is not good way to create invoice for "0" qty. Obviously client will never agree to do this. ( Why to make one step more unnecessarily ?) Is there any other option ?

This invoice does not get sent to the client - you can pay it straight away (with a $0 payment) and it will be closed. There is also a module that closes $0 invoices without payments. If your supplier tells you in time, you won't need the invoice at all. It is an extra step, but this is what is supported out of the box.