firstly, since you just started, remake those columns and name them startTime and endTime, you never want to have spaces in a data structure name like you have thier 'Start Time' will be more trouble than its worth later on.
Second, Your button is disabled because we set its display mode to disabled if the person using the app already has an entry in the list with no end time (they have clocked in but not clocked out) so their next clock should not be another clock in.
Judging solely by your screenshot your splist should have 4 columns
Title, startTime, endTime, and jobType
on app you can remove punch type and just leave job type, employee id and punch in / punch out
Punch in Buttons OnSelect would be (if you name your columsn exactly as I have)
your onselect of punch in would then be
Patch('Time List',
{
Title: valueOfEMployeeIDDropdown.Selected.Value,
jobType: valueOfjobTypeDropdown.Selected.Value,
startTime: currentTime
}
)
and punch ins display mode is still
If(
Sum(AddColumns('Time List', "addMe", If(Title=dropdownforemployeeid.selected.value && endTime=Blank(),1,0)), addMe)>0,DisplayMode.Disabled, DisplayMode.Edit)
displaymode for clock out button will be opposite which is
If(
Sum(AddColumns('Time List', "addMe", If(Title=dropdownforemployeeid.selected.value && endTime=Blank(),1,0)), addMe)>0,DisplayMode.Edit, DisplayMode.Disabled)
I'd also recommend setting visibility to both of these to whether or not they have selected an employee id yet, and if they have not do not show these two buttons at all.
clock out button would be something like
UpdateIf('Time List', Title=employeeIDDropdown.Selected.Value && endTime=Blank(), {endTime:currentTime})
Now somewhere on your screen throw a label and set its value to something like
Text(currentTime, "hh:mm AMPM")
so you can be sure that the current time variable is being set, and if that looks right submit a punch in