@flowselections/floriday-afhandeling-module 1.0.31 → 1.0.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-lib/components/afhandeling/AutoProcessStatus.js +1 -1
- package/dist-lib/components/afhandeling/ControleLijstPrint.d.ts +6 -6
- package/dist-lib/components/afhandeling/ControleLijstPrint.d.ts.map +1 -1
- package/dist-lib/components/afhandeling/ControleLijstPrint.js +73 -48
- package/dist-lib/components/afhandeling/ControlePage.d.ts.map +1 -1
- package/dist-lib/components/afhandeling/ControlePage.js +47 -14
- package/dist-lib/components/afhandeling/DagDetailDialog.d.ts.map +1 -1
- package/dist-lib/components/afhandeling/DagDetailDialog.js +48 -24
- package/dist-lib/components/afhandeling/VervoerdersPage.d.ts +8 -1
- package/dist-lib/components/afhandeling/VervoerdersPage.d.ts.map +1 -1
- package/dist-lib/components/afhandeling/VervoerdersPage.js +17 -2
- package/dist-lib/components/afhandeling/WeekAgendaView.d.ts.map +1 -1
- package/dist-lib/components/afhandeling/WeekAgendaView.js +16 -5
- package/dist-lib/components/afhandeling/WerkplekWaarschuwing.d.ts +10 -0
- package/dist-lib/components/afhandeling/WerkplekWaarschuwing.d.ts.map +1 -0
- package/dist-lib/components/afhandeling/WerkplekWaarschuwing.js +28 -0
- package/dist-lib/components/pickstation/PakbonTemplate.js +70 -70
- package/dist-lib/components/pickstation/printDocuments.d.ts +9 -2
- package/dist-lib/components/pickstation/printDocuments.d.ts.map +1 -1
- package/dist-lib/components/pickstation/printDocuments.js +8 -52
- package/dist-lib/components/settings/AfhandelingSettingsCard.d.ts.map +1 -1
- package/dist-lib/components/settings/AfhandelingSettingsCard.js +12 -1
- package/dist-lib/hooks/useEngineTasks.js +1 -1
- package/dist-lib/hooks/useOrderPlanning.d.ts.map +1 -1
- package/dist-lib/hooks/useOrderPlanning.js +32 -14
- package/dist-lib/integrations/supabase/auth-middleware.d.ts +695 -128
- package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/client.server.d.ts +695 -128
- package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/{client.d.ts → moduleClient.d.ts} +697 -129
- package/dist-lib/integrations/supabase/moduleClient.d.ts.map +1 -0
- package/dist-lib/integrations/supabase/moduleClient.js +38 -0
- package/dist-lib/integrations/supabase/types.d.ts +727 -155
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/types.js +3 -0
- package/dist-lib/lib/afhandelingSettings.functions.d.ts +1390 -256
- package/dist-lib/lib/afhandelingSettings.functions.d.ts.map +1 -1
- package/dist-lib/lib/carrierSignupMail.server.js +26 -26
- package/dist-lib/lib/carriers.functions.d.ts +3475 -640
- package/dist-lib/lib/carriers.functions.d.ts.map +1 -1
- package/dist-lib/lib/cartAssignments.functions.d.ts +3475 -640
- package/dist-lib/lib/cartAssignments.functions.d.ts.map +1 -1
- package/dist-lib/lib/cartControl.functions.d.ts +6950 -1280
- package/dist-lib/lib/cartControl.functions.d.ts.map +1 -1
- package/dist-lib/lib/deliveryNotePrint.d.ts +14 -6
- package/dist-lib/lib/deliveryNotePrint.d.ts.map +1 -1
- package/dist-lib/lib/deliveryNotePrint.js +61 -14
- package/dist-lib/lib/floriday.functions.d.ts +695 -128
- package/dist-lib/lib/floriday.functions.d.ts.map +1 -1
- package/dist-lib/lib/floridayAutoProcess.js +1 -1
- package/dist-lib/lib/logisticsEngine/capacity.js +1 -1
- package/dist-lib/lib/logisticsEngine/emitQueue.d.ts +20 -0
- package/dist-lib/lib/logisticsEngine/emitQueue.d.ts.map +1 -0
- package/dist-lib/lib/logisticsEngine/emitQueue.js +88 -0
- package/dist-lib/lib/logisticsEngine/engine.js +1 -1
- package/dist-lib/lib/logisticsEngine/reschedule.js +1 -1
- package/dist-lib/lib/logisticsEngine/staffPlanning.js +1 -1
- package/dist-lib/lib/printing.d.ts +56 -0
- package/dist-lib/lib/printing.d.ts.map +1 -0
- package/dist-lib/lib/printing.js +209 -0
- package/package.json +3 -7
- package/dist-lib/integrations/supabase/auth-attacher.d.ts +0 -2
- package/dist-lib/integrations/supabase/auth-attacher.d.ts.map +0 -1
- package/dist-lib/integrations/supabase/auth-attacher.js +0 -12
- package/dist-lib/integrations/supabase/client.d.ts.map +0 -1
- package/dist-lib/integrations/supabase/client.js +0 -13
|
@@ -6,10 +6,16 @@ export interface DeliveryNoteItem {
|
|
|
6
6
|
}
|
|
7
7
|
/** Haalt de signed URL van een enkele afleverbrief op. */
|
|
8
8
|
export declare function fetchDeliveryNoteUrl(salesOrderId: string): Promise<string>;
|
|
9
|
-
/** Print een PDF vanaf een (signed) URL via
|
|
10
|
-
export declare function printPdfFromUrl(url: string
|
|
9
|
+
/** Print een PDF vanaf een (signed) URL via de printwachtrij. */
|
|
10
|
+
export declare function printPdfFromUrl(url: string, opties: {
|
|
11
|
+
documentnaam: string;
|
|
12
|
+
isHerprint?: boolean;
|
|
13
|
+
}): Promise<void>;
|
|
11
14
|
/** Haal en print één afleverbrief. */
|
|
12
|
-
export declare function printDeliveryNote(salesOrderId: string
|
|
15
|
+
export declare function printDeliveryNote(salesOrderId: string, opties?: {
|
|
16
|
+
documentnaam?: string;
|
|
17
|
+
isHerprint?: boolean;
|
|
18
|
+
}): Promise<void>;
|
|
13
19
|
export interface BulkPrintResult {
|
|
14
20
|
total: number;
|
|
15
21
|
success: number;
|
|
@@ -19,8 +25,10 @@ export interface BulkPrintResult {
|
|
|
19
25
|
}>;
|
|
20
26
|
}
|
|
21
27
|
/**
|
|
22
|
-
* Print meerdere afleverbrieven als
|
|
23
|
-
*
|
|
28
|
+
* Print meerdere afleverbrieven als samengevoegde PDF's van maximaal 25 stuks.
|
|
29
|
+
* Te grote opdrachten worden automatisch verder opgeknipt.
|
|
24
30
|
*/
|
|
25
|
-
export declare function printDeliveryNotesMerged(items: DeliveryNoteItem[]
|
|
31
|
+
export declare function printDeliveryNotesMerged(items: DeliveryNoteItem[], opties?: {
|
|
32
|
+
isHerprint?: boolean;
|
|
33
|
+
}): Promise<BulkPrintResult>;
|
|
26
34
|
//# sourceMappingURL=deliveryNotePrint.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deliveryNotePrint.d.ts","sourceRoot":"","sources":["../../src/lib/deliveryNotePrint.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AA2FD,0DAA0D;AAC1D,wBAAsB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA4BhF;AAED,
|
|
1
|
+
{"version":3,"file":"deliveryNotePrint.d.ts","sourceRoot":"","sources":["../../src/lib/deliveryNotePrint.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AA2FD,0DAA0D;AAC1D,wBAAsB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA4BhF;AAED,iEAAiE;AACjE,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GACrD,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,sCAAsC;AACtC,wBAAsB,iBAAiB,CACrC,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GACvD,OAAO,CAAC,IAAI,CAAC,CAMf;AAQD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC9C;AAUD;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,gBAAgB,EAAE,EACzB,MAAM,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GAChC,OAAO,CAAC,eAAe,CAAC,CAwF1B"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// De Authenticatie-module accepteert een Supabase Bearer-token en stuurt
|
|
4
4
|
// CORS-headers, dus we bellen direct cross-origin — geen eigen proxy nodig.
|
|
5
5
|
import { printPdfBase64 } from "../components/pickstation/printDocuments";
|
|
6
|
-
import { supabase } from "../integrations/supabase/
|
|
6
|
+
import { supabase } from "../integrations/supabase/moduleClient";
|
|
7
7
|
import { resolveGatewayBaseClient } from "./gatewayBase";
|
|
8
8
|
let floridayEnvironmentPromise = null;
|
|
9
9
|
async function getFloridayEnvironment() {
|
|
@@ -97,8 +97,8 @@ export async function fetchDeliveryNoteUrl(salesOrderId) {
|
|
|
97
97
|
}
|
|
98
98
|
return data.url;
|
|
99
99
|
}
|
|
100
|
-
/** Print een PDF vanaf een (signed) URL via
|
|
101
|
-
export async function printPdfFromUrl(url) {
|
|
100
|
+
/** Print een PDF vanaf een (signed) URL via de printwachtrij. */
|
|
101
|
+
export async function printPdfFromUrl(url, opties) {
|
|
102
102
|
const res = await fetch(url);
|
|
103
103
|
if (!res.ok)
|
|
104
104
|
throw new Error(`PDF download mislukt (HTTP ${res.status})`);
|
|
@@ -109,19 +109,36 @@ export async function printPdfFromUrl(url) {
|
|
|
109
109
|
binary += String.fromCharCode(...buf.subarray(i, i + chunk));
|
|
110
110
|
}
|
|
111
111
|
const base64 = btoa(binary);
|
|
112
|
-
await printPdfBase64(base64
|
|
112
|
+
await printPdfBase64(base64, {
|
|
113
|
+
documenttype: "afleverbrief",
|
|
114
|
+
documentnaam: opties.documentnaam,
|
|
115
|
+
isHerprint: opties.isHerprint,
|
|
116
|
+
papierformaat: "A4",
|
|
117
|
+
});
|
|
113
118
|
}
|
|
114
119
|
/** Haal en print één afleverbrief. */
|
|
115
|
-
export async function printDeliveryNote(salesOrderId) {
|
|
120
|
+
export async function printDeliveryNote(salesOrderId, opties) {
|
|
116
121
|
const url = await fetchDeliveryNoteUrl(salesOrderId);
|
|
117
|
-
await printPdfFromUrl(url
|
|
122
|
+
await printPdfFromUrl(url, {
|
|
123
|
+
documentnaam: opties?.documentnaam ?? `AFL-${salesOrderId}`,
|
|
124
|
+
isHerprint: opties?.isHerprint,
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
/** Maximaal aantal afleverbrieven in één samengevoegde printopdracht. */
|
|
128
|
+
const CHUNK_SIZE = 25;
|
|
129
|
+
/** Boven deze payloadgrootte (bytes) wordt de chunk gehalveerd. */
|
|
130
|
+
const MAX_PAYLOAD_BYTES = 5 * 1024 * 1024;
|
|
131
|
+
function base64Bytes(b64) {
|
|
132
|
+
return Math.floor((b64.length * 3) / 4);
|
|
133
|
+
}
|
|
134
|
+
function vandaagIso() {
|
|
135
|
+
return new Date().toISOString().slice(0, 10);
|
|
118
136
|
}
|
|
119
|
-
const CHUNK_SIZE = 50;
|
|
120
137
|
/**
|
|
121
|
-
* Print meerdere afleverbrieven als
|
|
122
|
-
*
|
|
138
|
+
* Print meerdere afleverbrieven als samengevoegde PDF's van maximaal 25 stuks.
|
|
139
|
+
* Te grote opdrachten worden automatisch verder opgeknipt.
|
|
123
140
|
*/
|
|
124
|
-
export async function printDeliveryNotesMerged(items) {
|
|
141
|
+
export async function printDeliveryNotesMerged(items, opties) {
|
|
125
142
|
const valid = items.filter((i) => i.salesOrderId || i.deliveryOrderId || i.fulfillmentOrderId);
|
|
126
143
|
const summary = { total: valid.length, success: 0, failed: [] };
|
|
127
144
|
if (valid.length === 0)
|
|
@@ -144,8 +161,11 @@ export async function printDeliveryNotesMerged(items) {
|
|
|
144
161
|
enriched.push({ ...it, deliveryOrderId: doId });
|
|
145
162
|
}
|
|
146
163
|
}
|
|
147
|
-
|
|
148
|
-
|
|
164
|
+
const dag = vandaagIso();
|
|
165
|
+
let deel = 0;
|
|
166
|
+
const printChunk = async (chunk) => {
|
|
167
|
+
if (chunk.length === 0)
|
|
168
|
+
return;
|
|
149
169
|
const { status, data } = await postJson("/api/public/gateway/pdf/bulk-merged", {
|
|
150
170
|
environment,
|
|
151
171
|
items: chunk.map((it) => ({
|
|
@@ -159,14 +179,41 @@ export async function printDeliveryNotesMerged(items) {
|
|
|
159
179
|
const err = data?.error ?? `HTTP ${status}`;
|
|
160
180
|
for (const it of chunk)
|
|
161
181
|
summary.failed.push({ id: it.id, error: err });
|
|
162
|
-
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
// Te grote samengevoegde PDF: halveren en opnieuw opvragen.
|
|
185
|
+
if (chunk.length > 1 && base64Bytes(data.pdfBase64) > MAX_PAYLOAD_BYTES) {
|
|
186
|
+
const half = Math.ceil(chunk.length / 2);
|
|
187
|
+
await printChunk(chunk.slice(0, half));
|
|
188
|
+
await printChunk(chunk.slice(half));
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
deel += 1;
|
|
192
|
+
const documentnaam = chunk.length === 1
|
|
193
|
+
? `AFL-${chunk[0].salesOrderId ?? chunk[0].deliveryOrderId ?? chunk[0].id}`
|
|
194
|
+
: `AFL-${dag}-deel-${deel}`;
|
|
195
|
+
try {
|
|
196
|
+
await printPdfBase64(data.pdfBase64, {
|
|
197
|
+
documenttype: "afleverbrief",
|
|
198
|
+
documentnaam,
|
|
199
|
+
isHerprint: opties?.isHerprint,
|
|
200
|
+
papierformaat: "A4",
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
catch (e) {
|
|
204
|
+
const msg = e instanceof Error ? e.message : "Printen mislukt";
|
|
205
|
+
for (const it of chunk)
|
|
206
|
+
summary.failed.push({ id: it.id, error: msg });
|
|
207
|
+
return;
|
|
163
208
|
}
|
|
164
209
|
summary.success += data.success ?? chunk.length;
|
|
165
210
|
for (const r of data.results ?? []) {
|
|
166
211
|
if (!r.ok)
|
|
167
212
|
summary.failed.push({ id: r.id, error: r.error ?? "onbekende fout" });
|
|
168
213
|
}
|
|
169
|
-
|
|
214
|
+
};
|
|
215
|
+
for (let i = 0; i < enriched.length; i += CHUNK_SIZE) {
|
|
216
|
+
await printChunk(enriched.slice(i, i + CHUNK_SIZE));
|
|
170
217
|
}
|
|
171
218
|
return summary;
|
|
172
219
|
}
|