{% macro app_pill(source_app) -%}
{% if source_app == 'tools' %}
WK
{% elif source_app == 'management' %}
LG
{% else %}
{{ source_app }}
{% endif %}
{%- endmacro %}
{% macro item_type_badge(t) -%}
{%- set cls = {
'tool': 'badge-blue', 'measuring_equipment': 'badge-purple', 'clamping': 'badge-blue',
'material': 'badge-emerald', 'consumable': 'badge-amber', 'packaging': 'badge-neutral',
'other': 'badge-neutral'
} -%}
{{ item_type_label(t) }}
{%- endmacro %}
{% macro action_badge(code, name) -%}
{%- set cls = {
'rent': 'badge-blue', 'return': 'badge-emerald',
'order': 'badge-amber', 'receive': 'badge-emerald',
'stock_in': 'badge-emerald', 'stock_out': 'badge-amber',
'rebook': 'badge-neutral', 'inventory': 'badge-neutral',
'scrap': 'badge-red',
} -%}
{{ name or code }}
{%- endmacro %}
{% macro order_status_badge(s) -%}
{%- set cls = {'open': 'badge-amber', 'received': 'badge-emerald', 'closed': 'badge-neutral', 'cancelled': 'badge-red'} -%}
{{ order_status_label(s) }}
{%- endmacro %}
{% macro avatar(first_name, last_name, photo=None) -%}
{%- set initials = (first_name[0] if first_name else '?') ~ (last_name[0] if last_name else '') -%}
{%- if photo -%}
{%- else -%}
{{ initials }}
{%- endif -%}
{%- endmacro %}
{% macro money(value) -%}
{%- if value is none -%}—{%- else -%}
{{ "{:,.2f}".format(value).replace(",", "X").replace(".", ",").replace("X", ".") }} €
{%- endif -%}
{%- endmacro %}
{# v1.8.0: PDF-Sprach-Picker (DE/EN/FR) für Beleg-Detailseiten.
entity = "quotes"|"sales-orders"|"invoices"|"delivery-notes"
eid = numerische ID
current_lang = aktuell auf dem Beleg gespeicherte Sprache (default 'de')
#}
{% macro pdf_lang_picker(entity, eid, current_lang="de") -%}
{%- set cl = (current_lang or 'de')[:2] -%}
{{ hint }}
{% endif %}{{ subtitle or "Bilder, Zeichnungen, PDF-Skizzen — max. 8 MB pro Datei" }}
{{ a.filename.split('.')[-1].upper() }}
{{ hint }}
{% endif %}{{ description }}
{% endif %} {% if workflow %}{{ workflow }}
{% endif %} {% if ctas %}{{ subtitle }}
{% endif %} {% if badges %}