If I say a project is Capital, but make the tasks Expense because I don't want to capitalize labor, the task code overwrites the project code. Will the reports still reflect the non-labor Capital costs under the Capital Cost Center?
All transactions are recorded to a Task (among other financial elements). You already have the labor being recorded to an Expense Task. To have the Non-labor be recorded (and reported) to Capital, either the Cost Type of the Task must be set to Capital, or the Task must be directly under the Project or a Summary Task/Phase that is set to Capital.
The logic in determining what value to use for a transaction reads from the bottom up in the project hierarchy:
If the Cost Type on the Task is set to a value (Capital or Operating), that value is used. If the Cost Type is blank, the logic looks to the next level up in the WBS.
If that level is, for instance, a summary task, and its Cost Type has a value, then that value is used for the sub-task with a blank Cost Type. If that level has a blank Cost Type, the logic looks to the next level up.
The logic will continue to search each level up for a value until it reaches the Project level. Since Cost Type is a required field at the Project level, there will always be a Cost Type value for every transaction.
So - if you have a simple project WBS structure with no indentures (no summary tasks or phases) on the project, and the task that you select for charging the non-labor to has no Cost Type value, and if the Project is set with a Cost Type of Capital, the non-labor charges will be recorded and reported as Capital.
Thanks for your feedback and explanation John. It was helpful and answered my question.