import { useState } from 'react'; import { Box, Typography, Paper, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Chip, FormControl, InputLabel, Select, MenuItem, CircularProgress, } from '@mui/material'; import { useQuery } from '@tanstack/react-query'; import { useNavigate } from 'react-router-dom'; import { bestellungApi } from '../../services/bestellung'; import { shopApi } from '../../services/shop'; import { BESTELLUNG_STATUS_LABELS, BESTELLUNG_STATUS_COLORS } from '../../types/bestellung.types'; import { SHOP_STATUS_LABELS, SHOP_STATUS_COLORS } from '../../types/shop.types'; import type { BestellungStatus } from '../../types/bestellung.types'; import type { ShopAnfrageStatus } from '../../types/shop.types'; function BestellungenTab() { const navigate = useNavigate(); const [statusFilter, setStatusFilter] = useState(''); const { data: orders, isLoading: ordersLoading } = useQuery({ queryKey: ['admin-bestellungen', statusFilter], queryFn: () => bestellungApi.getOrders(statusFilter ? { status: statusFilter } : undefined), }); const { data: requests, isLoading: requestsLoading } = useQuery({ queryKey: ['admin-shop-requests'], queryFn: () => shopApi.getRequests({ status: 'offen' }), }); const formatCurrency = (value?: number) => value != null ? new Intl.NumberFormat('de-AT', { style: 'currency', currency: 'EUR' }).format(value) : '–'; return ( {/* Pending Shop Requests */} {(requests?.length ?? 0) > 0 && ( Offene Shop-Anfragen ({requests?.length}) {requestsLoading ? ( ) : ( # Anfrager Status Erstellt am {(requests ?? []).map((req) => ( navigate('/shop?tab=2')} > {req.id} {req.anfrager_name || '–'} {new Date(req.erstellt_am).toLocaleDateString('de-AT')} ))}
)}
)} {/* Orders Overview */} Bestellungen Status {ordersLoading ? ( ) : ( Bezeichnung Lieferant Status Positionen Gesamt Erstellt am {(orders ?? []).length === 0 ? ( Keine Bestellungen ) : ( (orders ?? []).map((order) => ( navigate(`/bestellungen/${order.id}`)} > {order.bezeichnung} {order.lieferant_name || '–'} {order.items_count ?? 0} {formatCurrency(order.total_cost)} {new Date(order.erstellt_am).toLocaleDateString('de-AT')} )) )}
)}
); } export default BestellungenTab;