Good point that I should enhance the documentation.  The intention is to leave that to the dao implementation because the business rules may vary at different institutions.  For BYU for instance, they want to allow that situation but return a message to the user because their business process allows a user to self-correct (externally) when they punch into a job code twice or punch into two different job codes.  However if the user punches out to punch in again then it goes through a manager review process that they want to minimize.