{{ "now"|date("d.m.Y") }}
{{ model.created_at|date_modify("+180 day")|date("m.d.Y")}}
В базовых шаблонах переменные прописаны следующим образом:
{{ product.product_price|format_currency('UAH', locale='uk') }}
Чтобы заменить отображение валюты на «грн», достаточно удалить |format_currency('UAH', locale='uk')
и просто вынести «грн» за фигурные скобки:
{{ product.product_price }} грн
Задаем параметры для создания нужной переменной:
{% set mnths = ['','января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря'] %}
После чего в нужном месте прописываем саму переменную:
{{ model.created_at|date("j") }} {{ mnths[model.created_at|date("n")] }} {{ model.created_at|date("Y") }} г.
{{ model.shipping_date_actual|date("d.m.Y") }}
Этот способ позволяет подтянуть только самый первый файл (картинку) из заказа:
<img src="{{ model.files }}" height="100">
Задаем параметры для создания нужной переменной:
{% set total_discount = 0 %}
{% for key, product in model.products %}
{% if product.product_discount > 0 %}
{% set total_discount = product.product_discount * product.product_quantity + total_discount %}
{% endif %}
{% endfor %}
После чего в нужном месте прописываем саму переменную:
{{(total_discount) |format_currency('UAH', locale='uk')}}
{% set gtc = model.grand_total|round(0, 'floor') %}
{% set gtr = model.grand_total * 100 % 100 %}
{{ (gtc|format_number(style="spellout", locale="uk"))|capitalize }}
{% if gtc % 10 == 1 and gtc % 100 != 11 %}
гривня
{% elseif (gtc % 10 == 2 or gtc % 10 == 3 or gtc % 10 == 4) and (gtc % 100 != 12 or gtc % 100 != 13 or gtc % 100 != 14) %}
гривні
{% else %}
гривень
{% endif %}
{{ gtr|format_number(style="spellout", locale="uk") }}
{% if gtc % 10 == 1 and gtc % 100 != 11 %}
копійка
{% elseif (gtc % 10 == 2 or gtc % 10 == 3 or gtc % 10 == 4) and (gtc % 100 != 12 or gtc % 100 != 13 or gtc % 100 != 14) %}
копійки
{% else %}
копійок
{% endif %}
{{ model.barcode|raw }}
Чтобы добавить информацию об оплатах в документ, нужно использовать цикл «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 %}
Что бы добавить в печатную форму расчет суммы по формуле:
Остаток к оплате = Сумма за товары - Скидка к заказу + Стоимость доставки - Сумма оплат
Добавьте вот этот код в место, где хотите вывести эту сумму:
{% set paid_amount = 0 %}
{% for payment in model.payments %}
{% if payment.status == "paid" %}
{% set paid_amount = paid_amount + payment.amount %}
{% endif %}
{% endfor %}
Остаток к оплате = {{ (model.total_price - model.discount_amount + model.shipping_price - paid_amount)|format_currency('UAH', locale='uk') }}
Чтобы выделить определенные товары, они должны отличаться по какому-либо параметру. Тогда в шаблоне печати по заказу можно настроить вывод только нужных вам товаров.
Вы можете выделить, например, услуги, добавив им свое поле – переключатель. И просто проставить его в товарах, которые как раз являются услугами.
Далее уже в шаблоне печати к услугам нужно добавить проверку, что переключатель активирован. Если он активирован – то только эти товары будут выведены:
{% if product.код-своего-поля and product.код-своего-поля|length %} ... {% endif %}
Соответственно для другой формы, где не нужно выводить услуги, добавить:
{% if not product.код-своего-поля or product.код-своего-поля|length == 0 %} ... {% endif %}
Вы можете к переменной добавить форматирование валюты:
{{ product.price_sold|format_currency('UAH', locale='uk') }}
Или форматирование для вывода 2-х знаков после запятой:
{{ product.price_sold|number_format(2, ',', '') }}
Переменная {{model.shipping_status}} по умолчанию выводит статусы доставки на английском языке, поэтому чтобы вывести их русские названия, используйте код:
{% if model.shipping_status == 'invoice' %}Создана накладная
{% elseif model.shipping_status == 'transit' %}В пути
{% elseif model.shipping_status == 'pickup' %}Прибыл в отделение
{% elseif model.shipping_status == 'delivered' %}Доставлено
{% elseif model.shipping_status == 'cash_on_delivery' %}Доставлено, нал. платеж в пути
{% elseif model.shipping_status == 'cash_recived' %}Доставлено, нал. платеж получен
{% elseif model.shipping_status == 'return' %}Возвращается
{% elseif model.shipping_status == 'returned' %}Возвращено
{% elseif model.shipping_status == 'disposal' %}Утилизация
{% elseif model.shipping_status == 'refused' %}Ошибка доставки
{% endif %}
Если необходимо математическое округление до меньшего или большего:
{{ model.grand_total|round|format_currency(currency, locale='de') }}
Если необходимо округление всегда до большего:
{{ model.grand_total|round(0, 'floor')|format_currency(currency, locale='de') }}
Если необходимо округление всегда до меньшего:
{{ model.grand_total|round(0, 'ceil')|format_currency(currency, locale='de') }}