You wont be able to edit shift in following situations:-
Shift is invoiced
You will not be able to edit shift, if client's invoice has been generated from that shift. Once invoice is generated, it blocks the shift from further changes. If for any reason you want to make changes, then you need to void invoice. This will open the shift for you to edit.
Shift is Cancelled