If an employee is clocked out, and you can not edit their time card through payroll pre-processing (despite the pay period NOT being locked), the issue is that the system thinks the employee is signed into a workstation.
You will need to know the object number of the employee (number to the left of their name is Poscfg). Run the following command in dbisql, logged in with username custom and password custom:
UPDATE MICROS.emp_status SET uws_seq = NULL WHERE emp_seq = (SELECT emp_seq FROM MICROS.emp_def WHERE obj_num = XXXX)
Replace XXXX with the employee's number.
After running this script, close dbisql, and you should now be able to edit the time card via payroll preprocessing.