Kontrolle: AB ohne Projekt im Rechnungsdialog für Anzahlung und Schluss wählbar
Der Server (rechnungsbau.js, baueAbRechnung) nimmt Anzahlung und Schlussrechnung ohne Projekt an. Unter 'Ohne Projekt' lädt der Dialog die ABs des Kunden ohne Projekt und ihre Rechnungen; frei bleibt die Vorgabe. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
79f230ea2c
commit
4b184f744f
4 files changed
+88
-12
No files matched your search
@@ -1,10 +1,10 @@
|
||||
// Hooks des Rechnungsdialogs: Projektliste, Projektkonto, Vorschau, Tickets des Kunden und Arbeitsblätter weiterer Tickets.
|
||||
// Überall zählt nur die jüngste Antwort; nach dem Ausbau eines Hooks zählt keine mehr.
|
||||
import { useCallback, useEffect, useRef, useState } from 'react'
|
||||
import { getProjektkonten, getProjektkonto, getSettings, previewInvoice } from '../lib/financeApi'
|
||||
import { getInvoices, getProjektkonten, getProjektkonto, getSettings, listAuftraege, previewInvoice } from '../lib/financeApi'
|
||||
import { getAbgerechnet } from '../lib/teamApi'
|
||||
import { listKundenTickets, listTicketBlaetter } from '../lib/rechnungDialogApi'
|
||||
import { blattAusAppwrite } from '../lib/rechnungDialogView'
|
||||
import { blattAusAppwrite, ohneProjektAbDaten } from '../lib/rechnungDialogView'
|
||||
import { createRequestGuard } from '../lib/requestGuard'
|
||||
|
||||
const VORSCHAU_WARTEZEIT_MS = 350
|
||||
@@ -87,6 +87,21 @@ export function useProjektkontoDetail(projektId) {
|
||||
return useGeladen(() => getProjektkonto(projektId), projektId, 'Das Projektkonto konnte nicht geladen werden.')
|
||||
}
|
||||
|
||||
/**
|
||||
* ABs ohne Projekt und ihre Rechnungen für „Ohne Projekt“ im Rechnungsdialog: { auftraege, rechnungen }. Geladen wird nur,
|
||||
* wenn `aktiv` wahr ist (Schalter an und „Ohne Projekt“ gewählt).
|
||||
*/
|
||||
export function useOhneProjektAbs(kundeId, aktiv) {
|
||||
return useGeladen(
|
||||
async () => {
|
||||
const [abs, rechnungen] = await Promise.all([listAuftraege(kundeId), getInvoices({ status: 'alle', kunde: kundeId })])
|
||||
return ohneProjektAbDaten(abs, rechnungen)
|
||||
},
|
||||
aktiv ? kundeId : '',
|
||||
'Die Aufträge konnten nicht geladen werden.'
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* Vorschau der Rechnung zum Körper der Anfrage. `vorschau = { key, status: 'laedt' | 'ok' | 'fehler', daten?, message?, httpStatus? }`.
|
||||
* Der Körper wird über einen Ref gelesen, der Effekt hängt nur an [aktiv, schluessel]; nach 350 ms Ruhe geht die Anfrage raus.
|
||||
|
||||
Reference in new issue
Block a user