fix: match correspondents by Kundennummer (KD-prefix) in addition to Lieferantennummer
Build and Push Multi-Platform Images / build-and-push (push) Successful in 29s
Build and Push Multi-Platform Images / build-and-push (push) Successful in 29s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -486,10 +486,13 @@ export class AgrarmonitorPollingService implements OnModuleInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const customers = await amClient.fetchCustomers();
|
const customers = await amClient.fetchCustomers();
|
||||||
const lieferantMap = new Map<string, number>();
|
const lieferantMap = new Map<string, number>(); // lieferantennummer → AM-ID
|
||||||
|
const kundenMap = new Map<string, number>(); // kundennummer → AM-ID
|
||||||
for (const c of customers) {
|
for (const c of customers) {
|
||||||
const nr = String(c['lieferantennummer'] ?? '').trim();
|
const liefNr = String(c['lieferantennummer'] ?? '').trim();
|
||||||
if (nr) lieferantMap.set(nr, Number(c.id));
|
if (liefNr) lieferantMap.set(liefNr, Number(c.id));
|
||||||
|
const kdNr = String(c['kundennummer'] ?? '').trim();
|
||||||
|
if (kdNr) kundenMap.set(kdNr, Number(c.id));
|
||||||
}
|
}
|
||||||
|
|
||||||
const allCorrespondents: any[] = [];
|
const allCorrespondents: any[] = [];
|
||||||
@@ -501,15 +504,23 @@ export class AgrarmonitorPollingService implements OnModuleInit {
|
|||||||
page++;
|
page++;
|
||||||
}
|
}
|
||||||
|
|
||||||
const lieferantRegex = /\((\d+)\)$/;
|
const lieferantRegex = /\((\d+)\)$/; // reine Zahl → Lieferantennummer
|
||||||
|
const kundenRegex = /\(KD(\d+)\)$/; // KD-Prefix → Kundennummer
|
||||||
let matched = 0;
|
let matched = 0;
|
||||||
let unmatched = 0;
|
let unmatched = 0;
|
||||||
|
|
||||||
for (const corr of allCorrespondents) {
|
for (const corr of allCorrespondents) {
|
||||||
const m = lieferantRegex.exec(corr.name as string);
|
const name = corr.name as string;
|
||||||
if (!m) { unmatched++; continue; }
|
let amId: number | undefined;
|
||||||
|
|
||||||
|
const kdMatch = kundenRegex.exec(name);
|
||||||
|
if (kdMatch) {
|
||||||
|
amId = kundenMap.get(kdMatch[1]);
|
||||||
|
} else {
|
||||||
|
const liefMatch = lieferantRegex.exec(name);
|
||||||
|
if (liefMatch) amId = lieferantMap.get(liefMatch[1]);
|
||||||
|
}
|
||||||
|
|
||||||
const amId = lieferantMap.get(m[1]);
|
|
||||||
if (amId === undefined) { unmatched++; continue; }
|
if (amId === undefined) { unmatched++; continue; }
|
||||||
|
|
||||||
let setting = await this.corrSettingRepo.findOneBy({ CorrespondentId: corr.id as number });
|
let setting = await this.corrSettingRepo.findOneBy({ CorrespondentId: corr.id as number });
|
||||||
|
|||||||
Reference in New Issue
Block a user