Валюти

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

У кожної транзакції дві суми

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

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

Чому зберігаються обидві

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

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

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

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

Звідки беруться курси

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

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

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

Про імпортовані рядки

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

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