Packing List/Shipping Label Check BPM

We are trying to make it to where you can not print a shipping label unless the packing list has been printed. This is to avoid shipped, but not invoiced issues. Is there a way to setup something to do this?

i do believe we have a flag on the shipment header that indicates the printing has been completed (true/false)

Would that be in Customer Shipment Entry - Header?

I need to have it check first to see if the packing list has been printed in order to make it available to print a shipping label. If packing list is not printed, we do not want to allow it to print a shipping label