You can execute execute a Groovy script just before usual handling of timesheet submission/revoke and stop the submission process by returning an error message. Returned message will be shown to user submitting/revoking his/her timesheet. If you don’t return anything from this script normal submission workflow will run and if everything is okey, user’s timesheet will be submitted/revoked.
Within this script you can access Jira services, WorklogPRO services and services from other plugins. You can use TimesheetApprovalRequest parameter to access values submitted by the user.