diff --git a/frontend/src/pages/Ausruestungsanfrage.tsx b/frontend/src/pages/Ausruestungsanfrage.tsx
index e5ad503..3285a75 100644
--- a/frontend/src/pages/Ausruestungsanfrage.tsx
+++ b/frontend/src/pages/Ausruestungsanfrage.tsx
@@ -108,7 +108,11 @@ function MeineAnfragenTab() {
{formatOrderId(r)}
{r.bezeichnung || '-'}
- {r.im_haus ? : null}
+
+ {r.im_haus && r.geliefert_count != null && r.positionen_count != null && r.geliefert_count < r.positionen_count
+ ?
+ : r.im_haus ? : null}
+
{r.positionen_count ?? r.items_count ?? '-'}
{r.positionen_count != null && r.positionen_count > 0
@@ -219,7 +223,11 @@ function AlleAnfragenTab() {
{r.bezeichnung || '-'}
{r.fuer_benutzer_name || r.anfrager_name || r.anfrager_id}
- {r.im_haus ? : null}
+
+ {r.im_haus && r.geliefert_count != null && r.positionen_count != null && r.geliefert_count < r.positionen_count
+ ?
+ : r.im_haus ? : null}
+
{r.positionen_count ?? r.items_count ?? '-'}
{r.positionen_count != null && r.positionen_count > 0
diff --git a/frontend/src/pages/AusruestungsanfrageDetail.tsx b/frontend/src/pages/AusruestungsanfrageDetail.tsx
index 8a6e355..954bde8 100644
--- a/frontend/src/pages/AusruestungsanfrageDetail.tsx
+++ b/frontend/src/pages/AusruestungsanfrageDetail.tsx
@@ -218,9 +218,13 @@ export default function AusruestungsanfrageDetail() {
{anfrage && (
<>
- {detail?.im_haus && (
-
- )}
+ {detail?.im_haus && (() => {
+ const total = detail.positionen.length;
+ const delivered = detail.positionen.filter(p => p.geliefert).length;
+ return total > 0 && delivered < total
+ ?
+ : ;
+ })()}
p.einzelpreis != null && Number(p.einzelpreis) > 0);
- const allItemsReceived = positionen.length === 0 || positionen.every(p => Number(p.erhalten_menge) >= Number(p.menge));
+ const allItemsReceived = positionen.length > 0 && positionen.every(p => Number(p.erhalten_menge) >= Number(p.menge));
+ const anyItemReceived = positionen.some(p => Number(p.erhalten_menge) > 0);
// All statuses except current, for force override
const ALL_STATUSES: BestellungStatus[] = ['entwurf', 'wartet_auf_genehmigung', 'bereit_zur_bestellung', 'bestellt', 'teillieferung', 'lieferung_pruefen', 'abgeschlossen'];
@@ -1205,15 +1206,19 @@ export default function BestellungDetail() {
})
.map((s) => {
const isReject = bestellung.status === 'wartet_auf_genehmigung' && s === 'entwurf';
+ const isApprove = bestellung.status === 'wartet_auf_genehmigung' && s === 'bereit_zur_bestellung';
const label = isReject ? 'Ablehnen' : BESTELLUNG_STATUS_LABELS[s];
- const color = isReject ? 'error' : 'primary';
+ const color = isReject ? 'error' : isApprove ? 'success' : 'info';
const isAbgeschlossen = s === 'abgeschlossen';
return (