JobOper.OpComplete vs LaborDtl.Complete - how to know if an operation is completed?

We’d like to add a warning message when creating a pack slip if an operation on the job was not completed(we recently shipped out something that wasn’t ready to be shipped…).

From poking around we think JobOper.OpComplete or LaborDtl.Complete would tell us this, but we’re not certain. Can someone point us in the right direction in regards to how to know if all operations on a job were completed?

@embedded
If you follow partial shipment of the finished product, then it will be advisable to have BPM validation to compare shipped quantity Vs completed quantity.