Транзакції

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

Що таке транзакція

Транзакція означає один рух грошей. У ній записані сума, валюта цієї суми, дата, гаманець, через який гроші пройшли, і коментар, якщо він вам потрібен. Усі інші цифри в SavingStat складаються з таких записів.

Насправді сум у ній дві, а не одна: скільки рух коштував у власній валюті і скільки вийшло у валюті гаманця. Поки валюти збігаються, а так буває здебільшого, це одне й те саме число. Стаття Валюти пояснює, чому зберігаються обидві суми, а не одна, конвертована з іншої.

Що ще міститься в транзакції, залежить від того, до якого з трьох типів вона належить.

Три типи

Тип каже, яким був рух, і від нього залежить, що ще може містити запис.

  • Витрата: гроші виходять. Вона містить один або кілька рядків витрати, і саме в рядку сидять категорія, бюджет і, за бажанням, подія. Вони належать рядку, а не платежу загалом.
  • Дохід: гроші надходять. Він містить джерело доходу, з якого гроші прийшли, і теж може називати подію.
  • Переказ: гроші переходять між двома вашими гаманцями. Він містить гаманець-отримувач і суму, яка справді туди дійшла: її ви вводите самі, а не отримуєте конвертованою.

У переказу немає ні категорії, ні бюджету. Нічого не зароблено й нічого не куплено, тож позначати нічого, а запису нікуди це покласти. Про решту читайте в статті Як записати переказ.

Статус відповідає на інше запитання

Тип і статус лежать на двох різних осях, і транзакція завжди має по одному значенню на кожній. Тип каже, яким був рух. Статус каже, на якому етапі запис. Чернетка витрати поєднує обидва: витрата на одній осі, чернетка на іншій. Знаючи одне, ви ще не знаєте іншого.

Чернетка означає, що рядок з’явився з імпорту і ще не опублікований. Він лежить поза вашими даними: у списку транзакцій його немає, і жоден баланс гаманця через нього не змінився. Вийти з цього стану можна лише публікацією, і дороги назад немає.

Завершено означає звичайний стан усього іншого. Доходи й перекази потрапляють туди одразу після публікації: у них не лишається нічого, що треба дорахувати.

Решта три стосуються лише витрат, і всі три зводяться до тієї самої арифметики: чи дають рядки витрати суму самої транзакції. Очікує означає, що рядки не дають нічого взагалі, зазвичай тому, що жодному з них ще не поставили суму. Частково означає, що вони дають менше за платіж. Понад бюджет означає, що більше. Остання назва вводить в оману: вона не про вміст бюджету, і жоден бюджет її не спричиняє. Докладніше про це в статті Бюджети.

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

Розподіл одного платежу

Один платіж часто покриває кілька речей. Похід у супермаркет наполовину складається з продуктів, а наполовину з чогось для квартири; один платіж карткою може половиною належати одному бюджету, а половиною іншому. Саме тому витрата тримає рядки, а не одну категорію: у кожного рядка власна сума і власні категорія, бюджет, подія та коментар.

Рядки живуть на сторінці самої транзакції в блоці Деталі витрати: там рядок можна відкрити й виправити, вилучити або додати поруч ще один.

Саме ці рядки й читають три арифметичні статуси. Вони не оцінюють ваші витрати, а повідомляють, чи сходиться зроблений вами розподіл із платежем, з якого він походить. Підженіть рядки під суму, і транзакція покаже «Завершено».

Файли, прикріплені до транзакції

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

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

Бюджет у цьому правилі береться з самої транзакції, а ставить його імпорт, коли розкладає рядок. Транзакція, введена вручну, тримає бюджет у рядках витрати, а їх це правило не читає.

Перемикач бачить лише власник. Учасники отримують спільні рядки й нічого більше, тож перемикати їм нічого. Імпорт виставляє його за вас, і по-різному залежно від виду файлу: скан чека прикріплюється спільним, а файл виписки приватним, адже в ньому далеко не один рядок.