Питання - Відповіді (FAQ) по створення документів у Воронках

У цій статті зібрані найпопулярніші питання, які з'являються у наших користувачів під час редагування коду для документів
Написано Богдан Починок
Оновлено 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="uk"))|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="uk") }}
 {% 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') }}

Теги: шаблони документів, код документа, змінні, приклади коду
Чи була наша стаття корисною?