В ретейле есть удобные печатные формы заказа на все случаи жизни, но нам нужна еще форма с отображением состояния каждого товара в заказе.
Ее можно создать из обычной формы заказа «Лист заказа», заменив:
{% for product in order.availableOrderProducts %}
на
{% for product in order.orderProducts %}
чтобы в форму попали не только доступные, но все товары.
Далее добавляем колонку резерва и выводим состояние
<td>{{product.status}}</td>
Итого имеем удобную форму резерва товаров по заказу.
Мы сейчас используем такую:
<!DOCTYPE html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <style type="text/css"> body { font-size: 12pt; font-family: arial, helvetica; } h1 { font-size: 16pt; font-weight: normal; } .info { margin-top: 10px; margin-bottom: 20px; } .info > div { margin: 7px 5px; } .info div span { font-weight: bold; padding-left: 5px; } table { width: 100%; border-spacing: 0; border-collapse: collapse; } table td{ border-bottom: 1px solid black; } table thead td { text-align: left; font-weight: bold; font-size: 10pt; } .numeric, table thead td .numeric { text-align: right; } .empty { text-align: center; } .bold { font-weight: bold; } hr { margin: 20px 0; border: 1px solid black; } .sub-head { font-size: 13pt; font-weight: bold; margin-bottom: 12px; } .ft-lf, .ft-rg { width: 50%; display: inline-block; margin-left: 0; margin-right: 0; padding-left: 0; padding-right: 0; } .ft-lf { width: 50%; float: left; } .ft-rg { width: 40%; float: right; } .clear { clear: both; } </style> </head> <body> <h1>Заказ <b>{{ order.number }}</b></h1> <hr> <div class="info ft-lf"> <div class="sub-head">ПОКУПАТЕЛЬ</div> {% if order.lastName %} <div>Фамилия: <span>{{ order.lastName }}</span></div> {% endif %} {% if order.firstName %} <div>Имя: <span>{{ order.firstName }}</span></div> {% endif %} {% if order.patronymic %} <div>Отчество: <span>{{ order.patronymic }}</span></div> {% endif %} {% if order.phone %} <div>Телефон: <span>{{ order.phone }}</span></div> {% endif %} </div> <div class="info ft-rg"> {% if order.orderType %} <div>Тип заказа: <span>{{ order.orderType.name }}</span></div> {% endif %} {% if order.manager %} <div>Менеджер: <span>{{ order.manager.nickName }}</span></div> {% endif %} </div> <div class="clear"></div> <div class="info ft-lf"> <div class="sub-head">ДОСТАВКА</div> {% if order.deliveryType %} <div>Тип: <span>{{ order.deliveryType.name }}</span></div> {% endif %} {% if order.deliveryAddress %} <div>Адрес доставки: <span>{{ order.deliveryAddress.fullAddressString }}</span></div> {% if order.deliveryDate or not order.deliveryTime.empty %} <div>Время доставки: {% if order.deliveryDate %}<span>{{ order.deliveryDate|date('d.m.Y') }}</span>{% endif %} {{ order.deliveryTime -}} </div> {% endif %} {% endif %} {% if order.deliveryCost %} <div>Стоимость: <span>{{ order.deliveryCost|price('', null, false) }}</span></div> {% endif %} </div> {% if order.paymentType or order.paymentStatus %} <div class="info ft-rg"> <div class="sub-head">ОПЛАТА</div> {% if order.paymentType %} <div>Тип: <span>{{ order.paymentType.name }}</span></div> {% endif %} {% if order.paymentStatus %} <div>Статус: <span>{{ order.paymentStatus.name }}</span></div> {% endif %} </div> {% endif %} <div class="clear"></div> <div class="sub-head">СОСТАВ ЗАКАЗА</div> <table> <thead> <tr> <td>Артикул</td> <td>Товар</td> <td style="text-align: right;">Цена</td> <td style="text-align: right;">Кол-во</td> <td style="text-align: right;">Стоимость</td> <td style="text-align: right;">Статус</td> </tr> </thead> <tbody> {% for product in order.orderProducts %} <tr> <td{% if not product.offer.article %} class="empty"{% endif %}> {% if product.offer.article %} {{ product.offer.article }} {% else %} -- {% endif %}</td> <td>{{ product }}</td> <td class="numeric">{{ product.initialPrice|price('', null, false) }}</td> <td class="numeric">{{ product.quantity|number_format(0, '', ' ') }}</td> <td class="numeric">{{ product.summ|price('', null, false) }}</td> <td>{{product.status}}</td> </tr> {% endfor %} </tbody> </table> <div class="info ft-rg" style="text-align:right;"> <br> <div>Сумма по товарам: <span>{{ order.summ|price('', null, false) }}</span></div> <br> {% if order.discount %} <div>Скидка на заказ: <span>{{ order.discount|price('', null, false) }}</span></div> {% endif %} {% if order.discountPercent %} <div>Скидка на заказ: <span>{{ order.discountPercent|number_format(0, '', ' ') }} %</span></div> {% endif %} {% if order.deliveryCost %} <div>Стоимость доставки: <span>{{ order.deliveryCost|price('', null, false) }}</span></div> {% endif %} <br> <div>Итого: <span>{{ order.totalSumm|price('', null, false) }}</span></div> </div> </body> </html>