WORKDAY like NETWORKDAYS by default ignores weekends when calculating and has optional public holidays parameter which is obviously important in these scenarios... the basic premise ?
=WORKDAY(date,adjustment,[holidays])
the adjustment can be negative... so in your case
=WORKDAY(A1,LOOKUP(B1,{21,22,23,24},{-2,-5,-7,-9}),_holidays)
where:
A1: cell containing TR Date
B1: Product code (21-24)
_holidays: named range containing the public holiday dates to be ignored in addition to weekends.
you can adjust the adjustment array to account for whether or not current TRDate itself is inclusive of lead time (ie -2 becomes -1 etc...) ... we're also assuming that the target delivery date is always a valid workday.
Bookmarks