mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-28 13:40:57 +00:00
Merge pull request #459 from Tria-plc/CutomerTruckAssign
Cutomer truck assign Fields: Truck Plate Number, Driver Name, Truck Type, Container Number to Load (now the Select I just wired) → Verify & Submit Assignment.
This commit is contained in:
@@ -1086,6 +1086,9 @@ export class BookingTransitionService {
|
||||
offeredAmount: number;
|
||||
paymentDeadline: Date;
|
||||
} | null;
|
||||
/** Flat list of physical container numbers on this booking (for the
|
||||
* customer truck-assignment container picker). */
|
||||
containerNumbers: string[];
|
||||
}
|
||||
> {
|
||||
// This enrichment runs AFTER the transition has committed. A failure here
|
||||
@@ -1141,12 +1144,20 @@ export class BookingTransitionService {
|
||||
`enrichBookingResponse: batch-offer lookup failed for ${booking.id}: ${(err as Error).message}`,
|
||||
);
|
||||
}
|
||||
// Physical container numbers entered at booking time (booking_container
|
||||
// units), flattened for the customer truck-assignment container picker.
|
||||
const containerNumbers = (booking.bookingContainers ?? [])
|
||||
.flatMap((bc) => bc.units ?? [])
|
||||
.map((unit) => unit.containerNumber)
|
||||
.filter((n): n is string => Boolean(n));
|
||||
|
||||
return {
|
||||
...booking,
|
||||
latestChangeRequestNote: note?.note ?? null,
|
||||
contractSummary: summary,
|
||||
nextStep,
|
||||
activeBatchOffer,
|
||||
containerNumbers,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1265,7 +1265,9 @@ export class TrainSchedulingService {
|
||||
performedBy: 'DOCUMENT_GENERATION',
|
||||
});
|
||||
const html = this.buildImportLoadListHtml(loadList);
|
||||
const buffer = await this.pdfDocuments.htmlToPdfBuffer(html);
|
||||
// Generic render — NOT the release-order fallback (would mislabel this as a
|
||||
// gate-clearance / release order when Chromium is unavailable).
|
||||
const buffer = await this.pdfDocuments.renderDocumentHtml(html, 'Import marshalling / load list');
|
||||
const reference = loadList.trainNumber ?? loadList.trainScheduleId;
|
||||
return {
|
||||
filename: `import-marshalling-${this.safeDocumentName(reference)}.pdf`,
|
||||
@@ -1283,7 +1285,8 @@ export class TrainSchedulingService {
|
||||
}
|
||||
|
||||
const html = this.buildExportLoadListHtml(schedule);
|
||||
const buffer = await this.pdfDocuments.htmlToPdfBuffer(html);
|
||||
// Generic render — NOT the release-order fallback (see importLoadListDocument).
|
||||
const buffer = await this.pdfDocuments.renderDocumentHtml(html, 'Export marshalling / load list');
|
||||
const reference = schedule.trainNumber ?? schedule.id;
|
||||
return {
|
||||
filename: `export-marshalling-${this.safeDocumentName(reference)}.pdf`,
|
||||
|
||||
@@ -20,6 +20,18 @@ export class WarehouseReleaseDocumentService {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Render arbitrary document HTML to PDF via the shared renderer WITHOUT the
|
||||
* release-order fallback. Non-release documents (e.g. the import/export
|
||||
* marshalling load list) must use this so a Chromium-less fallback degrades to
|
||||
* a plain-text dump of *their own* content — instead of masquerading as a
|
||||
* "Warehouse Gate Clearance / Release Order", which the release-specific
|
||||
* fallback would otherwise draw regardless of the input HTML.
|
||||
*/
|
||||
renderDocumentHtml(html: string, label = 'Document'): Promise<Buffer> {
|
||||
return this.pdf.htmlToPdfBuffer(html, { label });
|
||||
}
|
||||
|
||||
private htmlToBasicPdfBuffer(html: string): Buffer {
|
||||
const doc = this.extractReleaseDocument(html);
|
||||
const body: string[] = [
|
||||
|
||||
Reference in New Issue
Block a user