{% extends "base.html" %} {% from "_macros.html" import money %} {% block title %}Angebote{% endblock %} {% block heading %}Angebote{% endblock %} {% block topbar_actions %}
Alle {% for code, label in STATUS_LABELS.items() %} {{ label }} {% endfor %}
+ Neues Angebot {% endblock %} {% block content %}
{% if quotes %} {% endif %} {% if quotes %}
{% for q in quotes %} {% endfor %}
Angebots-Nr Datum Kunde Land Gültig bis Pos. Brutto Status Konvertiert
{{ q.quote_no }} {{ q.quote_date }} {{ q.customer_name_snapshot }} {{ q.customer_country_iso_snapshot or '—' }} {{ q.valid_until or '—' }} {{ q.line_count }} {{ money(q.total_gross) }} {{ q.currency }} {{ STATUS_LABELS.get(q.status, q.status) }} {% if q.converted_sales_order_id %}→ #{{ q.converted_sales_order_id }}{% else %}—{% endif %} Öffnen
{% else %} {% from "_macros.html" import empty_state %} {% if status_filter %} {{ empty_state( icon='🔍', title='Keine Angebote mit Status „' ~ STATUS_LABELS.get(status_filter, status_filter) ~ '"', description='Mit dem aktuellen Filter sind keine Angebote sichtbar.', ctas=[ {'label': 'Filter zurücksetzen', 'href': '/quotes', 'primary': True}, {'label': '+ Neues Angebot', 'href': '/quotes/new'}, ], ) }} {% else %} {{ empty_state( icon='💼', title='Noch keine Angebote', description='Aus einer Anfrage erstellst du ein Angebot — mit Positionen, Preisen, Lieferzeit und Konditionen. Per PDF an den Kunden senden, bei Annahme: in einen Auftrag wandeln.', workflow='📥 Anfrage → 💼 Angebot → 📋 Auftrag → 🏭 Werkstatt → 📦 Versand → 🧾 Rechnung', ctas=[ {'label': '+ Erstes Angebot anlegen', 'href': '/quotes/new', 'primary': True}, {'label': 'Aus Anfrage erstellen', 'href': '/inquiries'}, {'label': '📚 Handbuch (DE)', 'href': '/handbuch/de/pdf', 'external': True}, ], ) }} {% endif %} {% endif %} {% if quotes %} {% endif %} {% endblock %}