@flowselections/layout-maker 1.45.19 → 1.46.1
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/DocumentenPage.d.ts.map +1 -1
- package/dist-lib/components/DocumentenPage.js +2 -3
- package/dist-lib/components/PrintQueuePage.d.ts.map +1 -1
- package/dist-lib/components/PrintQueuePage.js +5 -71
- package/dist-lib/components/PrintenPage.d.ts.map +1 -1
- package/dist-lib/components/PrintenPage.js +2 -3
- package/dist-lib/components/PrinterSetupWizard.d.ts.map +1 -1
- package/dist-lib/components/PrinterSetupWizard.js +2 -25
- package/dist-lib/components/PrintplekDetailPage.d.ts.map +1 -1
- package/dist-lib/components/PrintplekDetailPage.js +3 -25
- package/dist-lib/components/PrintplekWizard.d.ts.map +1 -1
- package/dist-lib/components/PrintplekWizard.js +3 -85
- package/dist-lib/index.d.ts +0 -8
- package/dist-lib/index.d.ts.map +1 -1
- package/dist-lib/index.js +0 -10
- package/dist-lib/integrations/supabase/auth-middleware.d.ts +931 -46
- package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/client.server.d.ts +931 -46
- package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/moduleClient.d.ts +931 -46
- package/dist-lib/integrations/supabase/moduleClient.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/types.d.ts +955 -47
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/lib/aiLayout.functions.d.ts +931 -46
- package/dist-lib/lib/aiLayout.functions.d.ts.map +1 -1
- package/dist-lib/lib/printApi.d.ts +0 -2
- package/dist-lib/lib/printApi.d.ts.map +1 -1
- package/dist-lib/lib/printApi.js +0 -21
- package/dist-lib/lib/printQueue.server.d.ts +8 -0
- package/dist-lib/lib/printQueue.server.d.ts.map +1 -1
- package/dist-lib/lib/printQueue.server.js +36 -67
- package/dist-lib/lib/printService.functions.d.ts +4425 -0
- package/dist-lib/lib/printService.functions.d.ts.map +1 -1
- package/dist-lib/lib/voorbeeldPrint.d.ts.map +1 -1
- package/dist-lib/lib/voorbeeldPrint.js +7 -39
- package/package.json +1 -1
- package/dist-lib/components/PdfMapAutoSaver.d.ts +0 -6
- package/dist-lib/components/PdfMapAutoSaver.d.ts.map +0 -1
- package/dist-lib/components/PdfMapAutoSaver.js +0 -12
- package/dist-lib/components/PdfMapGlobaleBanner.d.ts +0 -12
- package/dist-lib/components/PdfMapGlobaleBanner.d.ts.map +0 -1
- package/dist-lib/components/PdfMapGlobaleBanner.js +0 -30
- package/dist-lib/components/PdfMapToestemmingBanner.d.ts +0 -8
- package/dist-lib/components/PdfMapToestemmingBanner.d.ts.map +0 -1
- package/dist-lib/components/PdfMapToestemmingBanner.js +0 -245
- package/dist-lib/lib/pdfJobSaver.d.ts +0 -24
- package/dist-lib/lib/pdfJobSaver.d.ts.map +0 -1
- package/dist-lib/lib/pdfJobSaver.js +0 -405
- package/dist-lib/lib/pdfMap.d.ts +0 -90
- package/dist-lib/lib/pdfMap.d.ts.map +0 -1
- package/dist-lib/lib/pdfMap.js +0 -349
- package/dist-lib/lib/pdfOpslagStatus.d.ts +0 -23
- package/dist-lib/lib/pdfOpslagStatus.d.ts.map +0 -1
- package/dist-lib/lib/pdfOpslagStatus.js +0 -74
- package/dist-lib/lib/pdfPrinter.d.ts +0 -9
- package/dist-lib/lib/pdfPrinter.d.ts.map +0 -1
- package/dist-lib/lib/pdfPrinter.js +0 -34
|
@@ -63,8 +63,6 @@ export declare function printerVoorLayout(layout: {
|
|
|
63
63
|
documenttype?: string | null;
|
|
64
64
|
papierformaat?: string | null;
|
|
65
65
|
}, werkplek?: string, printplekId?: string): Promise<string | null>;
|
|
66
|
-
/** Afdrukmethode van één printer, gebruikt voor PDF-specifieke voorcontroles. */
|
|
67
|
-
export declare function printerAfdrukmethode(printerId: string): Promise<string | null>;
|
|
68
66
|
export interface PrintPdfInput {
|
|
69
67
|
/** Documentsoort, alleen voor overzicht en printerkeuze. */
|
|
70
68
|
documenttype: DocumentType | string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"printApi.d.ts","sourceRoot":"","sources":["../../src/lib/printApi.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"printApi.d.ts","sourceRoot":"","sources":["../../src/lib/printApi.ts"],"names":[],"mappings":"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"}
|
package/dist-lib/lib/printApi.js
CHANGED
|
@@ -7,7 +7,6 @@ import { supabase } from "./supabaseClient.js";
|
|
|
7
7
|
import { printerVoorWerkplekDocument } from "./documentRoutering.js";
|
|
8
8
|
import { printerVoorPrintplek, printplekNaam, printplekVoorComputer } from "./printplekken.js";
|
|
9
9
|
import { bronVoorDocument } from "./documentBron.js";
|
|
10
|
-
import { bewaarPdfJobZodraKlaar } from "./pdfJobSaver.js";
|
|
11
10
|
const arr = (v) => (Array.isArray(v) ? v : []);
|
|
12
11
|
/** Zoekt de te gebruiken layout: expliciet, anders standaard, anders de nieuwste. */
|
|
13
12
|
async function bepaalLayout(documenttype, layoutId) {
|
|
@@ -121,12 +120,6 @@ async function zetInWachtrij(rij) {
|
|
|
121
120
|
// blijft de opdracht gewoon wachtend staan voor een volgende poging.
|
|
122
121
|
if (id) {
|
|
123
122
|
void startWachtrijVerwerking();
|
|
124
|
-
const printerId = typeof rij.printer_id === "string" ? rij.printer_id : null;
|
|
125
|
-
// Bij de virtuele PDF-printer blijft deze browser wachten op de gemaakte
|
|
126
|
-
// PDF en schrijft hem meteen naar de lokaal gekozen map. Voor gewone
|
|
127
|
-
// printers stopt de helper direct omdat daar geen maphandle voor bestaat.
|
|
128
|
-
if (printerId)
|
|
129
|
-
void bewaarPdfJobZodraKlaar(id, printerId);
|
|
130
123
|
}
|
|
131
124
|
return id;
|
|
132
125
|
}
|
|
@@ -207,20 +200,6 @@ export async function printerVoorLayout(layout, werkplek, printplekId) {
|
|
|
207
200
|
const documenttype = String(layout.documenttype ?? "");
|
|
208
201
|
return bepaalPrinter(documenttype, layout.id ?? null, layout.papierformaat ?? null, werkplek ?? null, printplekId ?? null);
|
|
209
202
|
}
|
|
210
|
-
/** Afdrukmethode van één printer, gebruikt voor PDF-specifieke voorcontroles. */
|
|
211
|
-
export async function printerAfdrukmethode(printerId) {
|
|
212
|
-
const id = printerId.trim();
|
|
213
|
-
if (!id)
|
|
214
|
-
return null;
|
|
215
|
-
const { data, error } = await supabase
|
|
216
|
-
.from("printers")
|
|
217
|
-
.select("afdrukmethode")
|
|
218
|
-
.eq("id", id)
|
|
219
|
-
.maybeSingle();
|
|
220
|
-
if (error)
|
|
221
|
-
throw error;
|
|
222
|
-
return data?.afdrukmethode ?? null;
|
|
223
|
-
}
|
|
224
203
|
/**
|
|
225
204
|
* Print een kant-en-klare PDF (klantsticker, Floriday-document, factuur van een
|
|
226
205
|
* externe dienst). De PDF gaat ongewijzigd naar de printer; er wordt geen
|
|
@@ -56,6 +56,14 @@ export declare function bouwHtml(db: PrintDb, job: Job, keuze: LayoutKeuze, uitk
|
|
|
56
56
|
* lege layout of een opdracht zonder gegevens een blanco vel opleveren.
|
|
57
57
|
*/
|
|
58
58
|
export declare function heeftZichtbareInhoud(html: string): boolean;
|
|
59
|
+
/** Hoe vaak een opdracht op een ontbrekende layout mag wachten. */
|
|
60
|
+
export declare const MAX_WACHT_OP_LAYOUT = 3;
|
|
61
|
+
/**
|
|
62
|
+
* Zet een opdracht terug om later opnieuw te proberen, maar begrensd: na
|
|
63
|
+
* MAX_WACHT_OP_LAYOUT pogingen wordt hij leesbaar "mislukt", zodat hij niet
|
|
64
|
+
* eindeloos blijft rondgaan en onder de gewone opschoning valt.
|
|
65
|
+
*/
|
|
66
|
+
export declare function wachtOpLayout(db: PrintDb, job: Job, reden: string): Promise<"wachtend" | "mislukt">;
|
|
59
67
|
export interface WachtrijResultaat {
|
|
60
68
|
opgepakt: number;
|
|
61
69
|
verstuurd: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"printQueue.server.d.ts","sourceRoot":"","sources":["../../src/lib/printQueue.server.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAkC5D,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE/B,mFAAmF;AACnF,MAAM,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEpD;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAW1E;AAoDD,2EAA2E;AAC3E,qBAAa,gBAAiB,SAAQ,KAAK;IAChC,IAAI,SAAsB;CACpC;AAED,+EAA+E;AAC/E,qBAAa,iBAAkB,SAAQ,KAAK;IACjC,IAAI,SAAuB;CACrC;AAED,oFAAoF;AACpF,qBAAa,kBAAmB,SAAQ,gBAAgB;IAC7C,IAAI,SAAwB;CACtC;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG;IAAE,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CAAC;AAEvE,yEAAyE;AACzE,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,cAAc,GAAG,aAAa,GAAG,aAAa,CAAC;AAE1F,6EAA6E;AAC7E,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC;AAcnD,4EAA4E;AAC5E,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAI7D;AASD,sEAAsE;AACtE,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAQnD;AA2PD;;;GAGG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA+BnF;AAkUD;;;;GAIG;AACH,wBAAsB,QAAQ,CAC5B,EAAE,EAAE,OAAO,EACX,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,WAAW,EAClB,QAAQ,CAAC,EAAE,YAAY,GACtB,OAAO,CAAC,MAAM,CAAC,CAuZjB;AAGD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAY1D;
|
|
1
|
+
{"version":3,"file":"printQueue.server.d.ts","sourceRoot":"","sources":["../../src/lib/printQueue.server.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAkC5D,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE/B,mFAAmF;AACnF,MAAM,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEpD;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAW1E;AAoDD,2EAA2E;AAC3E,qBAAa,gBAAiB,SAAQ,KAAK;IAChC,IAAI,SAAsB;CACpC;AAED,+EAA+E;AAC/E,qBAAa,iBAAkB,SAAQ,KAAK;IACjC,IAAI,SAAuB;CACrC;AAED,oFAAoF;AACpF,qBAAa,kBAAmB,SAAQ,gBAAgB;IAC7C,IAAI,SAAwB;CACtC;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG;IAAE,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CAAC;AAEvE,yEAAyE;AACzE,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,cAAc,GAAG,aAAa,GAAG,aAAa,CAAC;AAE1F,6EAA6E;AAC7E,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC;AAcnD,4EAA4E;AAC5E,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAI7D;AASD,sEAAsE;AACtE,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAQnD;AA2PD;;;GAGG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA+BnF;AAkUD;;;;GAIG;AACH,wBAAsB,QAAQ,CAC5B,EAAE,EAAE,OAAO,EACX,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,WAAW,EAClB,QAAQ,CAAC,EAAE,YAAY,GACtB,OAAO,CAAC,MAAM,CAAC,CAuZjB;AAGD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAY1D;AAqBD,mEAAmE;AACnE,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAsCzG;AAoZD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA2BD,oFAAoF;AACpF,wBAAsB,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,SAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAwFtF;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,OAAO,EACX,GAAG,EAAE,GAAG,GACP,OAAO,CAAC;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CA4B1D"}
|
|
@@ -1104,22 +1104,51 @@ function plattePayload(payload) {
|
|
|
1104
1104
|
loop(payload, "", 0);
|
|
1105
1105
|
return uit;
|
|
1106
1106
|
}
|
|
1107
|
-
|
|
1107
|
+
/** Hoe vaak een opdracht op een ontbrekende layout mag wachten. */
|
|
1108
|
+
export const MAX_WACHT_OP_LAYOUT = 3;
|
|
1109
|
+
/**
|
|
1110
|
+
* Zet een opdracht terug om later opnieuw te proberen, maar begrensd: na
|
|
1111
|
+
* MAX_WACHT_OP_LAYOUT pogingen wordt hij leesbaar "mislukt", zodat hij niet
|
|
1112
|
+
* eindeloos blijft rondgaan en onder de gewone opschoning valt.
|
|
1113
|
+
*/
|
|
1114
|
+
export async function wachtOpLayout(db, job, reden) {
|
|
1115
|
+
const pogingen = Number(job.pogingen ?? 0) + 1;
|
|
1116
|
+
const nu = new Date().toISOString();
|
|
1117
|
+
if (pogingen >= MAX_WACHT_OP_LAYOUT) {
|
|
1118
|
+
const melding = `De layout voor dit document is na ${MAX_WACHT_OP_LAYOUT} pogingen nog steeds niet beschikbaar. ${reden}`.slice(0, 500);
|
|
1119
|
+
await db
|
|
1120
|
+
.from("print_jobs")
|
|
1121
|
+
.update({
|
|
1122
|
+
status: "mislukt",
|
|
1123
|
+
verwerkingsfase: "mislukt",
|
|
1124
|
+
foutcode: "blijvende_fout",
|
|
1125
|
+
foutmelding: melding,
|
|
1126
|
+
pogingen,
|
|
1127
|
+
volgende_poging: null,
|
|
1128
|
+
fase_voltooid_op: nu,
|
|
1129
|
+
voltooid_op: nu,
|
|
1130
|
+
updated_at: nu,
|
|
1131
|
+
})
|
|
1132
|
+
.eq("id", job.id)
|
|
1133
|
+
.neq("status", "geannuleerd");
|
|
1134
|
+
await log(db, job.id, "mislukt", melding);
|
|
1135
|
+
return "mislukt";
|
|
1136
|
+
}
|
|
1108
1137
|
await db
|
|
1109
1138
|
.from("print_jobs")
|
|
1110
1139
|
.update({
|
|
1111
1140
|
status: "wachtend",
|
|
1112
|
-
lokale_pdf_status: "wachtend",
|
|
1113
|
-
lokale_pdf_fout: reden.slice(0, 500),
|
|
1114
1141
|
foutmelding: reden.slice(0, 500),
|
|
1142
|
+
pogingen,
|
|
1115
1143
|
volgende_poging: new Date(Date.now() + 5 * 60 * 1000).toISOString(),
|
|
1116
1144
|
opgepakt_op: null,
|
|
1117
1145
|
voltooid_op: null,
|
|
1118
|
-
updated_at:
|
|
1146
|
+
updated_at: nu,
|
|
1119
1147
|
})
|
|
1120
1148
|
.eq("id", job.id)
|
|
1121
1149
|
.neq("status", "geannuleerd");
|
|
1122
|
-
await log(db, job.id, "wacht_op_engine_layout", reden);
|
|
1150
|
+
await log(db, job.id, "wacht_op_engine_layout", `${reden} (poging ${pogingen}/${MAX_WACHT_OP_LAYOUT})`);
|
|
1151
|
+
return "wachtend";
|
|
1123
1152
|
}
|
|
1124
1153
|
async function mislukt(db, job, reden, terugNaarWachtend) {
|
|
1125
1154
|
const pogingen = Number(job.pogingen ?? 0);
|
|
@@ -1243,9 +1272,7 @@ async function verwerkJob(db, job) {
|
|
|
1243
1272
|
const printerKeuze = await zoekPrinter(db, job, layout);
|
|
1244
1273
|
klok.markeer("printer_resolved");
|
|
1245
1274
|
const printer = printerKeuze.printer;
|
|
1246
|
-
|
|
1247
|
-
const isPdfPrinter = String(printer?.afdrukmethode ?? "") === "pdf";
|
|
1248
|
-
if (!printer || (!isPdfPrinter && !printer.extern_printer_id)) {
|
|
1275
|
+
if (!printer || !printer.extern_printer_id) {
|
|
1249
1276
|
await mislukt(db, job, printerKeuze.reden ||
|
|
1250
1277
|
`Printer '${printer?.naam ?? "onbekend"}' is niet aan PrintNode gekoppeld.`, true);
|
|
1251
1278
|
return "mislukt";
|
|
@@ -1284,61 +1311,6 @@ async function verwerkJob(db, job) {
|
|
|
1284
1311
|
await log(db, job.id, "annulering_bevestigd", "Niet afgeleverd: tijdens het opmaken geannuleerd.");
|
|
1285
1312
|
return "wachtend";
|
|
1286
1313
|
}
|
|
1287
|
-
// Virtuele PDF-printer: niets gaat naar een fysieke printer; de opgemaakte
|
|
1288
|
-
// PDF wordt op de opdracht bewaard en is daarna te downloaden in de
|
|
1289
|
-
// wachtrij. De opdracht is meteen voltooid.
|
|
1290
|
-
if (isPdfPrinter) {
|
|
1291
|
-
// Bewaar de PDF één keer als binair artefact. De wachtrij en Realtime
|
|
1292
|
-
// vervoeren daarna alleen metadata; de werkplek downloadt precies dit bestand.
|
|
1293
|
-
const artefact = await bewaarPdfArtefact(db, String(job.id), pdfBase64);
|
|
1294
|
-
if (await isJobGeannuleerd(db, String(job.id))) {
|
|
1295
|
-
await db.storage.from("print-artifacts").remove([artefact.pad]);
|
|
1296
|
-
await log(db, job.id, "annulering_bevestigd", "PDF-artefact na annulering verwijderd.");
|
|
1297
|
-
return "wachtend";
|
|
1298
|
-
}
|
|
1299
|
-
// De opdracht blijft bewust op 'bezig' staan: hij is pas voltooid als de
|
|
1300
|
-
// werkplek het bestand echt in de PDF-map heeft gezet. De lokale service
|
|
1301
|
-
// zet daarna 'opgeslagen' + 'voltooid', of 'mislukt' met een leesbare zin.
|
|
1302
|
-
const { data: opgeslagenJob, error: statusFout } = await db
|
|
1303
|
-
.from("print_jobs")
|
|
1304
|
-
.update({
|
|
1305
|
-
printer_id: printer.id,
|
|
1306
|
-
gebruikte_layout_id: uitkomst.bron === "extern_pdf" ? null : (layout?.id ?? null),
|
|
1307
|
-
gebruikte_bron: uitkomst.bron,
|
|
1308
|
-
status: "bezig",
|
|
1309
|
-
verwerkingsfase: "pdf_gereed",
|
|
1310
|
-
fase_voltooid_op: new Date().toISOString(),
|
|
1311
|
-
foutcode: null,
|
|
1312
|
-
lokale_pdf_status: "gereed",
|
|
1313
|
-
lokale_pdf_print_plek_id: (await zoekPrintPlekId(db, job)) || null,
|
|
1314
|
-
lokale_pdf_fout: null,
|
|
1315
|
-
lokaal_opgeslagen_op: null,
|
|
1316
|
-
foutmelding: null,
|
|
1317
|
-
artefact_pad: artefact.pad,
|
|
1318
|
-
artefact_sha256: artefact.sha256,
|
|
1319
|
-
artefact_bytes: artefact.bytes,
|
|
1320
|
-
artefact_gereed_op: new Date().toISOString(),
|
|
1321
|
-
resultaat_pdf_base64: null,
|
|
1322
|
-
volgende_poging: null,
|
|
1323
|
-
updated_at: new Date().toISOString(),
|
|
1324
|
-
})
|
|
1325
|
-
.eq("id", job.id)
|
|
1326
|
-
.neq("status", "geannuleerd")
|
|
1327
|
-
.select("id")
|
|
1328
|
-
.maybeSingle();
|
|
1329
|
-
if (statusFout) {
|
|
1330
|
-
await mislukt(db, job, `Opdracht afronden mislukt: ${statusFout.message}`, true);
|
|
1331
|
-
return "mislukt";
|
|
1332
|
-
}
|
|
1333
|
-
if (!opgeslagenJob) {
|
|
1334
|
-
await db.storage.from("print-artifacts").remove([artefact.pad]);
|
|
1335
|
-
await log(db, job.id, "annulering_bevestigd", "PDF-artefact na gelijktijdige annulering verwijderd.");
|
|
1336
|
-
return "wachtend";
|
|
1337
|
-
}
|
|
1338
|
-
klok.markeer("pdf_ready");
|
|
1339
|
-
await log(db, job.id, "pdf_gereed", `PDF gereed voor lokale opslag via ${printer.naam ?? "PDF-printer"}. ${klok.samenvatting()}`);
|
|
1340
|
-
return "verstuurd";
|
|
1341
|
-
}
|
|
1342
1314
|
const formaten = await zorgVoorFormaten(db, printer);
|
|
1343
1315
|
const vfPapier = (job.payload ?? {})["voorbeeld_formaat"];
|
|
1344
1316
|
const breedteMm = Number(layout?.breedte_mm ?? vfPapier?.["breedte_mm"] ?? standaardMaat(printer).breedte);
|
|
@@ -1389,8 +1361,7 @@ async function verwerkJob(db, job) {
|
|
|
1389
1361
|
}
|
|
1390
1362
|
catch (e) {
|
|
1391
1363
|
if (e instanceof WachtOpLayoutFout) {
|
|
1392
|
-
await wachtOpLayout(db, job, e.message);
|
|
1393
|
-
return "wachtend";
|
|
1364
|
+
return await wachtOpLayout(db, job, e.message);
|
|
1394
1365
|
}
|
|
1395
1366
|
// Ontbreekt er een document of layout? Dan heeft opnieuw proberen geen zin.
|
|
1396
1367
|
const blijvend = e instanceof GeenDocumentFout;
|
|
@@ -1502,8 +1473,6 @@ async function vervalControle(db) {
|
|
|
1502
1473
|
.select("id, pogingen")
|
|
1503
1474
|
.eq("status", "bezig")
|
|
1504
1475
|
.is("extern_job_id", null)
|
|
1505
|
-
// PDF-opdrachten die op de werkplek wachten zijn niet vastgelopen.
|
|
1506
|
-
.or("lokale_pdf_status.is.null,lokale_pdf_status.not.in.(wachtend,bezig,gereed)")
|
|
1507
1476
|
.or(`opgepakt_op.lt.${grensClaim},and(opgepakt_op.is.null,updated_at.lt.${grensClaim})`)
|
|
1508
1477
|
.limit(50);
|
|
1509
1478
|
for (const job of arr(vastgelopen)) {
|