Your problem is here:
new Timecard_integration__c (
Name = tc.Id,
CurrencyIsoCode= tc.CurrencyIsoCode ));
hoursEntered.get(j) is a record, but Decimal.valueOf can only work on certain data types, such as a String or an Integer. You need to specify which value you're ...
You should be using a Custom Permission. Your validation could then look like:
Not(Or($Permission.EditObjectXRecords, $User.Id = OwnerId))
Alternately, consider setting your Organization Wife Defaults to Read Only, then assign the Modify All Data (Object X) permission to the profiles or a Permission Set.
No, there's no way to set this with a script. Metadata deployments can only access "public" information. Almost anything in My Personal Information are not accessible, including using default record types, email signatures, etc.
Emmanuel, as you've confirmed... if you want to use the Lightning Page framework for mobile, you must enable the Mobile on Lightning Permission: https://releasenotes.docs.salesforce.com/en-us/summer19/release-notes/rn_general_new_mobile_app_pilot.htm.
In case this link goes away... one ultimately needs to add the "Lightning on Mobile" System Permission to ...