Of questionable use, but - OP here: I've had a report out since summer that acounting seems to be satisifed with.
Logic for addresses is below. Note: I use Synapse Link, so all my logic is based on F&O tables, as opposed to entities.
For the labor address
Joining PROJEMPLTRANSSALE to LogisticsPostalAddress
ON PROJEMPLTRANSSALE.[PMIPWorkLocationAddressID] = LogisticsPostalAddress.[Location]
AND PROJEMPLTRANS.TRANSDATE BETWEEN LogisticsPostalAddress.[ValidFROM] and LogisticsPostalAddress.[ValidTO]
^ the fact that column starts with PMIP, I think means it's a custom one developed by our ERP partner, so may not be useful for others.
For the subproject address
Joining Projtable to LOGISTICSPOSTALADDRESS
on Projtable.[DeliveryLocation] -= LOGISTICSPOSTALADDRESS.[Location]
For the Toplevel Project address
Then I'm repeating the Project address logic again, but this time, for the topmost project of the subproject. Same idea, just travel from subproject to parent project, then do the same address logic.
And in the end delivering all 3 - the Labor Address, Subproject Address, and Toplevel project address. Which folks are...doing stuff with.
For Revenue...we have our own logic for what counts, that I bet is completely unique to our setup.