{% extends "base.html" %} {% block title %}Bestellvorschläge{% endblock %} {% block breadcrumb %}

Bestellungen / Vorschläge

{% endblock %} {% block heading %}Bestellvorschläge{% endblock %} {% block content %}
{# ============== AUS AUFTRAGSBEDARF ============== #}

Aus offenen Aufträgen (MRP)

BOM × offene Auftragsmengen − vorhandener Lagerbestand − bereits laufende Bestellungen. Nur Materialien mit Netto-Bedarf > 0 werden vorgeschlagen.

{% if demand %} {% for d in demand %} {% endfor %}
Material Verwendet in Brutto-Bedarf Bestand In Bestellung Netto-Bedarf Bestellmenge Lieferant €/kg
0 %}checked{% endif %}>
{{ d.material_name }}
{% if d.code %}
{{ d.code }}
{% endif %}
{% for o in d.orders[:3] %}{{ o }}{% if not loop.last %}, {% endif %}{% endfor %} {% if d.orders|length > 3 %} +{{ d.orders|length - 3 }}{% endif %} {{ '%.2f'|format(d.demand_qty) }} {{ d.unit }} {{ '%.2f'|format(d.stock_qty) }} {{ '%.2f'|format(d.on_order_qty) }} {{ '%.2f'|format(d.net_demand) }} {% if d.vendor_id %} {{ d.vendor_name }} {% else %} — bitte zuordnen — {% endif %} {% if d.last_unit_price %}{{ '%.2f'|format(d.last_unit_price) }}€
letzter EK {% elif d.price_per_kg %}{{ '%.2f'|format(d.price_per_kg) }}€
stamm {% else %}—{% endif %}
{% else %}
📦

Aktuell kein Material-Bedarf aus offenen Aufträgen.

Voraussetzung: Aufträge im Status „bestätigt" / „in Produktion" mit Artikeln, die eine aktive Stückliste haben.

{% endif %}
{# ============== AUS MINDESTBESTAND (alte Logik, optional) ============== #} {% if low_stock %}

Unter Mindestbestand

{{ low_stock|length }} Artikel — wird unabhängig vom Auftragsbedarf gemeldet

{% for it in low_stock[:20] %} {% endfor %}
Artikel Bestand Min Bestellt Lieferant
{{ it.ident }}
{{ it.description }}
{{ it.quantity_total }} {{ it.quantity_min }} {% if it.on_order %}{{ it.on_order }}{% else %}—{% endif %} {{ it.vendor_name or '—' }}
{% endif %} {% if demand %}
Abbrechen
{% endif %}
{% endblock %}