{% extends "base.html" %} {% from "_macros.html" import money, avatar %} {% block title %}To-Do — {{ td.today }}{% endblock %} {% block breadcrumb %}

Heute · {{ td.today }}

{% endblock %} {% block heading %}To-Do{% endblock %} {% block topbar_actions %} {{ td.total_count }} {% if td.total_count == 1 %}Punkt{% else %}Punkte{% endif %} offen {% endblock %} {% block content %} {% if td.total_count == 0 %}

Inbox Zero. Heute steht nichts mehr offen.

Alle Termine, Rechnungen und Lieferungen sind aktuell — guter Tag, um Backlog abzuarbeiten.

{% endif %} {# ============= 1. EILAUFTRÄGE & HOCHPRIORITÄT ============= #} {% if td.rush_orders %}

🔥 Eilaufträge & Hochpriorität

Sofort kümmern

{% for o in td.rush_orders %} {% endfor %}
AuftragKundeLieferterminPrioritätWertStatus
{{ o.order_no }} {{ o.customer }} {{ o.due_date or '—' }} {{ PRIORITY_LABELS.get(o.priority, o.priority) }} {{ money(o.total_gross) }} {{ o.currency }} {{ SO_STATUS_LABELS.get(o.status, o.status) }}
{% endif %} {# ============= 2. ÜBERFÄLLIGE RECHNUNGEN ============= #} {% if td.overdue_invoices %}

💸 Überfällige Rechnungen

Mahnung schreiben oder Zahlung verfolgen

{% for inv in td.overdue_invoices %} {% set open_amt = (inv.total_gross or 0) - (inv.paid_amount or 0) %} {% endfor %}
RechnungKundeFälligTage überOffen
{{ inv.invoice_no }} {{ inv.customer }} {{ inv.due_date }} {{ "%.0f"|format(inv.days_late) }} T {{ money(open_amt) }} {{ inv.currency }}
{% endif %} {# ============= 3. RECHNUNGEN HEUTE FÄLLIG ============= #} {% if td.due_today_invoices %}

📅 Rechnungen heute fällig

{% for inv in td.due_today_invoices %} {% set open_amt = (inv.total_gross or 0) - (inv.paid_amount or 0) %} {% endfor %}
RechnungKundeOffen
{{ inv.invoice_no }} {{ inv.customer }} {{ money(open_amt) }} {{ inv.currency }}
{% endif %} {# ============= 4. AUFTRÄGE LIEFERTERMIN HEUTE ============= #} {% if td.orders_due_today %}

🚚 Aufträge mit Liefertermin heute

{% for o in td.orders_due_today %} {% endfor %}
AuftragKundePrioritätStatusWert
{{ o.order_no }} {{ o.customer }} {% if o.priority and o.priority != 'normal' %}{{ PRIORITY_LABELS.get(o.priority, o.priority) }}{% else %}—{% endif %} {{ SO_STATUS_LABELS.get(o.status, o.status) }} {{ money(o.total_gross) }} {{ o.currency }}
{% endif %} {# ============= 5. LIEFERUNGEN HEUTE VERSENDEN ============= #} {% if td.ship_today %}

📦 Heute versenden

Lieferscheine mit Versanddatum heute

{% for d in td.ship_today %} {% endfor %}
LieferscheinAuftragKundeVersandStatus
{{ d.dn_no }} {{ d.order_no or '—' }} {{ d.customer }} {{ d.carrier or '—' }} {{ DN_STATUS_LABELS.get(d.status, d.status) }}
{% endif %} {# ============= 6. AUFTRÄGE 1-3 TAGE ============= #} {% if td.orders_due_soon %}

📌 Aufträge in den nächsten 3 Tagen

Vorausschauend

{% for o in td.orders_due_soon %} {% endfor %}
AuftragKundeLieferterminPrioritätStatus
{{ o.order_no }} {{ o.customer }} {{ o.due_date }} {% if o.priority and o.priority != 'normal' %}{{ PRIORITY_LABELS.get(o.priority, o.priority) }}{% else %}—{% endif %} {{ SO_STATUS_LABELS.get(o.status, o.status) }}
{% endif %} {# ============= 7. OFFENE ANFRAGEN ============= #} {% if td.open_inquiries %}

📨 Offene Anfragen

Beantworten oder als Angebot anlegen

{% for i in td.open_inquiries %} {% endfor %}
Nr.EingangTage offenQuelleBetreffKunde
{{ i.inquiry_no }} {{ i.created_at[:10] }} {{ "%.0f"|format(i.days_open) }} T {{ INQ_SOURCE_LABELS.get(i.source, i.source) }} {{ i.subject }} {{ i.customer or '—' }}
{% endif %} {# ============= 8. ANGEBOTE LAUFEN AUS ============= #} {% if td.expiring_quotes %}

⏳ Angebote laufen demnächst aus

Nachfassen oder verlängern

{% for q in td.expiring_quotes %} {% endfor %}
AngebotKundeGültig bisWert
{{ q.quote_no }} {{ q.customer }} {{ q.valid_until }} {{ money(q.total_gross) }} {{ q.currency }}
{% endif %} {# ============= 9. PAUSIERTE FERTIGUNGSAUFTRÄGE ============= #} {% if td.paused_jobs %}

⏸ Pausierte Fertigungsaufträge

Klären und weiterlaufen lassen

{% for j in td.paused_jobs %} {% endfor %}
JobAuftrag / KundeMaschineFortschrittPausiert seit
{{ j.ident }} {% if j.order_no %}{{ j.order_no }} · {{ j.customer }}{% else %}—{% endif %} {{ j.machine or '—' }} {{ j.qty_done }} / {{ j.qty_target }} {{ j.paused_at[:16] if j.paused_at else '—' }}
{% endif %} {# ============= 10. MATERIAL FEHLBESTAND ============= #} {% if td.material_shortage_orders %}

📭 Aufträge mit Material-Fehlbestand

Bestellung anstoßen

{% for o in td.material_shortage_orders %} {% endfor %}
AuftragKundeLieferterminNotiz
{{ o.order_no }} {{ o.customer }} {{ o.due_date or '—' }} {{ o.material_note or '—' }}
{% endif %} {# ============= 11. URLAUB HEUTE ============= #} {% if td.vacation_today %}

🌴 Urlaub heute

Wer ist abwesend

{% for v in td.vacation_today %} {% endfor %}
MitarbeiterVonBisHeuteNotiz
{{ v.first_name }} {{ v.last_name }} {{ v.start_date }} {{ v.end_date }} {% if v.event == 'starts' %}startet {% elif v.event == 'ends' %}letzter Tag {% else %}abwesend{% endif %} {{ v.note or '—' }}
{% endif %} {# ============= 12. PRÜFMITTEL ÜBERFÄLLIG ============= #} {% if td.inspections_overdue %}

🔍 Prüfmittel überfällig

Kalibrierung / DGUV V3

{% for i in td.inspections_overdue %} {% endfor %}
ArtikelBeschreibungTage über
{{ i.ident }} {{ i.description }} {{ "%.0f"|format(i.days_late) }} T
{% endif %} {% endblock %}