In this case I would suggest you following.
1) Determine regular users and assign them Named cal. Uncheck Allow dynamic cals.
Next time if any user wan't to have access to named cal you need to add here manually.
2) Allocate document cal to a document and check allow dynamic cal, So whenever a users comes in he will be allocated a document cal. You can remove document cal if not use more then 24 hours, by this you will be generating space for another user. If at all any user come he will be allocated Document cal automatically if available.
But it is not possible to let Qlikview do step 1 automatic only if a user has no doc-call.
If a user has 1 doc-call for a document Qlikview would only allow access to that doument. So if the user tries to open an other document Qlikview should not allow this user to open that document.
Is this possible?
Automatic Named cal allocation also possible.
This is how it will check and allocate License.
1) If a named user cal is available it will use all named cals.
2) If no named cal available it will search for document cal
3) session cal
4) usage cal
If none available it will display error Access Denied.
So if you want to control this order you have to go with the solution specified above.