feat(agrarmonitor): fehlende Lieferantennummern vergeben
Build and Push Multi-Platform Images / build-and-push (push) Successful in 1m1s
Build and Push Multi-Platform Images / build-and-push (push) Successful in 1m1s
Neuer Bereich „Lieferantennummern überprüfen“ in den Agrarmonitor- Einstellungen. Er vergibt allen aktiven Lieferanten ohne Lieferantennummer eine fortlaufende Nummer im Schema 1555xxxx, ab der höchsten vergebenen Nummer (Inaktive zählen mit, Altlasten werden ignoriert). - Vorschau „Lieferant → neue Nummer“, geschrieben wird erst nach Bestätigung; Einzelmodus zum Testen an einem Lieferanten - formData wird wie in der Weboberfläche aus #form_detail aufgebaut, nur die Lieferantennummer ändert sich - Dublettencheck über vorhanden.php, Erfolgskontrolle durch Neuladen des Details, Abbruch beim ersten Fehler - Lauf im Hintergrund mit Status-Abfrage (wegen Proxy-Timeouts), Listenfilter werden danach zurückgesetzt - HTML-Parsing mit cheerio, Unit-Tests für Parser und Vergabe-Ablauf Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
029009182a
commit
3d4125b29a
11 files changed
+1507
-3
No files matched your search
@@ -258,6 +258,46 @@ export interface SyncCorrespondentsResult {
|
||||
conflicts: SyncConflict[];
|
||||
}
|
||||
|
||||
export interface LieferantennummerKandidat {
|
||||
kundeId: number;
|
||||
name: string;
|
||||
neueNummer: string;
|
||||
}
|
||||
|
||||
export interface LieferantennummerVorschau {
|
||||
maximum: number;
|
||||
naechsteNummer: number;
|
||||
kandidaten: LieferantennummerKandidat[];
|
||||
}
|
||||
|
||||
export type LieferantennummerEintragStatus = 'vergeben' | 'uebersprungen' | 'pruefen' | 'fehler';
|
||||
|
||||
export interface LieferantennummerEintrag {
|
||||
kundeId: number;
|
||||
name: string;
|
||||
status: LieferantennummerEintragStatus;
|
||||
nummer?: string;
|
||||
hinweis?: string;
|
||||
}
|
||||
|
||||
export interface LieferantennummerLaufErgebnis {
|
||||
modus: 'alle' | 'einzeln';
|
||||
gestartetAm: string;
|
||||
beendetAm: string | null;
|
||||
gesamt: number;
|
||||
vergeben: number;
|
||||
uebersprungen: number;
|
||||
zuPruefen: number;
|
||||
fehler: number;
|
||||
abgebrochen: boolean;
|
||||
eintraege: LieferantennummerEintrag[];
|
||||
}
|
||||
|
||||
export interface LieferantennummerStatus {
|
||||
aktiv: boolean;
|
||||
lauf: LieferantennummerLaufErgebnis | null;
|
||||
}
|
||||
|
||||
export const agrarmonitorApi = {
|
||||
getStatus: () =>
|
||||
api.get<AgrarmonitorStatusData>('/api/agrarmonitor/status').then((r) => r.data),
|
||||
@@ -277,4 +317,18 @@ export const agrarmonitorApi = {
|
||||
api.post<SyncCorrespondentsResult>('/api/agrarmonitor/sync-correspondents').then((r) => r.data),
|
||||
mergeCorrespondents: (keepId: number, deleteId: number) =>
|
||||
api.post<{ mergedDocuments: number }>('/api/agrarmonitor/merge-correspondents', { keepId, deleteId }).then((r) => r.data),
|
||||
getLieferantennummernStatus: () =>
|
||||
api.get<LieferantennummerStatus>('/api/agrarmonitor/lieferantennummern/status').then((r) => r.data),
|
||||
lieferantennummernVorschau: () =>
|
||||
api
|
||||
.post<LieferantennummerVorschau>('/api/agrarmonitor/lieferantennummern/vorschau', {}, { timeout: 120_000 })
|
||||
.then((r) => r.data),
|
||||
lieferantennummernVergeben: (startNummer: number, nurKundeId?: number) =>
|
||||
api
|
||||
.post<LieferantennummerStatus>(
|
||||
'/api/agrarmonitor/lieferantennummern/vergeben',
|
||||
{ startNummer, nurKundeId },
|
||||
{ timeout: 120_000 },
|
||||
)
|
||||
.then((r) => r.data),
|
||||
};
|
||||
Reference in new issue
Block a user