It appears that a non-stock item can be added to a purchase order, received and paid for without ever being added to a sales order and invoiced to the customer. Is there a way to ensure that that the customer gets invoiced (e.g. requiring a sales order before creating a PO)?
Best answer by gprice27View original
Unless you can restrict the user ability to add lines to a PO Manually using Roles etc - you might have to consider a customization.
This might be a bit heavy handed - but you could add a customization on the POLine to require a value in SOOrderNbr and SOLineNbr on the Persist/Save of the POLine - for Non-Stock Items…
This would force ALL PO lines with Non Stock items to be linked to a Sales Order - ie you could only create POs from Sales Orders - or Manually link the new line to an existing Sales Order before saving the line.
I would think pretty hard about enforcing this - as any restriction you put in here will impact all workflows that create a POLine (including any API integrations)….and sometimes the timing of when the POLine is saved/persisted vs when it is linked to the SOLine might be an issue. You would have to test this approach extensively before deploying it.
Perhaps it would be better to do the check when the PO is taken off hold - ie don’t allow the Remove Hold until all lines are linked to a Sales Order..?
Maybe someone else has another suggestion without needing a customization - or already has such a customization written?