{% extends "layouts/base.twig" %} {% block title %}{{ translations.max_price_management|default('Zarządzanie maksymalnymi cenami') }}{% endblock %} {% block head %} {% endblock %} {% block page_heading %}

{{ translations.max_price_management|default('Zarządzanie maksymalnymi cenami produktów') }}

{{ translations.max_price_subtitle|default('Ustaw maksymalną cenę sprzedaży dla każdego produktu w systemie') }}

{% endblock %} {% block content %} {# ─── Pasek statystyk ─── #}
{{ translations.products|default('Produkty') }}
{{ translations.without_max_price|default('Bez ceny maks.') }}
{{ translations.avg_margin_on_max_price|default('Śred. marża (cena maks.)') }}
{# ─── Karta główna ─── #}

{{ translations.product_list|default('Lista produktów') }}

{{ translations.pricing_subtitle_hint|default('Ustaw maksymalną cenę sprzedaży dla każdego produktu') }}
{% if categories is defined and categories|length > 0 %}
{# ── Wiersz 1: grupy kolumn ── #} {# ── Wiersz 2: nazwy kolumn ── #} {% for category in categories %} {% for product in category.products %} {%- set raw = product.getRecipeCostGross()|default(0) -%} {%- set maxP = product.getMaxPortionPrice()|default(0) -%} {%- set expMargin = product.getExpectedMargin()|default(0) -%} {%- set margeOnMax = product.calcMargeOnMaxPrice() -%} {%- set targetPrice = product.getTargetPriceForExpectedMargin() -%} {# ── Nazwa ── #} {# ── Koszt produkcji ── #} {# ── VAT ── #} {# ── Oczekiwana marża ── #} {# ── Maks. cena sprzedaży (edytowalna) ── #} {# ── Marża od ceny maks. ── #} {% endfor %} {% endfor %}
{{ translations.product|default('Produkt') }} {{ translations.cost_section|default('Koszt') }} {{ translations.expected_margin_section|default('Oczek. marża') }} {{ translations.max_price_section|default('Maksymalna cena') }}
{{ translations.production_cost|default('Koszt prod.') }} {{ translations.vat|default('VAT') }} {{ translations.max_sale_price|default('Maks. cena') }} {{ translations.margin_on_max|default('Marża') }}
{{ category.name }} {{ category.products|length }}
{{ product.getName() }} {% if product.getIsVegetarian() %} 🌿 {% endif %} {% if raw > 0 %} {{ raw|number_format(2, ',', ' ') }} {% else %} {% endif %} {{ product.getTaxValPerc() }}% {% if expMargin > 0 %} {{ expMargin|number_format(0, ',', ' ') }}% {% else %} {% endif %}
{# Podpowiedź: cena wyliczona z oczekiwanej marży #} {% if targetPrice is not null %}
{{ translations.for_expected_margin|default('Dla') }} {{ expMargin|number_format(0) }}%: {{ targetPrice|number_format(2, ',', ' ') }}
{% endif %}
{% if margeOnMax is not null %} {%- set margeRounded = margeOnMax|round(0) -%} {%- set cls = margeRounded >= 50 ? 'marge-good' : (margeRounded >= 20 ? 'marge-ok' : 'marge-bad') -%} {{ margeRounded }}% {# delta względem oczekiwanej #} {% if expMargin > 0 %} {%- set delta = margeRounded - expMargin|round(0) -%}
{{ delta >= 0 ? '+' : '' }}{{ delta }}pp
{% endif %} {% else %} {% endif %}

{{ translations.no_results|default('Brak wyników dla podanych filtrów') }}

{% else %}
{{ translations.no_products|default('Brak produktów') }}
{% endif %}
{# ── Legenda ── #}
{{ translations.legend|default('Legenda:') }} ≥50%{{ translations.legend_good|default('Wysoka marża') }} 20-49%{{ translations.legend_ok|default('Dobra marża') }} <20%{{ translations.legend_bad|default('Niska marża') }} —%{{ translations.legend_target|default('Oczekiwana marża') }} +Xpp / −Xpp {{ translations.legend_delta|default('odchylenie od oczekiwanej marży') }}
{% endblock %} {% block scripts %} {% endblock %}