Двойная запись придумана как раз с целью правильного ведения учета. При двойной записи никакая сумма не может взяться «из ниоткуда», или быть переведена «в никуда». А такие вещи как проект, сотрудник, банковский счет и т.д. - являются аналитикой внутри транзакции. Соответственно, есть аналитика дебетовая, а есть кредитовая.
При таком подходе описанных проблем не будет.
Начисление оплаты по проекту (Выписывание счета)
Снимаем деньги с регистра проекта (Баланс проекта уходит в минус) (projects.ledger_id)
?? Но куда их переводим
Если вам сделали работ по проекту на 100 рублей, значит проект подорожал на эти 100 рублей. Значит вам нужно два счета - на одном учитывать стоимость проекта, а на другом - расходы.