And is this a portal to LIneItems on the Invoices layout? (I will assume that this is the case...)
the intent is to scan barcodes to generate the invoices rapidly
Option 1 is to scan the barcode into a global field. A script then creates the lineitem record and uses the barcode to look up the needed value for IDf_Widget. A relationship using the global field as a match to an occurrence of Widgets also linking by the manufacturer's serial number can make looking up the needed primary key value.
Option 2 is similar but you put the field into which you want to scan the barcode in the LineItems table as a regular field and use it as a match field to a different occurrence of Widgets so that it can match by MFG serial instead of ID. Then the IDf_Widget can use an auto-enter setting to automatically look up the needed ID and thus link to your existing occurrence of Widgets.
Option 3 is to break the rules and just match by the MFG serial instead of the internally generated primary key. Don't use this method without giving the consequences careful thought.