The Expense code type will drive availability for entry on transactions. If the Internal project field is chosen on the expense code then that expense code would be visible in entry screens if the user has chosen a project of 'Internal' on the project chard. Do the same logic for Direct expenses. Also include the option to choose ALL projects on the expense code so it will be in the PV list regardless of which project is chosen