+2
Under review

Складні транзакції або чеки

Вадим Кирилюк 11 ár síðan updated by Sergey Ratz 11 ár síðan 3

Ідея вже була озвучена раніше і навіть була якось реалізована, але не зовсім так, як пропонувалось користувачами. Обговорення ідеї було фактично закрите, як реалізованої, тому спробую створити новий тред і описати ідею ще раз, щоб пояснити відмінність пропозиції і реалізації.

З точки зору програмної моделі, думаю, є смисл для реалізації розділити поняття "Транзакція" та "Витрата". "Транзакція" може містити в собі від однієї до безлічі "Витрат". По категоріям розбиваються тільки "Витрати". У виписках по рахунках показувати "Транзакції" (щоб легко було звіряти із банківськими виписками). Діаграми аналізу (напр. кругову діаграму), відповідно, будувати на основі витрат.
Ну і, звісно, було б добре, щоб по кліку (чи просто hover, це вже треба думати) на "Транзакцію" можна було подивитись список витрат, із яких вона складається, а також із "Витрати" можна було лего дістатись до "Транзакції", що її містить.

Ще один корисний нюанс, який був озвучений у згаданому потоці полягає у тому, що "Витрата" може фактично бути переказом на інший рахунок (був гарний приклад із п'янкою на трьох). Тому, із урахуванням цієї можливості, "Транзакція" могла б містити, "Витрати" і "Перекази". "Перекази" звісно, на звіти і графіки аналізів не впливають і фігурують тільки у виписках по рахунку.

-2

​Именно так и работает реализованная функция "Разделить". Вводите общую суму и дробите её на расходы и переводы. И не надо плодить новых сущностей.

+3

Не зовсім. Коли суму "Розділити" на витрати та перекази, то початкова транзакція, фактично, зникає. Наведу приклад для ясності.
Наприклад, я розрахувався у супермаркеті картою на 200 грн. Куплені товари:

М'ясо - 100 грн.
Пральний порошок - 20 грн.
Дитяча піжама - 50 грн.
Пляшка для товариша (потім віддасть гроші) - 30 грн.

З одного боку, мені зручно, якщо ця транзакція у 200 грн. залишиться неподіленою, щоб можна було легко звірити базу HomeMoney із випискою із банку. З іншого - для точнішого аналізу витрат мені потрібно розділити цю транзакцію на три категорії (Харчі, Одяг, Господарчі товари), а також один переказ на рахунок товариша.
У поточній реалізації функціоналу "Розділити" після розділення будь-яка згадка про одинарну транзакцію у 200 грн. зникає із бази HomeMoney і замість однієї транзакції в 200 грн. з'являється три у 100, 20 і 50 і один переказ на 30.
Сподіваюсь, тепер нюанс зрозумілий. Готовий відповісти на подальші запитання.

+1
Полностью поддерживаю Вадима.

С точки зрения движения средств транзакция в текущей реализации привязана к РАСХОДАМ, в то время, как в общем понимании транзакция должна принадлежать перемещению средств. Т.е. когда я трачу с карточки я имею перемещение средств в 1000 грн (к примеру), которое является транзакцией. И если я эту сумму теряю, я потом не понимаю, что происходит. А кога я могу разделить в рамках транзакции на внутренние статьи, то это и правильнее и понятне (хотя сложнее)