Dear Chan,
1.) What do you mean by free items against work order, do you mean work order as purchase order/maintenance order. This can be achieved by using the standard Badi:ME_PROCESS_PO_CUST.
2.) You have to give the logic to your ABAP (technical guy) to incorporate the condition, i.e., when the SES got updated with Final indicator then that particular PO all free line items should be marked as fully delivered
************************************************************************************
Next time you post a query please give the complete detailing of your issue
************************************************************************************
R,
Amal