Как создать транзакцию при помощи интента?
Fingen позволяет принимать широковещательные интенты c параметрами и создавать на их основе транзакции.
Обязательные параметры интента должны быть следующими:
- Target - broadcast receiver.
- Action - com.yoshione.fingen.intent.action.CREATE_TRANSACTION
Данные транзакции нужно передавать как string extra. Эти данные необязательны:
- account- название счета
- payee- название получателя/плательщика
- dest_account - название счета получателя в случае перевода
- category- название категории
- type- тип транзакции. Действителен только при указании суммы. Может принимать значения: "-1" - расход; "0" - перевод; "1" - приход
- amount- сумма, например "100.50". Знак не важен, так как определяется типом транзакции. Если данный параметр задается без указания шаблона, то обязательно указание типа транзакции.
- project- название проекта
- location- название местоположения
- comment- комментарий
- show_editor - принудительно открыть транзакцию в редакторе, даже если она пригодна для автоматического создания. Для этого необходимо задать этот параметр = "1"
- template- к транзакции будет применен указанный шаблон. При этом параметры из интента имеют более высокий приоритет чем параметры из шаблона.
- datetime- строка, содержащая дату и время транзакции. Если не указан параметр формата даты, то считается что используется формат "yyyy-MM-dd_HH:mm:ss" (например, 2016-11-01_12:00:00").
- dtformat- формат записи даты и времени. Используются правила форматирования дат, принятые в языке Java.
Автоматическое создание
Транзакция будет создана в фоновом режиме, если будут правильно заполнены следующие данные:
- account
- payee (или dest_account для перевода)
- category - только для прихода и расхода. Категорию можно не задавать, тогда приложение попробует определить ее автоматически на основании последней транзакции по данному получателю.
- type
- amount
иначе будет открыт редактор транзакции, через который можно указать недостающие данные. Редактор можно вызвать принудительно указав параметр show_editor "1".
Пример создания через Tasker
Для создания транзакций через Tasker можно воспользоваться двумя разными задачами.
Send intent- наиболее простой способ, но ограничен только тремя полями для ввода extra данных о транзакции.
Пример заполнения полей (если значение не указано ниже, то поле нужно оставить пустым):
- Action - com.yoshione.fingen.intent.action.CREATE_TRANSACTION
- Cat - none
- Extra - сюда нужно вводить данные о транзакции в формате "ключ:значение". Например, "account:Наличные" или "type:1". Ковычки вводить не нужно, регистр не важен.
- Target - Broadcast Receiver
Run shell - данный метод подходит не только для таскера, через shell можно создавать транзакции, например, по ADB. Пример команды для создания транзакции может выглядеть так:
am broadcast -a com.yoshione.fingen.intent.action.CREATE_TRANSACTION --es account "Наличные" --es payee "Получатель" --es category "Продукты" --es type "-1" --es amount "97.51" --es comment "Комментарий" --es show_editor "1"
Нежелательно наличие пробелов в данных транзакции, так как на некоторых версиях андроида такой интент может не запустится.
Created with the Personal Edition of HelpNDoc: Create help files for the Qt Help Framework