ЧАВО по созданию документов для воронок

В этой статье собраны самые популярные вопросы, которые появляются у наших пользователей при редактировании кода для документов
Автор Владислав Пономарь
Обновлено 2 месяца назад
Важно! Если у вас возникают вопросы, как взаимодействовать с переменными при редактировании документов, вы можете найти ответы в документации twig. Доступные теги, фильтры и функции описаны в нашем справочнике.

1. Как добавить отображение сегодняшней даты?

{{ "now"|date("d.m.Y") }}

2. Как добавить к переменной даты создания карточки + n-ное количество дней?

{{ model.created_at|date_modify("+180 day")|date("m.d.Y")}}

3. Как заменить отражение валюты переменной из UAH на грн?

В базовых шаблонах переменные прописаны следующим образом:

{{ product_price|format_currency('UAH', locale='uk') }}

Чтобы заменить отображение валюты на «грн», достаточно удалить |format_currency('UAH', locale='uk') и просто вынести «грн» за фигурные скобки:

{{ product_price }} грн

4. Как изменить формат даты создания карточки с 2022-12-22 12:12:12 на более привычный 22 декабря 2022 г.?

Задаем параметры для создания нужной переменной:

{% set mnths = ['','января','февраля','марта','апреля','мая','июня','июля', 'августа','сентября','октября','ноября','декабря'] %}

После этого в нужном месте прописываем самую переменную:

{{ model.created_at|date("j") }} {{ mnths[model.created_at|date("n")] }} {{ model.created_at|date("Y") }} г.

5. Как подтянуть картинку из товара в шаблон?

<img src="{{ product.picture }}" height="100">

6. Как вывести отражение суммы за товары прописью?

{% set gtc = model.products_sum|round(0, 'floor') %}
{% set gtr = model.products_sum * 100 % 100 %}

<strong>{{ ((gtc|format_number(style="spellout", locale="ru"))|capitalize) }}
{% set currencySuffix = (gtc % 100 >= 11 and gtc % 100 <= 14) ? 'гривен' : (gtc % 10 == 1) ?
'гривня' : (gtc % 10 >= 2 and gtc % 10 <= 4) ? 'гривны' : 'гривен' %}
{{ currencySuffix }}

{{ gtr|format_number(locale="ru") }}
 {% set centsSuffix = (gtr % 100 >= 11 and gtr % 100 <= 14) ? 'копеек' : (gtr % 10 == 1) ?
 'копійка' : (gtr % 10 >= 2 and gtr % 10 <= 4) ? 'копейки' : 'копеек' %}
{{ centsSuffix }}</strong>

7. Как вывести информацию об оплате с карточки?

Чтобы добавить информацию об оплате в документ, необходимо использовать цикл for. Он позволяет получить список всех оплат, которые есть в карточке, и вывести данные нужных вам переменных.

Пример списка всех оплат из карточки с доступными для вывода переменными:

{% for payment in model.payments %}
    {{ payment.payment_date }} - дата и время платежа
    {{ payment.type }} - тип оплаты
    {{ payment.status }} - статус оплаты
    {{ payment.amount }} - сумма оплаты
    {{ payment.description }} - описание
{% endfor %}

Пример вывода всех записей об оплате способом «Банковская карта» в карточке в статусе «Оплачено» с указанием только даты и суммы:

{% for payment in model.payments %}
    {% if payment.type == "Банковская карта" %}
        {% if payment.status == "paid" %}
            Дата и время оплаты: {{ payment.payment_date }}<br>
            Сумма оплаты: {{ payment.amount|format_currency('UAH', locale='uk') }}
        {% endif %}
    {% endif %}
{% endfor %}

8. Как вывести оставшуюся до оплаты сумму?

Вами уже оплачено: {% for payment in model.payments %}
{% if payment.status == "paid" %}{{ payment.amount|format_currency('UAH', locale='uk') }}, {% endif %}{% endfor %}

{% set paid_amount = 0 %}
{% for payment in model.payments %}
{% if payment.status == "paid" %}
{% set paid_amount = paid_amount + payment.amount %}
{% endif %}
{% endfor %}
Остаток к оплате: {{ ( model.products_sum  - paid_amount)|format_currency('UAH', locale='uk') }}

9.  Как вывести копейки для переменных цены или суммы?

Вы можете в переменную добавить форматирование валюты:

{{ model.products_sum|format_currency('UAH', locale='uk') }}

Или форматирование для вывода 2-х знаков после запятой:

{{ model.products_sum|number_format(2, ',', '') }}

10. Как добавить округление цен?

Если требуется математическое округление до меньшего или большего: 

{{ model.products_sum|round }} 

Если нужно округление всегда до большего:

{{ model.products_sum|round(0, 'floor') }}

Если нужно округление всегда до меньшего: 

{{ model.products_sum|round(0, 'ceil') }}

Теги: шаблоны документов, код документа, переменные, примеры кода
Оцените эту статью