feat(ausruestung): catalog-driven item tracking, im_haus in overview, order quantity override, fix stale queries

This commit is contained in:
Matthias Hochmeister
2026-04-15 10:20:36 +02:00
parent 633a75cb0b
commit 279cc03b6b
10 changed files with 195 additions and 114 deletions

View File

@@ -214,6 +214,7 @@ export default function BestellungDetail() {
mutationFn: ({ status, force }: { status: string; force?: boolean }) => bestellungApi.updateStatus(orderId, status, force),
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['bestellung', orderId] });
queryClient.invalidateQueries({ queryKey: ['bestellungen'] });
showSuccess('Status aktualisiert');
setStatusConfirmTarget(null);
setStatusForce(false);
@@ -225,6 +226,7 @@ export default function BestellungDetail() {
mutationFn: (data: BestellpositionFormData) => bestellungApi.addLineItem(orderId, data),
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['bestellung', orderId] });
queryClient.invalidateQueries({ queryKey: ['bestellungen'] });
setNewItem({ ...emptyItem });
setSelectedKatalogItem(null);
setKatalogEigenschaften([]);
@@ -238,6 +240,7 @@ export default function BestellungDetail() {
mutationFn: (itemId: number) => bestellungApi.deleteLineItem(itemId),
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['bestellung', orderId] });
queryClient.invalidateQueries({ queryKey: ['bestellungen'] });
setDeleteItemTarget(null);
showSuccess('Position gelöscht');
},
@@ -249,6 +252,7 @@ export default function BestellungDetail() {
bestellungApi.updateReceivedQty(itemId, menge),
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['bestellung', orderId] });
queryClient.invalidateQueries({ queryKey: ['bestellungen'] });
},
onError: () => showError('Fehler beim Aktualisieren'),
});
@@ -257,6 +261,7 @@ export default function BestellungDetail() {
mutationFn: (file: File) => bestellungApi.uploadFile(orderId, file),
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['bestellung', orderId] });
queryClient.invalidateQueries({ queryKey: ['bestellungen'] });
showSuccess('Datei hochgeladen');
},
onError: () => showError('Fehler beim Hochladen der Datei'),
@@ -266,6 +271,7 @@ export default function BestellungDetail() {
mutationFn: (fileId: number) => bestellungApi.deleteFile(fileId),
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['bestellung', orderId] });
queryClient.invalidateQueries({ queryKey: ['bestellungen'] });
setDeleteFileTarget(null);
showSuccess('Datei gelöscht');
},
@@ -276,6 +282,7 @@ export default function BestellungDetail() {
mutationFn: (data: ErinnerungFormData) => bestellungApi.addReminder(orderId, data),
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['bestellung', orderId] });
queryClient.invalidateQueries({ queryKey: ['bestellungen'] });
setReminderForm({ faellig_am: '', nachricht: '' });
setReminderFormOpen(false);
showSuccess('Erinnerung erstellt');
@@ -287,6 +294,7 @@ export default function BestellungDetail() {
mutationFn: (reminderId: number) => bestellungApi.markReminderDone(reminderId),
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['bestellung', orderId] });
queryClient.invalidateQueries({ queryKey: ['bestellungen'] });
},
onError: () => showError('Fehler beim Aktualisieren'),
});
@@ -295,6 +303,7 @@ export default function BestellungDetail() {
mutationFn: (reminderId: number) => bestellungApi.deleteReminder(reminderId),
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['bestellung', orderId] });
queryClient.invalidateQueries({ queryKey: ['bestellungen'] });
setDeleteReminderTarget(null);
showSuccess('Erinnerung gelöscht');
},
@@ -351,6 +360,7 @@ export default function BestellungDetail() {
}
}
await queryClient.invalidateQueries({ queryKey: ['bestellung', orderId] });
queryClient.invalidateQueries({ queryKey: ['bestellungen'] });
showSuccess('Änderungen gespeichert');
setEditMode(false);
setEditItemsData({});