Ah yes, the measure will suppress nulls in the dimension so there needs to be a record created where none exists.
If you want a quick fix you could try adding a statement in your measure like:
if(sum([To Warehouse] > 0, sum([To Warehouse], 0)
In your load script you could add the missing hours to your table with a dummy value of "0" for Warehouse and Staging columns. Just be careful. If you're aggregating with counts then this will artificially add rows. If it's sums then it is okay.
After loading your data tables take the Hours data and concatenate it to the bottom like:
// Add this section below your table that holds Hours and your measures.