How do you find the way back to which project journal lines upon which a project invoice is based?
ProjInvoiceTable only holds the Invoice Id while ProjInvoiceJour table holds the Invoice id, Proposal id as well as Project Id. These fields can also be found in ProjProposalJour table, so you may just as well use that, unless there is some specific value which you need from there. If you want to check if the proposal has been invoiced, you can check the LineProperty value.
From there on you either need to know which type of project journal that was used to post the cost or check them all. The tables used are ProjProposalCost, ProjProposalEmpl, ProjProposalItem, ProjProposalOnAcc, ProjProposalRevenue and they all have a corresponding Detail table.
The last step is the ProjJournalTrans table. For all the other tables you can find the relations on the tables to see which fields are used to link records. This one can not be found on the Relations node. The field TransId holds the relation between the ProjProposal… tables and the ProjJournalTrans table.