Как я уже говорил, сейчас я занимаюсь переносом данных программы из собственного формата в SQLite. Это очень удобный момент для того, чтобы предусмотреть в структуре данных какие-то дальнейшие ее доработки. И одна из таких доработок, которую мне хотелось бы сделать, это реализовать неоднократно пробегавшие в хотелках сплиты. А еще лучше, сделать что-то, что будет полезнее сплитов.
Свои идеи на эту тему я уже писал в форуме, но, наверное, имеет смысл их повторить.
Сплит, в том виде, как он реализован в большинстве других программ, это просто возможность разбить расходную операцию на некоторое количество "подопераций". Классический пример: чек из магазина разбивается на маленькие покупки - пиво и водка отдельно от хлеба и молока. Ну или по конкретным товарным позициям. Традиционный сплит не позволяет скомбинировать вместе две операции, скажем, операцию перевода и операцию расхода, что могло бы быть полезным, например, для автоматического удержания комиссии (расход) при снятии наличных через банкомат (перевод).
Поэтому я предпочел бы реализовывать не сплиты, а так называемые "составные операции". Составная операция, это группа объединенных вместе обычных операций, в том числе операций разного типа, приходные, расходные, переводы и даже операции остатка.
Пока я думаю применить к составным операциям следующие правила:
1. Все операции, входящие в составную операцию должны иметь одну и ту же дату (и время, если включен режим) выполнения.
2. Повторяющаяся операция может быть либо обычной операцией, либо составной. Невозможно будет установить режим повторения для операции, которая является частью составной операции.
3. Иерархия внутри составной операции не предусматривается. То есть, не будет ограничений на количество операций входящих в составную, но внутри составной операции будет линейный список обычных операций. Никаких папок внутри составной операции и подпапок.
Я понимаю, что приведенные выше "правила" по сути являются ограничениями. Поэтому у меня появился вопрос:
Сможет ли кто-нибудь привести пример, в котором приведенные выше правила (ограничения) будут сильно мешать?
Спасибо.