Default New Sales Order Release to be Unfirm - updating PartDtl table

I’ve seen bits and pieces of how to solve this on here, but wondering if anyone has a full solution. I’d like to set all Sales Order Line Releases to be Unfirm by default. I can set it for OrderRel via a Data Directive, but it still gets inserted into the PartDtl table as Firm and generates demand. I can’t find the correct place to hook into the order release creation to get it set as unfirm in both OrderRel and PartDtl. Thanks!

This is code from @timshuwy

int orderNum = 12345; //testing value
bool firmFlag = true; //testing value
using(var txScope = IceContext.CreateDefaultTransactionScope()) {

	var dbOReleases = Db.OrderRel.With(LockHint.UpdLock).Where(o =>
		o.Company == CompanyID &&
		o.OrderNum == orderNum &&
		o.FirmRelease == firmFlag);

	foreach (var dbORel in dbOReleases) {
		dbORel.FirmRelease = firmFlag;

		var dbPartDetails = Db.PartDtl.With(LockHint.UpdLock).Where(p =>
			p.Company == CompanyID &&
			p.OrderNum == dbORel.OrderNum &&
			p.OrderLine == dbORel.OrderLine &&
			p.OrderRelNum == dbORel.OrderRelNum &&
			p.FirmRelease != dbORel.FirmRelease);

		foreach (var dbPartDtl in dbPartDetails) {
			dbPartDtl.FirmRelease = dbORel.FirmRelease;
		}
	}

	Db.Validate();
	txScope.Complete();
}

This is on SalesOrder.MasterUpdate - as he states code is untested.

Thread: MRP Suggestions for Unfirm Releases - ERP 10 - Epicor User Help Forum (epiusers.help)