Add a status to Job Cost Codes so they can be closed when work is finished. Then hide those cost codes so they can't be selected in transactions. This would have 2 benefits. There would be less chance of miscoding transactions and there would be less options to choose from so less scrolling to find codes