Шаблоны для экспорта платежей: відмінності між версіями
Sv (обговорення | внесок) Немає опису редагування |
Sv (обговорення | внесок) Немає опису редагування |
||
(Не показано 13 проміжних версій цього користувача) | |||
Рядок 1: | Рядок 1: | ||
Если вы хотите экспортировать платежи в определенном формате, например csv, вы можете создать один или несколько шаблонов. На титульной странице админки зайдите в раздел | Если вы хотите экспортировать платежи в определенном формате, например csv, вы можете создать один или несколько шаблонов. На титульной странице админки зайдите в раздел «Документы» и создайте папку с любым именем, например, «Шаблоны экспорта». В этой папке создайте файл, например, с именем «pays.csv». В этот файл вставьте следующий текст: | ||
<pre> | <pre> | ||
Рядок 8: | Рядок 8: | ||
</pre> | </pre> | ||
Нажмите на кнопку | Нажмите на кнопку «Сохранить», после чего зайдите в раздел «Платежи» и нажмите на кнопку «Экспортировать». В появившемся окне выберите файл с именем pays.csv. В результате, вы получите примерно такой вывод: | ||
<pre> | <pre> | ||
Рядок 25: | Рядок 25: | ||
creator : кто создал платеж (admin - администратор, user - пользователь, kernel - система, other - иное) | creator : кто создал платеж (admin - администратор, user - пользователь, kernel - система, other - иное) | ||
creator_id : id создателя (администратора или пользователя) | creator_id : id создателя (администратора или пользователя) | ||
creator_ip : ip создателя | creator_ip : ip создателя в виде целого числа | ||
creator_ipa : ip создателя | |||
reason : дополнительные закодированные данные платежа | reason : дополнительные закодированные данные платежа | ||
comment : комментарий к платежу | comment : комментарий к платежу | ||
Рядок 49: | Рядок 50: | ||
</pre> | </pre> | ||
Если вы экспортируете в формат csv, учтите особенности этого формата: если в поле будет символ разделитель, то поле необходимо взять в | Если вы экспортируете в формат csv, учтите особенности этого формата: если в поле будет символ разделитель, то поле необходимо взять в кавычки. Кроме этого, если в поле присутствует кавычка - ее необходимо удвоить. Для этого необходимо использовать фильтр с именем csv: | ||
<pre> | <pre> | ||
{% for i in pays %}{% one_line %} | {% for i in pays %}{% one_line %} | ||
{{i.time}},{{ i.cash }}, | {{i.time}},{{ i.cash }},{{ i.comment|csv }} | ||
{% one_line_end %} | {% one_line_end %} | ||
{% endfor %} | {% endfor %} | ||
</pre> | </pre> | ||
В выборке можно указывать условия, например, экспортируем платежи пользователей в группе | В выборке можно указывать условия, например, экспортируем платежи пользователей в группе «Пользователь» | ||
<pre> | <pre> | ||
{% for i in pays %}{% one_line %} | {% for i in pays %}{% one_line %} | ||
{% if i.user.grp_name == "Пользователь" %} | {% if i.user.grp_name == "Пользователь" %} | ||
{{i.time}},{{ i.cash }}, | {{ i.time }},{{ i.cash }},{{ i.user.login|csv }},{{ i.user.grp_name|csv }} | ||
{% endif %} | {% endif %} | ||
{% one_line_end %} | {% one_line_end %} | ||
{% | {% endfor %} | ||
</pre> | </pre> | ||
Тег {% one_line %} нужен для того, чтобы вся информации внутри него на выходе была в одну строку. | Тег {% one_line %} нужен для того, чтобы вся информации внутри него на выходе была в одну строку. | ||
Дополнительные поля клиента хранятся в user.dopdata. Чтобы получить их значения, необходимо обратиться по имени поля в базе данных (смотри настройки дополнительного поля) и добавить | Дополнительные поля клиента хранятся в user.dopdata. Чтобы получить их значения, необходимо обратиться по имени поля в базе данных (смотри настройки дополнительного поля) и добавить get(): user.dopdata.имя_поля.get(). Например: | ||
<pre> | <pre> | ||
{% for i in pays %}{% one_line %} | {% for i in pays %}{% one_line %} | ||
{% if i. | {% if i.category == 1 %} | ||
{{i.time}},{{ i.cash }}, | {{ i.time }},{{ i.cash }},{{ i.user.dopdata._adr_street.get()|csv }},{{ i.user.grp_name|csv }} | ||
{% endif %} | {% endif %} | ||
{% one_line_end %} | {% one_line_end %} | ||
{% endfor %} | {% endfor %} | ||
</pre> | |||
У абонента может быть подключено несколько услуг. Но обычно одна. Выведем первую из списка: | |||
<pre> | |||
{{ i.user.services.0.title|csv }} | |||
</pre> | </pre> |
Поточна версія на 14:44, 2 грудня 2019
Если вы хотите экспортировать платежи в определенном формате, например csv, вы можете создать один или несколько шаблонов. На титульной странице админки зайдите в раздел «Документы» и создайте папку с любым именем, например, «Шаблоны экспорта». В этой папке создайте файл, например, с именем «pays.csv». В этот файл вставьте следующий текст:
{% for i in pays %}{% one_line %} {{ i.time }},{{ i.mid }},{{ i.cash }},{{ i.category }} {% one_line_end %} {% endfor %}
Нажмите на кнопку «Сохранить», после чего зайдите в раздел «Платежи» и нажмите на кнопку «Экспортировать». В появившемся окне выберите файл с именем pays.csv. В результате, вы получите примерно такой вывод:
1455023272,15,200.00,1 1450882737,15,0.00,400 1450882493,15,0.00,400
Здесь вы получили информацию о трех платежах. В первой колонке время создания платежа в виде timestamp, во 2й - id пользователя, в 3й - сумма, в 4й - категория. Данные, которые вы выводите, находятся внутри двойных фигурных скобок. Вам доступны следующие поля:
id : id записи в таблице платежей mid : id учетной записи клиента cash : сумма платежа, если меньше нуля - списание, больше 0 - пополнение счета time : время создания платежа в виде timestamp creator : кто создал платеж (admin - администратор, user - пользователь, kernel - система, other - иное) creator_id : id создателя (администратора или пользователя) creator_ip : ip создателя в виде целого числа creator_ipa : ip создателя reason : дополнительные закодированные данные платежа comment : комментарий к платежу category : категория платежа user.name : логин user.fio : ФИО user.grp : номер группы клиента user.grp_name : имя группы user.state : on - доступ открыт, off - закрыт user.state_off : установлен если state равен off user.contract : договор user.contract_date : дата договора (timestamp) user.balance : баланс user.limit_balance : граница отключения user.block_if_limit : отключать ли запись при достижении границы отключения user.cstate : техническое состояние (настроить/ремонт/вирусы...) в виде числа user.commen : комментарий user.lstate : нужна авторизация/всегда онлайн user.discount : скидка user.dopdata : дополнительные данные user.services : подключенные услуги user.ips : ip адреса
Если вы экспортируете в формат csv, учтите особенности этого формата: если в поле будет символ разделитель, то поле необходимо взять в кавычки. Кроме этого, если в поле присутствует кавычка - ее необходимо удвоить. Для этого необходимо использовать фильтр с именем csv:
{% for i in pays %}{% one_line %} {{i.time}},{{ i.cash }},{{ i.comment|csv }} {% one_line_end %} {% endfor %}
В выборке можно указывать условия, например, экспортируем платежи пользователей в группе «Пользователь»
{% for i in pays %}{% one_line %} {% if i.user.grp_name == "Пользователь" %} {{ i.time }},{{ i.cash }},{{ i.user.login|csv }},{{ i.user.grp_name|csv }} {% endif %} {% one_line_end %} {% endfor %}
Тег {% one_line %} нужен для того, чтобы вся информации внутри него на выходе была в одну строку.
Дополнительные поля клиента хранятся в user.dopdata. Чтобы получить их значения, необходимо обратиться по имени поля в базе данных (смотри настройки дополнительного поля) и добавить get(): user.dopdata.имя_поля.get(). Например:
{% for i in pays %}{% one_line %} {% if i.category == 1 %} {{ i.time }},{{ i.cash }},{{ i.user.dopdata._adr_street.get()|csv }},{{ i.user.grp_name|csv }} {% endif %} {% one_line_end %} {% endfor %}
У абонента может быть подключено несколько услуг. Но обычно одна. Выведем первую из списка:
{{ i.user.services.0.title|csv }}