Есть похожая проблема: совершённый перевод с внебюджетного реального счета (копилка сына) счета на бюджетный (мамин кошелек) увеличивает ханимани, а запланированный перевод обратно (мама же должна вернуть, когда разменяет крупную купюру в магазине) - не ставит деньги в резерв, или куда бы то ни было. Ханимани, которых по факту не должно быть, потому что мы сегодня же выведем эту сумму из бюджета, продолжают висеть.
Ильдар просит помощи в выборе правильного алгоритма обработки этой ситуаци.
Я считаю так: входящий перевод увеличивает хани вполне справедливо. Исходящий же при планировании совершенно точно должен ставиться в резервы. Это выглядит нелогично, но это очень логично 
Ну и соответственно при исполнении он списывает деньги из резерва... А ты потом сам разбираешься с нетривиальной ситуацией как хочешь: хочешь восполняешь резерв из хани, или с какого-то фонда. На вкус.
Фактически вывод денег из бюджета это трата, конечно. Но от реальной траты она отличиается тем, что НЕ должна по отчетам быть тратой и что у нее есть аспект перевода, в том смысле что небюджетный счет все-таки должен увеличиться.
Проблему бы гибко решилась (как мне кажется), если бы мы перестали разделять переводы на виртуальные и реальные, а так же как в тратах и доходах имели в виду одновременно ОБА разреза. И кошельки и виртуальные резделители (фонды, резервы, хани).
А пока - однозначно ставить запланированные переводы на небюджетные счета в резерв, чтобы не возникало иллюзии, что вдруг много денег откуда-то взялось и тебе за это ничего не будет 