{% extends "admin/base.html" %} {% block page_title %}Замовлення {{ order.display_number() }}{% endblock %} {% block content %}

{% if order.order_type == 'delivery' %}🛵{% elif order.order_type == 'dine_in' %}🍽️{% else %}{{ pickup_icon(20) }}{% endif %} Замовлення {{ order.display_number() }} {{ order.status_label() }}

{% if order.status == 'cancelled' %}
❌ Замовлення скасовано {% if order.cancel_reason %}— {{ order.cancel_reason }}{% endif %}
{% else %}
{% for step in timeline %}
{% if step.state == 'done' %}✓{% endif %}
{{ step.label }}
{% if not loop.last %}
{% endif %} {% endfor %}
{% endif %}
{% if order.customer_phone %}{% endif %} {% if order.order_type == 'delivery' %} {% elif order.order_type == 'pickup' %} {% else %} {% if order.table_number %}{% endif %} {% endif %} {% if checkbox_enabled %} {% endif %} {% if order.status == 'cancelled' and order.cancel_reason %} {% endif %}
Тип{{ {'delivery': 'Доставка', 'pickup': 'Самовивіз', 'dine_in': 'У закладі'}.get(order.order_type, order.order_type) }}
Клієнт{{ order.customer_name }}
Телефон{{ order.customer_phone }}
Адреса {{ order.address_city }}{% if order.address_street %}, вул. {{ order.address_street }}{% endif %}{% if order.address_house %}, буд. {{ order.address_house }}{% endif %}{% if order.address_apartment %}, кв. {{ order.address_apartment }}{% endif %} {% if order.address_comment %}
{{ order.address_comment }}{% endif %}
Час прибуття{{ order.pickup_time }}
Столик{{ order.table_number }}
Метод оплати{{ 'Картка' if order.payment_method == 'card' else 'Готівка' }} {% if order.order_type == 'delivery' and order.payment_method == 'cash' and order.cash_change_for %} (решта з {{ order.cash_change_for }} грн){% endif %}
Оплата{{ 'Оплачено' if order.payment_status == 'paid' else 'Не оплачено' }}
Фіскальний чек {% if order.fiscal_status == 'done' %} ✅ Сформовано {% if order.fiscal_receipt_id %} ({{ order.fiscal_receipt_id }}){% endif %} {% elif order.fiscal_status == 'pending' %} ⏳ Формується… (оновіть сторінку за кілька секунд) {% elif order.fiscal_status == 'error' %} ⚠️ Помилка: {{ order.fiscal_error }} {% else %} — не сформовано {% endif %}
Створено{{ order.created_at.strftime('%d.%m.%Y %H:%M') if order.created_at else '' }}
Причина скасування{{ order.cancel_reason }}

Товари

{% for item in order.items %} {% endfor %}
ТоварК-стьЦінаСума
{{ item.product_name }} {% if tech_cards_nav_visible and item.product_id %} 📋 тех карта {% endif %} {{ item.quantity }} {{ item.product_price }} грн {{ item.line_total }} грн
Сума товарів: {{ order.items_total }} грн
{% if order.delivery_fee %}
Доставка: {{ order.delivery_fee }} грн
{% endif %} {% if order.discount_amount %}
Знижка: −{{ order.discount_amount }} грн
{% endif %} {% if order.promo_code %}
Промокод «{{ order.promo_code }}»: −{{ order.promo_discount_amount }} грн
{% endif %} {% if order.manual_discount_amount %}
Персональна знижка{{ ' («' + order.manual_discount_note + '»)' if order.manual_discount_note }}: −{{ order.manual_discount_amount }} грн
{% endif %}
Разом: {{ order.total }} грн
{% if order.rating %}
Оцінка клієнта: {{ '⭐' * order.rating }}{{ '☆' * (5 - order.rating) }} ({{ order.rating }}/5)
{% endif %}

Дії із замовленням

{% if current_user.role == 'admin' %}
✏️ Редагувати замовлення
{% endif %} {% if order.payment_method == 'cash' and order.payment_status != 'paid' %}
{% endif %} {% if checkbox_enabled and order.payment_status == 'paid' and order.fiscal_status not in ('done', 'pending') %}
{% endif %} {% if next_statuses %}
{% for s in next_statuses if s != 'cancelled' %}
{% endfor %} {% if 'cancelled' in next_statuses %} {% endif %}
{% else %}

Замовлення в кінцевому статусі — подальші дії недоступні.

{% endif %} {% if 'cancelled' in next_statuses %} {% endif %}

Ручна зміна статусу

{% if current_user.role == 'admin' %}

Небезпечна зона

Видаляє замовлення повністю й безповоротно — на відміну від скасування, воно зникне зі списків і статистики. {% if order.status != 'cancelled' and inventory_enabled %}Списану сировину буде повернуто на склад.{% endif %} {% if order.fiscal_status == 'done' %}
⚠️ По цьому замовленню вже сформовано фіскальний чек — видалення тут не скасовує сам чек у Checkbox/податковій.{% endif %}

{% endif %} {% endblock %}